Tuxedo的工作原理及Toupper功能讲解
- 格式:doc
- 大小:55.50 KB
- 文档页数:5
Tuxedo学习WSL workstation litenerWSH 处理请求的进程,但不server进程,相当于oracle影子进程WSC 处理请求的进程WS用户和正常用户的关关健差别在WS用户不装tuxedoAbstract: 关于中间件,有一个很有名的定义是:平台+通信。
这一点在TUXEDO上面得到了很好的体现,因为它提供了运行和开发的平台,以及多种的通信方式。
在这多种通信方式中,使用最频繁的是WS (workstation)方式。
WS方式使用的是TCP连接,为了对WS方式有更多的了解,我们结合TCP连接的知识对这种方式进行了一个比较深入的分析。
名词说明:WSC: WorkStation Client WSL: WorkStation ListenerWSH: WorkStation Handler Server: 小写表示服务器端的服务处理进程TCP连接是一种C/S模式的,即server端公开自己的IP和端口号,client通过这两个参数与之建立连接,客户端使用的端口一般是OS临时分配的。
TCP server端一般有两种模式,一种是iterative(重复)的,一种concurrent(并发)的。
前面一种是一个server 的进程(应用层)来处理client的请求,处理完了之后继续接受请求来处理,当server正在处理的过程中,新来的请求得不到处理,只有等待。
后面一种是请求到来的时候,server 进程通常会新开一个进程来处理这个请求,自己继续监听公开端口的连接请求。
在TUXEO这种事务处理系统中,会经常有大量的请求,故第一种模式肯定是不行的,第二种模式虽然可以达到同时处理不同请求的目的,但是由于每次要开新的进程,系统的开销很大,也会影响性能。
实际中,TUXEDO的Workstation方式采用了另一种方法来实现多请求的并发处理。
下面我们进行详细的说明。
以下是ubb中关于WSL的配置参数:WSL SRVGRP=Group1 SRVID=200CLOPT="-A -t -- -n //ip(服务器IP,在此隐去):4050 -m 2 -M 10 -x 10"其中ip:4050就是TUXEDO服务器的WSL的监听地址,只有一个WSL进程。
Tuxedo总体介绍1.1 中间件介绍介于客户机与服务器之间的夹层,它突破了二层C/S结构的局限性,为构建大规模、高性能、分布式C/S应用程序提供了通信、事务、安全、容错等基础服务,它屏蔽了底层技术细节,使应用程序开发不必再从底层做起,以自身的复杂性换来了应用程序开发的简单。
最早具有中间件技术思想及功能的软件是IBM的CICS,但由于CICS不是分布式环境的产物,因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。
Tuxedo是1984年在当时属于AT&&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过Novell并不成功的商业推广之后,1995年被现在的BEA公司收购。
尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近10年之中。
BEA公司1995年成立后收购Tuxedo才成为一个真正的中间件厂商,IBM的中间件MQSeries也是90年代的产品,其它许多中间件产品也都是最近几年才成熟起来。
简单提一下东方通TongLINK,TONGEASY.TUXEDO为交易中间件。
1.2 TUXEDO是什么TUXEDO名字的由来:Transaction for UNIX has been Extended for Distributed Operation,即被分布式操作扩展之后的UNIX事务系统。
BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。
它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。
开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。
在当今系统整合、全球应用、永远可用的业务环境中,企业要求分布式事务处理(TP)的基础结构,不仅能够充分发挥现有技能和应用资产的作用,而且还要具备基于标准的互操作性以简化集成。
Tuxedo功能说明书说明:本说明书是为了适应光大银行的要求,为光大银行提供有关Tuxedo 功能的简要说明列表。
一、交易处理服务1.交易完整性保证机制●当应用系统只有局部事务、没有全局事务时,Tuxedo直接利用数据库的事务处理功能(用或不用XA),这样可提高系统性能。
●当应用系统涉及跨多个资源数据库(同构或异构)的全局事务的时,Tuxedo利用XA标准和两阶段提交协议,通过事务管理器,协调各个数据库的同步。
Tuxedo还可保证可靠性队列/Q 的入出队操作和数据库的更新操作的同步。
在各种情况下,Tuxedo能够确保异构的(或者同构的)数据库以及它资源管理器之间的完整性和一致,并且还在出现节点故障、网络故障或全局资源死锁时利用内部的交易日志来协调全局事务的恢复。
2.交易优先级请求优先级是Tuxedo的事务管理器提供的另一个核心能力。
当某一服务有比其他服务更高的优先级时,服务器在处理请求时,就不再单纯的按照请求在队列中的先后顺序处理,而是按优先级来定。
请求优先级越高的越早被处理。
为了防止低优先级请求总是得不到服务,服务器每隔十个请求,就按FIFO次序进行一次请求选择。
二、可管理性TUXEDO的三层逻辑结构提供了对应用程序高度的可管理性。
它以业务逻辑层为管理的主要对象,把基本业务组件即服务进程的服务做为管理的基本单位。
应用系统由一些基本的组件即服务构成,这样它的易理解、易修改、易扩充等需求都得到保证。
TUXEDO提供一个基于普通WEB浏览器的GUI管理工具,也可根据用户需要提供基于X Window/ Motif 的GUI管理工具;还提供综合性的字符型管理命令;并且提供一个管理信息库(MIB)和编程接口,使用户可根据特定需求编写自己的管理工具。
TUXEDO 的关联产品BEA MANAGER 通过网络管理协议SNMP和TUXEDO的管理信息库MIB可以把TUXEDO对应用程序的管理集成到一般的网络、数据库系统管理工具中,比如OpenView, NetView 等。
Tuxedo教程全解contents •Tuxedo概述•Tuxedo核心组件•Tuxedo应用开发•Tuxedo系统部署与配置•Tuxedo性能优化与监控•Tuxedo实战案例解析目录Tuxedo概述Tuxedo定义与特点Tuxedo是一种中间件Tuxedo的特点Tuxedo应用领域金融行业电信行业其他行业Tuxedo发展历程Tuxedo的起源Tuxedo的发展Tuxedo 的未来Tuxedo核心组件ATMI编程接口支持多种编程语言,如提供了事务管理、通信、安全等方面的功能。
Tuxedo服务器123Tuxedo客户端010203Tuxedo管理工具Tuxedo应用开发开发环境搭建安装Tuxedo系统配置环境变量选择开发工具建立项目工程设计服务接口编写服务代码配置服务属性编译和部署服务服务开发流程根据业务需求设计客户端界面,包括输入、输出显示等。
设计客户端界面编写客户端代码配置客户端属性编译和部署客户端使用Tuxedo 提供的API 编写客户端代码,实现与服务端的交互。
在配置文件中配置客户端相关属性,如连接的服务地址、端口等。
使用Tuxedo 提供的编译工具将客户端代码编译成可执行文件,并部署到用户环境中。
客户端开发流程日志调试通过查看Tuxedo系统日志和应用程序日志定位问题原因。
跟踪调试使用Tuxedo提供的跟踪工具对服务调用进行跟踪调试,查看调用过程和结果。
单元测试针对每个服务或函数编写单元测试代码进行测试验证功能正确性。
集成测试将所有服务集成在一起进行测试验证整个系统的功能正确性。
调试与测试方法Tuxedo系统部署与配置系统部署方案单机部署01分布式部署02集群部署03服务器参数配置事务管理配置资源管理配置包括客户端名称、服务器地址、端口号等参数的配置。
客户端参数配置配置客户端事务的提交和回滚方式,确保客户端与服务器之间的事务一致性。
事务管理配置配置客户端的负载均衡策略,实现请求的均匀分配和故障转移。
TUXEDO技术详述高速数据甬道TUXEDO提供高速数据甬道,所谓数据甬道,是指能够把前端的大量网络连接汇聚成较少的后端连接并减少数据传送量。
采用数据甬道技术,保证应用系统即使在大量用户同时请求服务的时候,也能够保持快速、稳定的工作状态。
●降低网络负担-关键的联机交易业务系统往往是一个基于广域网的系统,广域网速度远远低于局域网,而联机交易对响应时间又有较高要求,所以网络负担是影响系统成败的一个重要因素。
另外,大量的网上传输从经济上考虑也是不合算的。
TUXEDO提供高速的数据甬道,管理客户机与服务器的联接,在客户机和服务器之间只传送服务名、参数和最终结果,和业务逻辑完全分离,最大限度减少了网络上的传输量。
●提高主机处理能力-联机业务处理的应用系统用户数量很多,有时甚至达到几十万,交易量也非常大,主机处理能力对系统而言是一个关键因素。
而在主机方面,维持一个网络连接需要耗费大量内存、进程句柄、信号量、CPU时间片等系统资源。
TUXEDO利用高速数据甬道,将大量连接汇接成很少的连接,从而节省了大量系统资源,成倍提高了主机的处理能力。
●提高数据库效率-数据库在并行用户数增加时,效率会急剧下降,因为每个并行用户必须和数据库建立一个会话,如果用户数过多,数据库引擎会忙于会话的资源管理和并行控制,影响它所擅长的数据管理工作的效率。
TUXEDO可以通过数据甬道大大减少和数据库建立的会话数,将数据库管理系统从其不擅长的业务中解放出来,从而大大提高数据操作的效率。
目录服务的实现BEA TUXEDO提供两类目录服务,即按名请求服务和数据依赖的路由选择服务。
· 名字服务/位置透明性BB作为BEA TUXEDO应用程序的名字服务器,复制到每个参与的结点上。
为了便于快速访问,名字服务器作为在共享内存中的一个结构存在。
事务管理器使用BB名字信息、配置信息和环境统计信息自动把服务请求以负载平衡的原则分配到可用的服务器上,并且根据服务优先级决定处理顺序。
第二章:TUXEDO简介Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell 公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。
2.1TUXEDO系统的组成部分BEA TUXEDO是由服务器端的事务管理器、可靠队列服务、应用域以及客户端的工作站等几个核心部分组成的。
下面对这几部分进行介绍。
图TUXEDO核心组成1.事务管理器/T运行于服务器端的事务管理器是TUXEDO体系结构的中心,它是每个TUXEDO服务器的核心,提供重要的分布式应用服务,包括:名字服务、数据路由、负载平衡、配置管理、分布式事务管理和安全性管理。
它包含TUXEDO的核心数据结构公告板BB (Bulletin Board), BB中包括服务名、路由信息、请求服务的队列和负载等基本信息,TUXEDO/T负责访问和维护BB中的信息,并利用这些信息实现其各项功能。
2.工作站/WS工作站把TUXEDO ATMI API((注:ATMI,应用事务管理接口,是支持应用开发的一组函数) 扩展到客户端应用程序中,它适用于DOS、Windows3.1/95/98/2000/XP、Windows NT、IBM OS/2、Macintosh OS和所有商用版的UNIX。
有了工作站,开发者用ATMI客户端的功能可透明访问在TUXEDO分布式环境中任何服务器上的服务。
有了工作站,用户可在常见的编程环境中如:Visual Basic,PowerBuilder,DELPHI,VC等编写TUXEDO的客户端程序。
3.可靠队列服务/QTUXEDO提供了一个简单的可靠的队列机制,保证应用系统提交的请求和数据可在网络故障或目的服务器瘫痪等情况下也能递交到目的服务器。
应用程序能将服务请求入队和出队,并可以设定系统,使队列中的请求自动地转发给 TUXEDO的服务进程,并取回处理结果。
tuxedo命令和配置的详细解释及应用实例域的组成BDMCONFIG:二进制配置文件DMADM:域管理服务器,管理多个GWADMGWADM:运行时网关管理服务器,从DMADM服务器上获取域信息GWTDOMAIN:是一个网关进程,在域之间转发消息tmshutdown/tmboot -s 服务名按服务名停/启单个服务tmshutdown/tmboot -S (大写的S)停/启所有服务tmshutdown/tmboot -i 进程号按进程号停/启单个服务tmshutdown/tmboot -g 组名字按组停/启服务tmshutdown/tmboot -y -w1 按用户停/启服务tmloadcf -n 文件名只做语法检查不编译tmloadcf -y 文件名编译二进制文件tmloadcf -c 文件名测试IPC资源最小需求tmadmin -v 版本tmadmin>bbp 查BB的参数bbs BB统计信息pclt 连接客户端信息psr server信息psc service信息pt 当前事物信息pq 队列信息echo psr|tmadmin|grep -v IDLEecho psr|tmadmin|sort +4echo psc|tmadmin|sort +6echo pq|tmadmin|sort +4echo pclt|tmadmin|grep -v WSH|grep -v tmadmin以下是tmadmin命令的printserver(简写为psr)的简单输出。
列号描述1. 服务的可执行文件名2. 服务连接的队列名3. 组名4. 服务的数字id5. 服务已经处理的请求数6. 服务处理的全部请求的参数和7. 服务正在处理的交易,若为IDLE则服务当前是空闲ccsmis:/home2/ccsmis>tmadmintmadmin - Copyright (c) 1996 BEA Systems, Inc.Portions * Copyright 1986-1997 RSA Data Security, Inc.All Rights Reserved.Distributed under license by BEA Systems, Inc.Tuxedo is a registered trademark.> printserverProg Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ---------- -------- -- ------ --------- --------------- rz_Ecsb 00004.04000 APGP2 4000 0 0 ( IDLE )BBL 70020 simple 0 1 50 ( IDLE ) IFMTMS APGP2_TMS APGP2 30001 1 50 ( IDLE )交易信息来自GAI的信息本处略去。
BEA Tuxedo中间件应用初探
本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。
随着中间件在大型应用系统中的日益普及,目前各类中间件充斥着市场,它们在银行、电信、金融等大规模关键事务领域中的整合各种异构平台、保证交易完整性等方面表现出了超强的能力。
BEA Tuxedo就是其中一款著名的交易中间件,本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。
工作原理
Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。
Tuxedo可以有效地整合企业异构C/S系统,实现大规模的关键业务处理和分布式事务管理,从而为企业提供一个可靠的、高性能的、易维护的三层分布式计算机环境。
图1展示了一个基本Tuxedo系统的组成和工作原理。
图一
①Client向System/T发出查询请求,以找到Server消息队列的地址;
②Client根据找到的入口地址将请求发送到Server的消息队列中;
③Server处理请求,并将结果返回给Client的消息队列。
System/T是Tuxedo系统的核心,它实现了Tuxedo的所有功能和特征,如C/S 数据流管理、服务请求的负载均衡、全局事务管理以保证交易的完整性、同步/异步服务请求、两阶段提交以确保消息的发送等。
System/T提供了一个类似公
告栏的服务,用以发布C/S计算机环境中所有服务器、服务和客户机的信息,供其它分布式计算的参与者使用。
下面笔者将通过一个大写字母转换的简单例子,讲述Tuxedo应用程序工作的基本原理和开发方法。
应用介绍
Simpapp是Tuxedo系统自带的一个例子,它由服务器和客户端程序两部分组成。
服务器simpserv实现了一个TOUPPER服务,它从客户程序接收一个字符串,将它转换成大写后,传回客户端。
整个工作流程可以用图2表示。
图二
客户机首先收集要转换成大写的字符串,然后连接到System/T并将字符串放入缓冲区,接着调用服务器上的TOUPPER服务,最后从服务器响应缓冲区中取出数据并退出System/T。
下面是服务程序simpserv.c的源代码:
可能你已经注意到了,该程序没有提供main方法。
事实上,Tuxedo不要求程序员编写main方法,以便让他们把精力集中在业务逻辑的编写上,在编译时,Tuxedo系统会为它自动创建。
TPSVCINFO是Tuxedo记录服务调用信息的一个结构体,data域是保存请求数据的缓冲区,len域记录了data域的长度。
客户程序Simpcl.c是服务调用的发起者,它从命令行接收参数,通过tpinit()调用连接到System/T,通过tpalloc()调用分配一个字符串类型的缓冲区,通过
tpcall()调用请求TOUPPER服务,最后通过tpterm()调用退出System/T,下面是它的源代码:
除了客户和服务程序以外,Tuxedo还需要一个配置文件来对应用进行描述。
配置文件由多个段组成,每个段定义由一个星号开始。
下面是NT平台下simpapp 的配置文件ubbsimple的内容,其中带下划线的部分需要根据机器的资源配置作适当修改。
TUXDIR指的是Tuxedo的安装路径,APPDIR指的是simpapp应用程序所在的目录,TUXCONFIG指的是simpapp的二进制配置文件,一般为%APPDIR%\tuxconfig。
由于Buildclient和Buildserver没有编译能力,要编译Tuxedo应用程序时,还必须安装第三方的C语言编译器,在NT平台下推荐使用VC。
步骤如下:
⑴设置环境变量
⑵生成二进制配置文件
⑶编译客户程序
⑷编译服务程序
⑸启动服务程序
⑹运行客户程序
⑺关闭应用程序
通过tmadmin命令可以方便地管理服务程序。