j2ee 应用服务器 pkuas

93
J2EE 应应应应应 PKUAS 应应应 [email protected] 应应应应应应应应应应应应 应应应应应 2004 应 12 应 2 应

Upload: mandell

Post on 15-Jan-2016

205 views

Category:

Documents


0 download

DESCRIPTION

J2EE 应用服务器 PKUAS. 刘天成 [email protected] 北京大学信息科学技术学院 软件研究所 2004 年 12 月 2 日. 目录. 一、 J2EE 技术介绍 J2EE 发展背景 J2EE 整体框架 J2EE 应用开发 构件技术: Enterprise Java Bean 二、 PKUAS 介绍 PKUAS 概览 主要技术特点 功能和性能 当前状况. J2EE 发展背景( 1 ). 企业应用向分布式应用的转移 实现互连 提供各种企业服务,如 : 安全,事务 多种技术出现,满足分布式应用的开发: CORBA - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: J2EE 应用服务器 PKUAS

J2EE 应用服务器 PKUAS

刘天成[email protected]

北京大学信息科学技术学院软件研究所

2004 年 12 月 2 日

Page 2: J2EE 应用服务器 PKUAS

2/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能– 当前状况

Page 3: J2EE 应用服务器 PKUAS

3/93

J2EE 发展背景( 1 ) 企业应用向分布式应用的转移

– 实现互连– 提供各种企业服务,如 : 安全,事务

多种技术出现,满足分布式应用的开发:– CORBA

– COM/DCOM

– .NET

Page 4: J2EE 应用服务器 PKUAS

4/93

J2EE 发展背景( 2 ) 激烈的商业竞争,对技术的更高要求

– 时间快– 低成本– 多功能– 高可靠– 易扩展– 易集成

: 快速开发,快速响应新技术和新要求: 易于开发,降低成本 : 提供数据库服务,自动邮件服务等: 完善的安全服务和事务服务

: 通过采用 CORBA 的互操作协议等集成 ERP 等遗留应用

: 构件核心机制提供了扩展性和移植性

Page 5: J2EE 应用服务器 PKUAS

5/93

J2EE 发展背景: 中间件的演化

Historically, mission-critical apps were built directly atop hardware– Tedious, error-prone, & costly

over lifecycles

There are layers of middleware

Commonalities abstraction Separation of concern

ApplicationDomain-Specific

ServicesCommon

Middleware ServicesDistributionMiddleware

Host InfrastructureMiddleware

Operating Systems& Protocols

Hardware

Page 6: J2EE 应用服务器 PKUAS

6/93

J2EE 发展历史及现状 历史可追溯到 1997 年, 1999 年由 SUN 公司发起,包

括 IBM , Oracle , Sybase , BEA 等公司共同提出了 J2EE 分布式框架

目前多家大公司都有成熟产品支持:– IBM : WebShpere

– BEA: WebLogic

– Oracle : 9iAS

– JBoss : JBoss

– ObjectWeb : JOnAS

– 金蝶: Apusic

Page 7: J2EE 应用服务器 PKUAS

7/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能

Page 8: J2EE 应用服务器 PKUAS

8/93

Java 2 Platform

Page 9: J2EE 应用服务器 PKUAS

9/93

J2EE 平台 一组完整套件

– J2EE 规范 : Specification

– J2EE 参考实现 : J2EE Reference Implementation

– J2EE 兼容性测试集 : J2EE Compatibility Test Suite

– J2EE 蓝图程序 : J2EE Blue Prints

Page 10: J2EE 应用服务器 PKUAS

10/93

J2EE is an End-to-End Solution

Page 11: J2EE 应用服务器 PKUAS

11/93

应用开发模型

Page 12: J2EE 应用服务器 PKUAS

12/93互操作性支持

Page 13: J2EE 应用服务器 PKUAS

13/93

J2EE 特点 目标:易于开发分布式应用 技术特点:

– JAVA 语言的跨平台特性– 基于构件的应用模式 :EJB

– 多种技术的集成– 互操作和集成能力

Page 14: J2EE 应用服务器 PKUAS

14/93

表示层表示层 数据层数据层业务逻辑层业务逻辑层

J2EE 体系结构

支持构件的服务器端中间件

数据库管理系统

遗产系统

J2SEJ2SE

Applet容器Applet容器

AppletApplet

J2SEJ2SE

独立客户容器独立客户容器

独立客户独立客户J2SE

Web容器Web容器

JSPJSP

ServletServlet

J2SE

EJB容器EJB容器

EJBEJB

J2EE 应用服务器

Page 15: J2EE 应用服务器 PKUAS

15/93

EJB — J2EE 的基石 Enterprise JavaBeans (EJB) 是: Java 服务器端服务框架的规范,软件厂商根据它来实现 EJB 服

务器。应用程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。

EJB 容器是: 一个管理一个或多个 EJB 类 / 实例的抽象。它通过规范中定义

的接口使 EJB 类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的接口。

EJB 服务器是: 管理 EJB 容器的高端进程或应用程序,并提供对系统服务的访

问。 EJB 服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如 CORBA 服务)的访问。一个 EJB服务器必须提供对可访问 JNDI 的名字服务和事务服务支持。

Page 16: J2EE 应用服务器 PKUAS

16/93

EJB 容器的责任

Page 17: J2EE 应用服务器 PKUAS

17/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能

Page 18: J2EE 应用服务器 PKUAS

18/93

6 方参与共同构筑 J2EE 应用 J2EE 平台提供者 应用构件创建者 应用组装者部署者 系统管理者工具提供者

Page 19: J2EE 应用服务器 PKUAS

19/93

应用构件创建者 提供 enterprise beans. 一个 bean就是一个可以重用的构件重用级别 (从低到高 )

– Reuse as given

– Reuse by customization

– Reuse by extension(subclass)

Page 20: J2EE 应用服务器 PKUAS

20/93

应用组装者 通过组装构件来构建应用

– 编写调用各个构件的代码– 提供构件间的调用流程– 提供用户接口– 编写新的基于特定领域的 EJB

Page 21: J2EE 应用服务器 PKUAS

21/93

EJB部署者将一个或者多个 EJB-jar文件作为一个应用部署到一

个运行中的操作环境中(应用服务器)– 解析所有的外部依赖条件– 将所有的 EJB 进行部署,例如对安全设置进行映射等

Page 22: J2EE 应用服务器 PKUAS

22/93

系统管理者监控已经部署的系统

Page 23: J2EE 应用服务器 PKUAS

23/93

应用开发过程

Page 24: J2EE 应用服务器 PKUAS

24/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能

Page 25: J2EE 应用服务器 PKUAS

25/93

EJB 概念 EJB — Enterprise Java Bean Enterprise—highly scalable , highly available , high

ly reliable , highly secure , transactional , distributed application

JavaBeans—component model(client-side) EJB— 扩充构件模型,实现了企业级 Java 平台上的服

务器端构件模型 构件模型

– Activex, JavaBeans – 业务逻辑过于简单,无法满足企业应用需求

Page 26: J2EE 应用服务器 PKUAS

26/93

定义 EJB 是用于开发和部署多层结构的、分布式的、面向

对象的 Java 应用系统的跨平台的构件体系结构

Page 27: J2EE 应用服务器 PKUAS

27/93

EJB 特性 能够重用,一次编写,到处运行 对服务器端计算能够分而治之减少了构建企业级应用的时间单线程构件

– 开发者不需要考虑代码是否线程安全– 容器自动进行负载平衡,将请求发到不同的实例进行处理

Page 28: J2EE 应用服务器 PKUAS

28/93

EJB 的分类 Entity Bean

– Container-Manage Persistence Entity Bean

– Bean-Manage Persistence Entity Bean

Session Bean– Stateful Session Bean

– Stateless Session Bean

Message Driven Bean

Page 29: J2EE 应用服务器 PKUAS

29/93

实体 bean ( Entity Bean)业务数据模型

对业务概念的反映,也称为领域类( domain class)

在持久存储中业务实体的对象视图 提供访问和操作数据的对象封装 支持多用户共享的数据 可以从数据库中存储的属性重新实例化

– EJB 服务器崩溃后仍可重构– 与数据库中的数据有一样长的生命

Page 30: J2EE 应用服务器 PKUAS

30/93

实体 bean 的持久性 Bean-Manage Persistence (自管理持久性)

– 优点:• 开发者有完全的控制、无需复杂的提供商支持

– 缺点:• 编码复杂、在改变时需要重新编码和部署、影响可移植性

Container-Manage Persistence (容器管理持久性)– 优点:

• 提供商解决,可能会有更好的缓冲和性能、在部署描述符中进行改变即可、可移植性好

– 缺点:• 对容器提供商的工具依赖性强、可能不易反映复杂的数据关系

Page 31: J2EE 应用服务器 PKUAS

31/93

会话 bean(Session Bean)会话 bean经常用于涉及多个实体 bean 的业务处理和控制逻辑。

Session

EntityEntity Entity

Page 32: J2EE 应用服务器 PKUAS

32/93

会话 bean(Session Bean)(2)相对生命较短(一般与客户同步)

在 EJB 服务器崩溃时被删除

不表示数据库中的数据,但可以访问数据

作为一个客户的代表执行功能

Page 33: J2EE 应用服务器 PKUAS

33/93

何时使用会话 Bean 使用会话 bean 对针对于某一客户的处理或控制对象

建模 对工作流、任务和管理活动等建模(如订房、购物车

等) 协调多个实体 bean ,控制实体 bean之间的交互将业务应用逻辑从客户端转移到服务器端

Page 34: J2EE 应用服务器 PKUAS

34/93

会话 Bean?实体 Bean?会话 bean

表示一个业务过程 每一客户一个实例 Short-lived :与客户生命同步

暂态的 服务器崩溃后丢失 可以是事务性的

实体 bean 表示业务数据 在多个客户间共享实例 Long-lived :与数据库

中数据同步 持久的 服务器崩溃后可重构 总是事务性的

Page 35: J2EE 应用服务器 PKUAS

35/93

两种类型的会话 bean无状态( Stateless ) bean

– 表达一个无状态的服务(如列表, mail )– 不存储用户相关信息,进行对请求的响应– 暂态的– 可用来构造响应频繁而简单的访问的 bean池

有状态( Stateful ) bean – 维护客户状态

Page 36: J2EE 应用服务器 PKUAS

36/93

EJB 构件的实现步骤1. 创建远程接口2. 创建 Home 接口3. 创建 Bean 的实现类4. 编译远程接口、 Home 接口、 bean 实现类5. 创建部署描述符6. 将以上三个文件与部署描述符文件打包为一个 ejb-jar文件

7. 部署 EJB 构件

Page 37: J2EE 应用服务器 PKUAS

37/93

EJB 的组成 Java文件

– Bean 类– Home 接口– Remote 接口– PK ( Primary Key )类

部署描述符– ejb-jar.xml, pkuas-ejb.xml, pkuas-web.xml, database.xml……

– application.xml

Page 38: J2EE 应用服务器 PKUAS

38/93

一个 EJB 的三个关键类作为 Bean 的开发者,主要关注于三个类:

EJBHome 接口(扩展 javax.ejb.EJBHome 接口):使用了 factory设计模式,定义了创建、查找 EJB的方法。

EJBObject 接口(扩展 javax.ejb.EJBObject 接口):使用了 proxy设计模式,定义了在 bean 中实现的业务逻辑方法。

Bean 实现类(实现 javax.ejb.EntityBean/SessionBean ):实现业务逻辑。

Page 39: J2EE 应用服务器 PKUAS

39/93

EJB 的实现 (举例)—创建远程接口

// business methodspublic interface Account extends EJBObject {

//return the account information corresponding to this account.public AccountModel getDetails() throws RemoteException;// updates the contact information for the specified accountpublic void changeContactInformation(ContactInformation info)

throws RemoteException;}

Page 40: J2EE 应用服务器 PKUAS

40/93

EJB 的实现—创建 Home 接口

public interface AccountHome extends javax.ejb.EJBHome {public Account create(String userId,

String status, ContactInformation info)throws RemoteException,DuplicateKeyException,CreateException;

public Account findByPrimaryKey (String userId)throws RemoteException, FinderException;

}

Page 41: J2EE 应用服务器 PKUAS

41/93

EJB 的实现— AccountBean 的实现public class AccountEJB implements EntityBean {

// entity state

private String userId;

private String status;

private ContactInformation info;

// resources

private EntityContext context;

// implement account interface business methods

public void changeContactInformation(ContactInformation info) {

this.info = info;

}

public AccountModel getDetails() {

return(new AccountModel(userId, status, info));

}

Page 42: J2EE 应用服务器 PKUAS

42/93

EJB 的实现— AccountBean 的实现// must match signatures of create methods in Home interface

public String ejbCreate (String userId, String status, ContactInformation info)

throws DuplicateKeyException,CreateException {

// set the instance data

this.userId = userId;

this.status = status;

this.info = info;

AccountDAO ADAO = new AccountDAO(userId, status,info);

try{

ADAO.create(); // insert data in database

return (userId); // return primary key

}catch (java.sql.SQLException se) {

throw new CreateException ("SQL Exception in create:" + se);

}

}

Page 43: J2EE 应用服务器 PKUAS

43/93

EJB 的实现— AccountBean 的实现

Page 44: J2EE 应用服务器 PKUAS

44/93

PKUAS上可部署包形式 直接部署 EJB

– 以 Java ARchive(jar) 的形式– 里面包含一个或多个 EJB

Web 模块– 以 Web ARchive(war) 的形式– 里面包含 JSP页面、 JavaBeans 等

企业应用– Enterprise ARchive (ear)– 里面包含一个或多个 EJB 模块 (每个 EJB 模块为一个 jar文件 ) 和一个

或多个 Web 模块 (每个 Web 模块为一个 war文件)

Page 45: J2EE 应用服务器 PKUAS

45/93

应用组装、部署过程1. 编写 EJB 、 JSP 、 JavaBeans 等2. 编译 Java 类(包括 EJB 等)3. 为 EJB编写部署描述文件( ejb-jar.xml, pkuas-ejb.xml)4. 为 EJB打包(包含 EJB 需要的类以及它的部署描述文件)5. 为每个 Web 模块编写部署描述文件( web.xml )6. 为每个 Web 模块打包(包含这个 Web 模块的 JSP 、 JavaBe

ans 和其它类、页面文件等)7. 编写整个应用的部署描述文件( application.xml )8. 为整个应用打包(包含所有 EJB 、 Web 模块以及应用部署描述文件)

9. 部署应用、启动 PKUAS

Page 46: J2EE 应用服务器 PKUAS

46/93

编译 Java 类 CLASS_PATH

ejb2.0.jar 、 pkuas.jar 、 jmxri.jar

同时编译所有类EJB 接口、 EJB 的 Bean 类等

Page 47: J2EE 应用服务器 PKUAS

47/93

从客户端看的 EJB视图

clientclientGlueGlue

containercontainerserverserver

EJBObjectBean

EJBHomeCreate,

find

Business Method

Page 48: J2EE 应用服务器 PKUAS

48/93

从更深层次理解 EJB视图JDK

javax.ejb

Bean Provider

xxx Container Provider

Page 49: J2EE 应用服务器 PKUAS

49/93

EJB 的其它方法与生命周期

Page 50: J2EE 应用服务器 PKUAS

50/93

消息驱动 Bean ( Message Driven Bean ) 提供对异步调用的支持 作为 Java Message 的消费者

Page 51: J2EE 应用服务器 PKUAS

51/93

EJB 的事务处理 EJB 服务器的概念使平台提供商可以在可伸缩的、可

靠的、分布的事务服务方面提供增值服务。 事务提供一个“ all-all-nothing” 的简单模型来管理工

作,即所有对象成功更新,所有工作成功提交,或者一个对象失败而整个工作回滚。

事务的两种使用方式:– 在“部署描述符”中声明,即“声明式事务” – 使用事务 API ( JTA ),即“编程式事务”

Page 52: J2EE 应用服务器 PKUAS

52/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能– 版本历史

Page 53: J2EE 应用服务器 PKUAS

53/93

PKUAS 概览( 1 )标准容器: J2EE中服务器容器

– 标准 EJB容器:• 无态会话 EJB容器、有态会话 EJB容器、实体 EJB容器、消息驱动 EJB容器

– Web容器• 集成 Tomcat

标准互操作协议– IIOP v1.1, JRMP, SOAP

– 与其它应用服务器或中间件的互操作– 互操作协议可配置

Page 54: J2EE 应用服务器 PKUAS

54/93

PKUAS 概览( 2 )标准服务

– 标准 Java名字服务, JNDI– 基于 JAAS的安全服务

• 可配置的登录模块– 基于数据库的事务服务( JTS)– 数据库连接池( JDBC Pool)– Java消息服务( JMS)– Java邮件服务( Java Mail)

自定义服务– 日志服务

服务可配置

Page 55: J2EE 应用服务器 PKUAS

55/93

PKUAS概览( 3) 通过的兼容性测试

– J2EE Blueprint Application :• Java Pet Store v1.3

– 开源应用服务器 JONAS 的兼容性测试包• http://jonas.objectweb.org/tests.html

Page 56: J2EE 应用服务器 PKUAS

56/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能– 版本历史

Page 57: J2EE 应用服务器 PKUAS

57/93

PKUAS 主要技术特点遵从 J2EE 1.3/EJB 2.0 规范 构件化的平台体系微内核 可配置服务管理框架 开放式互操作框架

Page 58: J2EE 应用服务器 PKUAS

58/93

构件化体系结构

虚拟机

服务 工具

容器系统

命名服务

事务服务

安全服务

部署

管理 通信服务

· · ·

微内核

· · ·

容器

构件

Page 59: J2EE 应用服务器 PKUAS

59/93

基于 JMX 的微内核

MBeanServer

Services, Tools, Container Systems

Java Management Extension– Java 对象的管理规范

• PKUAS 的微内核实现为 MBeanServer– MBean 的注册中心– MBean 的调用框架

• PKUAS 中的容器、服务都实现为 MBeans

MBean 对象管理接口

业务接口

Page 60: J2EE 应用服务器 PKUAS

60/93

互操作参与者

JSP/ Servlet

EJB 服务 独立

应用

Cos Naming

Registry

UDDI

JNDI服务

本地

绑定

名字代理

连接器

接收器

传输器

TCP Local UDP HTTP

IIOP

JRMP

SOAP

Local

Stub Skeleton

IDL编译器

Remote编译器

Local编译器

WSDL编译器

互操作框架

Page 61: J2EE 应用服务器 PKUAS

61/93

Web Server

全面支持 Web Services

Web 容器 EJB 容器

客户EJBEJB

EJB to WSDL

WSDL to EJB

JavaClass

JavaClass

将 Java普通对象或 EJB 发布为WEB 服务

JSP/Servlet

JSP/Servlet

查找WEB 服务

SOAP接收器

SOAP接收器

请求转发

HTTP监听器

HTTP监听器

JNDI服务

UDDI服务器

PKUAS

请求

WEB 服务

Page 62: J2EE 应用服务器 PKUAS

62/93

集群

Page 63: J2EE 应用服务器 PKUAS

63/93

集群( cont. ) 支持 Web 和 EJB两层的集群

– 两层分别提供负载均衡与容错 EJB层

– 可选的 3 种负载均衡粒度– 可选的 5 种负载均衡策略– 自动更新节点信息

Web层– 与 Apache 集成

Page 64: J2EE 应用服务器 PKUAS

64/93

工具 基于 Web 的管理工具,支持 JSR 77独立的组装、部署工具 支持开发的 Eclipse插件 WebLogic 可部署包向 PKUAS 可部署包的自动转换工具

Page 65: J2EE 应用服务器 PKUAS

65/93

Java Pet Store

Page 66: J2EE 应用服务器 PKUAS

66/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能– 版本历史

Page 67: J2EE 应用服务器 PKUAS

67/93

兼容性J2EE API Version

JDBC Extension 2.0

Enterprise JavaBeans 2.0

Servlet 2.3

Java Server Pages 1.2

Java Message Service 1.0

Java Transaction API 1.0

JavaMail 1.2

Java Active Framework 1.0

JAXP 1.1

Connector 1.1

JAAS 1.0

Page 68: J2EE 应用服务器 PKUAS

与 BEA WebLogic 8 的功能对比Feature Detail

Presentation services Build-in web server

Servlet engine

Business logic services EJB container

Distributed transaction management with two-phase commit

Enterprise messaging platform JMS

JavaMail

Information access services JDBC support/drivers

Naming and directory services

XML

Integrated development tools WebGain studio, VA Java, JBuilder

Integrated security Flexible Authentication and Authorization

Integrated security and firewall support

Integrated logging

Enterprise management Web based management console

Java management extension

SNMP

Page 69: J2EE 应用服务器 PKUAS

69/93

与 WebSphere 4.0 的功能对比PCs Browsers Pervasive device

Relationaldatabases Legacy

systems

ERPsystems

OtherApplication

servers

Access Services(HTTP, IIOP)

RuntimeServices

Connectionservices

Web Server

J2EE, Web Services,

Java Servlet, EJB

E-businessapplications

ORB

WebSphere Application Server

Page 70: J2EE 应用服务器 PKUAS

70/93

JBoss 3.2 The JBoss JMX Microkernel Naming on JBoss - The JNDI Naming Service Transactions on JBoss - The JTA Transaction Service EJBs on JBoss - The EJB Container Configuration and Archite

cture Messaging on JBoss - JMS Configuration and Architecture Connectors on JBoss - The JCA Configuration and Architecture Security on JBoss - J2EE Security Configuration and Architect

ure Integrating Servlet Containers The CMP Engine Web Services

Page 71: J2EE 应用服务器 PKUAS

71/93

金蝶 Apusic 表示层 业务逻辑层 数据层 安全服务 事务服务 名字服务 WEB SERVICES 与 CORBA 的互操作 配置、管理及效率查看工具

Page 72: J2EE 应用服务器 PKUAS

72/93

TongWeb TongWeb内核,实现核心服务,包括 Service Manager, 底层日志服务、底层线程服务等。

TongWebDirector, 实现与 IIS/Apache/iPlanet 的连接,并提供均衡负载功能。

连接接入管理器,实现 Web 应用基于 HTTP/HTTPS/Director 等多种方式的接入。

Web 容器,实现表示层支持功能,主要是 Servlet 和 JSP 的支持,支持 Web 应用集成。

EJB 容器,实现业务层支持功能,主要是 EJB1.1 和 EJB2.0 的支持 , 支持部分 EJB2.1 的特性。

名字服务模块,支持 JNDI1.2l 。 数据库管理器,实现 JDBC2.0/3.0 ,提供 DataSource 支持,支持 XA 和 Po

oll 。 资源管理器,实现 JCA 框架,管理外部资源。

Page 73: J2EE 应用服务器 PKUAS

73/93

TongWeb ( cont. ) 安全管理器,实现基于容器的安全策略 , 支持基于 DataSource

和 LDAP 的安全域。 交易(事务)管理器,支持分布式交易,实现 JTA 接口。 管理控制台,基于 JMX 以 Web 方式管理。 命令行工具,实现 TongWeb启停、组件装载 /卸载功能。 Jbuilder 开发插件,提供面向 TongWeb 的 Web/EJB 组件开发、调试、打包、部署功能。

提供内置 JMS Server ,实现消息的点到点和发布 /订阅功能,可以通过集成的 TongLINK/Q 实现 JMS Server 的集群。 

JavaMail 服务模块,支持 JavaMail1.2, 提供基于 JNDI 的 mail session 。

JMX 服务模块,支持 JMX1.2 ,提供 RMI Connector 。

Page 74: J2EE 应用服务器 PKUAS

74/93

PKUAS :微内核灵活性和易配置性 集群工具支持 Web Services ……

Page 75: J2EE 应用服务器 PKUAS

75/93

性能测试:响应时间

0

10000

20000

30000

40000

50000

60000

70000

80000

1 32 256 1024 2048 4096

bytes of input parameters

milli

seco

nds o

f 100

00 ca

lls

JBoss-JRMP

INTERWEB-JRMP

INTERWEB-Local

PKUAS 上 RMI-JRMP的调用响应时间与开源 J2EE 应用服务器

JBoss 3.0.3 版本上的JRMP 调用延时基本

相同。

Page 76: J2EE 应用服务器 PKUAS

76/93

响应时间 PKUAS 对 SOAP消息的响应明显快于 JBoss

100000

300000

500000

700000

900000

1100000

1 32 256 1024 2048 4096

bytes of input parameters

milli

seco

nds o

f 100

00 ca

lls

JBoss-SOAP For Servlet

PKUAS-SOAP For Servlet

PKUAS-SOAP For EJB

PKUAS-SOAP

Page 77: J2EE 应用服务器 PKUAS

77/93

中国税收征管系统数据应用平台 测试结论

– 在较低配置的硬件环境下,纳税人规模较小、并发用户数量较低时, InterWeb 的性能略优于 WebLogic

– CDAP+InterWeb 可以满足 2万规模纳税人的性能需求,对最复杂的增值税一般纳税人全业务的处理能力约为 0.8~0.9笔 /秒,且服务器运行平稳,经过8小时不间断压力测试依然能够正常稳定运行

– 适用于 2万规模纳税人的 InterWeb 应用服务器硬件配置:可使用配置较好的台式 PC , CPU 2.0GHz ,内存不小于 512M ,建议为 1G , 2G最佳

Page 78: J2EE 应用服务器 PKUAS

78/93

与 WebLogic 的对比测试交易平均响应时间对比图

0

50

100

150

200

250

0 50 100 150 200

用户数

s平均响应时间()

I nterWeb测试服HP PC务器(

Server)I nterWeb对比服

PC务器(台式 )

WebLogi c对比服HP PC务器(

Server)

来源:《 CDAP+InterWeb性能测试分析报告》 (神州数码)

Page 79: J2EE 应用服务器 PKUAS

79/93

与 WebLogic 的对比测试服务器处理能力对比图

8

9

10

11

12

0 50 100 150 200

用户数

/s处理能力(事务数

I nterWeb测试HP PC服务器(

Server)I nterWeb对比服务器(台式PC)WebLogi c对比

HP PC服务器(Server)

Page 80: J2EE 应用服务器 PKUAS

80/93

PKUAS 与主流 J2EE 应用服务器的整体对比 功能

– 基本功能齐全– 容器、服务可配置– 灵活

性能– 对环境要求很低

• WebBOS: PII 300MHz 、 192M Memory

– 在中低档机器上有优势价格…

Page 81: J2EE 应用服务器 PKUAS

81/93

与主要竞争对手对比JBOSS Apusic TongWeb PKUAS

Naming √ √ √ √

EJB Container √ √ √ √

WEB Container √ √ √ √

JTS/JTA √ √ √ √-

JMS √ √ √ √

Security √ √ √ √

Cluster √ √- web √- JMS WEB √

JAVAMAIL √ √ √ ×

JCA √ × √ ×

DataSource √ √ √ √-

Web Service √ √ √ √

Plugin Eclipse Jbuilder × Jbuilder Eclipse

Manager Tool JSR77 √ √ √

Deploy Tool √ √ √ √

Page 82: J2EE 应用服务器 PKUAS

82/93

目录 一、 J2EE 技术介绍

– J2EE 发展背景 – J2EE 整体框架 – J2EE 应用开发– 构件技术: Enterprise Java Bean

二、 PKUAS 介绍– PKUAS 概览– 主要技术特点– 功能和性能– 版本历史

Page 83: J2EE 应用服务器 PKUAS

83/93

PKUAS 历史 2001 年 7 月, PKUAS 0.1版

– EJB 容器– 通信服务– Naming 服务

2002 年初, PKUAS 0.2版– 集成 Tomcat 3.x 作为 web 容器

2002 年 7 月, PKUAS 0.3版– 升级 Tomcat 到 4.x版本

2003 年 5 月, PKUAS 0.3_51版– 重构 EJB 容器

Page 84: J2EE 应用服务器 PKUAS

84/93

PKUAS 历史( cont. ) 2004 年初, PKUAS 2004

– 通过 JOnAS 的测试集– 开始支持应用实际运行

2004 年 11 月, PKUAS 2004V2– 升级 Tomcat 到 4.1.30

– 加入集群– 支持 Web Services

– 提供丰富的工具支持

Page 85: J2EE 应用服务器 PKUAS

85/93

PKUAS 2004V2 标准容器

– 支持全部类型 EJB 的 EJB 容器– 支持 JSP/Servlet 的 Web 容器

标准服务– 名字服务– 数据库连接池服务– 事务服务– 安全服务– Java消息服务– Java Mail 服务

Page 86: J2EE 应用服务器 PKUAS

86/93

PKUAS 2004V2 ( cont. ) 扩展服务

– 日志服务– 用户自定义服务

灵活的配置能力– 只需要在直接或通过管理工具修改配置文件,就可以随意启

动或停止一个服务强大的互操作能力

– 可以通过 JRMP 、 IIOP 、 SOAP 与其它系统进行交互– 用户可以任意扩展互操作协议

Page 87: J2EE 应用服务器 PKUAS

87/93

PKUAS 2004V2 ( cont. )部分支持 J2EE 1.4/EJB 2.1 规范

– 对 Web Services 的支持– 扩展的 EJB QL

– 符合 Java 管理规范( JSR77 )的 MEJB 接口强大的集群

– Web 和 EJB 分两层进行负载均衡与容错– 多达五种负载均衡策略– 动态更新集群节点、自动部署

Page 88: J2EE 应用服务器 PKUAS

88/93

PKUAS 2004V2 ( cont. ) 基本工具支持

– 符合 Java 管理规范的 MEJB 接口和基于 Web 的管理工具– 支持 EJB 创建、应用组装和部署的部署工具– 支持整个开发过程的 Eclipse插件– 支持应用移植的自动转换工具WebLogic2PKUAS

扩展工具支持– 面向特征( Feature )的需求建模工具– 基于软件体系结构( Software Architecture )的设计工具

Page 89: J2EE 应用服务器 PKUAS

89/93

面向特征的需求建模工具

Page 90: J2EE 应用服务器 PKUAS

90/93

基于软件体系结构的设计工具

Page 91: J2EE 应用服务器 PKUAS

91/93

应用情况 北大青鸟构件库系统 (JBCL)

– 广州、长沙、上海山东省高新技术投资有限公司信息系统

教育部网上合作中心研究平台 (WebBOS) 、 973课题网站 (sscc.pku.edu.cn)

北京大学 数字校园系统 (map.pku.edu.cn)

神州数码 中国税收征管系统数据平台 (CDAP)万维易化 软件企业管理软件

Page 92: J2EE 应用服务器 PKUAS

92/93

Page 93: J2EE 应用服务器 PKUAS

93/93

有任何问题,请与我们联系

[email protected]