吴治电 谌力    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应用服务器同样存在一些比较明显的缺陷,如面向开发人员的倾向比较明显,缺乏比较系统的面向管理人员和用户的界面等,但是瑕不掩瑜,我们不能不说,这是一席免费的盛宴,如果你能够有足够的品味来品尝。
 
三款开源应用服务器产品比较
产品名称
JBoss4.0
JOnAS4.1
JFox2.0
产品网址
Jonas.objectweb.org
 
EJB的支持
EJB 2.1
EJB 2.1
EJB 2.0
Web-Container的支持
Servlet 2.3JSP 1.2
Servlet 2.3JSP 1.2
Servlet 2.3JSP 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服务