一种Java调用Tuxedo服务的方法 下载本文

内容发布更新时间 : 2024/4/27 16:38:02星期一 下面是文章的全部内容请认真阅读。

一种Java调用Tuxedo服务的方法

摘要:在以Tuxedo为中间件的企业信息系统中,为满足分布式系统的应用,需要解决在Java程序中调用Tuxedo服务的难题,给出了一种免费的、用Visual C++2、Visual Basic3、Jacob组件和Java语言结合编程的方法,详细地解说了方法实现的原理及关键程序代码。 关键词:Java;Tuxedo服务;方法

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)17-31403-02

A kind Of Method That Java Transfers Tuxedo Service DENG Zi-yun,CHEN Yu-lin,YANG Xiao-feng (Hunan Modern Logistics College, Changsha 410000,China)

Abstract:In the enterprise information system that take Tuxedo as in the middleware, for satisfies the distributional system application, needs to solve the difficult problem in the Java program transfers the Tuxedo service, the article produced one kind free, with Visual C++, Visual Basic, the Jacob module and the Java language union programming method, detailed explained the method realization principle and the essential program code.

Key words:Java;Tuxedo service;Method 1 引言

Tuxedo是一个标准的交易中间件,在金融、电信、社保等行业的信息系统应用广泛,以其为中心构建的应用系统采用三层体系结构,由Tuxedo完成数据的转发、事务处理、安全性控制、网络通信等功能。Java技术有各行各业的信息系统正被广泛应用,在许多用Java技术构建应用级程序的系统中需要在程序中调用Tuxedo的服务以完成数据的路由分发、数据存取等分布式环境下的功能。

2 Tuxedo服务

Tuxedo中间件以一个个的service来向连接它的各种系统提供各种功能的支持。它可以是多个Tuxedo中间件集成的域,在各个中间件服务器上装载有多个server(经过编译的可执行文件),server再分为更细的service。 Tuxedo的service有两种调用接口:ATMI和CORBA(Common Object Request Broker Architecture, 公共对象请求代理体系结构)。在Tuxedo以往的版本中都支持ATMI接口,基于ATMI接口调用service的客户端可以用多种程序语

言编写,如Delphi、VC、C、PowerBuilder等,而CORBA由于通信协议的复杂性和效率不高很少在工程应用场合中使用。

service实际上就是一个个的用C语言或Pascal语言编写的函数,可以带有参数,其中指针及结构体的参数比较常用,用C或VC编写的客户端程序可以很方便地使用这些数据类型。调用Tuxedo的服务时必须考虑参数传递的问题,而VB、Java、PowerBuilder这些语言并不支持指针这种数据类型。

3 调用方法原理

如下图所示是一种Java调用Tuxedo服务的方法原理示意图。

图1 调用方法原理示意图

首先用VC编写DLL(Dynamic Link Library,动态链接库)。Tuxedo提供的ATMI接口DLL用C语言编写的,与VC可无缝集成;再用VB编写COM(Component Object Model,组件对象模型)组件;在Java中通过Jacob组件来调用COM组件来实现调用Tuxedo服务;Jacob是一种基于JNI(Java Native Interface,Java本地接口)技术的开源的在Java中调用COM组件的Java组件。这种方法的优势如下?s (1)屏蔽了VB语言及Java语言不支持指针数据类型