作者: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.
闽公网安备 35060202000074号