随着Internet和企业计算在90年代的腾飞,HTTP、HTML和Java平台逐渐演变成为针对客户机计算的标准,这带动了服务器上集中商业逻辑的发展以及电子商务的普及。在服务器端,CGI(Common Gateway Interface,公共网关接口)、NSAPI(Netscape Server API)和ISAPI(Internet Server API)等多种编程和连通性模型日趋流行,极大地增加了编程和维护的工作量。
---- 5年前,Sun公司的Java软件就以其提供的跨平台应用程序开发与配置手段震撼了整个Web世界。几年来,Java技术从一个网站工具发展到了可驾驭从智能卡、小型消费类设备到大型数据中心服务器等一系列系统的端到端Java 2平台,它使软件开发商、服务提供商和设备制造商更容易抢占市场机遇。
---- 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。今天我们要讨论的就是J2EE。
J2EE框架
---- J2EE是一种利用Java 2平台来简化诸多与多级企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、到处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。
---- Sun公司在企业版中增加了一整套核心企业应用程序编程界面,而所有这些界面均为标准的模块化组件。J2EE技术还为这些组件提供一整套企业服务,通过自动化的方式完成应用程序开发中的诸多耗时且费力的艰难工作,为用户提供一种可创建广泛兼容的企业解决方案而无需进行复杂编程的平台。利用这一优势可以方便地开发出高质量的、适合企业使用的应用程序,还可极大地减少产品研发上市时间、成本和风险。
---- J2EE使用了EJB Server作为商业组件的部署环境,在EJB Server中提供了分布式计算环境中组件需要的所有服务,例如组件生命周期的管理、数据库连接的管理、分布式事务的支持、组件的命名服务等等。有些企业级的EJB Server,例如Sybase公司的EAS 3.6(Enterprise Application Server 3.6)还提供了支持高可用性和高性能的群集技术、失败的自动转移和恢复、应用负载的自动均衡能力等。实现商业逻辑的EJB组件可以更加高效地运行在应用服务器中,支持多种客户端的访问,HTTP的客户端可以先向运行在Web Server上的Java Servlet或者JSP发出请求,在JSP中嵌入Java的代码调用运行在EJB Server中的EJB,以实现商业逻辑;而其他的客户端,可以通过IIOP直接访问运行在EJB Server中的组件。
J2EE的优势
---- J2EE提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用(附图所示为J2EE的应用模型)。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。它的优越性在于:计算平台支持Java语言,使得基于J2EE标准开发的应用可以跨平台地移植;Java语言非常安全、严格,这使开发者可以编写出非常可靠的代码; J2EE提供了企业计算中需要的所有服务,且更加易用; J2EE中多数标准定义了接口,例如JNDI(Java Naming and Directory Interface)、JDBC、Java Mail等,因此可以和许多厂商的产品配合,容易得到广泛的支持;J2EE树立了一个广泛而通用的标准,大大简化了应用开发和移植过程。
概括起来,J2EE体系结构的优点是:
Java Servlet和JSP都要编译为Java Class才作为Servlet运行,因此执行性能会明显提高。
Java Servlet和JSP中可以完全使用Java进行编程,可以完成许多简单的商业逻辑,特别是JSP,可以直接书写HTML,因此简化了页面的输出,这样就保留了脚本语言易于使用的优点。
复杂的商业逻辑以组件的形式部署在EJB Server中。由于EJB Server提供了多种组件事务服务,使系统更能够应付大量的并发用户和管理复杂的事务逻辑。
EJB Server中集成的组件命名服务可以使组件位置透明化,简化了组件的部署和客户端应用的维护。
开发过程易于分工,可以由专人负责编写组件,其他人组装页面。
J2EE平台全面支持和实施XML,这种强大的组合可使XML具备跨平台的兼容性,甚至用于对XML代码进行语法检查和调试的工具也可与平台无关。J2EE技术和XML技术分别是企业开发的阴阳两极,因为XML可实施独立于平台的数据,而J2EE平台则可实施独立于平台的解决方案。XML可通过移植的方式表现数据,因此就对Java技术的可移植性构成了补充。
核心API与组件
---- 人们普遍需要一种能够提供通用服务的计算平台,来解决应用开发和部署以及移植过程中的问题。这就像我们生活中遇到的事情一样,例如当您搬到一个新房子里,突然发现所有的电源插座都和原来房子里的不一样,电压也有所不同,所有的电器必须重新购买!这是不是一件非常麻烦的事情呢?因此,J2EE的好处是显而易见的,也正如开发者所期待的,J2EE提供的核心API覆盖了大部分企业计算需要的服务,开发者不必费力去寻找各种产品的解决方案,也无须学习各种产品独有的API接口,一切都变得更加简单。这也就是J2EE被普遍关注的原因了。J2EE所提供的核心API如附表所示。
作为一套完整的企业计算环境,J2EE平台还包括很多组件,如平台规范(Platform Specification)、参考实例(Reference Implementation)、兼容性测试套件(Compatibility Test Suite)和J2EE蓝图(J2EE BluePrints)等。
---- 其中,平台规范列出了平台的所有必要单元,以及进行有效J2EE技术实施所必须遵循的政策,对与J2EE平台的各种操作系统版一起提供的API进行解释,同时还定义了一个执行J2EE平台的稳定而灵活的方法。参考实例则是一个可提供关于J2EE平台语法的正确范例,是厂家进行重新测试的原型。兼容性测试套件是在设计上可确保不同的J2EE技术实施可运行相同的应用程序。J2EE蓝图则提供一种包含用于实施基于J2EE的多层应用的文档和实例套件的体系模型,部分简化了建立访问和管理来自各种各样的企业资源的数据和应用所需的中间层管道工程这样一项复杂的工作。
业界对J2EE的支持
---- J2EE已经成为开发商创建电子商务应用的事实标准。正是认识到J2EE平台作为一种可扩展的、全功能的平台,可以将关键的企业应用扩展到任何Web浏览器上并可适合多种不同的Internet数据流、可连接到几乎任何一种传统数据库和解决方案、使企业经理根据多家企业所提供的产品和技术开发和部署最佳的解决方案进而降低开发网络化应用的费用和复杂性这一巨大优势,很多厂家都表示将对J2EE给予支持,并将J2EE技术作为大型BtoB市场和海量交易处理的安全稳定的端到端平台。已经有许多家厂商取得了Sun公司的许可,如BEA System、Sybase、Oracle以及Fujitsu等等。Sun还将推出适用于Linux的J2EE。无疑,J2EE为企业勾勒了一幅具有更强的伸缩性、开放性、安全性且简单易用的未来应用的蓝图。