《TUXEDO培训教材-(上).pdf》由会员分享,可在线阅读,更多相关《TUXEDO培训教材-(上).pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、绮霞苑2#楼 页脚内容1 TUXEDO 培训教材(上)第 1 节概述 1.1 培训目标:了解使用中间件的三层应用架构模式。了解 BEATUXEDO 基本特性。能应用 TUXEDO 进行具体应用的开发。了解 TUXEDO 各项配置参数的含义。了解 TUXEDO 管理工具的使用 1.2 培训内容:TUXEDO 基本特性介绍 使用 TUXEDO 进行应用的开发 TUXEDO 配置参数介绍 TUXEDO 系统设计要点 1.3 内容概述 1.3.1TUXEDO 基本特性介绍 中间件的基本概念 TUXEDO 功能简介 1.3.2 使用 TUXEDO 进行应用的开发 编写一个 TUXEDO 应用程序的基本步
2、骤 客户端程序的编写 服务端程序的编写 TUXEDO 常见 ATMI 函数说明 绮霞苑2#楼 页脚内容2 1.3.3TUXEDO 配置参数详解 TUXEDO 配置文件的组成 各组成部分的参数含义 1.3.4TUXEDO 管理工具的使用 启动、关闭 TUXEDO 应用 命令行管理工具的使用(tmadmin)1.3.5TUXEDO 应用系统设计要点 1.4 术语定义 BB:(BulletinBoard)TUXEDO 应用启动时由 BBL 进程创建的共享内存块,包含了 TUXEDO用来进行管理所需要的全部信息 ATMI:(Application-to-TransactionMonitorInterf
3、ace)面向事务的应用程序编程接口 Server:是一个进程,守候一个消息队列 Service:是一个单一的函数。一个 server 可以包含多个 services.DDR:(DataDependantRouting)数据依赖路由 PRIO:(Priority)TUXEDO 服务优先级机制 ACLs:(AccessControlLists)访问控制列表。TUXEDO 的安全控制机制一种。CLOPT:(CommandLineOption)命令行参数。这是 TUXEDO 配置文件 ServerSection 一个参数,在服务进程启动时,用来向服务进程传递参数。MSSQ:(MultipleServe
4、rSingleQueue)TUXEDO 多服务单队列机制。多个 server 共享一个消息队列。第 2 节中间件基本概念 2.1 商业计算模式的演变(1)集中式到分布式 集中式模式下,所有的应用逻辑、数据资源都集中在一台服务器上。这个服务器一般是大型机。绮霞苑2#楼 页脚内容3 分布式系统中,每个应用逻辑独立一条机器。数据资源单独一台机器 演变模式如下图:应用逻辑 1 应用逻辑 2 数据资源 1 数据资源 2 大型机系统应用逻辑 1 机器 1 应用逻辑 2 机器 2数据资源机器 3 集中式分布式(2)分布式系统的两层结构阶段 客户端应用:用户界面处理 业务逻辑处理 服务端应用:数据库服务器(3
5、)二层结构在关键业务采用的限制 前后台均是专用系统绑定 客户机端的扩展性差 不够模块化 业务逻辑在客户机端:对安全性/业务变化的管理能力差 关系数据库系统间的互联性差 关系数据库间没有交易处理 适用于部门级解决方案:小于 200 个用户(4)如何对两层的结构进行扩展:采用多路集中方式,客户端不直接与服务库服务器相连,而是先与一个 sesstionconnector 相连,再由 sesstionconnector 与数据库服务器。绮霞苑2#楼 页脚内容4(5)分布式系统的三层结构阶段:对二层系统的扩展,就演变成了分布式系统的三层结构:将业务逻辑从客户端应用中分离出来,组成业务逻辑服务器。客户端与
6、业务逻辑服务器相联,业务逻辑服务器与数据库相连。这样就演变成“客户端、业务逻辑服务器、数据库服务器”的三层结构。2.2 中间件是三层结构的手段(1)中间件是将应用映射到相关的资源上的软件技术,它是由一系列的 API 和通讯协议所组成的。中间件使得三层的客户服务器架构得以实现。(2)使用中间件的应用的优点:灵活地在客户与服务器之间划分数据与逻辑.便于按照业务需求修改客户端或服务器端的逻辑.分隔系统的开发与系统的部署.提供分布交易的全程保护(3)第 3 节 BEATUXEDO 简介 3.1TUXEDO 消息处理机制 3.1.1client/server 架构的两种模式 在一个 client/ser
7、ver结构的应用中,client(需要服务的实体)和 server(提供服务的实体)是互相独立的两个逻辑对象,两者通过通讯来共同完成一个任务。client 发起一个服务请求,并接收 server 端返回的处理结果。server 端接收并处理 client 端的请求,并把结果返回到 client 端。一个客户端应用(clientapplication)的功能:组织服务请求数据,并接收请求处理结果。提供通过网络,发送服务请求数据、接收请求结果的机制 一个服务端应用(serverapplication)的功能:接收 client 端的服务请求数据,根据业务逻辑处理客户请求,并将处理结果返回到 cli
8、ent 端。有两种类型的 client/server 架构模式 绮霞苑2#楼 页脚内容5 数据请求模式(适合 client/server 之间传输大批量数据)服务请求模式(适合快速的、级小数据传输的服务请求)3.1.2TUXEDO 如何处理 client/server 架构模式 TUXEDO 使用 conversation(会话)方式来处理“数据请求模式”TUXEDO 使用 request/reponse 方式来所处理“服务请求模式”使用 TUXEDO 的 client/server 应用的特点:快速的,无连接的通讯:在应用 TUXEDO 的系统中,客户端与 TUXEDObulletinboa
9、rd建立连接(而不是与具体的 Server 建立直接的连接),然后由 TUXEDO 寻找最合适的 SERVER 来提供服务。这样节省了系统资源,提高了系统性能。队列是实现无连接通讯结构的关键。每个 SERVER 被分配一个内部的消息队列,被称为“请求队列”,每一个客户端也被分配一个消息队列,被称为“响应队列”。这样客户端不用与具体的 SERVER建立并维持连接,而只要检索“响应队列”来获得返回结果。服务进程的透明性:BB 包含一个后台所有 service 的目录,客户端只要按名调用后台 service,而不用管 service所在何处。可扩展性:因为 service 和 server 可以很容
10、易的复制,并且它们可以是分布式的,因此,可以很方便的根据系统的负载来调整后台应用。3.1.3 嵌套的服务请求(NestedServiceRequests)服务可以嵌套调用。一个 service 嵌套调用另外一个 service,必须等到被调用的 service 返回,才能做下一步的处理。嵌套调用优点:代码的可重用。缺点:影响系统的整体性能,尤其是在分布式应用服务器的架构中。如果可能的话,嵌套应该限制在两层。在一个典型的三层模式的应用中,只有两层的嵌套调用会取得很好的效果。这三层是 表现层(PresetationLogicLayer)绮霞苑2#楼 页脚内容6 业务逻辑层(BussinessLog
11、icLayer)数据库层(DatabaseLayer)3.1.4 传递的服务请求(ForwardServiceRequests)另外一种服务嵌套调用的方式是 forward 方式。在 forward 方式中,service 不是将处理结果返回给客户端,而是将服务请求传递给下一个service,下一个 service 或者将处理结果返回给客户端,或者继续传递。forward 调用的层次没有限制,也不会导致server 的堵塞。3.1.5TUXEDO 会话(conversation)处理机制 除了 request-reply的消息机制,TUXEDO 还支持大数据量的传输。TUXEDO 采用叫做会话
12、(CONVERSATION)的方式来处理。在 client 端与 server 端建立一个虚连接(avirtualconnection),并且维持这个连接直到完成数据传输任务。TUXEDO 提供一组 API 函数用于实现 client 与 server 端的这种通讯机制。主要包括 连接,发送、接受、终止连接。Conversation 这种通讯机制,是半双工的,只有取得控制权的一方,才可以发送数据。另外一方只能被动的接受数据。在配置上 conversation 模式的 SERVER 要加“CONV=Y”参数 3.1.6 主动通知/事件代理(UnsolicitedNotification/Even
13、tBroker)TUXEDO 还支持非 listening-reply 的通讯方式,可以定义当某个“条件”满足时,系统自动与另外的系统进行通讯,即使其他系统没在listening。这个“条件”在 TUXEDO 中称为 event 这种主动通讯方式叫做 UnsolicitedNotification 3.2BEATUXEDO3 层 Client/Server 架构 sss 采用 BEATUXEDO 开发分布式应用,开发人员只要处理 用户界面 业务逻辑 绮霞苑2#楼 页脚内容7 数据库访问 其他底层处理,全部由 TUXEDO 来处理:网络通讯 负载均衡 容错处理 数据一致性 可扩展性 跨平台性 安
14、全控制 系统管理 因此要开发大型部门关键事务处理的分布式系统,TUXEDO 完全可以胜任 3.3BEATUXEDO 功能详解 3.3.1 高速的数据甬道 1、在没有使用中级件的传统的二层模式中,每个客户机或客户应用程序均和服务器或服务程序建立“硬连接”。客户端 N 个,服务端 M 个,则网络连接数NM 个 2、如果使用了中间件,则客户端与中间件相联,中间件与后台服务相联。客户端 N 个,服务端 M 个,则网络连接数NM 个 3.3.2TUXEDO 具有丰富的通讯机制:同步调用 异步调用 会话 广播 绮霞苑2#楼 页脚内容8 管道 发布&订阅 3.3.3 负载均衡 服务器间的负载均衡 应用进程间
15、的负载均衡 多服务单队列机制(MSSQ),自动增减应用进程。数据依赖路由(DDR)3.3.4 数据依赖路由(DDR)客户端对同一个 service 的调用,TUXEDO 可以根据客户端的具体数据,分发到不同服务进程,TUXEDOBB 包含一个路由分配表。路由分配表中定义具体的哪个 service 所服务的请求范围。通过数据路由功能,可以将对同一个 service 请求的数据扩展到多台服务器。DDR 机制支持了 service 的多态性。我们将通过具体的例子来说明 DDR 机制 3.3.5TUXEDOservice 优先级机制(PRIO)优先级只是针对 service 而言。优先级高的 serv
16、ice 优先得到调用。每个 service 默认的优先级是 50。例子:A、B、C 为三个优先级不同的 services A(20)B(30)C(50)则 service 调用顺序是 CBA。为了保证优先级低的 service 有机会得到调用,TUXEDO 以 10 次为 1 个循环。第 10 次不论优先级,而是执行请求队列中多靠前的服务(FIF0)。3.3.6TUXEDO 的交易完整性(分布式事务处理)TUXEDO 应用中,通过使用 TUXEDO 提供的事务处理函数来创建一个事务。在事务中的业务处理被看做一个整体,要么一起提交,要么一起回滚。TUXEDO 提供一组 API 函数来 begin
17、,commit,rollback事务。绮霞苑2#楼 页脚内容9 在一个 service 中包含一个事务,在事务内部又调用远程主机的一个 service,对远程主机的调用是事务处理的一部分,因此要保证一致性,就要使用 TUXEDO 的全局事务机制。为了跟踪分布式事务处理 TUXEDO 要保留复杂的数据,以便随时都能回滚到事务开始的地方。为了跟踪事务的参与者,TUXEDO 创建事务日志。为了跟踪应用程序的状态,TUXEDO 采用一个或多个资源管理器 RM(ResourceManager)。这些 RM 通过 XAinterface 进行交流信息。为了协调事务处理中的所有操作,TUXEDO 采用了 T
18、ransactionManager(TM)。为了说明 RMs 域 TM 的关系,可以假设 RMs 是演员,TM 是导演。TUXEDO 采用二级提交机制,来实现全局事务的提交。首先是 RM 进行预提交,预提交全部成功后,TM 做最后的真正的提交。3.3.7 完善的安全机制 在应用层 TUXEDO 提供 5 级安全策略。1、操作系统级(OperatingSystem)安全机制由操作系统提供,TUXEDO 没有增加另外的安全机制。在配置文件中,security 设置为NONE 2、应用级密码(ApplicationPassword)要求每个客户端在 tpinint 时提供应用程序口令。在配置文件中,
19、security 设置为 APP_PW.3、用户级密码(UserAuthentication)每个 tpcall 都需要提供应用程序口令。在配置文件中,security 设置为 USER_AUTH.缺省的授权控制服务是 AUTHSVC,这个服务有 BEATUXEDO 系统自带的 SERVER 程序 AUTHSVR 提供。4、可选的访问控制列表(OptionalAccessControlLists)只要设定某些需要控制的 service,任何人都可访问的 service 不用配置 ACL 举例:用户名后台 service ATOUPPER(ACL1)绮霞苑2#楼 页脚内容10 BTOLOWER
20、C TOUPPER 配置了访问控制列表 ACL1,用户 A、B 有权访问该 service TOLOWER 没有配置 ACL。则,TOUPPER,只有 A、B 用户可以访问,TOLOWER 所有用户(A、B、C)都可访问 5、强制的访问控制列表(MandatoryAccessControlLists)ThesecondACLsecuritylevelisMANDATORY_ACL 所有 service 多必须设定 ACL,没有设计 ACL 的 service 任何人都不能访问。上例中,serviceTOLOWER 任何人不能访问。ServiceTOUPPER,只有 A、B 可以访问。说明:要使
21、用访问控制列表的安全机制,后台必须增加 3 个配置文件。分别是 tpgrp,tpusr,tpacl 在unix系统中,如果没有配置 tpgrp,tpuser 两个文件,则 TUXEDO 使用/etc/group,/etc/passwd 文件代替。说明:1、使用 24 级安全级别级别即(tuxedo 所带的安全控制机制),客户端在 tpinit 时需要加上必要的客户信息。同时后台需要增加一个单独的 SERVER 来处理安全验证。3.3.8TUXEDO 的开发性 SERVER 端支持的平台有:HP-UNIX AIX Solaris SCOOPERSERVER 绮霞苑2#楼 页脚内容11 UNIXW
22、ARE LINIX WindowsNT,Windows2000 客户端支持的平台有:WINDOWS DOS 各种 UNIX 操作系统。TUXEDO 几乎支持所有的常见开发工具 3.3.9 自动的编码/解码 不同机器之间的通讯,由 TUXEDO 自动进行 Ecode/Decode(编码/解码),在配置文件中可以指定机器的类型。如果不指定,TUXEDO 默认所有机器类型相同。第 4 节用 BEATUXEDO 编程 4.1TUXEDO 应用的三个组成部分 Client 端:需要服务的部分 Server 端:提供服务的部分 配置文件:用来描述应用程序信息,如应用的架构模式、机器信息、server 信息等。4.2 编写一个 BEATUXEDO 应用的基本步骤 1、设置正确的环境变量 TUXDIRTUXEDO 的安装目录 PATH 必须包括$TUXDIR/bin LD_LIBRARY_PATH 必须包括$TUXDIR/lib TUXCONFIG 二进制的 tuxconfig 配置文件的全路径