由于开源软件特殊的开发方式,使得这个领域真可谓百花齐放,以至于究竟有多少种开源软件,恐怕没有多少人能说清楚。本报评析实验室在开源专家的意见的基础上对其中颇有影响力的企业级开源软件进行了整理,以供读者参考。
Linux 操作系统
Red Hat
Red Hat Enterprise Linux(RHEL)作为红帽家族的服务器成员,提供了功能较为强大的操作系统和企业架构方案。它使用开放源码的 Linux 2.6 内核,使得平台稳定性和成熟性较以往有所增强。RHEL采用了大量成熟的开放源代码技术,如SELinux和Firefox等,同时特别针对桌面应用进行了改善,能较好地满足企业安全性和兼容性的要求。系统在新文件系统、即插即用硬件设备的支持以及用户和服务管理方面较以前版本有了显著的提高。
RHEL的缺点是带有一些不标准的内核补丁,使得它难以按照用户的需求进行定制。
Red Flag
Red Flag Linux Desktop 5.0(产品代号为Apatite)是一个稳定、易用的个人桌面系统,系统安装过程简单直观,提供了较完善的系统管理工具和图形图像、多媒体应用以及网络应用方面的多种应用软件。系统采用Linux 2.6内核,为用户提供了一个比较稳定而且高效的使用环境。系统能够较好地支持主流PC硬件设备和目前发展迅速的蓝牙通信技术,能较好地支持蓝牙设备和系统之间多种数据的无线互传。不足之处在于系统在桌面的美观程度、常用工具的易用性以及联机帮助和用户手册汉化等方面还需进一步加强。
拓林思
拓林思(Turbolinux)对产品的稳定性、高效性以及安全性方面进行了特殊加强,Turbolinux 10一直严格遵循该领域的相应标准CGL(carrier_grade_linux),通过了LSB 1.3 标准的完整测试,可以很方便地移植符合LSB 1.3 标准的软件。集成了完善的系统级开发环境和高效、稳定的开发工具,开发型用户不需额外购买即可实现二次开发。同时该产品的易用性显著增强,可以为企业级数据库和大型商业软件提供高效的系统平台,支持24×7 不间断的全天候工作方式。基于对Samba、NFS 等各种技术的完全支持,可以与现有的各种操作系统实现互联互通,协同工作,不但保护了用户的前期投资,同时也降低了系统整体部署的成本。
共创
共创桌面Linux(Co-Create Desktop Linux)2005是一个适合普通用户使用的桌面操作系统,它为用户提供了较稳定、高效的计算机使用环境。系统采用开放源码的Linux 2.6内核,提升了Linux作为桌面应用的性能。采用类Windows的界面风格和鼠标与快捷键操作方式,桌面与菜单简洁实用,方便了用户操作。系统还提供了较为丰富易用的系统管理工具以及浏览器、电子邮件、网络聊天工具、多媒体软件等多种应用软件,采用了具备中英文混合输入及智能联想输入能力的“共创中文输入法”,形成了较完整的办公应用环境。
不足之处是系统在硬件设备的支持能力、常用大型软件的支持能力和X窗口的稳定性等方面还需进一步加强。
Java版 应用服务器
JBoss
JBoss是目前最有影响力的开源应用服务器,它几乎成了开源软件的旗舰产品。和出色的同类商业软件BEA的Weblogic、IBM的Websphere相比,JBoss的优势在于具有良好的性价比。从出现至今,它已经从一个EJB容器发展成为一个基于J2EE的Web 操作系统(Operating System for Web),它体现了J2EE规范中最新的技术。不仅如此,它的技术创新能力还有影响和引领规范的趋势。它具有良好的运行效率和可靠性,已经得到越来越多的J2EE应用开发者的青睐。
JBoss 是当前最流行的开源J2EE应用服务器之一, 它遵循LGPL协议进行发布。JBoss安全符合J2EE 1.4的标准规范, 提供EJB、JMS、 Servlet、JSP、JMX、JNDI等规范的支持。 JBoss以其优秀的基于JMX微内核在J2EE应用服务器领域独树一帜,其体系结构分为:
微内核层 微内核层采用基于JMX的体系架构,它提供对轻量级组件模型的热部署和高级类装载和全生命周期管理的特性。
服务层 在微内核层之上采用了面向服务的体系结构。它由一系列服务组成,包括事务、消息、邮件、安全、连接池等。服务可以采用热插拔的方式进行部署,而无需停止整个服务器。同时也可以定制自己的服务并将服务打包成SAR,进行独立的部署,通过这种机制,使得JBoss更易于灵活地进行扩展。
应用层 JBoss 通过提供统一容器服务,为应用中的对象提供各种互通的行为能力。同时JBoss还支持 AOP的方式, 以透明化的方式简化应用开发的过程。
JBoss应用服务器(AS)4.0 通过了J2EE 1.4的认证。JBoss AS 4.0极大地简化了Java中间件开发,使用更加简单的、更加易于管理的POJO,这种新的模式转变为推动整个Java 应用服务器的发展起到了重要的作用。新版本的JBoss 5.0也正在研发之中,全新的JavaEE 5.0体系架构将为JavaEE应用软件开发人员带来更多优秀的特性。
JOnAS
JOnAS由欧洲的ObjectWeb协会开发,也是比较有影响力的一个开放源代码的J2EE实现。JOnAS主要是J2EE容器的实现,J2EE服务等都由ObjectWeb其他项目实现,它们之间接口定义良好,可以很方便地共同组合为一个应用服务器。JOnAS本身的技术特点不是很明显,但它目前在着力推倡OSGi技术,这应该是它未来一段时间的卖点。目前ObjectWeb也在积极寻求跟中国的合作,JOnAS4.8就已经有来自中国团队的贡献。随着欧盟和中国的合作深入,开源应用服务器在未来的合作应该会走得更远。
PKUAS
PKUAS(Peking University Application Server)由北京大学信息科学技术学院软件研究所自行设计开发。分为遵循J2EE1.3、J2EE1.4和 J2EE5等三种版本。PKUAS积极倡导采用微内核和构件化思想来构造,也就是自己构造微内核和集成框架,而其他则选择优秀的开源软件。2005年12月PKUAS 2005在ObjectWeb的源码库中开放,2006年7月PKUAS的动态集群内容也被JOnAS团队采纳,被集成到了JOnAS4.8中。
Plug-in体系架构 PKUAS借鉴操作系统的微内核思想,通过抽取一组基本功能形成一个内核,将平台内部的其他功能封装在各个相对独立的模块内,允许用户根据需要定制与扩展这些功能模块,在系统启动阶段由内核装配成构件运行支撑平台。
丰富的服务和工具集合 PKUAS不仅提供J2EE定义的标准服务,包括名字服务、通信服务、事务服务、数据服务、消息服务、安全服务、Java Mail服务等,还提供扩展的功能服务,包括日志服务、集群服务和用户自定义服务等。
● PKUAS集群服务实现了可灵活定制的负载平衡框架,支持常见的负载平衡策略。PKUAS支持客户端对服务器群组变化的感知和适应,这部分实现已被JOnAS采纳。
● PKUAS提供了可插拔的基于集成开发环境(Eclipse和JBuilder)中的开发部署插件,帮助用户简化J2EE应用和EJB开发及部署的过程。
● PKUAS提供从其他应用服务器到PKUAS的应用移植工具,包括WL4PKUAS和JBOSS4PKUAS。
此外,PKUAS还附带有需求建模和体系结构建模工具,支持全生命周期的应用开发,这些工具目前也在积极实用化过程之中。
Apache Geronimo
Apache Geronimo 是 Apache 软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。这些技术和理念大多源自独立的项目,其配置和部署模型也各不相同。Apache Geronimo能将这些项目和方法的配置及部署完全整合到一个统一、易用的模型中。
Apache Geronimo是由Apache Software Foundation(负责流行的 Apache HTTP 服务器开发的团队)创建的一个开源的、认证的J2EE 服务器,它遵循ASF 2.0协议进行发布。作为 J2EE 服务器,Geronimo 可以部署和运行 Web 应用程序和企业应用程序。可以使用 Java ServerPage(JSP)、Servlet、Filter 和 Enterprise JavaBean(EJB)来构建应用程序。这个应用程序可以通过 Java Data Access API(JDBC)连接器访问外部 RDBMS、通过 Java Naming and Directory Interface(JNDI)访问目录服务,通过 Java Message Service(JMS)访问事务性消息队列,通过 JavaMail 访问电子邮件等。
在Geronimo中,考虑到JMX对大规模应用服务的性能和开发复杂度带来的影响,在后期使用了以控制反转(Inversion of Control)为基础的全新内核架构,这种架构有益于服务的插入,因为代码可以以服务逻辑为中心。要获得 JMX 可管理性,只需要根据 IoC 依赖性添加一些编码规范即可。这种设计也使得从 Geronimo 中的服务管理变得更简单。
Geronimo 现在已逐步成为服务器端产品开发最有吸引力的容器之一。它丰富的功能集、无责任要求的Apache许可和随时可部署的、认证的J2EE 1.4容器等优势,使得它将成为JavaEE应用服务器市场的又一有力竞争者。
JFox
JFox 是由Huihoo.org开源软件社区推出的JavaEE应用服务器。为了简化EJB的开发,提高开发和部署的效率,在表达形式上做了一些改进,其目标是在规范和开发效率之间找到一个平衡,既尽可能遵循规范,又尽可能改变EJB开发缓慢、部署麻烦的现状,切实提供一个快速的J2EE平台。
它遵循LGPL协议进行发布。JFox应用服务器通过与国际知名开源组织,如ObjectWeb、Apache 等合作,充分发挥全球开源开发人员的资源和优势,使JFox逐步走向成熟和完善。并逐步进入商业应用领域。
JFox应用服务器在保证对J2EE规范兼容的前提下,提供了更多高级的特性:
● 采用增强型IoC 内核,并结合JMX的优势,支持基于Web组件管理;
● 采用动态代理调用框架,无需EJB预编译;
● 采用协议后决的调用方式在调用过程中可以动态改变调用EJB协议;
● 采用优化的调用链模型,提高服务端执行速度;
● 支持远程和本地调用自动切换,同一个应用服务器上的EJB之间的调用自动使用本地调用,无需实现本地接口;
● 高性能事务处理,JFox采用了先进的事务处理模型,提高了事务处理的调用性能。
Java版Web框架
Struts
Struts是一个基于Sun J2EE平台的MVC框架,主要采用Servlet和JSP技术来实现的。它已成为用Java创建Web应用的一个最流行的框架工具,Struts所实现的MVC模式给Web 应用带来了良好的层次划分,同时也提供了一系列的工具来简化Web应用的开发。
Struts通过提供一个中心化的Servlet来实现MVC中的控制器模式。Struts中的控制器提供集中请求转发功能,就好似一个路由器系统,解析来自客户端发起的请求,并将请求定向到对应的业务逻辑上,最后将业务逻辑处理得到的结果展现到对应的视图上。通过这种模式,它将控制器与视图逻辑进行了较好的分离,使得应用系统能更快适应业务逻辑的变化。在视图技术上,Struts不仅限于JSP,同时可以与XML/XSLT、Velocity等技术进行结合。这些丰富的标签库为加速应用开发提供了更为快捷的途径。
Struts框架也为用户提供了极为丰富的开发文档,同时Struts相关的书籍也大量上市,这为开发人员学习和使用Struts提供了可靠的保障和支持。Struts经过多年的发展,已经拥有大量的开发者群体,这些开发群体使得Struts的开发和改进工作得到不断的支持,Struts框架因此具备更为长期和稳定的发展潜力。
WebWork
WebWork是由OpenSymphony组织开发的、致力于构件化和代码重用的拉出式MVC模式J2EE Web框架,它以其精巧、灵活、功能强大而闻名。WebWork 2.x早期是由著名的开源专家Rickard Oberg开发完成, 随着技术的演化,WebWork项目现在被拆分成两个单独的项目Xwork1和WebWork2两个项目。 Xwork是一个标准的Command模式实现,完全从Web层脱离出来。 WebWork2建立在Xwork之上,处理HTTP的响应和请求。在WebWork 2.2中添加了对AJAX的支持,这支持构建在DWR与Dojo这两个框架的基础之上。
WebWork与Struts的不同表现在以下一些方面:
线程模型: Struts 的请求只有一个实例去处理,这使得所有资源都必须保持同步,会产生线程安全的问题。在WebWork的实现中,每一个请求对应一个Action, 每一个处理都是相对隔离,不会产生线程安全的问题。
容器外测试: Struts的Action依赖ServletRequest和ServletResponse,因此进行单元测试时必须依赖容器本身。WebWork2中的Action不依赖任何容器,可以较好地进行容器外测试。
Action的控制: WebWork提供Action拦截器处理机制,允许在每一个Action前后进行其他操作。
WebWork用户群体较小,相关的文档资料和支持工具也较少,比较适合技术能力较强的开发人员使用。
EasyJWeb
EasyJWeb是基于Java技术、应用于Web应用程序快速开发的MVC框架,框架设计构思来源于国内众多项目实践,框架充分借鉴了当前主要流行的开源Web框架 (Struts、Webwork等),吸取了其优点及精华,利用Velocity作为模板页面引擎,是一个实现了页面及代码完全分离的MVC开发框架。EasyJWeb具有以下几个特点:
1.零配文件置支持。EasyJWeb实现零配置支持,可以不写一句配置文件就在框架基础上构建运用(适合小型网站系统)。
2.简易的模板页面设计支持。放弃使用JSP,使用简单Velocity脚本语言作为页面模板。
3.页面程序完全分离。实现显示与程序逻辑的完全分离,克服了传统JSP页面难于维护的问题。
4.基于页面组件的框架。灵活的页面组件配置可以直接通过配置文件设置字段级的事件组件。
5.快速开发支持。通过EasyJWeb Tools,可以自动生成应用软件模板代码,定制并管理自己的J2EE代码模板。
EasyJWeb是本次Web框架中推荐的惟一来自中国开源社区的一个,是一个能实现中小型 Web应用系统快速开发的简易Web框架。尽管没有能够同Eclipse结合的插件,而是使用自己的一套开发工具,但在国内有一定影响力。








