应用服务器技术

Web 应用开发大致经历了三个阶段。在第一阶段,大家都使用 Web 服务器提供的服务器扩展接口,使用 C 或者 Perl 等语言进行开发,例如 CGI、API 等。这种方式可以让开发者自由地处理各种不同的 Web 请求,动态地产生响应页面,实现各种复杂的 Web 系统要求。但是,这种开发方式的主要问题是对开发者的素质要求很高,往往需要懂得底层的编程方法,了解 HTTP 协议,此外,这种系统的调试也相当困难。
在第二阶段,大家开始使用一些服务器端的脚本语言进行开发,主要包括 ASP、PHP、 Livewire 等。其实现方法实质上是在 Web 服务器端放入一个通用的脚本语言解释器,负责解释各种不同的脚本语言文件。这种方法的首要优点是简化了开发流程,使 Web 系统的开发不再是计算机专业人员的工作。此外,由于这些语言普遍采用在 HTML 中嵌入脚本的方式,方便实际开发中的美工和编程人员的分段配合。对于某些语言,由于提供了多种平台下的解释器,所以应用系统具有了一定意义上的跨平台性。但是,这种开发方式的主要问题是系统的可扩展性不够好,系统一旦比较繁忙,就缺乏有效的手段进行扩充。此外,从一个挑剔者的眼光来看,这种方式不利于各种提高性能的算法的实施,不能提供高可用性的效果,集成效果也会比较差。
为了解决这些问题,出现了一个新的 Web 应用开发方法,也就是应用服务器的方式。目前,应用服务器已经成为电子商务应用中一种非常关键的中间件技术。如今,各大主要软件厂商纷纷将应用服务器作为其电子商务平台的基础,如 IBM 的 Websphere,Oracle 的 Internet 应用服务器,Sybase 的 Enterprise 应用服务器等。本文将阐述应用服务器的概念、相关技术及发展方向,并就目前主流的应用服务器产品进行简单的介绍。
一、 应用服务器的概念
应用服务器:是通过各种协议将商业逻辑曝露给客户端的程序。(应用服务器是中间件的一种)。
应用服务器是在当今 Internet 上企业级应用迅速发展、电子商务应用出现并快速膨胀的需求下产生的一种新技术,通过它能将一个企业的商务活动安全有效地实施到 Internet 上,实现电子商务。它并非一种传统意义上的软件,而是一个可以提供通过 Internet 来实施电子商务的平台。在分布式、多层结构及基于构件和服务器端程序设计的企业级应用开发中,它提供的是一个开发、部署、运行和管理、维护的平台。它可以提供软件“集群” 的功能,因而可以让多个不同的、异构服务器协同工作、相互备份,以满足企业级应用所需要的可用性、高性能、可靠性和可伸缩性等。
故而,从某种意义上说,应用服务器提供了一个“企业级应用的操作系统”。实现 J2EE规范的应用服务器称为 J2EE 应用服务器。
现代社会商机稍纵即逝,电子商务应用要求能很快地开发出功能强大的系统。应用服务器可以帮助企业快速架构一个基于Internet 的电子商务系统,而且拥有极高的稳定性、可扩展性和安全性。它能够:
(1)更合理地分工企业级应用开发,加快应用的开发速度,减少应用的开发量。应用服务器将系统功能与业务功能分开,使得编程人员能够集中精力在业务功能上,在系统内建立/部署的构件越来越多,并且为分布式架构的时候,系统功能必将变得越来越复杂;而与此同时,对可靠性(负载均衡、容错和故障恢复)的需求也会越来越高。开发人员只关注编码业务方面的功能,对系统一级的功能并没有多少兴趣。因为系统级底层功能的实现,一般需要非常复杂的专业技能,因此对功能实现的合理分离可以允许技能的优化。
在应用服务器上开发采用的模块化方法,提供了大量的可重用模块。一个新的系统可以通过组合一些现成的框架和模块,再加上一定的开发来快速完成。而新开发出的代码又可作为今后重复利用的模块,这一点对于降低开发成本,提高开发速度是非常重要的。
另外,为了便于开发,有些应用服务器还提供开发版的服务器,以便进行各种调试工作。应用服务器一般还提供集成开发环境,将本地编辑、上传、项目管理和调试工具等集中在一起,使开发工作在一个界面内全部完成。还有一些开发环境同时提供后台系统的开发环境,以便同时进行开发管理。此外,还有一些产品内置一些代码的自动生成器,数据库设计辅助工具等,例如ORM(ObjectRelation Mapping,对象关系映射)等,这些都有效地提高了开发速度,减少了应用开发量。
(2)应用设计、开发、部署、运行、管理、维护的平台。应用服务器既是应用开发的平台,包括表示层、应用层和数据层的设计模式和编程环境;同时又是多层结构应用的部署、运行平台,对多层结构应用进行配置、启动、监控、调整,并在开发的不同阶段承担不同的职责。
设计:应用服务器完成底层通信、服务,并屏蔽掉复杂的底层技术细节,向用户提供结构简单、功能完善的编程接口,让用户可以专心于商务逻辑的设计。
开发:应用服务器提供了完全开放的编程语言和应用接口,用户可以用任何自己习惯的开发工具来工作。另外应用服务器自己也提供快速开发的工具和手段,帮助用户提高开发效率。
部署:应用服务器可以部署在任何硬件平台、任何操作系统上,而且可以分布在异构网络中,应用服务器帮助用户在复杂的网络环境中配置系统参数,使系统发挥最大的性能,拥有最好的稳定可靠性。
运行:应用服务器采用的是开放技术标准,它提供了一个完整的标准实现,即提供了系统的运行环境,任何基于同样标准的系统都能很好地运行于这个环境中。在运行中提供应用系统的名字解析、路由选择、负载平衡、事务控制等服务,并提供系统容错、修复、迁移、升级扩展等功能。
管理:应用服务器让用户通过图形化的界面方便地管理自己的资源,而且在系统运行时也能动态监控和管理。
(3)使得应用与底层平台无关,便于商业逻辑的实现与扩展。一个好的应用服务器通过提供对操作系统/数据库平台的广泛支持,或采用平台无关技术,如 J2EE,从而能够做到让应用独立于操作系统/数据库平台。显然,它可以确保企业应用具备很好的移植性并保护了企业在应用和开发技能上的投资。
另外一个方面,在激烈的市场竞争条件下,企业的商业逻辑不可能一成不变,而随着生产经营的拓展,首先需要解决的一个问题就是将按需地对现有的业务系统,方便地进行扩充和升级。应用服务器技术可以很好地解决这个问题,因为它采用了三层结构体系,应用服务器将业务流程单独作为一层,客户可以根据自己的商业逻辑来专心设计这一层。应用服务器能提供这种设计能力,当客户业务扩展时,只需专注于改进中间层的设计,原系统就能平滑方便地升级。
(4)为企业应用提供现成的、稳定而强健的、灵活的、成熟的基础架构。在构建电子商务应用的竞争中,许多企业已经没有时间去从容地“千锤百炼”一个电子商务架构体系。通过应用服务器,立刻就可以拥有一个成熟的架构,包括基础平台、标准、应用开发工具和预制构件。
另外一方面,随着经济全球化的步伐加快,许多企业的业务服务于全球,计算机业务系统需要提供 24 小时不间断的服务,系统在大负荷量和长时间运转情况下的稳定性至关重要。应用服务器通过分布式体系来保障这一点,表现为:
当系统处理能力不够时,可以通过简单地增加硬件来解决;
动态调整不同主机间的负载可以最大地利用系统资源,同时提高单机的稳定性;
当系统中的某台机器出现故障时,它的工作可由其他机器来承担,不会影响系统整体的运行,即无单点故障。
目前市面上的应用服务器的解决方案基本都具备了这些作用,因而企业在选购应用服务器产品的时候,不能简单地判断优劣,而需要先充分了解自己的需求到底是什么,然后在各个主要技术问题上,确定适合自己的解决方案,最后寻找使用这些解决方案的产品来完成自己的系统。
二、主要的应用服务器
下面介绍五种主要的应用服务器产品。
1.BEA WebLogic
BEA WebLogic 作为新一代基于 Java 的 Web 应用服务器,是一款满足 Web 站点对性能和可靠性要求很高的产品。在提供传统的应用服务器功能的同时,还针对当今的 Internet 技术和 Java 技术提供了众多功能,它符合最新 Java 标准。安装 WebLogic 非常容易。
WebLogic EJB Deployer Tool 提供了对管理多个 EJB.jar文件和配置 WebLogic Server 部署特性和资源的控制。Deployer Tool 支持两级 EJB 部署的合法性检测,它自动地检查特性和引用,以确保它们包含正确的值,并检验关键 EJB 所需的类是否符合 EJB1.1 规范。
名为 WebLogic Zero Administration Client(ZAC)发布向导的图形实用程序使用户可以创建、发布和管理包括应用程序、小程序或 Java 代码库的软件包。ZAC 使用户可以开发客户端 Java 应用并将这些应用打包分发。
2.IBM WebSphere
IBM 的 WebSphere 强调其在应用开发(WebSphere Studio 和 VisualAge for Java)、数据库(DB2)和消息服务(MQseries)的集成性。这些产品构成了该公司总体电子商务产品战略的基础。WebSphere 以对多种平台的支持和符合最新的 Java 标准,提供了开发电子商务应用的可靠平台。
WebSphere 安装简单易行。对 WebSphere服务器及它运行的应用的控制是在 WebSphere 高级管理控制台中执行的。由于WebSphere 可以运行多个服务器,因此,用户必须从控制台分别启动每一个服务器进程。如果必须重新引导系统的话,WebSphere 可以记住目前每个不同服务器的状态并自动地重新启动运行的服务器。
IBM 提供了像 WebSphereStudio和 VisualAgeforJava 这类专为开发基于 Java 应用而设计的其他产品。WebSphere 的高级版和企业版在发送时附带了 IBM 的 DB2 数据库产品和 SecureWay 轻型目录访问协议服务器。企业版包括用于连接到外部数据库、CICS、IMS 或 MQSeries 应用的一个构件代理应用适配器。
3.SUN iPlanet
作为 SUN 与 Netscape 联盟产物的 iPlanet 公司生产的 iPlanet 应用服务器满足最新 J2EE 规范的要求,并通过了全套 J2EE 证书测试套件的测试。iPlanet 应用服务器的基本核心服务包括事务监控器、多负载平衡选项、对集群和故障转移全面的支持、集成的 XML 解析器和可扩展格式底稿语言转换(XLST)引擎,以及对国际化的全面支持。包括 Directory Server、Web Server 和用于 EAI(Enterprise Application Integration,企业应用集成)的另一些附件在内的其他 iPlanet 产品之间实现了紧密的集成。
IPlanet Application Deployment 工具是基于 Java 的程序,它可以指导用户完成一个应用的部署过程。iAS 提供了一款与 WebGainStudio、InspireJBuilder、IBMVisualAge 及 Java企业版的 SUNForte 这类第三方工具集成在一起的独立产品 iPlanet Application Builder。
4.Oracle Internet ApplicationServer
毫无疑问,Oracle 公司的数据库产品是多种平台上的市场领先产品,凭借这种得天独厚的优势,Oracle 的 Internet Application Server(iAS)与其余 Oracle 产品实现了相互集成,例如,可以利用 Oracle iAS 向 Web 部署任何基于 OracleForms 应用的 Oracle Forms Service。
Oracle 利用一些扩展的 ApacheWeb Server 作为进入 Oracle iAS 的入口点。iAS 管理器是配置和管理应用的工具,提供了综合操作各种系统管理功能的统一界面。Oracle 为 Apache 开发了插件盒模块来处理 Java 应用程序、Perl 程序、PL/SQL 程序及 SSL 上的安全网页。插件盒模块是一个共享库,可以实现程序逻辑访问。插件盒模块中可运行一个或多个插件盒实例,包括 PL/SQL 插件盒、Jweb 插件盒、LiveHTML 插件盒、Perl 插件盒、C 插件盒、ODBC 插件盒等。
iAS 允许开发基于 CORBA 对象的应用,通信协议采用 IIOP。iAS 支持以下两种应用模式:CORBA 应用和 EJB 应用。这两种模式都允许不同的 CORBA 客户访问。iAS 企业版配置了 Oracle Portal。Oracle Portal 提供了部署企业信息用户所需的工具。
Oracle iAS 是该公司将应用推向 Web战略的关键组成部分。Oracle 的客户可以比较容易地将他们的 Oracle Forms 和 Oracle Reports 放到 Web 上运行。但是,Oracle iAS 价格也比较昂贵。
5.Sybase Enterprise ApplicationServer
Sybase Enterprise Application Serve(rEAServer)将 Sybase 的 JaguarCTS 和 PowerDynamo紧密集成并加以发展,是同时实现 Web 联机事务处理(WebOLTP)和动态信息发布的企业级应用服务器平台。它对各种工业标准提供广泛的支持,符合基于构件的多层架构,是支持所有主要构件模型的应用服务器产品,并且在它的最新版本中加强了对 PowerBuilder 构件和 EJB 的深层支持。这样,用户可以运用它提供的灵活的开发能力,充分利用多样化的计算环境,建立更加高效的企业 Web 应用系统。
EAServer 支持多种构件模型,同一应用中可以结合使用各种构件,支持标准脚本语言和任意客户类型,集成了 PowerSite 开发环境,使 Web 应用开发和提交方便快捷。除了优良的性能之外,EAServer 还支持多种数据库访问方式,给用户提供了可靠的安全性。

猜你喜欢

转载自blog.csdn.net/miachen520/article/details/134939908