昨天才开始接触Tuxedo总有一种无从下手的感觉,先是在windows下安装Tuxedo发现怎么也装不上,最后想想还是用虚拟机用linux吧,果然就装上了。对于新人还没用过Tuxedo果断推荐用linux来学习这个。
安装的过程就不多说了,直奔今天的主题吧!
首先,学习Tuxedo你首先需要对中间件有个大概的了解,以前学weblogic时觉得中间件就和很多应用服务器是一个概念,那是没理解中间件的具体的含义。说说我的理解吧:中间件顾名思义是处于中间位置的,那么它到底是处于哪的中间位置呢?中间件位于客户机/ 服务器的操作系统之上,具体来说中间件是位于服务器上面的,但客户机访问服务器需要通过中间件这种软件来进行的。以前以为B/S架构比C/S架构好用,因为觉得C/S架构有如下缺点:
1.难以维护
client/server结构用户界面、业务逻辑和数据逻辑相互交错,通常在第一次部署的时候比较容易,但难于升级或改进,而且经常基于某种专有的协议(通常是某种数据库协议)。它使得重用业务逻辑和界面逻辑变得非常困难。
2.难以扩展
随着系统的升级,系统复杂程度大大增加,难以扩展,另外它是一个封闭的系统,很难与其他的应用系统实现互操作。
3.安全性差
客户端程序可以直接访问数据库,可通过编程语言或数据库提供的工具直接对数据库进行操作,不安全
4. 性能不好
客户端直接与数据库建立连接,当有大量的并发用户存在时,会使数据库不堪重负,性能迅速下降,甚至当机。
但这只是传统的C/S架构,是两层的C/S架构。
但这种两层架构远远无法满足人们的需求,于是三层架构的C/S便诞生了。
而三层架构由于其复杂性,于是便有了中间件这种技术。
中间件其实也是一种软件不过他的功能比较特殊,他利用自身的一个功能将业务逻辑承载在上面,通过一系列内置的功能屏蔽掉底层的代码。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。 在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西,越底层越复���,开发者不得不面临许多很棘手的问题:
1.一个应用系统可能跨越多种平台,如UNIX,NT,甚至大机,如何屏蔽这些平台之间的差异?
2.如何处理复杂多变的网络环境,如何在脆弱的网络环境上实现可靠的数据传送?
3.一笔交易可能会涉及多个数据库,如何保证数据的一致性和完整性?
4.如何同时支持成千上万乃至更多用户的并发服务请求?
5.如何提高系统的可靠性,实现故障自动恢复和故障迁移。保证系统7*24*52可用。
6.如何解决与已有应用系统的接口。
这些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。���一技术思想最终构成了中间件这类的软件。
而tuxedo是中间件中比较成熟的一种产品,BEA 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.可靠队列服务/Q
TUXEDO提供了一个简单的可靠的队列机制,保证应用系统提交的请求和数据可在网络故障或目的服务器瘫痪等情况下也能递交到目的服务器。应用程序能将服务请求入队和出队,并可以设定系统,使队列中的请求自动地转发给 TUXEDO的服务进程,并取回处理结果。这种可靠队列作为一种资源管理器,可以和其他资源管理器(如数据库)协作,完成全局事务处理。
/Q的常见用法是用于实现数据的可靠传送,把数据从一台机器可靠的传送到另一台机器.如:在电信计费业务中,可以用/Q把采集到的计费数据发送到计费中心进行处理;在银行中,不同的银行间可用/Q传送结算数据. 数据传送可以是在客户端与服务端之间,或服务端与服务端之间���/Q还可以用于实现批处理或工作流等业务。
4. 域/Domain
将大范围、由很多台(几百甚至上千)服务器共同组成的一个应用系统按功能或结构划分为不同的域,每个域独立地完成域内的操作,域间操作由域网关完成,从而提高每个域和整个系统的运行效率。
TUXEDO的域特性把客户/服务器模型扩展到多个独力自治的应用系统. 一个域既可以是一组TUXEDO的应用程序(若干相关的应用服务和配置环境的组合)。域同时也可能是一组运行在另一个非TUXEDO环境中的应用程序。 TUXEDO和其他中间件的互操作也是利用域网关的概念来实现的。
TUXEDO对域的划分和管理类似于网络应用中划分子网的概念—-将复杂 的网络应用按功能或地域等因素划分为不同的子网,子网间以路由器联接,不同的网络协议通过网关透明地转换,从而提高网络效率并加强整个网络的可管理性。这一应用模式已被广泛证明是处理大范围、复杂应用的成功经验和事实上的标准,同时也是TUXEDO在多年大规模企业用户的实际应用中总结和开 发的行之有效的中间件功能。而其他绝大多数中间件厂商尚无力涉足域的划分与管理,从而很难为超大规模的应用提供强有力的支持。
TUXEDO具备了所有交易中间件产品所应具备的功能,作为构造三层结构应用系统的基础平台,TUXEDO的主要功能可概括为五大平台:
• 应用开发平台: 提供API,供开发人员调用,用于开发整个应用系统。
• 应用部署平台: 通过配置文件,对应用系统进行部署。
• 应用运行平台: 提供应用系统运行的环境。
• 应用管理平台: 对整个应用系统进行管理,监控。
• 应用互联平台: 可以和其他的应用系统互联,实现互操作。