在我从事的工作中,我最喜欢的一个软件就是中间件。技术不断发展,中间件的概念也不断进行。我所说的中间件,还是传统意义上的。业界使用比较多的中间件,我所涉及的有三个,有BEA的Tuxedo(目前在Oracle旗下),Borland的Visibroker,还有国内东方通的TongEASY。
我使用时间最长的是Tuxedo. 一年前一个机会,甲方准备测试一下这三个中间件谁优谁劣,我作为业务开发负责人,让我可以接触其他两个。
现在想起来,这个机会实在难得。现在把当时培训TongEASY的学习笔记晒一下,省得发霉。
今天在公司听取了东方通中间件产品介绍。对这种中间件产品进行详细的了解。通过听讲座,学到了很多有关的东方通的知识。
一. 与东方通TongEASY有关的基本概念
东方通中间件的组成:由三层组成。通信管理模块、事务管理模块、应用开发API。
u 节点:是中间件的提供服务的基本单位,独立配置,独立启动,提供服务。可以进行集群配置。配置时分为上下级节点,下级节点调用上级节点所提供的服务。
u 客户端:分为节点客户端(胖客户端)和瘦客户端。
u 连接:分为常连接和动态链接,上下级节点之间的连接为常连接;瘦客户端采用动态连接,调用时需设置代理节点。
u 事务:分为全局事务,分支事务。东方通支持XA式两阶段提交,由中间件管理事务的中间状态;也支持有应用自己管理事务的非XA方式。
二. TongEASY的安装和配置
接下来我们学习的是TongEASY的安装和配置,安装过程非常的简单,只需要将TongEASY的压缩包解压就可以,在配置四个环境变量。
系统要求:对于AIX,只需要检查系统参数maxuproc > 1000就可以了,其他平台还需要调整共享内存、消息队列、信号量、打开文件数、并发进程数等参数。
环境变量:需要配置4个系统参数
TONGEASYHOMEDIR(指向TongEASY安装目录)
TONGEASYDIR(指向TongEASY配置文件存放目录etc)
TEFILESDIR(指向TongEASY发送、接收文件的目录file)
TELOGDIR(指向TongEASY日志文件的存放目录log)
编译环境:系统需要有CC编译器,C标准库,多线程支持库,PROC编译。
配置文件:
通信管理模块配置文件
srcpara.txt 中间件参数配置文件
TongLINK.conf 节点配置文件
route.txt 路由配置文件
事务管理模块
dbdesc.txt 数据库配置文件
svcdesc.txt 服务配置文件
常用命令:
tminit 中间件启动
tmend 中间件结束
tlmenu 节点配置工具
loadnode 重新加载配置文件
三. 应用Demo介绍
今天还介绍了一个同步调用的Demo,来了解TongEASY的开发过程。
配置服务有以下步骤:
配置数据库连接配置文件dbdesc.txt
配置服务配置文件svcdesc.txt
编译客户端,编译方法跟普通的PROC程序没有分别。
编译服务端,需要使用Tebuild命令进行编译服务
四. TongEASY提供的API
TongEASY面向不同的数据库(Oracle,Informix,Sybase)提供不同的编译库,但是具有相同的编程接口。对于语言支持上,不但提供了C库,还提供了供Java调用的类库。
C程序会应用到的API:
TE_tpinit() 应用注册
TE_tpterm() 应用注销
TE_tpcall() 同步方式调用服务
TE_tpacall() 异步方式调用服务
TE_tpgetrply() 接收异步请求应答
TE_tpreturn() 服务端返回
TE_tpforword() 转发请求
五. 与TUXEDO相比TongEASY的优劣
在中间件的产品中,TongEASY算是后期之秀,很多面有着比TUXEDO更方便的应用,更灵活的设计。尤其是它拥有的节点的概念,是中间件集群配置更加的方便,他的名字服务给了服务逻辑别名,使得配置更加灵活。同时名字服务集成的负载均衡功能,更有利于它的这种分布式设计结构。
和TUXEDO相比,他也存在着一些不足。①TongEASY不支持服务级重启,只支持节点级重启,这样对于7*24系统可能会有一些影响②TongEASY不支持按照服务分别记录日志。一个节点上的日志,会记录到一个日志文件中。这样大型的系统会造成日志文件相当的大,并且不利于通过日志文件查找问题。