55
1 TUXEDO 应用系统概要 本文档目的在于使您对交易中间件TUXEDO有一个 粗略的认识,并为以后的系统设计或者开发部署提供一些 参考,更好的让中间件服务于我们的应用系统.这里不会关 注具体配置和开发的细节. [email protected] 2003.5

TUXEDO 应用系统概要 本文档目的在于使您对交易中间件TUXEDO …read.pudn.com/downloads123/ebook/522455/tuxedo.pdf · WSL JSL JOLT WebLogic C/C++ PB,Delphi, VB,VC

  • Upload
    others

  • View
    26

  • Download
    0

Embed Size (px)

Citation preview

1

TUXEDO 应用系统概要

本文档目的在于使您对交易中间件TUXEDO有一个粗略的认识,并为以后的系统设计或者开发部署提供一些参考,更好的让中间件服务于我们的应用系统.这里不会关注具体配置和开发的细节.

邱 鹏[email protected]

2003.5

2

包含以下内容…

TUXEDO简介

中间件及多层结构

应用系统结构

自身结构

应用系统管理

应用开发

一些个人的看法

相关的学习资源

3

TUXEDO 简介 发展历史

1983 AT&T Bell Lab 构建了UNIX-based Transaction System (UNITS),形成了基于C/S框架的TUX(Transactions for UNIX)

1984发布UNITS 1.0,单机模式(SHM),提供C/S间的请求/响应API,形成Bulletin Board (BBL).

1986 V2.0提高系统可用性,支持重启失败的应用服务进程

1987 V3.0开始支持多机模式(MP),应用集中控制文件(UBBCONFIG),管理命令开始形成. AT&T architect Tom Bishop命名了TUXEDO,意思是:Transactions for UNIX Extended for Distributed Operations

1989 归到AT&T UNIX系统实验室,首个商业版本4.0发布,支持基于LAN的异构平台,ATMI事务,支持全局事务的XA接口,typed buffers

1993 Novell 通过得到AT&T UNIX系统实验室得到TUXEDO, 4.2版发布,支持PC和workstation客户端(/WS),支持mainframes (/HOST),会话模式,稳定的队列系统(/Q)

4

TUXEDO 简介 发展历史

1994 V5.0,支持联合模式(/Domian),支持与OSF的DCE应用通过TxRPC通信

1995 提供系统管理编程接口,支持GUI,支持ACL,提供事件代理机制

1996 Novell除保留TUXEDO商标外,将TUXEDO转让给BEA

1998 V6..3

1999 V6.4/5

2000 V7.1 多线程server; 嵌入式 FML; XML 缓冲区; public-private key security ; /Domain MIB

2001 V8.0 增强对CORBA应用的支持, 新的负载均衡机制,提高server和Domain性能,加强和Weblogic Server的整合

2003 V8.1

5

Vendor OS Release

HP HP-UX 10, 11, 11i

HP Tru64 UNIX 4,5

HP Himalaya NSK D45, G05

HP OpenVMS 7

Sun Solaris 7,8,9

Fujitsu UXP/DS V20

Microsoft Windows XP Pro, NT4

Microsoft Windows 2000 Pro, AS

RedHat Linux 6, 7, AS

IBM AIX 4,5

IBM DYNIX/ptx 4

IBM OS/390 V2

IBM OS/400 V5

NEC UX/4800 R11, R12

NCR MP-RAS 3

Siemens/Pyramid Reliant UNIX 5

SGI SGI IRIX 6

Data General DG/UX 4

SCO OpenServer 5

SCO UnixWare 2,7

TUXEDO 简介 支持的操作系统

From: http://www.bea.com

6

中间件及多层结构 中间件概述

关于中间件没有一个标准的定义.可以理解为是处于操作系统和应用程序之间的平台软件,由于BEA,IBM等厂商的推动,近几年在国内获得广泛的应用,并得到认同.

中间件 = 平台+通信开发和管理应用的平台,异构系统间的通信,不同部件间的通信.

狭义的中间件通常指TUXEDO,CICS等交易中间件,广义的大致分类(可能有不同的分类方法):1.通信处理(消息)中间件 [MQ, MessageQ, TongLINK]2.事务处理(交易)中间件 [TUXEDO, CICS, TongEasy]3.数据存取管理中间件4.Web服务器中间件 [Weblogic, Websphere, SUN ONE, Oracle AS]5.安全中间件6.跨平台和构架的中间件 [CORBA, ]7.专用平台中间件8.网络中间件

7

中间件及多层结构 采用中间件之前的两种业务处理模式

将应用系统逻辑上分成三个部分:表示层(用户界面) 业务逻辑 数据(Resource Manager)

用户界面 业务逻辑 RM

Windows IDE(PB,Delphi,VB,VC etc)

RDBMS, File System(1)

Client StoredProcedure

RDBMS

(Without Business Logic)Business Logic

(2)

8

中间件及多层结构 引入中间件后的三层结构

Client 业务逻辑 RM

C/C++,Win IDE 交易中间件 RDBMS

Browser Application Server RDBMS

终端 终端服务器 RDBMS

将业务逻辑在逻辑和物理上独立出来,可以有自己的操作系统和应用平台.

9

中间件及多层结构 实际应用中的多层结构

将业务逻辑完全的独立出来的另一个特点是可以进行很好的扩展,不仅是该层的处理单元(PE)数目,还包括业务逻辑部分的层数,实际中通常是多层的结构.例如:

Uniface终端

UnifaceServer TUXEDO Oracle

Browser WebLogicServer TUXEDO OracleJolt

10

中间件及多层结构 无限的可扩展性…

中间件通常都支持多平台,从大型主机到PC,具有良好的网络通讯接口,并提供丰富的编程接口,这就使得中间件系统具有非凡的可扩展行.

WEB WEBServer

RM

RMRM

CORBAClient

TM

Client

Internet/Intranet

11

应用系统结构 数据库连接

任何企业级的应用系统几乎都离不开数据库,或者可以说数据是系统的核心资源和最宝贵的财富,而TXUEDO等中间件是系统的核心业务处理部分,所以它们之间的连接就显得十分重要.目前采用的方式主要有两种:

方法一:直连

这种方式是在程序中通过指定数据库,并提供用户名和密码来连接.这个主要是基于开发语言的支持.例如Oracle开发中使用广泛的Pro *C/C++,提供了EXEC SQL CONNECT 语句.

这种方式使用起来更简单,系统没有复杂的结构时可以采用这种方式.

12

应用系统结构 数据库连接

方式二: XA方式

XA接口是Open Group 提出的分布式处理模型的一部分,这是一个资源管理器和事务管理器之间的双向接口. 目前主流的数据库产品和中间件产品都支持这一接口.后面应用系统管理部分将讲到配置的方法.

这种方式的好处是通过相应的配置可以连接多个数据库,并可以实现两阶段提交,更适合系统中又多个数据库的分布式环境.而且中间件和数据库之间只保持固定数目的连接,在用户数据很大的时候不致于使数据库的连接数过多.

xa_*()

ax_*()

TMRM

13

应用系统结构 客户端

中间件是一个承上启下的部分,前面说到了和数据库的连接,下面来看一下TUXEDO的客户端.

我们将客户端大致分为以下几种:

1.Native (本地客户端)指不经过网络,客户端和TUXEDO Server逻辑上在同一台处理

机上.从配置上讲,使用这种客户端不需要额外的配置就可以直接使用.但是由于TUXEDO主要用户多层或者分布式的结构,实际使用中,这种客户端一般不会采用.

3.Java ClientTUXEDO提供的Java接口.

14

应用系统结构 客户端

2.WSC(Workstation Client)

这是TUXEDO最主要的一种客户端,也是使用比较多的.需要在配置文件中添加system supplied server WSL,并给相关参数设置合适的值.还需要通过MAXWSCLIENTS指定最大的WSC数目.

在客户端方面需要安装TUXEDO客户端,设置环境变量TUXDIR,并通过WSNADDR环境变量指定TUXEDO服务器的IP和端口.

这种客户端是实际中采用得最多,我们看一下它的连接过程.

15

应用系统结构 客户端

WSC的连接过程示意图:

WSC

WSH

WSL

WSH …

1. tpinit(), tpchkauth()

2.return address of WSH

3.Info

rming

WSH

4.send request with data

5.Return result set

16

应用系统结构 客户端

TUXEDO

Native

WSL JSL

JOLT

WebLogicC/C++ PB,Delphi,

VB,VC etc

Terminal Server

17

应用系统结构 客户端

常见的几种WSC的比较:

1.C/C++

这种客户端是最直接也是最简洁的,性能上讲也是最好的,因为TUXEDO提供的编程接口就是C的.所以它是学习TUXEDO编程时最好的客户端.在实际中主要用作测试用客户端和一些系统间的接口.

另外的用法可能就是对客户端的一些C函数进行封装,例如制作成DLL,给其它的IDE调用.

18

应用系统结构 客户端

2.Win IDE.

这类客户端是通过Windows版TUXEDO Client提供的lib和dll文件来使用相关的API,从而和TUXEDO进行交互.

它的一个很明显的好处是可以利用这些IDE良好的用户界面和自身比较强大的功能,更便于用户的使用,所以这里客户端在实际中也得到广泛的应用.

这类客户端通常有Delphi,PB,VC,VB,BCB等.

19

应用系统结构 客户端

3.Terminal Server

这一类是以UNIFACE为代表的终端服务器类型的客户端,用户使用的终端和UNIFACE服务器之间本身就是一个C/S模式的.

从TUXEDO的角度来讲,这时UNIFACE服务器就是一个WSC.从形式上来说,它和web方式的客户端很相似,但是实际上它是WSC,因为TUXEDO是通过WSL来接收请求的.

这类客户端在金融,电信等行业的应用比较普遍.

20

自身结构 TUXEDO系统整体结构图(不含CORBA)

注:来自TUXEDO官方文档.

21

自身结构 with OS

TUXEDO系统本身也是在OS之上的,虽然TUXEDO支持很多OS(前面列表中提到),但是涉及具体的OS时在实现上也会不同,这个不在我们的讨论范围.要特别提出的是在UNIX系统上,TUXEDO用到的几种IPC(进程间通信)资源.

1> SEM 信号量

2> MSG 消息队列 [大量使用]

3> SHM 共享内存

22

自身结构 with OS

通过UNIX的系统命令(such as ipcs in HP-UX),我们可以在OS中看到TUXEDO使用的这个资源.

这里不对使用的方式做研究,我们要做的是和UNIX系统管理员一起,给和这些IPC相关的UNIX核心参数设置合适的值,以便使TUXEDO有更好的稳定性和性能.

具体可以参见官方文档中的 Configuring the UNIX Operating System for the BEA TUXEDO

23

应用系统管理 核心配置文件

TUXEDO的配置主要是通过一个核心配置文件来实现的。通常称之

为ubb文件,这是一个文本文件,里面记录TUXEDO应用系统的一些环境,参数,以及server等信息。

编辑好这个文件之后,通过tmlaodcf将其编译成二进制信息,一般名为tuxconfig,TUXEDO启动会读取相关的信息。需要说明的是,如果要修改ubb的内容,并重新编译,需要将TUXEDO重启。

ubb的涉及的内容比较多,大致可以分为几个部分,称之为section,有:

*RESOURCES*MACHINES*GROUPS*SERVERS*SERVICES

里面的内容虽然比较多,但是是按照一个层次的逻辑来组织的。

24

应用系统管理 应用系统层次结构

Domain

Machine

Group

Server

Service

TUXEDO应用系统的层次结构图

25

应用系统管理 区域间通信

我们的一个应用是一个Domain,里面有一个Machine或者多个Machine,单个Machine的称为SHM模式,多个Machine的称为MP模式。

在MP中,多个Machine可以通过Bridge相连。

在实际应用中,多个应用之间可能需要相互合作来完成某个流程。这时就需要多个Domain间的通信。这个是通过Gateway来实现的。

Machine A Machine BBridge

Domain A Domain BGateway

26

应用系统管理 四种主要的管理方式

一个实用的中间件系统必须提供方便的管理方式,以便进行系统的

配置和运行时的管理.这是系统不可或缺的部分,TUXEDO提供了四种完全不同的管理方式:

1> 命令行方式 (Command line)

2> 图形管理界面(WEB GUI)

3> BEA Manager(TUXEDO的管理工具)

4> 可编程管理接口(Management Information Base, MIB )

27

应用系统管理 命令行管理

这个管理方式是最简单也是系统启动后直接可用的一种方式,它提供了一组相关的管理命令.常用的有下面一些:

一:系统配置和启停1> tmloadcf –y ubb

编译生成系统的核心二进制配置文件tuxconfig, ubb为文本的配置文件.

2> tmboot 启动TUXEDO应用系统.包括TUXEDO服务器本身和应用服务.

3> tmshutdown关闭整个TUXEDO系统.

28

应用系统管理 命令行管理

二:运行是监控和管理通过tmadmin命令可以进入到运行是的监控和管理模下,TUXEDO提

供了这种模式下的一系列命令,键入help可以得到所有命令的格式提示.常用的有:

1. printserver (或 psr) :正在运行的server和相关的信息.

2. printservice(或psc) :SERVICES的相关信息.

3. printclient(或pclt) :当前的客户端的信息.

4. printqueue(或pq) :服务的队列信息,包括队列中的请求数.

5. bbstats(或bbs) :系统的部分统计信息.

6. quit(或q) :退出管理模式,返回到OS的shell.

29

应用系统管理 图形管理界面

2> 图形管理界面(WEB GUI)

TUXEDO提供的基于Java applet的图形界面管理工具,主要用于TUXEDO的运行时管理.

使用GUI 控制台需要启动两个服务:1 ) tuxwsvr -l //[machine_name|ip_address]:port

-i ..\udataobj\tuxwsvr.ini

2) wlisten

其中tuxwsvr是一个简易的web server,支持通过浏览器的访问,wlisten是一个监听进程.

30

应用系统管理 图形管理界面

以上的两个服务启动成功之后就可以启动浏览器,在URL地址栏中输入:

http://[machine_name|ip_address]:port/webguitop.html

例如:http://192.168.0.1:8888/webguitop.html (其中ip和port对应前面tuxwsvr启动时的指定.)

就可以在本机进行TUXEDO的管理和监控.

3> BEA Manager:BEA的系统管理工具.

31

应用系统管理 MIB

4> MIB [Management Information Bases] 通过MIB,TUXEDO提供了一个访问其绝大部分参数和配置信息的方法,而且这种方法和前面方法最大的不同是它是编程接口,这就为构建客户端管理工具提供了可能. MIB由以下部分组成. 1) Tuxedo MIB TUXEDO核心子系统.

2) /WS MIBWorkstation子系统.

3) /Q MIB

4) /Domain MIB

5) /Event MIB

6) ACL MIB

32

应用系统管理 TUXEDO Security

TUXEDO有四个安全级别可以选择。从低到高依次是: 1.Native operation system 这个表示有登录OS权限的用户就有TUXEDO系统的权限,意思是TUXEDO没有做其它的权限控制。

2.Application/domain wide TUXEDO password (APP_PW) 这个是要求客户端访问的时候提供整个应用统一的密码,是一种很粗略的权限管理。

3.User authentication (USER_AUTH) 这个类似于UNIX系统的用户机制。需要相应的group,user,password等信息。

4.Access Control Lists (ACL) 可以对应用实体(service,events,queues)提供基于组的访问控制。

33

应用系统管理 TUXEDO Security

除第一种安全控制之外,其它三种的实现方式比较类似。需要在server端和client做一些工作。

在server端:

需要在 *RESOURCES段指定 SECURITY参数的值,用上一页括号中的简称来标示。 USER_AUTH和ACL级别需要启动相应的server(系统提供的或者自己编写的),来进行验证。通过接在SECURITY后面AUTHSVC参数来指定。并在 *SERVERS断中配置server。 以USER_AUTH为例 *RESOURCES SECURITY USER_AUTH AUTHSVC AUTHSVC

*SERVERS AUTHSVC SRVID=100 SRVGRP=AdminGroup CLOPT=" -A "

34

应用系统管理 TUXEDO Security

在client端: tpinit函数的参数是一个TPINIT 结构的指针,在没有安全控制的时候,可以用如下方式: tpinit((TPINIT *) NULL)

TPINIT结构里面包含了grpname,usrname,passwd等信息,在join application的时候会传给相应的SECURITY Server作验证。以觉得这个client是否有相应的权限。

Client其它的代码不受影响。

35

TUXEDO应用系统开发 server端开发

TUXEDO server程序的特点

1.TUXEDO server的开发用C/C++,或者COBOL。这里以C/C++为例。

2.TUXEDO自身并不带有编译器,server程序最终交给系统的C/C++编译器。在Windows下默认用visual studio的cl,在UNIX,Linux上用CC环境变量指定的编译器。

36

TUXEDO应用系统开发 server端开发

3.server在提交给编译器的时候是一个普通的C/C++程序,但是我们在编写的时候却不同。

具体的说,我们写的server代码没有main函数,有两个固定名字的函数:tpsvrinit和tpsvrdone,以及自己写的service函数(一个serber里面可能有多个) ,名字就是对外发布的SERVICE的名字。SERVICE名字一般用大写字母,要去不超过15个字符。

我们用buildserver编译server程序的时候,它做了一些工作,添加相应的部分,将我们写的代码变成合法的C/C++代码。然后调用相应的编译器进行编译。

37

TUXEDO应用系统开发 server端开发

Server程序结构说明

#include ***

tpsvrinit(int argc, char *argv[]) { //connect to DB or do some initialization.

}

void tpsvrdone(void) { //disconnect from DB or do some finalization.

}

SVC_A(TPSVCINFO *rqst) { //your service code.

}

38

TUXEDO应用系统开发 server端开发

需要特别说明的是,tpsvrinit只会在server boot的时候被执行一次,同样tpsvrdone只会在server shutdown的时候被执行一次。而service函数的代码,这里是SVC_A函数,会在每次调用SVC_A的时候被执行。

认识到这一点是很重要的。有两个要注意的问题。

1.在这几个函数之外定义的变量会成为全局的,能被多个service代码访问,可以用来作为常驻内存的信息。

因为这一特点,还导致多个service可能修改变量的值,并且这些修改在server的这次生存期内有效。要避免这种情况引起的混乱,建议一般仅使用只读的全局变量。

39

TUXEDO应用系统开发 server端开发

2.因为两个指定名字的函数的特性,可以影响数据库的连接方式。通常有两种方式。

一是在tpsvrinit中连接数据库,在tpsvrdone中断开,这样连接在整个server运行期间一直保持,所谓的长连接。这种情况使用的连接数多一些,但是少了每次建立连接的开销,能提高访问的效率。因为server启动的时候进行连接,所以数据库连接失败会导致server启动失败。所以一般先启动数据库,再TUXEDO,关闭的时候先关闭TUXEDO,再关闭数据库。

40

TUXEDO应用系统开发 server端开发

二是在service函数中连接数据库,在代码执行完,即将返回时断开连接。这样每次调用的时候才做连接。我们称之为短连接。这种方式数据库的平均连接数会少一些,但是调用频繁时连接开销比较大,影响性能。

考虑这两种情况,可以结合实际系统的需要来选择。在一般server数目不是很大的情况下,可以用方式一,以得到更好的性能。

41

TUXEDO应用系统开发 server端开发

参数的传递:在调用TUXEDO服务的时候,一般都有参数的传递。我们先从server

端看有一下。以前面的SVC_A函数为例。它的参数是TPSVCINFO *rqst, TPSVCINFO 是一个TUXEDO定义的结

构。这个参数用来做数据的传入和传出。从TUXEDO自带的TOUPPER例子我们就可以看出来。当然,实际使用的要复杂一些。TOUPPER(TPSVCINFO *rqst){

int i;for(i = 0; i < rqst->len-1; i++)

rqst->data[i] = toupper(rqst->data[i]);

/* Return the transformed buffer to the requestor. */tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);

}

42

TUXEDO应用系统开发 client端开发

Client端程序主要流程:

1.tpinit连接TUXEDO服务器,join application.

2.开辟数据缓冲区

3.将要传给service的数据放入缓冲区

4.tpcall调用服务。指定服务名,发送数据,并接收返回数据。(这里仅以同步调用为例)

5.tpfree释放缓冲区

6.tpterm退出应用,断开连接。

43

TUXEDO应用系统开发 client端开发

以上流程以workstation client为例,这也是比较常用的一种方式,其它的类似。具体可以参照TUXEDO自带例子simpapp中simpcl.c

tpinit会读取系统环境变量WSNADDR的值,用里面的ip和port来连接服务器。

调用服务的函数tpcall含有丰富的参数,一般是这样的;ret = tpcall("TOUPPER", (char *)sendbuf, 0, (char

**)&rcvbuf, &rcvlen, (long)0);

它有六个参数,第一个是要调用的服务的名字。第二个是含有发给service的数据的发送缓存区。第三个是发送数据的长度,一般置为0,自定义数据类型时要指定。第四个是接收缓冲区,也可以共有sendbuf。第五个是rcvbuf的长度。第六个是调用时候的一些参数信息。

44

TUXEDO应用系统开发 常用缓冲区的类型

为适应不同应用开发的要去,TUXEDO提供了多种类型的缓冲区。主要有以下几种:

1.STRING:用于单一的文本。使用比较简单,因为功能较弱,实际不常用。可以参照simpapp例子。

2.CARRAY:用于传输长度固定的数据,一般用于传输图片,声音等二进制信息。

3.FML(FML32):用于传输多行多列的信息。比较常用。

4.VIEW(VIEW32): 类似于C中的struct。

5.XML:传输XML数据。较高版本中支持。

以上只是粗略的介绍。每种类型的使用要参照它的说明并结合实际的需要。

45

关于中间件 Some opinion of mine。

TUXEDO is alive and kicking.

Alfred Chuang, BEA president and COO

从应用软件的发展过程来看,中间件不是什么新的概念,至少像

TUXEDO,CICS等主要的交易中间件已经有20年左右的历史。当然,中间件这个概念被明确的提出是后来的事情。

中间件在国内的应用也有几年的时间,现在这个概念已经得到了广泛的接受,成为一些大的应用系统的必选。

随之而来的是三层的开发和应用结构得到了大量的使用。但是主要还是在金融,电信,交通等系统的关键性应用。因为中间件系统自身的价格较高,一般小的项目无法承受,再加上对开发上的要求更高,不适合那些三五个人开发的项目。

46

关于中间件 Some opinion of mine。

随着以J2EE为代表的web系统在应用领域的迅速发展,web service已经成为炙手可热的名词。主要的企业级领域的大厂都在推出自己的产品和概念。

这就引发了一种思考。web服务器能实现这些功能,而且看起来代价更小。那么还有必要使用昂贵的交易中间件吗?

经过一番思考,我觉得交易中间件还是有很大的优势并在一段时间内继续担当企业核心系统的平台。下面我说一下我的一下判断依据。

47

关于中间件 Some opinion of mine。

1. 关于跨平台。这一点一直是Java的最大买点,也是web service的一个好

处。应用代码可以不加修改的在不同的平台实现。当我们将应用在Weblogic,Websphere,SUN ONE等平台间移动的时候,我们确实能体会到好处。

仔细想一下,这种好处主要是基于Java语言的。考虑到C/C++的标准被广泛的接受并得到各个主要平台上编译器的支持,在不同平台之间的移植工作也是完全可以的,当然需要注意一些具体的问题。

不同平台的移植是可以的,但是不同交易中间件的移植就显得困难一些。当然,有些项目封装了标准的数据传输接口之后就比较容易了。毕竟应用代码中涉及具体中间件的部分主要是数据的传输。client可以通过统一的调用接口来便于移植。

48

关于中间件 Some opinion of mine。

从跨平台的角度来讲,Java 应用服务器具有较大的优势。但

是在实际的应用中,这种优势并不明显。因为交易中间件的应用都是在企业核心的系统,这些系统一般是基于UNIX系统,而且特定用户一般有已经选定的平台。并且这些系统是定制开发的,并不会在不同的平台间移动。这样java应用服务器并不能凭借这一优势对交易中间件构成大的冲击。

2. 系统性能这一点一直是Java系统的致命伤,特别是在这种对性能要求

很高,用户并发量很大的系统。Java较慢的解释机制有点难以接受。而基于交易中间件的系统多半用C/C++进行开发。这种比较底层的语言在性能方面是有很大优势的,而且我们必须考虑到操作系统的接口一般是C的,而且Oracle等数据库都提供良好的C接口.使得C/C++能高效的完成相关的处理任务。

49

关于中间件 Some opinion of mine。

3.稳定性

中间件的稳定性除了产品的质量之外,还要得益于时间和应用的考验。TUXEDO和CICS等经历了很长的时间考验,并在各个行业的各类系统中经受了大量的检验,被证明是稳定可靠的。这一点也是交易中间件的优势。因为企业的核心系统对这方面要求很高,甚至在性能的要求之上。而很多应用服务器的使用时间并不长,很多东西还有待完善。当然,我相信,随着应用的深入,应用服务器的稳定性会越来越好。

所以就目前来讲,一般企业核心系统还是基于交易中间件的。

50

关于中间件 Some opinion of mine。

4. 关于client

关于thin client和fat client的争论从来都没有停止过。我的看法是各有好处。但是Java 应用服务器的client主要是web browser,限制了它的应用。而交易中间件在这方面要灵活的多。有终端系统,还有Delphi,PB,VC,VB等windows IDE(得益于DLL),还可以是web browser。

交易中间件一般都提供java接口,使得可以将它的服务发布成web service。当然这样开发的开销是比较大的,因为这里还要一个Web server在发挥作用。

从上面的分析,我觉得TUXEDO等交易中间件还是有很大的用武之地。但是Java 等应用服务器的发展也非常值得关注,因为应用领域总是在不断的发展的。新旧交替是很正常的现象。

51

相关学习资源 edocs。

授之以鱼不如告知哪里有鱼。qiup ☺

1. 关于TUXEDO最权威的文档当然是BEA的在线文档。

http://edocs.bea.com/

这个适合上网比较方便,而且有明确目的想找哪个方面主题 的 人 。 因 为 文 档 是 按 照 Introduction,Administration,Development,Reference,Message来组织的。适合循序渐进的学习。

52

相关学习资源 edocs。

2. 离线文档

online的文档也有它的不便之处,比如要上网,而且一般比较慢,另一个就是查找起来不方便。所以更好的选择是离线版的官方文档,这个可以向技术支持要。一般100M左右,其中主要是HTML的,也有一些主题的PDF文档,可以根据自己的爱好选择。

这个文档除了和在线文档一样的组织之外,还有一个方便之处是带有一个用于查询的Applet,便于查找你感兴趣的资料。

53

相关学习资源 bbs。

3. Dev2dev论坛

http://dev2dev.bea.com.cn

这个是BEA中国的开发站点,里面有一些相关的资料。还有就是有一个论坛,里面专门讨论TUXEDO的相关问题,2002年8月开始开放。当你在实际的开发中遇到一些问题的时候,可以在这里查找先前的帖子或者发帖询问以得到解答。

54

相关学习资源 web。

4. 其它网络资源

http://www.huihoo.com/

这是一个关于中间件的论坛,比较专业。讨论到常用的中间件,应用服务器,CORBA等,涉及的平台,产品和厂商比较多。TUXEDO只是其中的一个主题。在这里可以得到关于中间件的很多文档,并可以进行相关的讨论。相信一定会很有收获

http://www.middleware.net/ 这是一个国外的站点,看名字就知道它的主题。

里面有不少好的资料。缺点是有点老了,有些很久没有更新了。估计在国外早已经不是热门的东西了。:)

55

相关学习资源 web。

BEA有一个新闻组newsgroup.bea.com, 其中有一个关于TUXEDO的主题。可以

订阅一下。

除了上面介绍的之外,对于初学者,建议可以在网上搜索一些入门级的PDF文档。比较浅显也很清晰,很适合入门,比直接看官方文档效果好。