探索Application Server的世界

1/5/2008来源:Java教程人气:5935


  作者:Blueski 编译

本文包括以下内容:
application server是什么?
何为3层结构 (3-Tier architecture)?
application server最适用的领域?
application server的深刻意义?
application server有哪些不同类型?
application server市场巡礼
application server选用指南

应用服务器(以下仍用Application server)是驻留在服务器上的程序,为各种应用提供了商业逻辑。服务器可以是网络的一个组成部分,尤其是分布式的网络。服务器程序为客户机上的程序提供了各种服务。

Application server最常用的场合是基于web的具有3层结构的应用。

第1层 前端: - Browser浏览器 (thin client瘦客户机),为用户提供的GUI图形接口

第2层 中间层:- Application Server - 应用程序

第3层 后端:- Database Server

Application server处于3层结构的第2层,可以说,它是3层体系中的集成部分,和web server联合在一起处理客户端的各种请求。
假如我们看一看client端、web server和application server之间的request-response的流程, 不难看到 e client端的request首先到达,然后web server将要求的信息交给application server,application server处理后返回response到webserver。webserver再将处理过的信息发送到client。Web server可采取很 多种方法和技术来收发信息。以下是一些常见的方法:

CGI (Common Gateway Interface)- 可使用 java, C, C++和 Perl等语言编写
FastCGI - 改进的CGI程序,每个request已不再由不同进程进行处理
asp (Active Server Pages) - 微软技术
jsp (Java Server Pages)- Sun′s 的技术
Java Servlets - Sun′s 的技术
Java Script (Server Side) - NetScape技术,要使用livewire for database connectivity
其它

首先让我们看看web application结构,先不考虑application server。

以上三部分既可以在同一台计算机上运行,又可以在internet的许多不同计算机上运行。

 

那么application server应该在什么位置上呢?

 

 

Application Server的各种性能

1.组件治理 : - 提供治理工具来处理所有组件和运行时刻服务(run time service)如session治理,同步/异步客户端通知,以及执行服务器上的商业逻辑(business logic)。

2.容错: - 提供没有任何单点(single point)错误的性能,定义出错恢复的策略以防某个对象或对象组出现问题。

3.负载均衡: - 根据服务器的当前负载及可用性,将请求提交给不同的服务器。

4.事务处理

5.治理控制台Management Console::- 单点(Single point)图形治理界面,用于监控远端客户及服务器簇治理

6.安全性:提供给用的安全性

Application Server种类:

以下是一些常见的application server (来源:Upstream调查报告):

Application server主要分为3种类型:

Web Information Server:

使用Html template和script来生成页面,该页面可以取得或处理数据库中的数据。这类服务器是stateless服务器。包括:Netscape Server, HAHT, Allaire, Sybase, SilverStream 等。

Component Server:

其主要目的是为组件提供数据库存取和事务处理服务,这些组件包括 DLL, CORBA, 和 JavaBean。
第一,它们提供了服务器端组件的环境; 第二,它们为组件提供数据库存取和事务处理的服务。

这些服务器也是stateless server,如

MTS - 提供DLL接口
其它的有 Sybase Jaguar, IBM Component broker。

Active Application Server:

这类服务器为服务器端的逻辑表达,如对象,规则和组件支持并提供了一个丰富的环境。它们是stateful server,对于处理基于电子商务和决策支持系统都是最佳选择。Stateful server是指担任了事务协同处理d数据状态治理角色的服务器,而Stateless server自身不对这些工作进行完全的处理,而需要依靠于数据库或者事务监视器来完成事务处理工作。

 

目前市场上的application server:

Allaire公司的产品ColdFusion
http://www.allaire.com/PRodUCts/coldfusion/40/
接口为:ActiveX, C++, Java

Apple公司的产品Web Objects
http://www.apple.com/webobjects/
接口为:ANSI C, C++, Java

Art Technology Group公司的产品Dynamo Personalization software
http://www.atg.com/products/highlights/highlights_main.html
接口为:Java

BEA Web Login公司的产品Tengah
http://www.weblogic.com/products/tengah/tengahabout.html
接口为:Java

Blue Stone公司的产品Sapphire
http://www.bluestone.com/products/sapphire/
接口为:C, C++, Java

Bullet Proof Corporation公司的产品JDesigner Pro
http://www.bulletproof.com/
接口为:Java

Elemental SoftWare公司的产品Drumbeat 2000
http://www.drumbeat.com/
接口为:ActiveX

GemStone Software公司的产品GemStone/J
http://www.gemstone.com/products/j/main.html
接口为:Java

HAHT公司的产品HAHT Site Application Server
http://www.haht.com/Go.html?Page=HS_Pr_HSOverview
接口为:ANSI C, C++, ActiveX

Halcyon Software公司的产品I-ASP
http://www.halcyonsoft.com/asp/whitepaper.html
接口为:Java

IBM公司的产品WEB SPHERE
http://www.software.ibm.com/webservers/appserv/
接口为:Java

Inprise公司的产品Inprise Application Server
http://www.inprise.com/appserver/
接口为:Java

Internova公司的产品Colibri Engine
http://www.internova.com/colibri/main.asp
接口为:Java, ActiveX

Intersolv公司的产品NetEXPress
http://www.microfocus.com/products/enterapp.htm
接口为:C++

Lona Technologies公司的产品Orbix OTM
http:// www.iona.com/products/transactions/orbixotm/index.html
接口为:Java

Lotus公司的产品Domino
http://www.lotus.com/home.nsf/tabs/domino
接口为:ActiveX

Micorsoft公司的产品MTS/IIS
http://www.microsoft.com
接口为:ActiveX

Netscape公司的产品Application Server
http://www.netscape.com/appserver/v2.1/index.html
接口为:Java

New Atlanta公司的产品Servlet Exec
http://www.newatlanta.com/products.html
接口为:Java

Novera公司的产品J Business
http://www.novera.com/jbusiness.html
接口为:Java

Open Connect System公司的产品WebConnect
http://www.openconnect.com/pressrel/120898.html
接口为:Java

Oracle公司的产品Oracle WAS
http://www.oracle.com/products/asd/oas/oas.html
接口为:Java

Pervasive Software公司的产品Tango
http://tango.pervasive.com/products/tango/webjump/
接口为:Java, ActiveX

Pramati technologies公司的产品Proton
http://www.pramati.com/products.htm
接口为:Java

Progress Softwares公司的产品Aptivity
http://www.progress.com/java/aPPTivity/apptivity.htm
接口为:Java

Prosyst公司的产品Enterprise Beans Server
http://www.prosyst.com/prosyst/champion.htm
接口为:Java

Seagate Software公司的产品Seagate Info APS
http://www.seagatesoftware.com/crystalinfo/
接口为:ANSI C, C++

Secant Technologies公司的产品Secant Extreme Server
http:// www.secant.com/secant/extreme_enterprise_server_ejb.htm
接口为:Java

SilverStream公司的产品Silver Stream
http://www.silverstream.com/information/press/v2press_f.htm
接口为:Java

Sun公司的产品NetDynamics
http://www.netdynamics.com/
接口为:Java

Sybase公司的产品Enterprise Application Server
http://www.sybase.com/products/application_servers/
接口为:ActiveX, ANSI C, C++, Java

Tempest公司的产品Tempest Messanger System
http://www.tempest.com/products.html
接口为:ANSI C, C++, Java

Unify公司的产品Vision App Server
http://www.unify.com/Products/vision.htm
接口为:ANSI C, ActiveX

Unify公司的产品Ewave Engine
http://www.unify.com/Products/ewave/index.htm
接口为:Java

Visient公司的产品Arabica EJB Server
http://www.visient.com/Arabica_server_main.htm
接口为:Java

Vision公司的产品Jade
http://www.vision-soft.com/products/products.htm
接口为:Java

Visisoft Inc.公司的产品Com Studio
http://www.visisoft.com/cando.htm
接口为:C++

以下是在您进行选择application server时的一些参考:

负载均衡
容错性
事务处理治理
多线程结构
可治理性
安全性,如对SSL, Firewall X.509认证,存取控制表(access Control Lists ACL)的支持,安全等级如
ServerLevel,?Service Level ,Directory Level还是Object Level等等
开发和支持工具,如开发环境
CORBA支持
可移植性,如是否可在一个application server环境中开发后可以方便地导入到另一个application server。
EJB支持
外置的数据集成支持如对legacy系统的支持,通过CICS,IMS,Tuxedo, MQ Series等
分布式协议的支持
是否跨平台
得到各种协议支持,如CORBA,IIOP,LDAP,JNDI,RMI,HTTP,SMTP,SNMP,NSAPI和ISAPI等
数据库支持 如ODBC, JDBC, Oracle, Sybase, MS-Access等
得到模型工具的支持,如Rational Rose等
和ERP的可连接性,如SAP, PeopleSoft , BAAN等
API支持/ 脚本语言支持 如Oracle WAS中的 PL/SQL,NetDynamics中的CSPSpider等。
第三方WebServer支持,如Oracle WAS尽管有自己的Listener但仍支持IIS/ NetScape。
第三方工具的支持
任何其它的附加性能,如xml支持,JSP支持等。

此文来自:

http://javaboutique.internet.com/articles/AppServers/page01.html

作者:Rahul Kumar Gupta
Email:rahgup@mailcity.com
主页: http://rahgup.web-page.net/
图形制作: Hema Sharma (NetAcross Ltd.