《技术可行性研究报告.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交互过程.它就像增长了一层机制到程序中,使它响应更敏捷,而它确实做到了这一点。不像加载一
24、种页面同样,在会话B开始,浏览器加载了一种Ajax引擎一采用JaVaSeriPt编写并且一般在一种隐藏frame中。这个引擎负责绘制顾客界面以及与服务器端通讯。Ajax引擎容许用异步的方式实现顾客与程序的交互-不用等待服务器的通讯。因此顾客再不不用打开一种空白窗口,看到等待光标不停的转,等待服务器完毕后再响应。使用AjaX的最大长处,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应顾客动作,并防止了在网络上发送那些没有变化过B信息。老式0web应用容许顾客填写表单(form),当提交表单时就向web服务器发送一种祈求。服务器接受并处理传来的表单,然彳及返回一种新日勺网
25、页。这个做法挥霍了许多带宽,由于在前彳爰两个页面中的大部分HTML代码往往是相似的。由于每次应用的交互都需要向服务器发送祈求,应用的响应时间就依赖于服务器的响应时间。这导致了顾客界面的响应比当地应用慢得多。与此不一样,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其他某些基于XML日勺Webservice接口,并在客户端采用JavaScript处理来自服务器0响应。由于在服务器和浏览器之间互换的数据大量减少,成果我们就能看到响应更快的应用。同步诸多的处理工作可以在发出祈求的客户端机器上完毕,因此Web服务器的处理时间也减少了。Ajax应用程序的优势在于:通过异步模式,提高了顾
26、客体验令优化了浏览器和服务器之间的传播,减少不必要的数据来回,减少了带宽占用令AjaX引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大顾客量下的服务器负载。Ajax开发框架:毫无疑问,AjaX作为目前最火爆B技术之一,其优秀的框架层出不穷。PrototypeDwrDojo、JQueryYUi都是非常杰出的产品。特点:短小精悍(19k),接口设计得精妙(自然语言的风格),与程序思绪配合精密。极大程度地体现了javascript的;特性;支持XPath查询,doml-3,轻松选择需要0元素;CSS支持;简朴日勺动画实现,支持自定义动画;支持插件开发,既有插件多;完整0api文档以
27、及范例,易学;拥有官方Ul程序供使用,效果好。2. Yui特点:Yahoo公布BAJAX组件库,是一种包括了各个方面,从工具类库到通讯,到Ul组件的综合性JS库。YUL0最大优势在于文档非常齐全,并且有YahooB支持,缺陷是库目前还不全,功能也不强大。3. Ext特点:EXt来自于对YUl的扩展,扩展彳及功能和界面均有了很大的提高。初期仅仅是对YUl的对话框扩展,后来逐渐有了自己的特色,深受网友的爱慕。EXt封装了诸多组件用于UI的展示,Ext的所有组件都是扩展于Ext.Component,而后子类扩展和集成形成了一种单根的组件树.4. Prototype特点:一种非常优雅的JS库,定义了J
28、S的面向对象扩展,DOM操作API,事件等等,之上尚有rico/script.aculo.US实现某些JS组件功能和效果(尚不够完善),以PrOtOtyPe为关键,形成了一种外围B多种各样BJS扩展库,是相称有前途BJS底层框架,突出特点就是非常易学易用,门槛很低,常常是一两行JS代码就可以搞定一种有关的功能。同步它也是RoR集成的AJAXJS库。特点:DOjo包括了JaVaSCriPt自身的语言扩展,以及各个方面的工具类库,和比较完善的UI组件库;Dojo设计的包加载机制(PaCkageSyStenI)和模块化(Libraries)0构造,能保持更好0扩展性,提高执行性能,减轻了顾客开发0工
29、作量,并保持一定0灵活性(顾客可以自己编写扩展);Dojo官方网站有着丰富0学习资源;专业的开发团体,可以保证更新速度及质量。6. Mootools特点:小巧高效,完整下载36k;模块化设计,合理规范,优雅BOOP风格;创新的下载过程,可以跟据自己0需要勾选对应的模块下载,BuildYourOWnFramework;Effects模块(moo.fx)轻量高效,可以实现优雅、可定制、easing的动画;完整的API文档,丰富的范例。7. Dwr特点:把java类转化为javascript类由dwr自动完毕,只需简朴F、J配置;应用起来极其简朴。开发者不要该服务器代码就可以集成;轻易测试。和Web
30、Work同样,隐藏0协议;强扩展性。例如与SPring集成,只需修改一点代码;性能。就与jason等简朴比较,dwr性能也许是最佳的I。8. Buffalo特点:国人开发的AjaX框架。定义了Web远程调用的传播基础,并且将远程调用对象完整的序列化到了当地,成为可以被JaVaSCriPt编程触及的对象。Buffalo中的重要组件-BuffaloBinding,提供了将JavaScript对象绑定到HTML元素的能力。这种绑定将是无侵入的,只需要在HTML元素中加入若干个不影响排版的属性,即可将数据与界面绑定。9. Qooxdoo特点:不通过常规日勺HTML来构造页面,完全使用JS以类似VB/D
31、elphi风格B编程方式构造WebGUl界面,比较适合内网面向C/S风格的IWeb应用,而不适合面向Internet的!界面多变风格日勺应用。10. Spry特点:设计规范,功能全面,文档丰富,面向设计人员而不是开发人员。与其他某些AjaX框架相比,它的服务器端的技术不是很可靠。它依赖于XML,XML可以很轻易被SPry组件接受。总结:根据本项目对页面性能规定,要选择性能高的框架jqucr作为页面js库,同步选择ext作为皮肤js库。5.4XML解析器目前流行的XML解析器重要有De)M、SAX、JDOM.De)M4J等,下面我们就这四种解析器进行分析和比较:1、 DOMDOM是用与平台和语言
32、无关的方式表达XML文档的官方W3C原则。DOM是以层次构造组织的节点或信息片断的集合。这个层次构造容许开发人员在树中寻找特定信息。分析该构造一般需要加载整个文档和构造层次构造,然后才能做任何工作。(因此其劣势就是基与大文献0加载速度很慢,由于它是需要所有加载后才操作B).用DOM解析模型B长处是编程轻易,开发人员只需要调用建树B指令,然后运用navigationAPIs访问所需的树节点来完毕任务。可以很轻易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个xml文档,因此对性能和内存的规定比较高,尤其是碰到很大的Xml文献的时候。由于它的遍历能力,DOM解析器常用于xml文档
33、需要频繁的变化0服务中。另首先,对于尤其大的文档,解析和加载整个文档也许很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。这些基于事件的模型,例如SAXo2、 SAXSAX解析器采用了基于事件的模型,它在解析xml文档的时候可以触发一系列的事件,当发现给定於Jtag的时候,它可以激活一种回调措施,告诉该措施制定的标签已经找到。这种处理0长处非常类似于流媒体0长处。分析可以立即开始,而不是等待所有0数据被处理。并且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中,对内存日勺规定一般会比较低。这对于大型文档来说是个巨大的长处。实际上,应用程序甚至不必解析整个文档;它可以在
34、某个条件得到满足时停止解析。尤其是当开发人员只需要处理文档中所包括的部分数据时,SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,并且很难同步访问同一种文档中的多处不一样数据。3、JDOMJDOM的目的是成为Java特定文档模型,它简化与XML的交互并且比使用DOM实现更快。JDOM与DOM重要有两方面不一样。首先,JDoM仅使用品体类而不使用接口。这在某些方面简化了API,不过也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者日勺使用。JDOM文档申明其目的是“使用20%(或更少用精力处理80%(或更多)Jav
35、aXML问题”(根据学习曲线假定为20%)0JDOM对于大多数Java/XML应用程序来说当然是有用的,并且大多数开发者发现API比DOM轻易理解得多。JDOM还包括对程序行为的J相称广泛检查以防止顾客做任何在XML中无意义0事。然而,它仍需要您充足理解XML以便做某些超过基本的工作(或者甚至理解某些状况下B错误)。这也许是比学习DOM或JDOM接口都更故意义的工作。JDOM自身不包括解析器。它一般使用SAX2解析器来解析和验证输入XML文档(尽管它还可以将此前构造的DOM表达作为输入)。它包括某些转换器以将JDOM表达输出成SAX2事件流、DOM模型或XML文本文档。JDoM是在Apache
36、许可证变体下公布B开放源码。4、 D0M4J虽然D0M4J代表了完全独立的开发成果,但最初,它是JDOM的一种智能分支。它合并了许多超过基本XML文档表达的功能,包括集成的XPath支持、XMLSchema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表达的选项,它通过D0M4JAPI和原则DOM接口具有并行访问功能。从2023下六个月开始,它就一直处在开发之中。为支持所有这些功能,D0M4J使用接口和抽象基本类措施。D0M4J大量使用了API中的Collections类,不过在许多状况下,它还提供某些替代措施以容许更好MJ性能或更直接0编码措施。直接好处是,虽然DOM4J付
37、出了更复杂0API0代价,不过它提供了比JDOM大得多的)灵活性。在添加灵活性、XPath集成和对大文档处理的目的时,D0M4J日勺目的与JDOM是同样的:针对Java开发者的易用性和直观操作。它还致力于成为比JDOM更完整的处理方案,实目前本质上处理所有Java/XML问题【向目的。在完毕该目的时,它比JDOM更少强调防止不对时的应用程序行为。5、 总结DOM是基于平台、语言无关B官方W3C原则。基于树的层次,其长处是可以移植,编程轻易,开发人员只需要调用建树的指令。JDOM是想成为Java特定文档模型。它简化与XML的交互并且比使用DOM实现更快。使用的是详细类不使用接口,运用了大量的Co
38、llections类,以便程序员。JDOM和DOM在性能测试时体现不佳,在测试IOM文档时内存溢出。在小文档状况下还值得考虑使用DOM和JDOMoSAX是基于事件模型的。它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一种回调措施,告诉该措施制定的标签已经找到。类似与流媒体的解析方式,因此在加载大文献时效果不错。其缺陷是SAX解析器的时候编码工作会比较困难,并且很难同步访问同一种文档中的多处不一样数据。D0M4J是一种非常非常优秀的JaVaXMLAPI,具有性能优秀、功能强大和极端易用使用的特点,同步它也是一种开放源代码的软件。如今你可以看到越来越多的Java
39、软件都在使用DOM4J来读写XML,尤其值得一提的是连SunBJAXM也在用DOM4JoHibernate也用DOM4J来读取XML配置文献。假如不考虑可移植性,推荐采用DOM4J,5.5SNMP简朴网络管理协议(SNMP)首先是由Internet工程任务组织(InlemetEngineeringTaskForCe)(IETF炳研究小组为了处理Intemet上的路由器管理问题而提出叽它可以在IP,IPX,AppleTalk,OSl以及其他用到的传播协议上被使用。简朴网络管理协议(SNMP)是最早提出B网络管理协议之一,它一推出就得到了广泛B应用和支持,尤其是很快得到了数百家厂商的支持,其中包括
40、IBM,HP,SUN等大企业和厂商。目前SNMP已成为网络管理领域中实际上的工业原则,并被广泛支持和应用,大多数网络管理系统和平台都是基于SNMPWo详细实现上,SNMP为管理员提供一种网管平台,负责网管命令的发出与数据的存储及分析等。被监管的设备上则运行一种SNMP代理,代理实现设备与管理站BSNMP通讯。设备图3:管理站与代理的通讯管理站和代理端使用MlB进行接口统一,MIB定义了设备中被管理对象,管理站和代理都实现对应的MIB对象,使得双方可以识别对方日勺数据,实现通讯。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供日勺有关状态或参数等数据转换成MlB定义日勺格式,应答给
41、管理站,完毕一次管理操作。SNMPB这种构造过程,使得网络设备对SNMP0支持极为以便。已经有0设备,只要新加一种SNMP模块就可以实现网管。旧附带扩展槽的设备,新实现一种SNMP模块插上即可支持网管。网络上的许多设备,例如:路由器、互换机等,都可以通过添加一种SNMP网管模块增长网管功能。服务器可通过运行一种网管进程实现。其他服务级的产品也可以提供网管模块实现网络管理,例如OraCIe、WebIOgiC均有SnmP进程,运行后就可以通过网络管理对这些系统级服务进行管理。SNMP系统中定义3个重要的角色:网络管理系统(NMS又名网络管理站)、代理(Agent).代理服务器(Proxy)o令网络
42、管理系统(管理站)是系统总控台,向管理员提供界面以获取与变化设备B配置、信息、状态、操作等。管理站与代理(Agent)进行通讯,执行对应的Set与Get操作,以读取或设置设备配置,并接受代剪发过来时警报(Trap)o令代理(AgCnt)介于管理站与管理信息库(MlB)之间,与管理站通讯并响应管理站0祈求,从MIB获取或设置对应数据,以响应响应日勺祈求,或根据MIB0对应数据决定Trap的I发送。令代理服务器(PrOXy)是一种特殊的代理,在不能直接使用SNMP协议的地方,例如异种的网络、不一样版本SNMP代理等状况下,代理替代有关设备向管理站提供一种外观,为设备代理SNMP协议的实现。除却这3
43、个角色,SNMP还包括两个重要的部分:管理信息库(MIB)定义了设备可使用的管理信息,由设备维护,以供Agent使用。例如,设备信息组定义了这样某些管理对象,用来描述设备0基本信息:名称数据类型R/W描述SysDescrDisplayString设备的文字描述,对设备硬件、操作系统等的阐明SysObjectIDObjectID设备包括的网管子系统的供应商授权身份SysUpTimeTimeTicks从系统时网管系统启动以来运行的时间(百分之i秒)SysContactDisplayString*设备联络人的名字及联络方式SysNameDisplayString*在管理上被赋予的名称SysLocat
44、ionDisplayString*结点的物理位置SysServiceSDisplayString0-127*指示结点提供的服务的值。该值是此结点所支持H勺OSl模型中层次的和。根据所提供的服务,将下面的某些值相加:OXOl(物理层)、0x02(数据链路层)、0x04(互联网层)、0x08(端到端H勺运送层)、0x40(应用层)被管理的设备是SNMP系统中的被管理对象。设备提供MlB需要的数据,将自身的多种数据登记到MlB中,供SNMP实体使用。SNMP中重要提供了五类管理操作:get操作用来提取特定B网络管理信息;get-next操作通过遍历活动来提供强大的管理信息提取能力;get-bulk操
45、作可以用于批量获取数据。set操作用来对管理信息进行控制(修改、设置);trap操作用来汇报重要的事件。SNMP4J是一种使用JAVA开发0开源BSNMP框架。它实现了对SNMP协议B封装,提供了SNMP管理者和Agent的基础实现,支持SNMPV1、v2c和v3等协议,开发者可以在它的基础上构建自己的系统。网管系统2.x版本采用了这个框架。总结:由于SnmP的原则性,本系统采用SnmP作为采集设备性能指标的基础协议,以便系统基础数据采集的功能扩展。6系统架构处理方案6.1架构16.2架构2管理平台数据存储mysql管理前台jboss管理配置进程教学机终端AgentAgentAgentAgen
46、tAgent7本项目确定的方案根据本项目日勺实际需求,结合以上多种技术处理方案的特点,确定了教学机管理系统日勺技术方案:7.1系统架构方案1与方案20区别在于方案1比方案2多了管理服务中间层,因此在系统设计上会有如下不一样点:1、方案1需要设计管理服务与管理平台、agent的接口,而方案2则不需要设计与管理平台的接口。2、方案1将管理服务当成一种子系统进行设计,而方案2将管理服务的功能当成一种系统内在模块进行设计。分析:1、从系统架构0可维护性来说方案1比方案2更优越。假如教学机管理系统以学校为单位进行布署,方案2也可以满足规定,考虑到伴随市场的发展,假如要建立一种比学校大的管理平台就必须需要管理服务中间层承担数据采集、接受处理时任务,因此专门设置管理服层负责与agent接口进行数据采集接受处理,这样很好的对系统进行了分层,非常有助于未来系统的扩展和维护。2、从开发工作量来说