企业级开源软件简介 |
来源:名易软件 ApacheGeronimo ApacheGeronimo是Apache软件基金会的开放源码J2EE服务器,它集成了众多先进技术和设计理念。这些技术和理念大多源自独立的项目,其配置和部署模型也各不相同。ApacheGeronimo能将这些项目和方法的配置及部署完全整合到一个统一、易用的模型中。 ApacheGeronimo是由ApacheSoftwareFoundation(负责流行的ApacheHTTP服务器开发的团队)创建的一个开源的、认证的J2EE服务器,它遵循ASF2.0协议进行发布。作为J2EE服务器,Geronimo可以部署和运行Web应用程序和企业应用程序。可以使用JavaServerPage(JSP)、Servlet、Filter和EnterpriseJavaBean(EJB)来构建应用程序。这个应用程序可以通过JavaDataAccessAPI(JDBC)连接器访问外部RDBMS、通过JavaNamingandDirectoryInterface(JNDI)访问目录服务,通过JavaMessageService(JMS)访问事务性消息队列,通过JavaMail访问电子邮件等。 在Geronimo中,考虑到JMX对大规模应用服务的性能和开发复杂度带来的影响,在后期使用了以控制反转(InversionofControl)为基础的全新内核架构,这种架构有益于服务的插入,因为代码可以以服务逻辑为中心。要获得JMX可管理性,只需要根据IoC依赖性添加一些编码规范即可。这种设计也使得从Geronimo中的服务管理变得更简单。 Geronimo现在已逐步成为服务器端产品开发最有吸引力的容器之一。它丰富的功能集、无责任要求的Apache许可和随时可部署的、认证的J2EE1.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是一个基于SunJ2EE平台的MVC框架,主要采用Servlet和JSP技术来实现的。它已成为用Java创建Web应用的一个最流行的框架工具,Struts所实现的MVC模式给Web应用带来了良好的层次划分,同时也提供了一系列的工具来简化Web应用的开发。 Struts通过提供一个中心化的Servlet来实现MVC中的控制器模式。Struts中的控制器提供集中请求转发功能,就好似一个路由器系统,解析来自客户端发起的请求,并将请求定向到对应的业务逻辑上,最后将业务逻辑处理得到的结果展现到对应的视图上。通过这种模式,它将控制器与视图逻辑进行了较好的分离,使得应用系统能更快适应业务逻辑的变化。在视图技术上,Struts不仅限于JSP,同时可以与XMLXSLT、Velocity等技术进行结合。这些丰富的标签库为加速应用开发提供了更为快捷的途径。 Struts框架也为用户提供了极为丰富的开发文档,同时Struts相关的书籍也大量上市,这为开发人员学习和使用Struts提供了可靠的保障和支持。Struts经过多年的发展,已经拥有大量的开发者群体,这些开发群体使得Struts的开发和改进工作得到不断的支持,Struts框架因此具备更为长期和稳定的发展潜力。 WebWork WebWork是由OpenSymphony组织开发的、致力于构件化和代码重用的拉出式MVC模式J2EEWeb框架,它以其精巧、灵活、功能强大而闻名。WebWork2.x早期是由著名的开源专家RickardOberg开发完成,随着技术的演化,WebWork项目现在被拆分成两个单独的项目Xwork1和WebWork2两个项目。Xwork是一个标准的Command模式实现,完全从Web层脱离出来。WebWork2建立在Xwork之上,处理HTTP的响应和请求。在WebWork2.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.快速开发支持。通过EasyJWebTools,可以自动生成应用软件模板代码,定制并管理自己的J2EE代码模板。 EasyJWeb是本次Web框架中推荐的惟一来自中国开源社区的一个,是一个能实现中小型Web应用系统快速开发的简易Web框架。尽管没有能够同Eclipse结合的插件,而是使用自己的一套开发工具,但在国内有一定影响力。 Turbine Turbine是基于Servlet的框架包,也是开放源代码Jakarta项目。目前还没有关于Turbine的大量文档。它类似于Struts,但是有一些主要区别,突出的一点就是它并没有与JSP耦合。Turbine还有一个特点是它提供了大量可重用的构件,不过这些构件是离散的。 Java版Web服务器 Jetty Jetty是一个免费的和开源的Servlet容器。Jetty最大的特点是它既可以作为独立的Web服务器,也可以为一个已经存在的应用程序提供Servlet功能。也就是说它可以非常轻易地嵌入到个人的Java应用中,这样用户就不必把Web应用发布到一个服务器上。正因为Jetty的存在,Tomcat才不至于成为一枝独秀,Web服务器领域才会更加有趣。 Tomcat Tomcat是一个免费、开源的Servlet容器,它是Apache基金会的Jakarta项目中的旗舰产品,由Apache、Sun和其他一些公司及个人共同开发而成。它曾被JavaWorld杂志评为2001年度最具创新的Java产品(MostInnovativeJavaProduct),同时它又是Sun公司官方推荐的Servlet和JSP容器。Servlet和JSP的最新规范都可以在Tomcat的新版本中得到实现。它是目前应用最为广泛的Servlet容器,许多J2EE应用服务器都集成它作为自己的Servlet容器。 Java版持久层框架 ApacheTorque ApacheTorque是一个使用关系数据库作为存储手段的Java应用程序持久化工具,是Apache的公开源代码项目。Torque由Web应用程序框架JakartaApacheTurbine发展而来,但现在已完全独立于Turbine。Torque主要包含两部分:一部分是Generator,它可以产生应用程序需要的所有数据库资源,包括SQL和Java文件。另外一部分是Runtime,提供使用这些代码访问数据库的运行时环境。 Hibernate Hibernate最早是Sourceforge.net的一个子项目,后被JBoss购入麾下,目前已成为炙手可热的持久数据管理框架。它是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库。 iBatis iBatis提供了ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate实现ORM而言基本一致。对于具体的数据操作,Hibernate会自动生成SQL语句,而iBatis则要求开发者编写具体的SQL语句。相对Hibernate等“全自动”ORM机制而言,iBatis以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。 Java版J2EE框架 Spring |