Tuxedo中间件在电信计费系统中的应用设计方案

时间:2022-09-11 04:20:45

Tuxedo中间件在电信计费系统中的应用设计方案

摘要:为实现计费系统的快速安全的计费功能,以及系统的可扩展性,分析了Tuxedo中间件的功能特点,介绍了Tuxedo中间件在计费系统中的设计与实现。

关键词:计费系统;中间件;存储过程;三层体系结构;Tuxedo

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)22-6362-03

Design and Implementation of Tuxedo Middleware for Telecom Charging System

YANG Wen-bing, CHEN Lian

(College of Information Engineering, Nanchang University, Nanchang 330031, China)

Abstract: In order to Implement the quick and safty charging function and Augmentability in the Charging System, the paper analyses the function and feature of the Tuxedo middleware and introduces the designment and the implementation of the Tuxedo middleware in the Charging System.

Key words: accounting system; middleware; stored procedure; 3-tier application architecture; Tuxedo

近年来,我国电信网络的建设呈现出高速发展的态势,与此同时对后付费系统的要求也变得越来越复杂.在这种情况下,我们提出了采用采用中间件Tuxedo通讯。计费系统为Tuxedo的SERVER端,多媒体系统为Tuxedo的CLIENT端。SERVER端用来提高指定相应的服务,CLIENT端调用相应的服务以取得响应内容。数据接口格式都用规定格式的字符串进行。通过采用中间Tuxedo中间件可以达到以下效果:

1)提高系统效率。中间件维护与数据库的常连接,减少与数据库的连接/断开次数,分担数据库的业务处理工作,提高数据库服务性能。

2)跨平台支持,移植简便。

3)使用方便。客户端无须安装数据库的CLIENT端,只须简单的设置即可。开发时也只须按Tuxedo提供的几个函数,即可取得SERVER端的响应内容。

本文将对中间件Tuxedo中间件的介绍及在后付费计费系统中的应用来展开论述。

1 技术分析

1.1 中间件概述

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境,其工作原理图如图1所示。

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

1.2 Tuxedo概述

Tuxedo是BEA 公司的交易中间件产品,Tuxedo系统是在企业、Internet分布式运算环境中开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。Tuxedo是企业、 Internet 分布式应用中的基础主干平台。它提供了一个开放的环境,支持各种各样的客 户、数据库、网络、遗留系统和通讯方式。

Tuxedo具有强大的联机交易性能,高度可靠性能和无限的伸缩性,能够为企业建立,运行和管理大规模,高性能,分布式的关键业务系统提供一个强大的支持平台。Tuxedo在企业中的应用可以分为以下三个方面:

在企业分布式联机交易系统中,Tuxedo作为一个事务监视器(TP Monitor,即TM)来协调分布式事务。TM使用全局事务来跟踪事务参与者,使用XA接口规范和两阶段提交协议来管理与协调RM的局部事务。保证在网络环境下对多场地资源管理器做异步修改时数据的一致性和完整性。

在构建多层C/S应用系统中,Tuxedo以一个中间件的角色部署在客户机和服务器之间,提供应用服务。

在构建企业级应用系统中,Tuxedo可以作为一个应用服务器平台,为企业级应用提供一个部署环境和运行环境。

1.3 功能需求

电信业务系统是一个典型的分布式异构系统,结构复杂、业务繁多、所包含的数据量庞大,而传统的电信营业系统由于上线的时间早,都是基于典型的客户/服务器模式设计的。整个设计模式将电信业务系统分成了两部分,一部分是CRM系统,另一部分便是计费系统。CRM系统的服务器端采用了Sybase数据库,客户端采用了Unix系统进行业务受理,用来受理用户(电话用户、ADSL用户等)的新装、移机、拆机、停机、复机、过户、改名等相关的业务;而计费系统则受理电信用户的预缴话费和相关的出帐,计费系统的服务器端原来是采用Sybase数据库,随着业务量的巨增以及计算机技术的发展,逐渐被Oracle数据库所代替,计费系统的客户端则通常使用Delphi或Web模式。

通过以上对电信系统的相关分析可知,要实现CRM系统和计费系统之间以及不同计费系统数据库之间的无缝通信,就必需引入一种中间件来实现这些异构系统之间的通信,因此,我们引入了Tuxedo中间件,构成了基于Tuxedo中间件的三层体系结构,通过Tuxedo屏蔽底层硬件、操作系统、数据库的差异,将整个电信的各个系统很好的融合在一起,对原有的CRM中的用户以及新增数据库中的用户进行安全、自由、完整的计费,图2即为引入中间件Tuxedo后的计费系统。

2 tuxedo接口在电信计费系统的设计实现

2.1 编程平台

主要开发工具:visual studio 2005;

数据库系统:Oracle 9i简体中文企业版;

操作系统:Windows 2003Advanced Server 中文版。

2.2 中间件TUXEDO通讯数据格式

在安装好中间件Tuxedo后,计费系统客户端只须通过调用其相关的接口函数,传入相对应的参数即可,现通过其中的一个接口函数对中间件的通讯格式进行说明如下:

HBQ170FEEF(String AreaID, String ID, String inYearMonth, Char nOption)

功能描述:总帐清单查询

入参描述:AreaID(6字节)ID(16字节)inYearMonth(6字节)nOption(1字节)

入参说明:AreaID DD本地网区号

ID DD输入号码

inYearMonthDD查询年月,格式:YYYYMM

nOptionDD查询类型(1:合同号,0:固定电话)

出参描述:ret(4字节)SumFee(12字节)Name(60字节)LeftFee(12字节)Month(6字节)RNum(6字节)明细数据1(48字节)明细数据2(48字节)...

明细数据n 内容说明如下(n为1、2、...):号码(16字节)费用描述(20字节)费用(12字节)

出参说明:

ret DD0(成功),10(失败)

Rnum DD记录条数,6 位。

SumFee DD12字节,总费用

Name DD60字节,账户名称

LeftFee DD12字节,账户余额,固定电话为“0”

Month DD6字节,查询年月

2.3 安装TUXEDO客户端。

设置环境变量:

export BDMCONFIG=$HOME/bin/bill.bdm

export TUXDIR=/opt/tuxedo81

export WSNADDR=//172.20.0.100:17000

export PATH=$TUXDIR/bin:$PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TUXDIR/lib

客户端调用Tuxedo的相关代码:

#include

#include

#include

#include < userlog.h>

main()

{

int ret;

long len=0,flags=0;

char *bufptr;

/*与TUXEDO SERVER建立连接*/

if(tpinit((TPINIT * )NULL) == -1)

{

exit(1);

}

/*分配缓冲区*/

if ((buf=tpalloc("STRING",NULL,801*1024==NULL)

{

tpterm();

exit(2);

}

/*客户端同步调用服务端的名为TOUPPER的SERVICE */

ret = tpcall("TOUPPER",bufptr,len,&bufptr,&len,flags);

if (ret == -1)

{

userlog("Error requesting %d %s",tperrno,tpstrerror(tperrno));

/*释放由TPALLOC()或TPREALLOC()分配的缓冲区*/

tpfree(bufptr);

exit(-2);

}

/*释放由TPALLOC()或TPREALLOC()分配的缓冲区*/

tpfree(bufptr);

/*断开与TUXEDO SERVER建立连接*/

if(tpterm()== -1)

{

userlog("tpterm error %d %s",tperrno,tpstrerror(tperrno));

}

}

3 结束语

电信计费系统是一个结构复杂、业务繁多、数据量庞大的系统,各个子系统相互制约、紧密联系。因此,必需充分注意各个子系统之间的协调,系统运行的安全性、可靠性。采用中间件Tuxedo的三层体系结构模式,使得程序开发大大降低了难度,大大缩短了程序开发的周期,同时也提高了系统的可靠性和安全性。

参考文献:

[1] BEA System.Inc Programming BEA Tuxedo ATMI Application Using C[EB/OL]..

[2] 李敬民.Tuxedo中间件在电信综合业务支撑系统中的应用[J].软件导报,2008,7(6):45-47.

[3] 徐金春.Tuxedo中间件开发与配置[M].北京:中国电力出版社,2003.

[4] 张雪英.基于BEA中间件设计三层结构MIS系统[J].计算机应用与软件,2004,21(6):123-125.

[5] 唐青.大连电信局计费帐务管理系统分析与设计[D].大连:大连理工大学,2003.

上一篇:一种面向用户的系统资源监测模块的设计和实现 下一篇:J2EE技术实现城市本地公众信息平台