今天第一次接触 Tuxedo ,还是问那个经典的傻问题:Tuxedo是做什么用的?
Tuxedo:Transaction for Unix has been Extended for Distributed Operation分布式操作扩展之后的Unix事务系统。
Tuxedo是一个客户机/服务器的“中间件①”产品,它在客户机和服务器之间进行调节,以保证正确地处理事务。它是一个事务处理监督器,它管理联机事务处理(OLTP)②系统操作的事务。客户通过SQL调用,或其他类型的请求,产生对服务器的请求。这个事务处理监督器确信,正确的进行了修改,以保证数据的完整性。这在一个事务可以改变多个位置的数据库的分布式数据库环境是非常重要的。这个事务处理监督器使用双阶段提交,以保证所有的数据库都已经接收和认可了这些数据的正确性。否则,这个数据库返回它的事务前状态。
【我觉得可以这么理解:用户发出请求就会对数据库中的数据产生影响啦,比如,我们最常用的增删改查等操作,Tuxedo 在这里起的作用就是监视这些操作完成的过程中数据有没有出错,如果出错了,就回到执行这些操作前的状态。当然,它不会是只可以管理数据库的啦,它也可以对系统组件进行持续的监视,查看是否有应用系统、交易、网络及硬件的故障,一旦出现故障,Tuxedo会去试图修理一下(从逻辑上把故障组件排除,然后进行必要的恢复性步骤)。还有其他等等。】
TUXEDO 采用三层结构的组件软件模型 :
Ø Client 为第一逻辑层。实现用户交互和数据表示,向第二层的Server发请求,调用业务逻辑处理服务。
Ø Server组件中间层,这些组件由TUXEDO管理,实现业务逻辑服务,接收服务请求,并返回服务结果。
Ø 第三层为资源管理器,比如像关系数据库。负责管理应用系统的数据资源
Tuxedo的核心子系统:
事务管理器 TM(Transaction Manager)
工作站 WorkStation
域 Domain
队列 Queue
Tuxedo 与 WebLogic 通过WTC互联:
通常用TUXEDO实现系统的核心业务,用WEBLOGIC做为系统扩展到web的平台,实现电子商务。由WEBLOGIC 调用 TUXEDO上的服务,需要在Tuxedo和Weblogic之间建立连接。
WTC不仅能让WEBLOGIC调用TUXEDO中的SERVICE,而且能让TUXEDO调用WEBLOGIC中的EJB。但WTC仅能实现这两个平台之间的互联。
Tuxedo与WebLogic 之间通过Domain实现互联调用,Tuxedo与Weblogic分别代表两个TDOMAIN。
使用WTC时,Tuxedo方面要配置相应的Domain配置文件(dmconfig),指明本身以及weblogic所在Domain的IP和Port。
使用WTC时Weblogic方面要做的修改是:
—在ClassPath 中,加入jamti.jar所在的路径。
—在weblogic的配置文件,bdmconfig.xml 中,加入描述两个TDOMAIN的部分
在Tuxedo和weblogic 启动相应服务后,weblogic通过client端掉用相应ejb,再有该ejb调用tuxedo service。
注:
①中间件介绍:
介于客户机和服务器之间的夹层,突破了传统的c/s架构,为构建大规模,高性能,分布式c/s应用程序提供了通信,事物,安全,容错等基础服务,屏蔽了底层应用细节,应用程序不必从底层开发,以自身的复杂性换取应用程序开发的简单。
②联机事务处理系统(OLTP)
通常在数据库系统中,事务是工作的离散单位。例如,一个数据库事务可以是修改一个用户的帐户平衡或库存项的写操作。联机事务处理系统(OLTP)实时地采集处理与事务相连的数据以及共享数据库和其它文件的地位的变化。