郑志刚 董亚洲
摘 要:基于j2ee体系架构,充分利用了j2ee体系架构的优势,描述了j2ee分布式应用体系结构的特点,讲解了该系统的整体架构设计。这些架构的应用,不仅降低了软件开发的成本,同时也保证了Web应用系统的质量。
关键词:J2EE平台;Web应用;JSP
1 J2EE技术分析
J2EE(Java 2 Platform Enterprise Edition)是SUN公司领导,多家公司共同参与制定的一个分布式企业级应用的规范。它提供了基于组件的,以服务器为中心的多层应用体系结构。这种多层结构的设计极大的简化了开发、配置和维护企业应用的过程。
目前Java 2平台有三个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java 2 Platform Micro Edition J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Stand Edition J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform MicroEdition J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE巩固了标准版中的许多优点,例如“编写一次、到处运行”的特性,方便存取数据库的JDBCAPI,CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise Java Beans),Java ServletsAPI,JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短应用投放市场时间的体系结构。
2 J2EE的组件与容器
J2EE是一个支持基于组件的分布式应用程序的完整平台,对J2EE平台体系结构的支持通过两个基本的部分实现:组件和容器。容器可以支持组件,简单的说就一句话:容器为组件提供了一个工作环境。容器提供了一种把服务插入到组件操作中的方法,不需要组件开发人员编写特殊的编码。
组件表示的是开发和发布的单元,设计成比其他模式可以更简单地进行构建。组件提供了标准化的功能,具有定义完善的应用程序接口,并对于特定的商业目的能够容易地开发和发布。支持组件的容器表示的是可靠的标准化服务。通过容器这个机制J2EE支持Java编程语言的“编写一次,随处运行”的承诺。这两个新名词当中以支持组件的容器尤为重要。
2.1 J2EE容器
J2EE将组成一个完整企业级应用的不同部分纳入不同的容器(Container),每个容器中都包含若干组件(这些组件是需要部署在相应容器中的),同时各种组件都能使用各种J2EE Service/API. J2EE容器包括:
2.1.1 Web容器
服务器端容器,包括两种组件JSP和Servlet, JSP和Servlet都是Web服务器的功能扩展,接受Web请求,返回动态的Web页面。Web容器中的组件可使用EJB容器中的组件完成复杂的商务逻辑。
2.1.2 EJB容器
服务器端容器,包含的组件为EJB(Enterprise Java Beans),它是J2EE的核心之一,主要用于服务器端的商业逻辑的实现。EJB规范定义了一个开发和部署分布式商业逻辑的框架,以简化企业级应用的开发,使其较容易地具备可伸缩性、可移植性、分布式事务处理、多用户和安全性等。
2.1.3 Applet容器
客户端容器,包含的组件为Applet.Applet是嵌在浏览器中的一种轻量级客户端,一般而言,仅当使用Web页面无法充分地表现数据或应用界面的时候,才使用它。Applet是一种替代Web页面的手段,我们能够使用J2SE开发Applet, Applet无法使用J2EE的各种Service和API,这是为了安全性的考虑。
2.1.4 Application Client容器
客户端容器,包含的组件为Application Client Application Client相对Applet而言是一种较重量级的客户端,它育游使用J2EE的大多数Service和API.基于J2EE和工作流技术的校園OA系统建模分析及研究
通过这四个容器,J2EE能够灵活地实现企业级应用的架构。J2EE提供了三种手段:Web容器中的JSP(或Servlet), Applet和Application Client,分别实现面向浏览器的数据表现和面向桌面应用的数据表现。Web容器中的Servlet是实现Controller部分业务流程控制的主要手段;而EJB则主要针对Model部分的业务逻辑实现。至于与各种企业资源和企业级应用相连接,则是依靠J2EE的各种服务和API。
2.2 J2EE的核心API与组件
J2EE平台由一整套服务(Services)、应用程序接口(APIs)与协议构成,它对开发基于Web的多层应用提供了支持。下面具体分析一下J2EE的各种组件、服务和API,以便根据各自需求和目标的不同,灵活选择并组合不同的组件和服务。
2.2.1 Servlet
Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CG工和许多其它粼以CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。
2.1.2 JSP
JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。从这一点来看,非常类似Microsoft ASP, PHP等技术。借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP来合成。在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。
2.1.3 JDBC
JDBC(Java Database Connectivity, Java数据库连接)API是一个标准。一些应用程序可以使用JDBC应用程序接口来访问关系数据库中的数据,JDBC负责一般的持久性数据访问和管理。在J2EE应用程序中,JDBC中可以嵌入SQL语句,用以访问关系型数据库,当然根据数据库类型的不同,SQL语句的词法和语法也会有所不同;需要说明的是,当数据存储格式不同的时候,数据访问逻辑的区别就更加明显了。SQL (Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。Java中的JDBC相当于Microsoft平台中的ODBC(Open Database Connectivity)。
3 J2EE体系结构的优点
J2EE体系结构的优点在于:⑴可移植性强。J2EE计算平台支持java语言,使得基于J2EE标准开发的应用具有java语言所特有的与平台无关性,一套程序可以适用于多种平台,保证了系统可以跨平台的移植。除了Java语言固有的可移植性外,EJB体系结构在Bean和支持该Bean的容器之间提供了一套标准化的应用程序编程接口,这使开发人员能够将Bean从一种操作环境移植到另一种操作环境,而无需重新编写其源代码。⑵可维护性强。在J2EE的这种体系结构下,事务处理逻辑组件集中放置在应用功能服务器上,这将使系统维护变得简单、容易。当系统的事务处理逻辑发生变化时,只需更新应用功能及务器上的事务处理逻辑组件即可,而与客户机端无关,避免了客户端应用榴字的版本控制和更新的困难。基于组件的设计简化了应用程序的维护。⑶安全性强。由于在客户机和数据库服务器之间插入了应用功能服务器,使两者不直接相联系,并且系统的事务处理逻辑组件在应用功能服务器上,便于集中控制,这样既防止了非法侵入数据库,同时又防止了用户对系统的破坏。⑷灵活性强。J2EE体系结构各层次之间保持相对独立,当其中某一层因需要作出修改时,其他各层不受影响,这种软件独立性使得系统的改进、升级变得极为灵活。⑸简化开发。J2EE体系结构各层次之间在逻辑上保持相对独立,在系统开发期间,各层的开发可以并行进行,又由于J2EE采用了构件技术,许多模块可以被重用,这样大大节约了开发时间,缩短了系统的开发周期,提高了效率。
4 J2EE平台下Web开发框架
框架(framework)不同于类库(library)。框架提供的不是一组功能性的组件,而是一个软件结构,一种业务流程,以及Hollywood法则(“Dont call us,well call you”)。选择框架,意味着Web应用开发人员只需且只能在框架限制的范围内编写业务组件和显示组件,由框架管理这些组件之间的协作。这能得到结构更加良好,质量更加可靠的Web应用软件。现在,常用的J2EE平台下Web应用框架包括Struts、spring、JSF、WebWork等。
5 展望Web应用开发
纵观Web应用的发展过程,有两个现象值得注意。首先,底层功能的完善会优化上层功能,上层功能的推广对底层功能提出更高的要求。当Web硬件能提供高速度的带宽时,软件公司才能开发出满足用户需要的程序。Web系统被大量使用往往使现有系统不能满足要求。这就要求开发出新的硬件和软件系统。在此背景下,Web应用技术在整个人类的生活中开始占据重要的位置,随着Web应用平台和框架的增多,如何快速有效的进行Web应用开发,而且如何尽可能的使前期开发可以为多个Web框架应用,成为IT业界的研究方向。
6 结束语
J2EE平台在当前的Web应用开發中占有重要的地位,熟知J2EE下多个框架如:Struts、spring、JSF、WebWork的内部结构,发掘其内部共性,对于后期的J2EE下的模型开发以及模型映射具有重要的意义。
[参考文献]
[1]计算机软件产品开发文件编制指南.中华人民共和国国家标准.8567-88.
[2]博嘉科技组,编,Donny,编著.JSP与网站开发编程实战.科学出版社.2001.
[3]Subrahmanyam Allamaraju,等,著.《J2EE服务器端高级编程》.机械工业出版社.