第五章: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 WebSphereBEA WebLogic)相比较得到的结果。

iAS/NASIBM 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

  通过本地APIWeb Server连接,性能高

操作系统:

  NT

  AIX

  Solaris                                           

 

 

Java

  JDK 1.1.7(w/limitations)

Web Server

  NES

  IIS

  Apache

  IBM WebServer

  仅通过CGIWeb 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 不成熟,它依靠数据库来共享/复制会话状态。IBM3.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/NASBEA 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.为以下组件提供分布、负载平衡和复制服务: EJBsJSPs/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, UniCenterTivoli

EJB Deployment Tool:

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

 

 

 

WebLogic Console:

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

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

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

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

 

 

 

企业管理:

SNMP模块被单独出售