多层企业应用:J2EE应用服务器

互联网 | 编辑: 江海明 2006-12-08 01:00:00转载 返回原文

1、应用服务器概述(引言)

目前在Internet/Intranet/Extranet环境中,企业级应用系统大多采用三层或多层应用模式。为了方便开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应用的基础设施,这一支撑平台的关键就是位于中间层的应用服务器。应用服务器是一个创建、部署、运行、集成和维护多层分布式企业级应用的平台。如果应用服务器与Web服务器相结合,或者包含了Web服务器的功能,则称之为Web应用服务器。

在企业应用中,应用服务器可以提供如下好处:提高企业应用开发的有效性,保障业务逻辑和组件的重用性;提高企业应用的性能,如高运行性能和响应时间、可伸缩性、可靠性等;使企业应用更易于监控和管理,降低系统维护和升级成本。由于应用服务器的重要作用和关键地位,它已经成为当今业界的一个热点。

作为企业级应用的解决方案,应用服务器应当提供:(1)加快开发过程、确保开发质量,促使应用 快速进入市场的开发能力;(2)促使应用能够以灵活而有效方式运行的 部署能力;(3)与各种后端系统有效整合的集成能力。应用系统集成商在帮助 客户建立 、部署和运行企业应用时所需要的灵活性和功能,都源于对应用服务器各种能力的组合与运用。具体的,应用服务器的功能可以划为核心服务和扩展服务。核心服务:为业务逻辑的实现提供支持;对应用服务器的管理能力;提供协议和接口的引擎,支持通讯协议(如HTTP、IIOP)、数据库互联标准(如JDBC、ODBC)、分布式计算协议等多种工业标准。扩展服务:为支持高端应用而应当提供的功能,主要包括:事务(transaction)处理;集群(cluster);失效恢复(fail over);负载均衡(load balancing);缓存机制;安全服务;与企业已有应用系统的集成能力;开发有效性(与应用程序开发环境和工具的结合能力)。

目前基于J2EE技术实现的应用服务器在市场上具有非常重要的地位。本文将对应用服务器特别是J2EE应用服务器进行分析和比较,以帮助认识实现应用服务器时需要考虑的问题。

2、应用服务器的解决方案及比较

目前市场上国内外的应用服务器产品大概超过50家。从实现技术的角度划分,可以将应用服务器归为基于J2EE的解决方案、Microsoft解决方案和其他技术等3大类。

2.1基于J2EE的应用服务器

近年在应用服务器市场上最具意义的进展,就是J2EE(Java 2 Platform Enterprise Edition)的出现。J2EE 是Sun公司提出的开发、部署、运行和管理基于Java分布式应用的标准平台。它以Java 2平台标准版(J2SE)为基础,继承了标准版的许多优点(如“编写一次,到处运行”),还提供了对EJB、Java Servlet、JSP等技术的全面支持。J2EE使用EJB Server作为商业组件的部署环境,在EJB Server中提供了分布式计算环境中组件需要的服务,例如组件生命周期的管理、数据库连接的管理、分布式事务的支持、组件的命名服务等。

J2EE用于实现应用服务器有其优势,它可以利用Java语言自身具有的跨平台性、可移植性、对象特性、内存管理等方面的性能,为应用服务器的实现提供一个完整的底层框架。J2EE中定义的各种服务,包括JSP和Servlet容器、EJB容器、JDBC、JNDI(名字目录服务)、JTS/JTA(事务服务)、JMS(消息服务)等,也分别为应用服务器提供了各种支持。实现商业逻辑的EJB组件可以更加高效的运行在应用服务器中,用户可以通过Java Sevlet或者JSP调用运行在EJB Server中的EJB,也可以通过IIOP直接访问运行在EJB Server中的组件。除了应用服务器的基本特性以外,J2EE应用服务器还应实现:支持Java编程的工业标准,包括EJB、JDBC、JNDI、RMI-IIOP、JCA、JTS/JTA等;能够与业界主要的IDE(如Borland Jbuilder、VisualCafe等)集成;与标准的Java操作平台兼容,如Sun、IBM等系统平台;使用完全的Java语言编码实现,保证良好的可移植性和支持Java的语言特性。

2.2微软的解决方案

将微软的解决方案单独划作一类,不仅仅是应为微软在业界的地位,而是应为微软在应用服务器上的解决方案代表了另一种思路,可以说,选择了微软的应用服务器解决方案也就意味着选择了完全的微软平台。微软的目标是分布式的Web应用开发环境,它并没有提供一个类似通常所说的应用服务器的软件或软件包,而是将Windows NT/2000看做其应用服务器的基础,通过附加一系列具备中间件功能的软件包来实现应用服务器平台。目前,应用服务器的实现体现在微软命名为.Net的Web应用开发框架中。.NET战略引入了许多新概念,包含了一些新的技术,如Web Services和C#语言,但.NET在很大程度上是微软以前开发的企业级应用平台DNA的重新包装。微软在.NET中提供了一系列企业级服务器,为部署、管理和建立基于XML和Web的应用构筑了.NET服务器结构,包括Application Center、BizTalk Server、Commerce Server、Exchange Server、SQL Server等,它们结合Windows平台上的一系列开发工具和技术(包括Visual Studio .NET、ASP .NET等),提供了强有力的应用服务器解决方案。

2.3其他解决方案

由于应用需求和技术的原因,尚有一些应用服务器使用其他语言和技术实现。Macromedia公司的ColdFusion服务器就是采用标记语言CFML(ColdFusion Markup Language)实现,使得熟悉HTML的开发者能够简单快速地进行应用开发,在开发的简单性和快速的生产力方面较有优势。ColdFusion的目标是致力于中小型的企业应用环境,但是它也具有高性能和良好的可靠性,在市场上仍能占有一定的份额。PHP是开放源代码的服务器端脚本语言,它为实现应用服务器提供了一种易于编程的实现手段,PHP应用服务器的代表有Midgard和PhpLens。Zope则是使用Python语言编写的开放源码应用服务器,它也为Web应用提供了完整的实现框架和手段,在协同工作支持、Web内容管理等方面有其特点

总之,在各种应用服务器的解决方案中,J2EE和微软.net是两大主流阵营,占据了绝大部分的市场,所以对它们作一简单比较。

首先需要注意区别的是,.NET是一个产品套件,是产品战略,而J2EE是编写产品时的标准,二者在能力上各有千秋。例如,在对已有系统的集成能力方面,J2EE要优于.NET,它通过JCA(Java Connector API)可以更容易地将已有的企业应用进行集成。微软的解决方案则在Windows平台上提供了一系列快速开发和部署应用的工具,但由于微软对Java的支持并不好,所以在一定程度上影响了其接受程度。J2EE的接受程度则较高,因为它定义了一个应用服务器在Java体系结构下的基本服务和能力的规范,为不同厂商的应用服务器产品的标准化提供了一条可行途径。J2EE应用服务器可以使用户在此标准下创建的应用程序都能运行于其上,更重要的是,在满足J2EE兼容性的条件下,在不同的应用服务器上的应用组件可以很好地互操作,这样可以降低移植的风险和代价,提高应用的灵活性,有助于保护用户的投资。因此,许多应用服务器厂商已经转向采用J2EE标准,而且所实现的J2EE应用服务器在Windows平台上也可以很好地工作。

3、J2EE产品的比较标准

由于目前应用服务器产品的功能多样,实现不尽相同,各自的描述和理解有所混淆。为了帮助企业选择合适的应用服务器构建企业多层应用,快速实现企业信息化,笔者建议从应用服务器的基本特性和扩展特性两个方面来考察企业应用服务器。

3.1.1基本特性

基本特性是指应用服务器的实现应该包括的基本运行环境和支持标准:

(1)J2EE的兼容性,指对J2EE等标准的支持程度;

(2)操作系统,指支持应用服务器运行的操作系统平台;

(3)Web服务器,指应用服务器对Web服务器的支持策略(如内置或集成)及Web服务器产品;

(4)数据层支持,指支持的数据库连接标准(JDBC/ODBC)和数据库产品;

(5)对象模型支持,指对主要分布式对象模型(EJB/CORBA/DCOM)的支持。

3.1.2扩展特性

扩展特性描述了应用服务器为获得高性能和竞争能力而需要提供的特性,主要包括:

(1)可用性:指系统在预期的长时间内可以进行的持续性操作,保证和提高应用服务器的运行性能和可靠性。用于提供可用性的技术主要有负载均衡、失效恢复、缓存等。

(2)可伸缩性:指用户负载增加后,系统仍能维持同样的响应时间。用于提供可伸缩性的技术主要是集群。(需要说明的是,集群也可用于实现可用性)。

(3)可管理性:指对应用服务器及部署在其上的应用进行管理的能力,包括组件的部署能力、系统资源和性能的监控和调整能力等。

(4)安全性:指保证应用和数据安全的特性,包括加密、访问控制、目录服务、认证和授权等服务。

(5)集成性:指应用服务器具有哪些与其他应用系统连接和集成的能力。

(6)开发有效性:指支持建立各层应用开发的能力,用于帮助提高在应用服务器平台上的开发效率。

(7)Web Services支持:Web Services是Internet上电子商务的标准,它允许企业应用通过标准的协议互相访问,也被认为是下一代Inetrnet上企业应用的标准,所以应用服务器有支持Web Services的必要。

4、两个评测J2EE产品的标准

目前主要有两个标准可用于对J2EE应用服务器产品进行标准性的测试和衡量。

一是J2EE兼容性测试(J2EE Compatibility Test Suite)。它是Sun提供的一个测试套件,包括5000多个测试,其中包括了J2EE规范所要求的所有类和方法的测试,用以检查J2EE应用正确而一致的交互。它可以保障应用的可移植性,使EJB组件、JSP和servlets可以运行在不同的J2EE应用平台上,保障不同厂商实现的一致性。市场上的大多数J2EE应用服务器都通过了J2EE1.2兼容性测试,目前只有IBM、Sybase等少数几家通过了J2EE1.3兼容性测试。

二是Ecperf。它是一种应用服务器性能标准,主要用于J2EE应用服务器的可伸缩性和性能测试。它的开发是由众多在行业内处于领先地位的J2EE应用服务器厂商协作完成的,由两部分组成:一个用Java语言编写的测试应用程序和相关的驱动程序,一套详细的测试规范和结果报告的规范。Ecperf标准主要是模仿现实世界中系统所要承受的工作量,具体包括制造、供应链管理和订单/库存等过程,可以衡量J2EE环境的完整性、兼容性和可伸缩性,并提供基于J2EE的服务器性能的严格比较。

5、应用服务器的发展趋势与研发策略

5.1发展趋势

应用服务器的技术和市场仍处于快速变化和发展之中,从目前厂商的发展战略和产品的特性来看,可以看到应用服务器市场上存在着的一些趋势。


首先,应用服务器已经开始向完整的企业应用基础设施平台发展,为企业应用系统各阶段的开发工作提供完整的支持;或者发展成为包括平台、应用、服务在内的完整的企业应用解决方案,可以无缝集成供应链惯例、企业资源惯例、客户资源管理和企业商业智能等。前者如WebSphere,它已经超越应用服务器市场,进入了整个IBM电子商务基础设施和工具平台领域;后者如Oracle电子商务软件,其目标是成为Internet上电子商务运作的一站式解决方案。另外,基于应用服务器是一个平台的观点,存在这样的趋势,即在操作系统中将会捆绑进基本的应用服务器功能 ,使应用服务器真正成为企业应用必不可少的基础部分。


由于用户类型与应用的规模和需求的差异,要求应用服务器产品能够面向高端和低端的不同应用。这就要求在具有基本功能的版本的基础上,对应用服务器进行组件化,能够便捷而有效的适应应用需求,J2EE规范将有助于实现应用服务器的组件化。


另外,开放源码的应用服务器对现有的应用服务器提供商具有一定的冲击力。低价位和开放源代码的应用服务器,如JBoss(http://www.jboss.org),能够提供主要的应用服务器功能,显然对中低端的应用是足够了。这也是许多应用服务器提供商发布低价位和低端应用服务器版本的原因之一。可以肯定,开放源代码的应用服务器必会对市场产生重要影响。

5.2研发策略

通过对目前应用服务器产品的考察,可以认识到,要 实现一个具有竞争力的J2EE应用服务器产品,应当考虑以下几点:

(1)标准化。为了顺应市场的要求和技术的发展,应当按照J2EE规范(最新的1.3版)及相关标准实现应用服务器,以作为新的热点,Web Services 是Internet企业级应用的标准,应用服务器也应该支持Web Service的协议。微软在其产品战略中已经摒弃了Java,这很大程度上对开发者造成了影响。但是微软积极的参与Web Services标准的制定工作,这样,在Java和微软两个世界间的互操作性上,也许可以寄希望于Web Service。

(2)必须注意提供应用服务器的扩展特性及其服务。为了实现可用性、可伸缩性、可管理性等,应实现Cluster,负载均衡、失效恢复等功能。

(3)注意集成能力和开发有效性的支持。目前应用服务器已经成为电子商务平台上重要部件,如Websphere、iPlanet、Silverstream等的策略就是如此,因此应用服务器在这方面的功能有逐渐增强的趋势,例如,在前端,很多应用服务器于Web服务器紧密集成,或者Web服务器就是应用服务器内置的部分,从而形成Web应用服务器;在后端,除数据库外,非常强调与企业各种已有的应用系统和数据源的连接;在应用开发方面,还强调应用服务器与应用开发环境和工具的集成。

6、主要J2EE应用服务器产品评述

6.1 Bea Weblogic

Bea的Weblogic是目前市场上最有影响力的产品,它有Weblogic Sever、Weblogic Enterprise和Weblogic Express等3个版本,分别面向不同规模的应用需求。Weblogic以大规模的关键性业务的企业应用为目标,提供了很强的支持企业级应用的能力。Bea对J2EE技术的支持非常积极,比较早地支持了J2EE1.3,通过J2EE及Web Service地标准API,结合一系列地开发工具,提供了比较好的组件开发、部署和管理环境,使在其上具有快速的应用开发能力;在客户端方面,广泛的支持Web浏览器、一般GUI程序和无线设备等客户应用界面,支持移动计算和设备(虽然对其支持的策略仍有欠缺);同时可以支持大多数的数据库系统和操作系统。除了通过自带的plug-in与Apache、Microsoft IIS,Netscape Web serverde等主要的Web服务器集成,Weblogic还包含了一个高性能的Web服务器,该Web服务器通过页面缓存、负载均衡、会话状态管理等提供了高性能和高可用性。Weblogic为需要高性能和可伸缩性的企业级应用提供了有效的底层基础设施。Weblogic在集群技术上有其突出的特点,一组工作在一起的Weblogic服务器通过集群技术提供可靠和可伸缩的应用平台。它还提供了负载均衡、失效恢复、缓存等一系列技术,在对高端应用的支持方面比较完备而出色。Weblogic能够与Bea另一出色的中间件产品Tuxedo有效的集成,提供优良的分布式事件处理能力。Bea还提供了完整的安全体系结构,包括用户级和组级的存取控制列表ACL技术、加密技术、用户认证及其它安全标准。Weblogic提供了基于Web的管理控制台程序,为系统管理员提供部署、配置和监控应用程序的工具。它以基于JMX(Java Management Extension)实现的管理服务提供了管理Weblogic服务器资源的能力。但是需要指出的失,Bea的管理工具与IBM Websphere相比,存在欠缺。

相关链接:

BEA Systems 中文官方网站: http://www.bea.com.cn/index.jsp

IBM Websphere

WebSphere 为企业级Web应用程序的创建提供了一个可靠的、一致的 框架。它支持的平台和标准非常多:在操作系统方面,涵盖了从PC机到大型机的各类操作系统;支持J2EE、CORBA、ActiveX接口;支持多种关系/对象/层次数据库;已经支持J2EE1.3,支持最新的Web Service的关键基础,通过Java API for XML Processing(JAXP)加强了集成能力,并增强了使用XML编写和处理JSP的功能。在性能方面,WebSphere提供了负载均衡、失效恢复、集群等功能,任何对应用程序或其配置的修改,包括Java组件的更新,将会在多个服务器上自动备份复制。WebSphere中还有多层次的可调整的缓存技术,可缓存的对象包括数据库查询、Java对象,页面和图象等。但是,较其竞争对手(特别失Weblogic),负载均衡和失效恢复的支持表现稍差。WebSphere的操作环境较好,包括了Administrative Console(操作管理)、Log Analyzer(日志分析)、Resource Analyzer(性能数据的测量和报告)、Performance Monitoring API(WebSphere组件所使用的API接口,用以实时的获取性能有关的规格数据)、Tuner Wizard(性能调整工具)等一整套工具,用于应用服务器的配置、监控和管理,在这方面它的表现要优于Weblogic,WebSphere具有很强的系统集成能力,IBM提供了其产品线上的一系列产品来支持WebSphere,例如,由IBM的MQSeries和TXSeries分别提供消息服务和事务服务。WebSphere也通过J2EE Connector来使集成已有的系统变得容易,这些系统包括ERP、CRM、工作流系统等。在WebSphere Enterprise版中还有一个Component Broker,它是一个企业级分布式计算的解决方案,提供了完整的开发、部署和集成分布式组件的方法。WebSphere应用服务器与IBM的电子商务开发环境紧密地结合,与WebSphere Studio packages、VisualAge for Java、Websphere Commerce Suite、Lotus Domino及其它WebSphere平台上的软件有良好的互操作性,从而有助于提高应用开发的生产力,这是其优势所在。

Oracle 9i Application Server

Oracle 9i Application Server(9iAS)已经开始支持J2EE1..3,实现了所有主要的J2EE API。Oracle 自称9iAS是市场上最快的J2EE应用服务器,在Web站点中,在9iAS上运行Internent应用程序上比其他应用服务器都要快。Oracle还宣称9iAS只需要很小的内存和磁盘空间就可以运行,系统只需要20MB的内存就可以运行J2EE应用程序。9iAS的能力很多来源于所集成的扩展工具和辅助工具。例如,Oracle使用Apache HTTP服务器作为Web前端,并用模块“mods”来加强Apache 的能力;9iAS是第一个提供ESI(Edge Side Includes)技术的应用服务器,可以用它提高动态Web站点的响应时间和可伸缩性。作为9iAS的特性,内容的“入口”(Portal)允许用户集成Web资源,提供一种标准的内容集成组件,通过建立个性化的Portal可以将用户的业务信息和应用发布到任何使用Portal的设备上。9iAS提供了一些业务智能功能,用过内置的工具来进行企业的业务分析、顾客行为的分析等工作。在可管理性方面,9iAS给出了一个集成的解决方案。Oracle Enterprise Manager 及其Management Packs提供了集成的管理工具,可以管理Oracle 9iAS和Oracle数据库系统,使系统管理员可以监控所有Oralcle 9iAS组件的状态、使用情况和性能数据。在集成性方面,9iAS提供了基于标准(JCA、JMS、Web Service协议)的集成解决方案;可以与Oracle E-Business Suitet套间集成。Oracle的Jdeveloper提供了在9iAS上开发应用的能力,它有助于开发者将业务逻辑快速地转化为Java代码,并方便地进行EJB、servlet和JSP地部署。Jdeveloper中的Business Components for Java(BC4)是一个基于J2EE和XML的框架,实现用于事务型J2EE应用快速开发的J2EE设计模式(Design Pattern)。最后,9iAS具有高级的集群能力,可以支持有状态和无状态的系统失效恢复,提供系统的可用性和可靠性。

Sun iPlanet

IPlanet是Sun与Netscape合作的产物,毫无疑问地支持所有的J2EE规范及相关的APIs,目前它已成为Sun的基于Web Services的软件环境Open Net Environment(ONE)的重要组成部分。IPlanet分为3个版本:Standard,Enterprise和Enterprise Pro。Standard版比较简单,主要实现了一些基本的功能,包括了servlet和JSP支持、基本的监控服务;Enterprise是一个基线(baseline)级的应用服务器,包括了Web服务器、事务监控器、目录服务器;Pro版的目标是建立支持Web service的、能够处理多数据源的企业级应用,在Enterprise版的基础上,它增加了对已有系统的集成能力,提供了对Bea Tuxedo、PeopleSoft、iPlanet ECXpert的应用程序支持包。IPlanet提供了一套支持高性能的服务:可由系统管理员调整的负载均衡,集群技术,透明的失效恢复,用于服务器管理和监视的SNMP代理,对线程、数据库链接和EJB的缓存机制。IPlanet提供了名为UIF(Unified Integration Framework)的框架,为与原有应用系统的集成提供帮助。它将业务逻辑抽取出来,存入基于XML的存储库中,允许Java开发者对存储库中的内容以Java和XML的形式进行处理。UIF还可与JCA联合使用。IPlanet通过其一个软件包Mobile Access Pack进入了无线应用领域,它提供对WAP和I-mode协议以及短信服务的支持。IPlanet还发布了与应用服务器相关的开发工具,包括一个Java开发环境iPlanet Application Builder及iPlanet Developer Pack,并支持Forte for Java和WebGain Studio。另外还有一个EJB组件库,存储了由第三方(Omix、Flashline等)提供的组件,用来为具体的应用开发提供方便。Iplanet也提供了自己的管理控制台,拥有一定的管理能力,然而并未提供足够的服务器分析、应用使用情况与性能的分析能力。

金蝶Apusic应用服务器

金蝶Apusic J2EE应用服务器是全球少数几家通过J2EE最高规范1.4认证的产品之一,完全实现J2EE等企业计算相关的工业规范及标准(EJB、Servlet、JSP、JMS、JNDI、JCA、JACC、HTML、 Web Services、XML等),它提供了数据持久性、事务完整性、消息传输可靠性、集群高可用性、以及跨平台的支持,具备国际品质,是为各种复杂应用系统提供标准、安全、集成、高效的企业级基础中间件平台。

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑