TUXEDO是什么?
BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客 户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。BEA TUXEDO是企业、 Internet 分布式应用中的基础主干平台。它提供了一个开放的环境,支持各种各样的客 户、数据库、网络、遗留系统和通讯方式。
特点:
² 大量在线用户
² 巨量数据
² 信息访问
² 小事务
² 复杂网络
C/S系统的层次结构
以下列出了分布式系统的主要层次:
² 用户界面:被分成表示管理和表示逻辑。代表有主机框架的3270仿真终端;UNIX系统的X终端等,最新的Web浏览器界面也是。
² 商业逻辑:包含应用逻辑和应用规则。
² 数据管理:分为数据访问逻辑(SQL)和数据库管理。
区分C/S结构的类型可以根据以下特性:
客户端和服务端程序间逻辑分布,如何实现层次功能;中间件产品及技术的使用。
C/S模式的演化
上图列举了不同种类的C/S模式。其中大型主机系统仍然统治着最大的OLTP应用;基于X终端和UNIX工作站的应用在80年代后期兴起;廉价的WINTEL机器支持的Windows GUI通常用于2层模式;数据库新技术和OSF带领了3层应用模式。
C/S系统是一种分布式系统,由其程序决定其特点:
² 客户端部分执行前端功能,如:提供用户界面,向后台发出用户请求的交易,将结果返回给用户。
² 服务提供一般后端功能,按交易组织,将结果返回前端。
² 交易是分散的,按需求的操作,可以被远程客户端访问的程序。
C/S模式可能会有如下优点:
² 减小客户端程序体积,提高反应速度
² 位置无关
² 模块化
² 扩展性好
可管理多层C/S模式
在可管理多层(Managed Multi-Tier –MMT)C/S模式中,提出了中间件管理。在本书范围内,此点由交易处理(Transaction Processing –TP)管理完成,提供以下功能:
² 在客户端和服务端之间进行通讯和传输
² 提供良好的系统管理
² 提供交易、配置的分布式管理
它管理服务端从多个客户端收到的数据流,并不是在C/S间建立一对一的关系,而且客户端可以向多个服务发出请求。这种特点保证了TUXEDO可以提供强大的分布式交易处理框架。
由于不必进行通讯和交易管理,数据库引擎可以专注于其特长:管理数据!在这种情况下,数据库成了一个纯RM(Resource Manager)。
MMT C/S模式给OLTP应用增加了如下优点:
² 所有C/S模式的优点在MMT模式下都得到了增强。实际上,由于中间件的引入,处理能力得到改善。
² 由于中间件管理了数据流,带来了许多新功能,如:交易路由、服务分布、管道、数据依赖路由等成为可能。
² 统一的数据流控限制了最大交易数,总的数据库过程少了,服务器空闲时间也少了,这就增加了数据库和系统效率。
² 应用代码的设计可以不考虑物理地址和内部数据表示。
² 配置成了一件单纯的管理工作,进一步的,可以通过配置轻易的改变系统结构。服务可以动态的增加、删除和重启动。
TUXEDO的C/S方案
构成TUXEDO系统的各部分、工具和其特性组成的MMT C/S模式给应用带来的便利及TUXEDO的实现方法:
MMT C/S模式的优点
TUXEDO的实现技术
模块化
客户端,交易,服务
最大化的处理能力和流量
客户端交易流量控制,分布式配置,快速消息匹配和路由
通讯传输技术
ATMI访问,一种简单且容易定义的接口
实时应用管理
核心配置文件,MIB,管理工具和基于浏览器界面的GAI
名字服务和交易位置无关
公告牌提供目录交易便利
应用数据服务
应用服务位置可以在配置中随意配置
TUXEDO系统的特点
² TUXEDO /T
n 管理C/S数据流
n 支持3层结构
n 多平台支持
n 协同(BEA Connect, /TxRPC, /OSITP)
n 开发
u 通讯手段
l 同步
l 异步
l 会话
l 广播通知
l 管道
l 事件订阅
u 缓冲数据类型(自动编、解码)
u 事务
n 管理
u 核心配置管理
u 管理信息库(MIB)
u Web界面管理接口
u 负载平衡
u 网络配置
u 安全
u 数据依赖路由
u 数据压缩
² BEA JOLT 将TUXEDO中间件框架扩展到Internet和Java客户端
² TUXEDO /Q
n 通讯保障
n 预定处理
² TUXEDO /WS
n 多平台支持
n 把BEA TUXEDO ATMI API扩展到客户应用程序中
² TUXEDO /Domains
² TUXEDO /COBOL
一个例子
一个TUXEDO 应用可以分成3部分
² 发布交易请求的客户端
² 运行响应请求交易的服务
² 描述应用机器和服务信息的配置文件
上图是本例的示意图:
客户端请求交易“TOUPPER”,数据是“hello world”。交易“TOUPPER”将字符串转成大写,将结果成功返回客户端。
客户端范例
#include <stdio.h>
#include “atmi.h”
main()
{
char *buf;
long len;
if (tpinit((TPINIT * )NULL) == -1)
{
exit(1);
}
if ((buf=tpalloc(“STRING”,NULL,80))==NULL)
{
tpterm();
exit(2);
}
strcpy(buf, “hello world”);
if ( tpalloc(“TOUPPER”,buf,0,&buf,&len,0)== -1)
{
fprintf(stderr,”service requst fail\n”);
tpfree(buf);
tpterm();
exit(3);
}
printf(“return string is :%s\n”,buf);
tpfree(buf);
tpterm();
exit(0);
}
包含TUXEDO系统的头文件”atmi.h”,以便引用TUXEDO的函数和变量定义。
客户端调用tpinit()连接应用
用tpalloc()分配一个STRING类型数据缓冲
将”hello world”拷贝进缓冲
用tpcall()包含数据缓冲,向交易“TOUPPER”发一个同步请求
打印出改变的数据缓冲
调用tpterm()切断与应用的连接
交易范例
#include <stdio.h>
#include <ctype.h>
#include “atmi.h”
void TOUPPER (TPSVCINFO *rqst)
{
int i;
for ( i=0;i<rqst->len-1;i++)
rqst->data[i] = toupper(rqst->data[i]);
tpreturn(TPSUCCESS,0,rqst->data,0L,0);
}
包含TUXEDO系统头文件”atmi.h”
象所有的TUXEDO交易函数一样,TOUPPER不用直接返回任何值,所以返回类型为void
从客户端收到的数据放在TPSVCINFO结构中,是唯一的入参
交易处理…
用tpreturn()将数据缓冲返回客户端
配置文件
有关应用的信息,如可用交易,交易位置,应用范围等,有必要集中管理于单一资源。事实上,这些信息被集中于文件UBBCONFIG。该文件分7节,主要部分内容描述如下:
*RESOURCES节包含全局信息,如:标识公告牌位置的唯一键值(IPCKEY),主控节点的名字(MASTER),应用类型(MODEL),下文例子中设为SHM表示是一个单节点应用。
*MACHINES节包含节点信息,如:机器物理名,TUXEDO系统位置(TUXDIR),服务码位置(APPDIR),以及本文件的二进制码文件名(TUXCONFIG)。
*GROUPS节包含一些管理用信息,如设定服务或交易的分布式事务处理。
*SERVERS节包含需要启动的交易和其组信息等其他信息。
*SERVICES节包含影响应用操作方式的的必要信息。本节列出的交易都是需要特别配置的,如有特别的优先级,装入参数,数据依赖路由等。
配置文件范例
#file : ubbconfig
*RESOURCES
IPCKEY 5000
MASTER SITE1
MODEL SHM
*MACHINES
gumby LMID=SITE1
TUXDIR =”/usr/tuxedo”
APPDIR =”/usr/apps/simpapp”
TUXCONFIG =”/usr/apps/simpapp/simpapp.tux”
*GROUPS
GROUP1 LMID=SITE1 GRPNO=1
*SERVERS
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER
建立应用
建立一个TUXEDO应用,必须进行以下步骤:
² 设置环境变量。
TUXDIR表示TUXEDO用户目录;TUXCONFIG是二进制配置文件名;在路径中加入TUXEDO的可执行文件路径;如果用到公共库,还必须包含LD_LIBRARY_PATH,指出公共库位置。
TUXDIR=/usr/tuxedo
PATH=$PATH:$TUXDIR/bin
TUXCONFIG=/usr/apps/simpapp/simpapp.tux
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TUXDIR/lib
export LD_LIBRARY_PATH PATH TUXDIR
² 用buildclient命令从源程序编译出客户端可执行文件。
buildclient –f client.c –o client -v
² 用buildserver命令从源程序编译出服务端可执行文件。-s参数列出提供的交易。
Buildserver –f simpserv.c –o simpserv –s TOUPPER -v
² 用tmloadcf命令从文本配置文件ubbconfig生成二进制配置文件tuxconfig。
Tmloadcf –y ubbconfig
开发TUXEDO C/S系统的必要步骤
² 配置环境变量
² 编码并编译客户端和服务端的程序
² 由文本的ubbconfig生成二进制TUXCONFIG
² 启动系统和服务
² 测试应用
² 关闭系统