技术可行性研究报告.docx
《技术可行性研究报告.docx》由会员分享,可在线阅读,更多相关《技术可行性研究报告.docx(33页珍藏版)》请在课桌文档上搜索。
1、XXXXX系统技术可行性分析汇报项目名称:项目编号:编写:审核:批准:B期:项目简介系统构成产品技术平台分析3.1系统运行环境3.2开发环境4重要关键技术5关键技术的J处理方案Struts2框架5.2持久层框架5.3Ajax技术5.4XML解析器5.5SNMP6系统架构处理方案6.1架构16.2架构27本项目确定的方案7.1系统架构7.2技术方案错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。
2、错误!未定义书签。错误!未定义书签。错误!未定义书签。错误!未定义书签。1项目简介2系统构成模块名称模块描述3产品技术平台分析3.1系统运行环境网络环境:硬件平台:操作系统平台:数据库平台:Web服务:3.2开发环境网络环境:硬件平台:操作系统平台:数据库平台:Web服务:4重要关键技术重要关键技术技术解释J2EEJ2EE(Java2EnterpriseEdition)即JaVa2企业版,是提供应开发者的!采用组件技术构建分布式系统H勺编程框架。Struts2框架Struts2是一种兼容Strutsl和WebWork的MVC框架,它是以WebWOrk的设计思想为关键,吸取了Strutsl的长处
3、。Spring框架SPring是轻量级口勺容器,是一种开源框架。iBatis框架iBatis是目前流行的轻量级持久层架构,学习上手快,使用灵活、性能高效等特点。Log4jLog4j是Apache於J一种日志记录FrJ开放源代码项目。XML解析器目前流行日勺XML解析器重要有DOM、SAX、JDOM.DOM4J等。WebServiceWebService也叫XMLWebServiceWebService是种可以接受从Internet或者Intranet上的其他系统中传递过来的祈求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文献进行阐明,并通过UDDI进行注册。
4、RMI-IIOP采用IIOP协议(互联网内部对象祈求代理协议)进行javaRMI远程措施访问。AjaxAJAX全称为AsynchronousJavaScriptandXML(异步JavaScript和XMD,是指一种创立交互式网页应用的!网页开发技术。C语言C语言是一种高效的构造化语言。SNMP简朴网络管理协议(SimPleNetworkManagementProtocol)RRD/JRobinRRD是RoundRobinDatabase(环状数据库)日勺缩写。JRobin是一种使用Java实现的开源的RRD处理程序和绘图引擎。FlashFlash是交互式矢量图和Web动画的原则。JNDIJa
5、Va命令与目录服务JUnitJava单元测试的工具DOMDocumentObjectModel文档对象模型。CSSCascadingStyleSheetS层叠样式表单。Maven2ApacheJakarta项目的高级项目管理工具,比Ant更简朴、更先进5关键技术的处理方案5.1Struts2框架ApacheStruts2即是之前大家所熟知欧|WebWork2o在经历了几年的I各自发展后,WebWork和Struts小区决定合二为一,也即是Struts2。Struts2是一种兼容Strutsl和WebWorkB,JMVC框架,它是以WebWork0设计思想为关键,吸取了StrUtS10长处。St
6、ruts2的核心控制器FilterDispatcherStruts2体系构造Struts2框架的大体处理流程如下: 浏览器发送祈求,例如祈求/mypage.action、reportsmyreport.pdf等; 关键控制器FilterDiSPatCher根据祈求调用合适的IAction; WebWork0拦截器链自动对祈求应用通用功能,例如Workfk)w、Validation或文献上传等功能;回调ActionB,Jexecute措施,该execute措施先获得顾客祈求参数,然后执行某种数据操作,既可以是将数据保留到数据库,也可以从数据库中检索数据。实际上Action只是一种控制器,他会调用
7、业务逻辑组件来处理顾客0祈求。StrutsLx与StrutsZ比较特性Strutsl.XStruts2Action类Strutsl.X规定Action类要扩展自一种抽象基类。StrUtSLX区Ji种共有的问题是面向抽象类编程而不是面向接口编程。Struts2的Action类实现了一种ACtion接口,连同其他接口一起来实现可选择和自定义的服务。StrUtS2提供一种名叫ActionSupport的基类来实现一般使用於J接口。当然,ACtiOn接口不是必须的任何使用execute措施的POJO对象可以被当作Struts20Action对象来使用。线程模型Strutsl.XAction类是单例类,
8、由于只有一种实例来控制所有的祈求。单例类方略导致了一定的限制,并且给开发带来了额外的烦恼。AetiOn资源必须是线程安全或者同步的。Struts2Action对象为每一种祈求都实例化对象,因此没有线程安全的问题。(实践中,SerVlel容器给每一种祈求产生许多丢弃的对象,并且不会导致性能和垃圾回收问题)。Servlet依赖Strutsl.X的IAction类依赖于servletAPT,当ACtiOn被调用时,以ServletRequest和ServletResponse作为参数传给execute措施。Struts2的IAction和容器无关。SerVIet上下文被体现为简朴欧JUaPs,容许A
9、ction被独立的测试。Struts2的Action可以访问最初的祈求(假如需要的话)。不过,尽量防止或排除其他元素直接访问ServletRequest或ServletResponseo易测性测试StrUtSLX的重要问题是execute措施暴露了ServlctAPI这使得测试要依赖于容器)。第三方的扩展,如StrutsTestCase,提供了一套Struts2的Action可以通过初始化、设置属性、调用措施来测试。依赖注入的支持也是测试变得更简朴。StrUtS1B模拟对象(来进行测试)。捕捉输入StrutsLX使用ActionEorm对象来捕捉输入。象ACtiOn同样,所有的ACtiOnFO
10、rnI必须扩展基类。由于其他勺JavaBean不能作为ActionEorm使用,开发者常常创立多出的类来捕捉输入。DynaBeanS可以被用来作为替代ACtiOnFonn勺类来创立。不过,开发者也许是在重新描述(创立)已经存在11JavaBean(仍然会导致有冗余的javabean)。Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性也许是有自己(子)属性的rich对象类型。ACtiOn属性可以通过Web页面上的Iaglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,可以用作输入/输出对象。这种ModeIDriV
11、en特性简化了taglib对PoJo输入对象的引用。体现式语WStrutsl.X整合JSTL,因此它使用JSTL的体现式语言。体现式语言有基本的图形对象移动,不过对集合和索引属性H勺支持很弱。Struts2使用JSTL,不过也支持一种更强大和灵活的体现式语言一一ObjectGraphNotationLanguage*(OGNL).将值绑定到页面Strutsl.X使用原则JSP机制来绑定对象到页面上下文。StrUtS2使用wValueStackw技术,使taglib可以访问值而不需要把你的J页面(view)和对象绑定起来。ValueStack方略容许通过一系列名称相似但类型不一样H勺属性重用页面
12、(view)0类型转换Strutsl.XH勺ActionForm属性常常都是StringoStrutsLX使用Commons-Beanuti1s来进行类型转换。转换每一种类,而不是为每一种实例配置。Struts2使用OGNL进行类型转换。提供基本和常用对象口勺转换器。验证Strutsl.X支持在ActionForm的|Validate措施中手动校验,或者通过COmmonSValidatorB扩展来校验。同一种类可以有不一样的校验内容,但不能校验子对象。Struts2支持通过validate措施和Xwork校验框架来进行校验。XWork校验框架使用为属性类类型定义的校验和内容校验,来支持Chai
13、n校验子属性Action执行控制Strutsl.X支持每一种模块有单独RRequestProcessors(生命周期),不过模块中的所有Action必须共享相似的生命周期。Struts2支持通过拦截器堆栈(InterceptorStacks)为每一种ACtiOn创立不一样的生命周期。堆栈可以根据需要和不一样於JAction一起使用。总结:根据StnItSLX和StrUtS2.0的对比,struts2.0提供的措施更灵活更易于开发,因此决定采用struts2.0作为教学机管理系统2.0的前台框架。5.2持久层框架持久层框架目前比较流行时有Hibemate、ibatis等,下面重要对这两种框架进行
14、简介。HibernateHibemate是一种开放源代码H对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JaVa程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibemate可以应用在任何使用JDBC0场所,既可以在Java0客户端程序使用,也可以在Servlet/JSP0Web应用中使用,最具革命意义B是,Hibemate可以在应用EJBBJ2EE架构中取代CMP,完毕数据持久化的重任。一、Hibemate是JDBC的轻量级的对象封装,它是一种独立的对象持久层框架,和APPServer,和EJB没有什么必然的联络。Hibemate可以用在任何JDBC可以使用的场所,例如J
15、aVa应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库0代码。从这个意义上来说,Hibemate和EB不是一种范围日勺东西,也不存在非此即彼日勺关系。二、Hibemate是一种和JDBC亲密关联的框架,因此Hibemate的兼容性和JDBC驱动,和数据库均有一定的关系,不过和使用它的JaVa程序,和APPSerVer没有任何关系,也不存在兼容性问题。三、Hibemate不能用来直接和EntityBean做对比,只有放在整个J2EE项目的J框架中才能比较。并且虽然是放在软件整体框架中来看,Hibemate也是做为JDBC0替代者出现0,而不是EntityBean0替
16、代者出现的U老式的架构:1) SessionBeanEntityBeanDB为了处理性能障碍的替代架构:2) SessionBeanDAOJDBCDB使用Hibernate来提高上面架构0开发效率0架构:3) SessionBeanDAOHibernateDB就上面3个架构来分析:内存消耗:采用JDBC的架构2无疑是最省内存B,HibemateB架构3次之,EB的架构1最差。令运行效率:假如JDBC的代码写的非常优化,那么JDBC架构运行效率最高,不过实际项目中,这一点几乎做不到,这需要程序员非常精通JDBC,运用Batch语句,调整PreapredStatement0BatchSize和Fe
17、tchSize等参数,以及在必要0状况下采用成果集cache等等。而一般状况下程序员是做不到这一点B因此Hibernate架构体现出最快的I运行效率。EB的架构效率会差的很远。令开发效率:在有JBUikier的支持下以及简朴的项目,EB架构开发效率最高,JDBC次之,Hibernate最差。不过在大改|项目,尤其是持久层关系映射很复杂的!状况下,Hibernate效率高B惊人,JDBC次之,而EB架构很也许会失败。分布式,安全检查,集群,负载均衡0支持由于有SB做为FaCade,3个架构没有区别。Ibatis使用ibatis提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的JdVa对象,
18、这一层与通过Hiberndte实现ORM而言基本一致,而对于详细的数据操作,Hibernate会自动生成SQL语句,而ibatis则规定开发者编写详细0SQL语句。相对Hibernate等全自动ORM机制而言,ibatis以SQL开发0工作量和数据库移植性上0让步,为系统设计提供了更大的自由空间。Hibernate与ibatis优缺陷比较:1 .iBATIS非常简朴易学,Hibemate相对较复杂,门槛较高。2 .两者都是比较优秀的开源产品3 .当系统属于二次开发,无法对数据库构造做到控制和修改,那IBATIS的灵活性将比Hibernate更适合4 .系统数据处理量巨大,性能规定极为苛刻,这往
19、往意味着我们必须通过通过高度优化的SQL语句(或存储过程)才能到达系统性能设计指标。在这种状况下iBATIS会有更好的可控性和体现。5 .iBATIS需要手写Sql语句,也可以生成一部分,Hibemate则基本上可以自动生成,偶尔会写某些Hql。同样的需求,iBATIS的工作量比Hibemate要大诸多。类似的,假如波及到数据库字段欧I修改,Hibernate修改欧!地方很少,而iBATIS要把那些Sqlmapping/!地方一一修改。6 .以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不一样的,本质区别在于这种PO是扁平化的,不像Hibernate映射的P
20、o是可以体现立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思绪。7 .Hibernate目前已经是主流0/RMapping框架,从文档【向丰富性,产品的完善性,版本的开发速度都要强于iBATIS总结:根据本项目对Sql优化灵活性的规定,选择ibatis作为数据持久层框架。5.3Ajax技术Ajax概述:AjaX不是一种技术。实际上,它由几种蓬勃发展的技术以新日勺强大方式组合而成。Ajax包括: XHTML和CSS 使用文档对象模型(DoCUmentc)bjectModeI)作动态显示和交互 使用XML和XSLT做数据交互和操作 使用XMLReqUeSt进行异步数据接受
21、使用JaVaSCriPt将它们绑定在一起老式0web应用模型工作起来就象这样:大部分界面上0顾客动作触发一种连接到Web服务器的祈求。服务器完毕某些处理一接受数据,处理计算,再访问其他的数据库系统,最终返回一种HTML页面到客户端。这是一种老套的模式,自采用超文本作为Web使用以来,一直都这样用,但看过TheElementsofUserExperiencedB读者一定懂得,是什么限制了Web界面没有桌面软件那么好用。browser clientuser interfaceI HTTP requesthttp (s) trans)ortHTML+CSS dataVIweb serverfdata
22、stores, bckendprocessing, Ie9cy systemsserver-side systemsclassicweb application modelbrowser clientuser InterfdCeJavaScript callI HTMLCSS dataAjax engineI HTTP requesthttp (s) trans)ortXML data,Iweb and/or XML serverfdatastores, backendprocessing, legacy systemsserver-side systemsAjaxweb applicatio
23、n model老式Web应用模型(左)与Ajax模型的比较(右).这种旧的途径让我们认识到了许多技术,但它不会产生很好的顾客体验。当服务器正在处理自己的事情时时候,顾客在做什么?没错,等待。每一种动作,顾客都要等待。很明显,假如我们按桌面程序0思维设计Web应用,我们不乐意让顾客总是等待。当界面加载后,为何还要让顾客每次再花二分之一的时间从服务取数据?实际上,为何老是让顾客看到程序去服务器取数据呢?Ajax怎样不一样凡响通过在顾客和服务器之间引入一种Ajax引擎,可以消除Web的开始一停止-开始.停止这样0交互过程.它就像增长了一层机制到程序中,使它响应更敏捷,而它确实做到了这一点。不像加载一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 技术 可行性研究 报告
链接地址:https://www.desk33.com/p-1021349.html