




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于j2ee技术的Web应用倪礼豪(*,浙江*)摘要 J2EE和DotNet框架是实现Web应用的两个极具竞争力的开发平台,J2EE技术在大型应用系统的研发过程中有重要的意义、合理的分层、采用恰当的设计模式可起到解耦合降低系统复杂度的目的。struts、hibernate、spring三个框架及中间件的结合使用既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。关键词 web应用;j2ee;开发平台;软件构架;中间件中图法分类号 TP311J2ee technology in Web-based applicationnilihao(*.,Zhejiang *)Abstract Both J2EE and DotNet framework are web application development platforms with very competitive technology. J2EE is better in the developing of mission-critical systems. It has important meaning, reasonable grades. Using appropriate design patterns can be good for reducing system complexity. Struts, hibernate, Middleware Framework and the combined using of three spring can implement the effective separation of the business logic and control logic, improve the clarity of the hierarchical structure. Improved rehabilitation can be used to reduce the size of the development costs and maintenance costs, ensure the quality of software and make software more robust and maintainable. Keywords: Web Application; J2EE; Development Platform; Software Truss; middleware0 引言商业需求刺激了分布式计算和电子商务的发展,编程技术的日益成熟和网络的不断普及与完善,直接导致了基于web的应用以一日千里的速度发展。自“客户服务器”(Client/Server)一词在20世纪80年代被提出,就一发而不可收,从应用程序与数据库直接连接的两层结构发展为增加了事务处理控制器这个中间层的三层结构,一直发展到今天的多层结构(N-tier Architecture )和分布式企业体系结构,基于web的应用在计算机世界越来越扮演着重要的角色。Web应用的形式不管是商业网站(Web Site)还是B2C或者B2B乃至最近提出的P2P(pier-to-pier)应用模型,资源共享与信息交互才是web的真正灵魂1。在这个背景下,如何吸收当前先进的技术,把握信息技术发展的脉搏,高质量高效率的研发出优秀的信息系统,颇值得探讨。1 平台的对比在基于Web的应用中,当前有两大极具竞争性的技术阵营:j2ee和.net。跨平台的特性一直是j2ee的最大特点,它通过java的虚拟机技术屏蔽了底层操作系统的细节。从而实现了所写的代码可以在windows平台上使用,也能够在unix平台上使用。即所谓“一次编写,处处可用”。在j2ee规范里面又通过jdbc、jndi等技术屏蔽了诸如数据库、目录访问等网络细节。可以这么说,目前用j2ee技术实现的企业级应用可以运行在大型机、unix、windows、linux等各种操作系统上,后台可以连接Oracle,DB2,informix等等数据库,并且效果方面没有太多的区别。在各系统连接方面,j2ee有很多解决方案,比如j2caj2ee连接器体系结构,就是j2ee规范规定的如何使用java技术与所谓遗留系统如ERP,CRM等的连接方法。总之,j2ee技术是一套标准,其通用性和标准性比较高,目前基本上成为企业级解决方案的事实标准2。而.net则是微软系列产品的集合,选择了.net技术基本上就选定了微软平台。操作系统只能使用windows,甚至底层硬件只能选择Intel的系列芯片。而不能在unix、linux等系统上使用。在数据库方面,.net对SQL Server会比其他数据库有更好的适应性。Microsoft的.NET实现了语言独立性和语言的互用性,这正是.NET框架中一个迷人的地方,如果系统规模不大,.net应该是个不错的选择。而在多系统整合和系统延展性方面,基本上是j2ee的技术特点。对比微软的.net平台,在大型系统的应用中选择 j2ee作为标准来实现更恰当些。2 基于J2EE技术的Web应用的构成基于J2EE技术的分布式体系结构来实现分布式的应用服务,可采用B/W/D三层和B/W/A/D多层体系结构,利用应用服务器和中间件将应用的业务逻辑、表示逻辑和数据分为三个不同的处理层,从而使其应用系统不但具备了大型机系统的稳定、安全和处理能力高等特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。四层结构的具体阐述如下:2.1 四层结构 数据层:选用Oracle、DB2等关系型数据库,建立一个数据中心,收集共享信息数据,完成数据标准化工作。应用层:选用BEA WebLogic、IBM的WebSphere等建立应用服务器,Web服务器是Web环境中的主角,把复杂的胖PC客户环境改造成为瘦客户端,而把复杂的应用程序移到Web服务器上,应用服务器用来发布软件系统提供的业务逻辑,满足用户对信息各种方式的共享需求。 中间件层:服务器组件及其Container系统业务处理逻辑及数据存取逻辑过去被放在胖客户端上执行,现在它们被划分成单独的服务器组件,并在服务器上执行。服务器组件Container系统提供了一种执行服务器组件的运行环境。该系统把传统实时业务处理(TP)的稳定可靠性与分布式组件的灵活、可重复调用性结合在一起,使大量复杂的管理服务得以自动化。这些管理服务用来支持高流量的业务处理,其中包括多重路径管理、资源管理及业务处理协调等。表现层:用户通过浏览器实现信息共享。 3 软件架构 在j2ee平台中,有多种框架可供选择3,其中三个开源框架Struts、 hibernate 、spring相结合来构架系统,是时下相当流行的一种方法,即前端采用Struts MVC框架,中间层采用spring,后台采用Hibernate。3.1 Struts用作VC部分图1 m-v-c模型视图是通过一组JSP程序实现的,这些JSP程序中不包含任何业务逻辑和模型的信息,模型的信息是通过控制器传递的。在Struts中ActionForm 也被看成是视图的一部分。模型是程序的状态表示,其状态包括:消息中传递的状态、共享状态或一次回话中的状态以及持久状态,而操作这些状态的流程也同样包括在模型中,这些模型也就是业务的总体运作流程和数据。控制器部分由ActionServlet和Action来实现。它在MVC模型中扮演中央控制器的角色,当Web容器一接收到客户请求就会交给ActionServlet类,更改struts-config.xml文件的配置信息选择合适Action来处理请求,并通过ActionForm传递请求过程中的数据。通过重写excecute()方法以完成我们自己的处理消息,该方法在调用业务处理以后会放回一个ActionForward对象来选择对应的视图。Struts的配置文件 struts-config.xml在控制器和视图间起到了黏合剂作用,控制器之所以能够选择对应的视图,以及视图能够通过对应的控制器查询到模型中的数据都是依赖该文件。3.2 SpringSpring IoC4、Spring AOP和Spring服务抽象,一起形成Spring这样一个有机体,作为一种轻量级的J2EE框架,Spring提供了一种有效的方式来建立和组织J2EE应用程序。Spring框架使得组件之间的耦合更松散。Spring IoC,借助于依赖注入设计模式,使程序之间的关系由容器来控制;而不是传统实现中由程序代码直接操控。使得开发者不用理会对象自身的生命周期及其关系,而且能够改善开发者对模式的使用。依赖注入可以让容器管理对整个对象群的管理变得简单。依赖注入可以让容器管理对象,即“Dont call me, I will call you”。Spring AOP,借助于Spring实现拦截器,开发者能够实现以声名方式使用企业级服务,比如安全性服务、事务服务。AOP 合理的补充了OOP,借助于Spring AOP,开发者能够高效的使用J2EE服务。Spring服务抽象,借助于各种J2EE API抽象,使得开发者能够一致地使用J2EE 技术,而不管具体是使用什么J2EE API,借助于Spring服务抽象,使代码大大减少,满足“更少代码,更少BUG”的软件设计原则。3.3 Hibernate用作数据持久层Hibernate技术本质上是一个提供数据库服务的中间件。它的架构如图2所示:图 2 数据层次模型图 2表示了hibernate的工作原理,它是利用数据库以及其他一些配置文件如perties,XML Mapping等来为应用程序提供数据持久化服务的。使用Hibernate具有很大的灵活性,在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTA API都被抽象了,Hibernate会处理所有的细节。较之JDBC、EJB、JDO三种持久层解决方案,Hibernate具有其显而易见的优点。4 web系统的信息安全Web应用程序的安全机制是Web应用程序的设计人员和编程人员必须面对的任务。在J2EE中,Web容器支持应用程序内置的安全机制。 Web应用程序的安全机制有二种组件:用户身份认证和信息访问控制授权5。认证方案需要解决的问题:确认提出登录申请的用户是预先获得授权的用户,即合法性问题;确认提出登录申请的用户与预先登录的用户的一致性,即真伪问题;身份认证为访问控制提供依据。授权需要解决的问题:用户的身份与信息的访问权限之间建立对应关系,即用户与角色的对应;用户的身份与访问范围之间建立对应关系,即角色与资源级别的对应。 基于J2EE的Web容器提供的多种类型的认证机制中,基于表单的认证,能够对认证用户界面进行定制,并能够与数据库和LDAP等其他领域的安全机制协同工作。大多数的Web应用程序都使用此认证方法。Web容器使用在Web应用程序的部署描述符中定义的安全角色对应用程序的Web资源的访问进行授权。在Web应用程序的部署描述文件web.xml中增加或删除授权角色。5 一个基于web应用的案例5.1 需求提取及功能模块划分某省公安厅赞助的全省治安综合信息系统是采用基于web的j2ee技术一次生动应用。该系统以综合信息查询为中心,提供跨部门、跨地区的信息查询、比对、查证,并通过关联形式,把一个个相互独立的信息实体连接起来,挖掘出更多有价值的信息,以适应整个公安机关的实战需要,为业务部门间实现信息共享提供服务。在省会城市及各地级市分别部署中心服务器,通过接口实现与国家公安部信息的上传下载,以实现信息的实时更新,同时各部门(比如派出所)依据自身的需要,可以通过浏览器方便的进行信息查询与更新,以开展工作。同时普通公民也可以通过浏览器方便的进行部分信息查询,该系统的结构如图3所示: 治安综合信息系统图3 治安综合信息系统模块这几个子系统紧密结合,构成了一个有机整体。5.2 系统实现该系统对安全性要求高,软硬件环境复杂,需要集成多种遗留系统,今后会有更多的服务容入该系统,要保持向前兼容性,且公安部门多采用linux/unix 操作系统,对比微软的.net平台,选择 j2ee作为标准来实现更恰当些。整个综合信息系统的基本技术路线采用四层结构: 选用Oracle数据库,在市公安局建立数据中心,利用数据库快照复制技术和数据传输中间件收集共享信息数据,并完成数据标准化工作,形成符合相关国家标准和行业标准的综合信息数据库系统。选用BEA Weblogic Server建立应用服务器,应用服务器用来发布软件系统提供的业务逻辑,满足用户对信息各种方式的共享需求。 用JavaMail构件来实现该治安综合信息系统内部的邮件系统,在实现定时任务方面,则选择quartz6,主要用来实现市局中心服务器从公安部定时下载信息以及系统自身实现定时检查等功能。用户通过浏览器实现信息共享。 该系统主要采用了struts、 hibernate 、 spring这三个开源框架,struts有效实现了业务逻辑和控制逻辑的分离,利用struts丰富的标签库既能满足界面设计的需要又提高了开发效率,且能根据需要很方便的进行定制与扩展。通过重写execute()方法来实现控制逻辑,统一实现业务的分发,降低了系统的耦合性,为开发健壮的系统在技术层面奠定了厚实的基础。 在业务管理方面,采用了Spring的依赖注入设计模式,使程序之间的关系由容器来控制;而不是传统实现中由程序代码直接操控,而当业务发生变化时,只需要改xml配置文件,不会牵一发而动全身,这在大型项目中尤显得重要。用hibernate来实现数据的持久化,用Spring的getHibernateTemplate()方法来操作hsql进行数据增删改等操作。用spring 封装后的hibernate API,让Hibernate继续瘦身,并且通过spring建立与上层的关系。主要通过用户身份认证和信息访问控制两个方面来实现信息安全机制。 6 小结在基于web应用系统的实际开发过程中,有很多技术可供我们选择,一般认为,遵循以下几个原则是必要的:跨平台性,在web程序中,由于各种程序常常在不同平台运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5G通信科技公司内部股权分割与转让合同
- 高效离婚协议范本:财产分割与子女抚养细节解析
- 离婚财产分割协议:车辆使用与归属权清晰约定
- 离婚财产分割协议书:详述房产、车辆等财产分配合同
- 农田土地租赁与农业生态环境保护合同协议书
- 物业项目经理聘用合同范本(含安全管理)
- 硅藻泥装饰工程安全施工与环境保护责任合同
- 离婚财产分割协议中的人寿保险合同权益处理合同
- 离婚双方财产全权放弃及分割的专项执行与清算协议
- 离婚后子女监护权调整协议书修订与履行要求
- 《分子生物学基础知识》课件
- GB/T 45147-2024道路车辆总质量大于3.5 t的车辆气制动系统试验使用滚筒制动试验台获取和使用参考值
- 食管纵隔瘘护理
- 建筑项目水泥采购合同
- 华为ICT大赛网络赛道考试题库(786题)
- 水果采购协议样本
- 中职英语(高教版2021基础模块1)Part01-Unit2-Transportation
- 哲学与人生 第二课 树立科学的世界观2.1
- 2024-2030年中国止痛药品市场供需形势及未来前景动态研究研究报告
- 风电110KV升压站土建工程施工方案
- 2018低压电力线高速载波通信互联互通技术规范第3部分:检验方法
评论
0/150
提交评论