吴治电 谌力    2005-6-16      阅读人次:11045
        5月9日,本报推出了开源之旅的专题,并带您游览了第一站:开源数据库,这次请跟随我们进入开源之旅的第二站——开源应用服务器。
        目前,在企业级应用中不可或缺的应用服务器产品也出现了一些开源产品,以JBoss、JOnAS、JFox、Geronimo等为代表的应用服务器软件提供了丰富的特性,在商业软件激烈拼杀的环境中,撑起了另外一道亮丽的风景。
        尽管在J2EE应用服务器领域存在着BEA的WebLogic, IBM的WebSphere等业界巨头的平台软件,但是开源应用服务器仍然有着强大的生命力,尤其是JBoss J2EE应用服务器凭借着技术实力和优异的品质连续两年(2002年的JBoss2.4.4版、2003年的JBoss 3.0)被颇负盛名的JavaWorld评选为最佳Java应用服务器。
        究竟开源应用服务器夺走了商用产品多大市场蛋糕还不得而知,但开源产品确实让许多中小企业先尝到应用服务器的甜头,让更多的企业有机会使用应用服务器构建自己的应用系统。
        有意思的是,IBM最近收购了开源应用服务器厂商Gluecode公司,并表示会保持Gluecode产品开放源代码的特性,将为用户提供一个多样性的选择,用户可以在开始以较低的投入使用Gluecode的开源产品,当业务系统需要更大的扩展和升级,再转到WebSphere平台上来。
        下面从版权、规范支持、设计架构等几个方面介绍目前最有代表性开源应用服务器JBoss 4.0,一方面读者可以由此对开源应用服务器有一个初步的了解,另一方面也对自己选择相关产品有所参考。
         2004年11月,在经过了漫长的4轮开发测试版和2轮预览版的新产品试航阶段之后,JBoss组织最终发布了人们翘首以待的充满了新的功能特性的JBoss 4.0版。

君子爱财   取之有道
         JBoss 4.0服务器秉承了一贯的宗旨,采取开放源代码和免费授权使用的策略,向各种类型和各种规模的组织机构免费开放,同时由于采用了LGPL(Lesser GNU Public License)的授权协议,任何第三方独立软件开发商可以自由地将JBoss 4.0应用服务器作为开发平台或者嵌入自己的应用中。这种授权方式一方面极大地节省了最终用户的投入,提高了整体性价比,同时由于源代码的公开,可以使有专业背景的使用者不仅通过广告效应感受系统的优势,更有可能从其产品的设计等更深层次了解JBoss的质量特性,从而更有效地判别选用的系统是否和自身的业务相契合,尤其对于网络安全性比较关切的行业和应用,这种方式能够确保系统不会存在很多厂商所不为外人知道的小机关。
        当然,对于那些只想利用JBoss而又想节约资金的机构,JBoss组织的核心开发人员提供合理的收费服务,帮助他们进行正确的应用和开发。
        正可谓:君子爱财,取之有道。JBoss不是故意利用信息的不对称性获取利润,而是利用自身的技术和服务意识,获取合理的报酬。从这点来看,这是一种极富发展潜力的商业应用模式。这点对我国的软件产业尤其有很大的启发意义。

J2EE 1.4标准的兼容性
         JBoss的各个版本一直在J2EE业界标准的兼容性方面保持领先。而JBoss 4.0更是将这种标准兼容性达到了极致。JBoss 4.0是业界第一家取得正式J2EE 1.4认证的应用服务器,该认证保证了JBoss 4.0应用服务器完全符合规范的J2EE标准。而这一点对于大规模的企业级异构环境至关重要,它保证了开发人员所开发的J2EE组件(如 EJB等)能够在不同的应用服务器之间安全地使用和无缝迁移。作为企业CIO, J2EE 1.4标准的完全兼容性无疑是应用服务器选择的一个极其重要的砝码。

丰富的先进特性
         在J2EE标准特性方面, JBoss 4.0主要的改进包括: 提供了对J2EE类型的Web服务的支持(包括JAX-RPC方式和WS4EE架构方式),支持新的标准和协议(参考下表及JBOSS网站)。
         而在其他功能的改进继承方面,JBoss 4.0比较重要和创新性的功能包括:面向特性编程(AOP, Aspect-Oriented Programming)模式的支持, 对象存储(又称持久性)框架Hibernate的集成和通过TreeCache技术实现的集群功能的提升和分布式缓存的支持。
        关于这些新特性的详细解释和讨论不是本文的宗旨所在,需要指出的是AOP的支持,使得系统的公用特性能够以服务的形式存在,使得所有的Java对象都可以应用,从而提高面向对象编程的可读性、可维护性和代码的重用性。Hibernate的集成提供了数据库的访问实体Bean之外的另外一种简易和有效的方法。
         所有这些特性,正是J2EE应用服务器领域炙手可热的话题和研究领域,通过相关技术的采用,无疑会增加开发的效率和提升系统的整体性能。 因此从系统的功能特性而言,JBoss 4.0无疑代表了新的J2EE应用服务器的发展方向。

产品架构
         JBoss的架构一直为业界所津津乐道,其原因在于沿用了本身优秀的历史遗产:微内核机制和遵循SOA。 JBoss 4.0应用服务器的层次体系架构可以分为以下的主要层次。
        ● 微内核层:其核心是一个精巧的基于微内核的服务器进程,通过Java管理扩展(JMX, Java Management Extensions)协议,能够提供轻量级的组件模式,进行热部署、高级的类装载机制和生命周期的全程管理。
        ● 服务层: 该层位于微内核层之上,它由一系列通过JMX扩展所产生的服务组成,包括诸如事务处理、消息服务、连接池服务或者安全服务等,系统管理人员可以比较容易地构建、增加或者减少服务而达到最佳的效能,并进行热部署,从而使得系统很容易得到扩展。
        ● 特性层: 该层基于AOP模型,使得JBoss 4.0提供了广泛的通用服务,包括:对象存储、缓存、事务处理、安全和日志等,该框架允许开发人员构造相关的普通Java 对象,并将这些普遍存在的企业级服务运用到随后的开发周期中,而无需改变任何Java代码,极大提高了开发效率。
        ● 应用层:该层为业务应用所赖以存在和运行的所在。
         JBoss 4.0的这种独特的层次架构,使得系统的可伸缩性、可扩展性和灵活性得到极大的保证。
        当然,JBoss应用服务器同样存在一些比较明显的缺陷,如面向开发人员的倾向比较明显,缺乏比较系统的面向管理人员和用户的界面等,但是瑕不掩瑜,我们不能不说,这是一席免费的盛宴,如果你能够有足够的品味来品尝。
 
三款开源应用服务器产品比较 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

产品名称

JBoss4.0

JOnAS4.1

JFox2.0

产品网址

Jonas.objectweb.org

 

EJB 的支持

EJB 2.1

EJB 2.1

EJB 2.0

Web-Container 的支持

Servlet 2.3 JSP 1.2

Servlet 2.3 JSP 1.2

Servlet 2.3 JSP 1.2

J2EE 规范的支持

J2EE 1.4

J2EE 1.3

J2EE 1.3

JMS 的支持

JMS 1.1

JMS 1.1

实现部分 JMS 功能模块

Web 服务的支持

JAX-RPC 方式和 WS4EE 架构方式

透过整合 AXIS ,允许 J2EE 组件存取“ Web 服务”

通过 XML-RPC 支持 Web 服务