随着越来越多的企业架构师用新的方法来构建应用,负责基础工作(应用服务器)的厂商们现在也开始着手对自己的产品进行改造,以适应SOA的要求。
SOA架构主张构建模块化的、可重用的应用组件,尽量避免出现传统IT资产中的那些“脆弱”特性。企业也对这种架构非常感爱好。Gartner称,在过去的两年启动的开发工作中,至少有80%都会成为具备服务功能的应用。
为了满足企业对SOA的需求,Java 2平台企业版(J2EE)应用服务器厂商BEA、IBM、JBoss和Oracle都开始改变自己原来的做法,将一些原来为可选特性的内容,例如简单对象访问协议(SOAP)和消息功能变成标准的产品特性。
JBoss是一家开源中间件厂商。该公司负责产品治理的副总裁Shaun Connolly说,仅仅为用户提供构建基于服务应用的工具是远远不够的。应用服务器的技术架构也应当具备服务功能,这一点非常重要,因为很多客户都希望引入或替换EJB容器、Servlets、消息工具和治理特性。他说:“假如企业使用的是单一的方法,那么要想取出其中的一部分内容并使用其他的功能几乎是不可能的。”
为此,JBoss对应用服务器的微内核进行了改造,使其变得更加具体,这样客户在部署Java对象时就会有更多的选择权。Connolly说,全新的JBoss Microcontainer 1.0将成为JBoss Applition Server 5.0的基础,后者将在2006年年中正式推向市场。他说:“我们会利用这种更新、更轻便且面向服务的微容器。”
Connolly说,在企业环境中,用户假如为了实现受资源限制的部署(例如网络设备)而单独拿出应用服务器,并且加载到高端群集环境中的话,粒度就显得非常重要。他说:“惟一可行的办法就是让平台在设计时就采用面向服务的方式。”
JBoss Application Server 5.0还将具备Seam 1.0这种特性。这种全新的JBoss组件模型可以对处理应用状态治理所需要的代码进行掩盖,从而简化编写复杂Java应用的工作。他说:“它把许多代码从进程中‘赶’出去。代码越少就意味着出现Bug的可能性就越低。”
Java EE 5
从更大的范围看,应用的简单性将是未来Java Platform Enterprise Edition 5(Java EE 5)规范的要害内容之一。目前该规范已经接近完成。今年早些时候,Sun发布了Java平台的全新命名规则,放弃了原来的J2EE 5.0名称而选用了Java EE 5。目前,应用服务器厂商Oracle和JBoss都开始了Java EE 5的开发工作,并且发布了最新版的EJB组件架构。
Connelly说,在过去,复杂的开发和重型容器的要求都严重制约了用户对EJB的采用,但EJB 3.0是一种轻型设计,编程过程也要轻易得多。他指出:“虽然很难说新的设计在多大程度上进行了简化,但至少从代码的规模上来说减少了10倍以上。”
Blake Connell是BEA公司WebLogic Server产品的营销经理。他对这一观点也表示了赞同。他认为:“EJB的缺点之一就是对开发人员的水平要求很高。新版的EJB将会减轻这方面的负担。”
对于BEA来说,最近由于收购了专业Java工具开发商SolarMetric公司及其所谓的持续性引擎,因此BEA在Java EE 5领域取得了迅速进展。对象持续性技术可以帮助开发人员处理关系数据库和瞬时对象,例如在线购物车或航空公司机票预订。
Connell说,BEA计划将SolarMetric的Kodo引擎融合到即将于2006年底发布的下一个主要WebLogic Server版本中。同时,假如开发人员想了解Java EE 5和EJB 3.0的预览版,也可以下载SolarMetric技术。
另外一家最早投身于EJB 3.0世界的厂商便是Oracle。该公司正在与Sun联合领导规范的开发工作,并且发布了具备EJB 3.0能力的第一个Oracle Application Server预览版。Oracle Application Server 10g Release 3将于2006年年中正式上市,届时该版本将提供内建的Java EE 5和EJB 3.0支持。
JBoss公司也提供了EJB 3.0的预览版,并计划在明年发布的JBoss Application Server 5.0中正式提供全面的支持。IBM将在WebSphere Application Server 6.1中开始支持新规范,该版本也将于明年上市销售。
其他趋势
J2EE应用服务器厂商关心的另一个重点就是开放源代码。据Gartner称,随着开源J2EE产品的成熟,这类技术已经成为主流企业的长期选择。
JBoss是开源J2EE领域的先锋厂商,但该公司正在面临一些大型厂商越来越激烈的竞争。IBM可以算是最新进入这一市场的大型厂商,该公司于今年5月收购了开源中间件厂商Gluecode Software。
今年10月,IBM公布了一项计划,预备推出基于Apache Geronimo的所谓WebSphere Application Server“社区版”。WebSphere Application Server Community Edition(简称WASCE)将使用Apache Derby和Apache Geronimo。IBM负责WebSphere 的副总裁Marie Wieck说,这种软件完全免费,用户可从IBM现有的WebSphere支持授权中选择自己需要的部分。
Wieck说,通常情况下,用户很愿意使用WAS CE开放源代码应用服务器进行最初的开发工作,然后在生产需求增长时,再将应用移植到具备网络能力的WebSphere版本上。他说:“它们能够非常简单快速地启动开发工作,而且根本不需要担心成本模型的问题。假如生产级需求量很大,用户可以根据情况迅速转变,采用更为传统的方式。”
在开源方面,BEA制订了一项名为“混合开放源代码开发”的战略。该战略答应开发人员使用多种开放源代码和商业产品。BEA计划将现有的WebLogic Workshop开发工具与该公司从M7那里收购得来的NitroX工具集合并在一起。这种NitroX专门用于创建一种基于Eclipse的集成式开发环境。
开发适合不同行业的定制产品也成了一种新趋势。BEA推出的WebLogic SIP Server 2.1是一种集成式的J2EE和SIP应用服务器。BEA WebLogic通信平台产品营销经理Ken Lee指出,该产品的目标是帮助电信企业加快新型多媒体服务的部署速度。
Lee说:“任何一种新型的SIP应用,无论是IP语音或IP视频,从根本上来说都需要与HTTP或Web集成在一起。因此,假如开发人员能够开发出一种独立、集成式J2EE-SIP平台,那将是非常有意义的。”
Wieck说,IBM也在预备开发一种具备SIP功能的新版WebSphere Application Server,主要针对电信行业。该版本将于明年正式推出。SIP支持将内建于产品之中,而不是简单地附加在产品之上。她说:“我们将它看作是一种应用服务器的扩展,而非简单的独立插件。”
BEA的应用服务器小组也在向那些对Java持有谨慎态度的传统企业发起进攻。Connell说:“BEA的WebLogic Real Time Edition就属于这一类产品,它主要用于处理非常精确的交易。这类交易通常发生速度都非常快,而且需要较高程度的可猜测性。根据计划,该版本将于近期发布。”
他说,在过去开发人员对可猜测性的要求通常要精确的毫秒一级,例如用于金融企业的交易应用。但是由于Java语言在处理内存治理时存在“天生”的延迟,因此很多企业都会尽量避免采用Java。而通过WebLogic Real Time Edition,BEA成功地创建了一种精确的、可猜测的内存治理方法,即使是在那些对时间非常敏感的环境中,它也能让用户有效地保证服务水平。
Java EE5架构的要害
简化应用开发是Java EE 5架构中的一个要害目标。下面就是该架构所涉及的一些要害内容:
■ 升级Enterprise JavaBeans(EJB)组件架构,使EJB的开发工作大大简化。
■ 持续性API。这种全新的标准API用于实现对象关系映射,这种方法可以按照Java Beans的形式表达数据库中的数据。
■ JavaServer Faces框架,使得在Java中建设基于Web的用户界面变得更加轻易。
■ 使用注解,使开发人员无需专门去处理某些J2EE部署描述符。