第五章:iPlanet的应用程序服务器


(by huihoo.com tonyliu)

领先的iPlanet E-Commerce方案

作为SUN Microsystem与Netscape战略联盟的产物,iPlanet E-Commerce解决方案旨在帮助企业借助Internet强大功能,实现“网络经济”。凭借其出色的技术,iPlanet已经成为该领域无可争议的行业领导者。

Iplanet E-Commerce解决方案基本构架如图:


在层次体系结构上,iPlanet E-Commerce遵循多层客户/服务器模型,在多层模型中,中间层通常要处理来自客户的请求,执行复杂的商业逻辑,同时要处理来自后端系统和数据库的相关企业数据,并且替客户屏蔽数据复杂性。Application Server属于中间层服务器,目前比较成熟的产包括:iPlanet的iAS6.0/NAS4.0、IBM的WebSphere3.0和BEA的WebLogic5.1等。



以iPlanet的NAS(Netscape Application Server)为例,Application Server通常实现如下功能:
· 接受来自客户的请求
· 在内部运行相应的Java或C++例程
· 与数据库交互,获得结果集
· 按一定模板整理结果集并输出给客户
· 服务失败时可以自动恢复等

iPlanet的应用程序服务器(iAS/NAS)

基本服务和扩展

iAS/NAS为用户应用程序提供了一个功能强大的运行环境,如下图:

除了由开发人员编写的核心应用程序逻辑之外,iAS/NAS为核心程序的开发提供了很多基本服务和预先内置的扩展,包括:
会话管理
结果集缓存
连接池管理
负载平衡
数据访问引擎
模板引擎
线程管理
HTTP流等

应用程序开发模型

基于iAS/NAS的应用程序的开发模型分为以下四层:
· 显示页面布局层(Presentation page layout)
· 显示逻辑层(Presentation logic)
· 商业逻辑层(Business logic)
· 数据访问层(Data access)

显示页面布局层

主要由JSP(Java Server Page)构成,用于生成动态页面内容。JSP由HTML、JSP标签和Java语言混合编写。

显示逻辑层

主要由Servlets构成,每个Servlet实际上是小的Java类或组件,在该层用于实现显示页面逻辑关系和页面导航,同时也负责创建和激活商业组件(如EJB)

商业逻辑层

主要由EJB(Enterprise Java Bean)构成,每个EJB组件负责封装应用程序的商业逻辑、商业规则和商业对象

数据访问层

主要由EJB构成,EJB组件使用JDBC和查询文件(query files)对后端数据库操作,访问企业数据。 应用程序模型中包括的开发组件还有AppLogic、HTML模板、查询文件、扩展等。 应用程序模型示意图如下:(图中显示页面布局层和显示逻辑层被合并为显示层)



最优秀的企业级应用程序服务器

我们有理由认为iAS/NAS是同类产品中最优秀的,下面是我们将iAS/NAS与其他两个主要竞争对手(IBM WebSphere及BEA WebLogic)相比较得到的结果。 iAS/NAS与IBM WebSphere的比较

       我们有理由认为iAS/NAS是同类产品中最优秀的,下面是我们将iAS/NAS与其他两个主要竞争对手(IBM WebSphere及BEA WebLogic)相比较得到的结果。

iAS/NAS与IBM WebSphere的比较


 

 

IPlanet Application Server6.0/

Netscape Application Server4.0

IBM WebSphere

Advanced Edition 3.0

平台支持

操作系统

  NT4.0 SP3

  Solaris 2.6, 7

  HP-UX

  DEC Unix (Compaq Tru64)

  AIX

Java

  JDK 1.1.7   JDK 1.2

Web Server

  NES 3.6

  NES 4.0

  Apache

  IIS

  通过本地API与Web Server连接,性能高

操作系统:

  NT

  AIX

  Solaris                                           

 

 

Java

  JDK 1.1.7(w/limitations)

Web Server

  NES

  IIS

  Apache

  IBM WebServer

  仅通过CGI与Web Server连接,性能低

应用程序模型

完全的J2EE兼容

 被评价为最快、最可靠的Java应用程序服务

 器(GIGA,  8/27/99)

面向J2EE

 虽然IBM在市场上也宣称它是最完善、

 最健壮的产品,但至少目前还不是。

开发工具

具有广泛的开发工具支持:

1.         NAB/iAB (Netscape/iPlanet Application Builder)

2.         Basic VisualCafe integration.

3.         NEB/iEB (Netscape/iPlanet Extension Builder) ,用于建立定制集成NAS/iAB扩展.

 

只支持IBM的开发工具

1.         Websphere Studio

2.         支持VisualAge for Java Enterprise 3

3.         通过Websphere Admin. Console 部署EJB

扩展性

水平扩展性:

 跨服务器间的负载平衡

 复杂的程序分组(Application partitioning)

 动态的负载平衡

 动态的组件共享

 Entities Beans可以在Java引擎间复制

 

垂直扩展性:

 一个App Server上可以容易增加Java引擎,

 以充分利用系统资源。

 

水平扩展性:

 跨应用程序服务器间的负载平衡

 无程序分组(Application partitioning)

 无动态的负载平衡

 

 

 

垂直扩展性:

 不详

性能

很高的性能,建立在以下技术基础上:

1.         驱动器级的数据库连接池

2.         数据库row pre-fetching

3.         data streaming

4.         多进程,多线程,完全可配置的app. Server

5.         优化的与web servers 间通信 

6.         JSP load balancing , JSP result caching

7.         RMI/IIOP access to EJBs includes server side load balancing.

8.         Performance optimization for distributed clustering

9.         在吞吐量/响应时间方面性能优秀

10.     新的服务器内部负载平衡计划,可提高处理分布式负载的性能

11.     具有主机内/主机间的高扩充性

负载平衡方案不能由用户配置,只能在三种预配置方案中选择。

可用性

1.         可保存和复制分布式用户会话信息及分布式应用程序状态信息

2.         提供高效、易扩展的方式保存持久状态和会话信息

3.         为以下组件提供分布、负载平衡和复制服务:
EJBs
,JSPs/Servlets
JDBC-based data sources
Backend integration access

4.         动态部署和扩展应用程序(不需停止服务器)

5.         动态配置进程和服务器(不需停止服务器)

IBM Websphere Advanced Edition 不成熟,它依靠数据库来共享/复制会话状态。IBM为3.0版本重新设计了会话保存方法,但效率和扩展性并不好,需要重起服务器。

安全性

支持:

 X.509 (通过目录服务器)

 RSA 加密, SSL, SHTTP

 完全实现EJB安全性; ACLs

 基于LDAP的用户认证

支持:

 X.509

 SSL

集成性

支持实时、同步连接

通过应用程序(EcXpert),支持异步、松耦合连接

Legacy Applications (实时连接):

        MQ Series

        CICS

        Tuxedo

        Peoplesoft

        SAP/R3

        Custom Apps

数据库:Oracle / Informix / Sybase

        DB2 /  SQL Server / ODBC

客户:Web (HTTP)

  通过NCF支持基于Corba的客户( C++) 

  通过NCOM支持基于COM的客户 ( ActiveX)

  通过RMI/IIOP支持Java客户

Websphere似乎不支持实时-同步连接

 

 

Legacy Applications:

      CICS

      MQSeries

      IMS

      不支持Tuxedo 和Peoplesoft                                                                          

 

 

数据库:Oracle /  Informix

        Sybase / DB2

客户:  Web / Corba / COM


iAS/NAS与BEA WebLogic的比较

 

iAS6.0

BEA WebLogic Server5.1

+ Enterprise 5.1

产品细节

JDK 1.2  / EJB 1.1 

Servlets 2.2 / JSP 1.1 

JDBC 2.0  / RMI/IIOP 1.0

JMS 1.0  / JNDI 1.2 

JTA 1.0  / JavaMail 1.1 

JAF 1.0  / Security 

利用XML实现应用程序组装和部署

JDK 1.2 /  EJB 1.1 

Servlets 2.2 / JSP 1.1 

JDBC 2.2 / RMI/IIOP 1.0

JMS 1.0 / JNDI 1.2 

JTA 1.0 / JavaMail 1.1 

JAF 1.0 / Security 

手工实现应用程序组装和部署

 

对象引用和映射功能需要第三方支持(TOPLink)                                      

新近注册J2EE许可 (4/00) 

性能和扩展性

支持跨应用程序服务器的负载平衡

(每app,每JSP /servlet / EJB)

复杂的程序分组(Application partitioning)

动态的负载平衡

动态的组件共享

 

健壮的设计

一个App Server上可以容易增加Java引擎,以充分利用系统资源。

Entities Beans可以在Java引擎间复制

 

iAS的高性能建立在以下技术基础上:

1.         驱动器级的数据库连接池

2.         数据库row pre-fetching

3.         data streaming

4.         多进程,多线程,完全可配置的app. Server

5.         优化的与web servers 间通信

 

iAS6.0还包括以下增强功能:

1.         JSP load balancing

2.         JSP result caching

3.         RMI/IIOP access to EJBs includes server side load balancing.

4.         Performance optimization for distributed clustering

5.         在吞吐量/响应时间方面性能优秀

6.         新的服务器内部负载平衡计划,可提高处理分布式负载的性能

7.         具有主机内/主机间的高扩充性

支持跨应用程序服务器的负载平衡,但无法作到完全透明、无程序分组、无动态的负载平衡

 

 

不好的设计

需要在每CPU上运行单独的app server才能最大利用主机资源

BEA的负载平衡计划不能被管理员配置,只提供三种预配置方案: round robin, weighted round robin 和random.

 

从内部看,iAS显示出具有比WebLogic Server.当前版本更快的速度,尤其是在拥挤的情况下

 

WebLogic具有下列功能:

数据库连接池

数据库row pre-fetching

可用性

1.可保存和复制分布式用户会话信息及分布式应用程序状态信息

2.提供高效、易扩展的方式保存持久状态和会话信息

3.为以下组件提供分布、负载平衡和复制服务: EJBs,JSPs/Servlets

JDBC-based data sources

Backend integration access

4.动态部署和扩展应用程序(不需停止服务器)

5.动态配置进程和服务器(不需停止服务器)

通常被认为不是一个高可用性的解决方案

WebLogic有比较好的服务分簇技术,但该技术相对较新,尚不成熟

 

WebLogic Enterprise 是:

 建立在BEA M3产品基础之上

 与WebLogic产品线上其他app servers使用不同的代码基

管理

iPlanet Deployment Tool:

1.         应用程序集中式组装,分组和服务器簇范围的动态部署

2.         能够进行分组的应用程序负载平衡

3.         支持同一簇上跨app server间的J2EE 应用程序打包和分组

 

iPlanet Application Server Administrator (iASA)

1.远程管理服务器和分布式应用程序 

2.动态配置进程和服务器

3.完善的日志功能

4.事件日志和错误分析

5.领先的管理功能

6.启动和运行时的监视可配置

 

iPlanet Directory Server 

提供集中式簇管理,易于管理

 

企业管理:

提供SNMP代理,可与流行的企业管理主控制台集成(如OpenView, UniCenter和Tivoli)

EJB Deployment Tool:

1.         仅仅是个EJB编译器和部署描述向导,而不是一个部署工具,管理员还是需要手工将EJB部署到运行环境中去

 

 

 

WebLogic Console:

1.         BEA 仅仅提供粗略的性能调优和操作监视功能

2.         BEA的Weblogic Server application deployment & server administration是基于对每个server属性文件的手工修改实现

3.         日志功能有限,仅支持记录到文件,日志分级仅能在启动时配置

4.         仅在启动时监视可配置

 

 

 

企业管理:

SNMP模块被单独出售