论文部分内容阅读
J2EE架构的研究起源于WEB技术的发展, 在互联网技术的日益发展的今天,C/S结构越来越不能满足系统的需要,软件开发的结构逐渐地由C/S结构向B/S方向转化。 在这种结构下,用户界面完全通过WWW浏览器实现,客户机只存放表示层软件,应用逻辑包括事务处理、监控、信息排队、Web服务等采用专门的中间件服务器,后台是数据库。在多层分布式体系中,系统资源被统一管理和使用,用户可以通过网格门户(portal)透明地使用整个网络资源。 随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。WEB技术的发展,导致电子商务的出现,发展,社会各部门之间越来越需要依赖于企业级应用程序来共同协作。开发企业级应用程序的关键在于要有一个功能强大而又方便灵活的体现结构。J2EE为这种需求提供了一种良好的机制。目前国内基于J2EE架构的研究日渐盛行。基于J2EE架构的软件开发方法的研究主要集中在:(1)WEB层的开发方法,目前主要的开发模式是MVC模式,基于MVC模式主要有Structs WebFrame,Spring WebFrame,WebWork WebFrame等开发框架。这些开发框架的研究在于更好地使表示层和商业层分离,使表示层中较少的涉及JAVA代码。(2)基于组件的开发:J2EE的组件一般都是部署到应用服务器的。基于组件的开发能有效地提高产品资源的可复用性,使版本的控制更加简单。 有效利用人力资源, 开发效率提高,编译调试更加方便。目前主要的组件是EJB,包括SessionBean,Entity Bean。(3)后台数据持久化问题:目前主要的方法有:DAO(Data Access Object),JDO, Hibernate。(4)各层的软件模式的研究:这些模式能有效的帮助软件开发人员解决企业问题,使他们避免产生以前别人犯过的错误,加快软件的开发效率,提高软件质量。 本文介绍了软件体系结构的发展历程,由以前的C/S结构发展到现在的B/S结构,分析了两者的优势和劣势,以及二者所适用的领域。在现在基于WEB的应用,B/S结构成为了应用软件的首选体现结构。本文介绍了J2EE有关的基本概念,如EJB组件,架构,模式等。为后面的研究作了铺垫。接着介绍了J2EE的架构层次划分,架构特性,层次基本实现,各层的设计模式和WEB层框架。J2EE的架构划分是基本J2EE规范的,它充分考虑了软件的可重用性,可维护性,安全性,和可扩展性问题。它把软件开发结构分为客户层,表示层,商业层,集成层和资源层。在每层完成特定<WP=67>的功能,在客户层,主要作为处理一些与用户的交互。表示层则是响应WEB客户端的请求,接受并验证用户输入的数据,把数据传给商业层的商务逻辑组件,并将业务处理结果返回给用户。 商业层从客户程序接收数据,对数据进行相应的处理,再将数据发送到企业信息系统层存储。另一方面,也负责从存储中检索数据,并将数据返回给客户程序。集成层主要完成数据的封装。资源层主要是数据库管理系统。它的整体基本实现是这样的:我们在WEB层使用MVC模式,结合Service to Worker,FrontControl,ViewHelp等模式,通过访问JSP,然后由Control层进行处理,如果需要进行复杂的业务逻辑处理并且已经有后台实现(如EJB等),经过Business Delegate层,访问后端业务逻辑(BP),业务逻辑使用Facade模式进行封装成统一的接口,业务逻辑层实现复杂的事务处理,如果需要访问资源层,再经过DAO层访问资源(目前多数是RDBMS,有时是遗留系统如Corba,JMS,WebService,SAP等)。本文介绍了J2EE架构的各层的软件开发模式,这些模式都是前人在失败的教训中得到的软件开发经验,它能帮助软件开发人员节省开发时间,避免重复前人的工作。本文主要研究了以下的模式,示层模式: “Intercepting Filter”,“Front Controller”,“View Helper”,“Composite View”, “Service to Worker”,“Dispatcher View”。业务逻辑层模式: Business Delegate”,“Value Object”,“Session Facade”,“Composite Entity”,“Value Object Assembler”,“Value List Handler”, “ServiceLocator”。集成层模式:“Data Access Object”,“Service Activator”。本文依据J2EE规范,根据现实的需求,设计了一套架构,该架构已被企业软件开发采用,并在上海交通银行电子档案和后督系统项目中运用。本文架构充分考虑软件的可重用性,安全性,可维护性,可扩展性和负载自动均衡。在软件设计中,我们只考虑表示层,业务层和集成层。本文架构我们在逻辑上 Present tier分为表现层和应用层,Business Tier分为服务层和Domain层。 Integration Tier对应持久层。所以本文架构从整体上分为表现层、应用层、服务层、Domain层和持久层五层。这样分的另外一个目的在于对软件开发的管理,有利于软件开发队伍水平模式开发。在表示层主要是JSP页面,嵌入的JAVA代码非常少,基本上就是后台传递的数据的读取。应用层主要是MainServlet类,我们设计的一个类,也就是前端的Controller,用来对JSP页面请求的处理,由它来把处理请求转到某一个具体的Command类, Command类是对具体的每个请求,它通过Delegate去后台处理业务逻辑,然后把结果传回,在这对结果数据的处理,我们是采用DTO(数据传输对象)在各层之间传递数据,然后返回要转向的页面路径,再由Dis