基于j2ee技术的Web应用
倪礼豪
(*****************************,浙江**)
摘要 J2EE和DotNet框架是实现Web应用的两个极具竞争力的开发平台,J2EE技术在大型应用系统的研发过程中有重要的意义、合理的分层、采用恰当的设计模式可起到解耦合降低系统复杂度的目的。struts、hibernate、spring三个框架及中间件的结合使用既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。
关键词 web应用;j2ee;开发平台;软件构架;中间件
中图法分类号 TP311
J2ee technology in Web-based application
nilihao
(************.,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; middleware
0 引言
商业需求刺激了分布式计算和电子商务的发展,编程技术的日益成熟和网络的不断普及与完善,直接导致了基于web的应用以一日千里的速度发展。自“客户—服务器”(Client/Server)一词在20世纪80年代被提出,就一发而不可收,从应用程序与数据库直接连接的两层结构发展为增加了事务处理控制器这个中间层的三层结构,一直发展到今天的多层结构(N-tier Architecture )和分布式企业体系结构,基于web的应用在计算机世界越来越扮演着重要的角。
Web应用的形式不管是商业网站(Web Site)还是B2C或者B2B乃至最近提出的P2P(pier-to-pier)应用模型,资源共享与信息交互才是web的真正灵魂[1]。在这个背景下,如何吸收当前先进的技术,把握信息技术发展的脉搏,高质量高效率的研发出优秀的信息系统,颇值得探讨。
1 平台的对比
在基于Web的应用中,当前有两大极具竞争性的技术阵营:j2ee和。
跨平台的特性一直是j2ee的最大特点,它通过java的虚拟机技术屏蔽了底层操作系统的细节。从而实现了所写的代码可以在windows平台上使用,也能够在unix平台上使用。即所谓“一次编写,处处可用”。在j2ee规范里面又通过jdbc、jndi等技术屏蔽了诸如数据库、目录访问等网络细节。可以这么说,目前用j2ee技术实现的企业级应用可以运行在大型机、unix、windows、linux等各种操作系统上,后台可以连接Oracle,DB2,informix等等数据库,并且效果方面没有太多的区别。在各系统连接方面,j2ee有很多解决方案,比如j2ca—j2ee连接器体系结构,就是j2ee规范规定的如何使用java技术与所谓遗留系统如ERP,CRM等的连接方法。总之,j2ee技术是一套标准,其通用性和标准性比较高,目前基本上成为企业级解决方案的事实标准[2]。
而则是微软系列产品的集合,选择了技术基本上就选定了微软平台。操作系统只能使用windows,甚至底层硬件只能选择Intel的系列芯片。而不能在unix、linux等系统上使用。在数据库方面,对SQL Server会比其他数据库有更好的适应性。Microsoft的.NET实现了语言独立性和语言的互用性,这正是.NET框架中一个迷人的地方,如果系统规模不大,应该是个不错的选择。而在多系统整合和系统延展性方面,基本上是j2ee的技术特点。对比微软的平台,在大型系统的应用中选择 j2ee作为标准来实现更恰当些。
2 基于J2EE技术的Web应用的构成
基于J2EE技术的分布式体系结构来实现分布式的应用服务,可采用B/W/D三层和B/W/A/D多层体系结构,利用应用服务器和中间件将应用的业务逻辑、表示逻辑和数据分为三个不同的处理层,从而使其应用系统不但具备了大型机系统的稳定、安全和处理能力高等特性,同时拥有开放式系统成本低、可扩展性强、开发周期短等优点。四层结构的具体阐述如下:
2.1 四层结构
数据层:选用Oracle、DB2等关系型数据库,建立一个数据中心,收集共享信息数据,完成数据标准化工作。
应用层:选用BEA WebLogic、jsp用什么前端框架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类,更改l文件的配置信息选择合适Action来处理请求,并通过ActionForm传递请求过程中的数据。通过重写excecute()方法以完成我们自己的处理消息,该方法在调用业务处理以后会放回一个ActionForward对象来选择对应的视图。
Struts的配置文件 l在控制器和视图间起到了黏合剂作用,控制器之所以能够选择对应的视图,以及视图能够通过对应的控制器查询到模型中的数据都是依赖该文件。
3.2 Spring
Spring IoC[4]、Spring AOP和Spring服务抽象,一起形成Spring这样一个有机体,作为一种轻量级的J2EE框架,Spring提供了一种有效的方式来建立和组织J2EE应用程序。Spring框架使得组件之间的耦合更松散。
Spring IoC,借助于依赖注入设计模式,使程序之间的关系由容器来控制;而不是传统实现中由程序代码直接操控。使得开发者不用理会对象自身的生命周期及其关系,而且能够改善开发者对模式的使用。依赖注入可以让容器管理对整个对象的管理变得简单。依赖注入可以让容器管理对象,即“Don’t 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的工作原理,它是利用数据库以及其他一些配置文件如hibernate.properties,XML Mapping等来为应用程序提供数据持久化服务的。
使用Hibernate具有很大的灵活性,在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTA API都被抽象了,Hibernate会处理所有的细节。
较之JDBC、EJB、JDO三种持久层解决方案,Hibernate具有其显而易见的优点。
4 web系统的信息安全
Web应用程序的安全机制是Web应用程序的设计人员和编程人员必须面对的任务。在J2EE中,Web容器支持应用程序内置的安全机制。
Web应用程序的安全机制有二种组件:用户身份认证和信息访问控制授权[5]。认证方案需要解决的问题:确认提出登录申请的用户是预先获得授权的用户,即合法性问题;确认
Web应用程序的安全机制有二种组件:用户身份认证和信息访问控制授权[5]。认证方案需要解决的问题:确认提出登录申请的用户是预先获得授权的用户,即合法性问题;确认
提出登录申请的用户与预先登录的用户的一致性,即真伪问题;身份认证为访问控制提供依据。授权需要解决的问题:用户的身份与信息的访问权限之间建立对应关系,即用户与角的对应;用户的身份与访问范围之间建立对应关系,即角与资源级别的对应。
基于J2EE的Web容器提供的多种类型的认证机制中,基于表单的认证,能够对认证用户界面进行定制,并能够与数据库和LDAP等其他领域的安全机制协同工作。大多数的Web应用程序都使用此认证方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论