异构财务系统中间件的研究与实现*

2015-03-14 12:17
舰船电子工程 2015年9期
关键词:中间件异构文档

高 菲

(宝鸡职业技术学院 宝鸡 721000)



异构财务系统中间件的研究与实现*

高 菲

(宝鸡职业技术学院 宝鸡 721000)

为了解决集团财务系统的异构性,使集团能够透明化访问各子公司财务系统,将Agent引入到数据库集成中间件中来,完成基于多Agent的系统集成中间件模型的设计,分析中间件系统运行流程,中间件系统中通信问题的设计,基于XML的Agent通信。通过测试表明论文所实现的财务系统中间件能较好地解决集团用户查询获取实时财务信息的问题,能满足用户“实时”查询财务数据的需求。

异构财务系统; 系统集成; 中间件; 数据访问; 映射字典

Class Number TP311

1 引言

大的集团都包括很多下属分公司,这些分公司通过网络与集团总部互连。由于历史原因,集团内部各个子公司使用的财务软件系统应用纷杂,不同厂商、不同时期、不同版本的混合在一起,构成了跨Internet分布的异构数据系统,为集团总部实施财务监管和集团财务分析决策等带来很多困难和现实问题。如何整合集团企业并存的信息资源,尤其是财务资源,提高管理工作的效率将成为企业竞争的重要内容。为了使集团总部财务人员能够通过远程查询,实现“实时”监控,随时掌握各子公司的财务基础信息和运营状况,包括凭证、明细帐、分类帐、总帐、资产负债表和利润报表等,本文把Agent技术和XML技术引入到异构财务系统集成框架中来,能够较好地发挥Agent自身的各种智能化的特性,有效地降低了异构信息系统集成的复杂性,满足了集团的要求,适合集团企业信息化建设的需要。

2 异构财务系统集成中间件模型

数据库中间件的出现在一定程度上解决了集成数据的访问、数据库访问用户受限、异构数据源的透明访问等问题。但是当前的数据库中间件系统也存在前面所述的一些缺陷,如:数据交互速率问题、系统负载均衡等问题。由于Agent具有自主性、感知性、主动性等智能特点,故可将Agent技术结合到数据库中间件系统中,以期解决目前数据库中间件的不足。本文异构财务系统集成中间件模型的设计把Agent技术和XML技术引入到中间件系统中来,能够较好地发挥Agent自身的各种智能化的特性和XML在数据应用方面易表义、跨平台等优势,有效地降低了异构财务系统集成的复杂性,满足了集团的要求。从中间件的功能层次上来看,集团异构财务系统集成中间件是构建在财务数据库系统之上,用户层之下的。它利用多Agent技术和XML技术构建了一个异构财务系统集成中间件,从而屏蔽各子公司财务系统的异构性,实现了集团总部对下属各子公司财务系统信息的透明化共享。该中间件封装了系统的应用业务逻辑,与应用层和子公司财务系统构成了客户/服务器三层结构,如图1所示。整个中间件系统的设计分为两个部分:各子公司财务数据库信息映射字典的生成和中间件系统查询的运行。这两个部分是异步运行的过程。

图1 中间件系统拓扑结构图

各个模块的主要功能说明如下:

1) 信息Agent:(1)集团每一个子公司的财务数据库系统都对应一个信息Agent,它通过连接子公司财务系统的数据库服务器,存储各个财务系统数据源的描述信息,包括各种财务数据库的类型、数据库名称、数据库用户名、密码、主机名、端口号、IP地址、各种财务表信息和视图信息等,同时基于Agent的反应性、主动性、信息Agent自主检测财务系统数据源是否发生变化,如果发生变化则主动采集财务变化信息并做自身的更新发送给信息管理Agent;(2)接收转换Agent传来的查询请求,将请求服务传给子公司财务数据库执行。

2) 信息管理Agent:(1)同各个信息Agent进行交互,接受所有信息Agent发送的关于子公司财务数据库信息内容描述,并针对每个表和字段做必要的说明性描述,对发生语义冲突的地方进行重新定义,从而生成XML格式的映射字典,为实现用户查询到财务数据库的映射提供参考。(2)与分配Agent进行交互,将映射字典发送给它。

3) 分配Agent:同信息管理Agent进行交互,参考其映射字典,获取所查询子公司财务数据库的信息以及用户标准查询字段所对应的财务数据库的非标准字段。并将这些信息发送给转换Agent。

4) 转换Agent:包括查询转换部分和结果转换部分。查询转换部分接收分配Agent发送的查询后,解析查询文档,提取查询参数,组织成目的财务数据库能识别的查询语句,发送给对应的信息Agent。结果转换部分接收目的信息Agent带来的查询结果,并将其转换为标准的XML文档发送给集成Agent。

5) 集成Agent:接收转换Agent返回的查询结果,将结果XML文档封装成客户端能够识别的格式,提交给用户。

3 中间件中Agent的结构设计

由于集成的各个异构财务系统数据分属于不同的子公司,而且各个子公司的财务数据都是不定时被更新的,这样就要求集成中间件必须提供一种“实时”的查询服务。显然,这是通用的异构数据库系统集成中间件所不能满足的。为了解决这个问题,本文设计的异构财务系统集成中间件分为两个部分:各子公司财务数据库信息映射字典的生成和中间件系统查询的运行。

这两个部分是异步的过程,也就是说财务数据库信息映射字典的生成和中间件系统查询的运行是两个并行的、独立的过程。财务数据库信息映射字典的生成可以在集团用户没有提交任何查询的情况下由各个信息Agent和信息管理Agent自动运行生成,而中间件系统的运行负责处理用户提交的财务查询并将查询结果返回给用户。

· 财务数据库信息映射字典的生成

子公司财务数据库信息映射字典的生成是异构财务系统集成的关键。由于用户提交的查询与后台各个子公司财务系统的表结构、字段、属性等不尽相同,这样就必须有一个从查询标准字段到数据库非标准字段的映射。因此该中间件系统生成的映射字典包含了各财务数据库的描述信息和用户查询财务表的标准字段到数据库财务表的非标准字段的映射。流程图参见图2。

图2 财务数据库信息映射字典的生成流程

· 中间件系统查询的运行

系统查询的运行过程是指集团用户在与本中间件交互的过程中,本中间件系统自身的活动过程,其主要功能就是为异构财务数据的共享使用提供服务。该过程的主要流程可以通过图3来说明。

图3 中间件系统运行数据流图

具体如下:

中间件系统给用户呈现出一个客户端查询页面,集团总部通过查询界面提交查询,当中间件系统接收到用户的查询条件后,将做以下的处理:

1) 使用HashTable收集用户的查询信息,然后传递给分配Agent;

2) 分配Agent参考信息管理Agent发送的XML格式的映射字典,确定用户查询的目的财务数据库,并获取财务数据库信息和各财务表中标准字段对应的非标准字段封装成XML文档发送给转换Agent;

3) 转换Agent收到查询信息后,解析查询文档,提取查询参数,组织成目的财务数据库能够识别的查询语句(这里主要是SQL查询语句)发送给目的信息Agent;

4) 信息Agent接收的消息后,检验消息的合法性并抽取出SQL查询语句连接到相应财务数据库执行查询,然后将得到的DataSet查询结果封装成XML格式的消息发送给转换Agent。

5) 转换Agent参考映射字典,将非标准的XML结果文档转化为标准的XML文档发送给集成Agent。

6) 集成Agent接收XML格式的结果文档后封装为DataSet绑定客户端界面的ListView显示。

在中间件系统中,映射字典,查询过程和结果文档均采用XML文档格式进行数据的交互,这样设计的优点是:

1) 使数据交换保持了系统独立性原则,降低耦合性,提高了重用的可能性;

2) 使中间件对用户隐藏了数据存储和获取的细节,同时,使用户对中间件隐藏了数据的使用和显示问题;

3) 所需的网络传输带宽更低。XML文档传输所需的带宽要低于同样数据规格的HTML文档的传输;

4) XML文档格式的结果使用户对数据进行本地化处理变的容易。

4 中间件系统通信机制的设计

在多Agent分布式系统中,为了实现Agent之间的通讯,要求每一个Agent知道其它Agent的名称、通信地址、通讯端口、协作能力等。因此,在每个Agent中设计一个通讯模块,该模块负责所有与通讯有关的动作,同时该模块也是Agent间进行通讯的一个接口。通讯设计实现框架如图4所示。每个通讯模块包含信息表、消息缓存池和一个通讯服务管理器三部分。信息表用来记录Agent中的一些基本特性。信息表主要包括以下两部分: 1) 静态信息表:存储Agent自身的静态信息,如Agent标识、本身的性能、IP地址等; 2) 动态信息表:主要存储通讯状态下的其它Agent信息。在每个Agent启动与其他Agent通讯时,会将各种通讯状态信息登记到动态信息表中,并在退出时删除这些信息,以保持动态信息表的实时更新。消息缓存池:Agent用来存储发送和接收到的消息;通讯服务管理器:主要负责消息的封装和解析、消息同步传输控制。避免由于同步问题造成的因果错误。

图4 Agent通信实现框架

在具体设计通讯实现框架时,采用面向对象的软件设计思想。将信息表、消息缓存池、通讯服务管理器和其他各部分分别定义成类的形式;把发送的KQML消息封装成XML格式文档,然后进行传输。在底层采用TCP/IP通讯协议和socket通讯技术实现多Agent结点的通讯。

Agent间实现相互通讯就要处理Agent通讯过程中的各种事务。在每个通讯模块中设置一个通讯服务管理器。通讯服务管理器作为消息通讯的枢纽,在系统中起着核心作用。通讯服务管理主要包括XML文档解析、Agent系统管理、Agent域名管理和消息传输过程管理。服务管理器结构如图5所示。XML文档解析:完成消息的XML文件的解析;Agent域名管理:解析和查询其他Agent的名称、通讯地址和通讯端口等信息;Agent系统管理:负责Agent内部其他模块间的协同操作;消息传输过程管理:主要完成通讯中服务监听与线程管理和消息发送与接收的传输控制,如消息传输同步控制,为其它Agent分配线程等。

通过定义如下的类与方法来实现通讯服务管理器的功能。服务监听与线程管理是由run方法进行处理。方法doCommManage用于完成消息传输的同步控制管理。消息的XML格式封装和解析分别由CreateXml类中的doConverXml方法和parseXml方法实现。

图5 通讯服务管理器结构

系统中Agent之间要互相协作完成一个复杂的任务就要互相通信。为了让每个Agent都能理解通信的内容,作出相应的反应,就需要为它们定义共同的通信机制。这里选用KQML(Knowledge Query and Manipulatlon Language),它提供了一套标准的Agent通信原语,定义了一组Agent之间传递信息的标准语法和动作,而且KQML通信语言支持多种类型的消息通信,能够完成控制系统中的一般信息交换、功能交互与知识共享。KQML分为三个层次:内容层、消息层和通讯层。Agent之间传递的消息是明确用言语行为理论加以类型化的,它们通过Inform、Request、offer、Accept、Refuse、command等类型的消息来实现交互。

5 环境的模拟与测试

5.1 模拟实验过程

在实验室里配置了三台计算机模拟该异构财务系统集成中间件的运行过程。其中,计算机A既作为集团总部客户端查询又作为中介服务器;计算机B作为集团子公司1使用用友通标准版10.1财务软件系统;计算机C作为集团子公司2使用金蝶KIS标准版V8.0财务系统。三台计算机间通过Internet互联,子公司1的用友财务软件系统与子公司2的金蝶财务软件系统异构。根据前述对于集成中间件系统的方案及实现分析,基于Socket消息传输方式和IP网络协议实现了子公司与集团总部之间的通信,且利用C#编程语言实现了Agent的部分功能,达到了集团总部对子公司1和子公司2异构财务系统信息透明化共享的目的。

5.2 模拟实验结果

图6 子公司1银行存款明细账查询结果

用户可以通过明细账查询界面选择子公司、科目、明细账类、,查询的日期,然后点击“查询”按钮,提交查询信息。查询信息将通过集成中间件系统送至该子公司财务数据库执行查询,然后把查询结果返回给用户。图6和图7分别为集团用户查询子公司1和子公司2在1月到3月期间银行存款明细账信息示例。其中,查询界面的上半部分为用户查询条件的选择,下半部分为ListView返回的查询结果(查询之前ListView部分为空)。

图7 子公司2银行存款明细账查询结果

5.3 “实时性”测试

根据上述实验环境的配置,针对数据库信息的变化规模,现对信息Agent响应的时间进行测试,如图8所示。

图8 信息Agent响应时间曲线图

根据以上实验测试曲线图可知,随着财务数据库数据更新数量的增多,信息Agent的响应时间成增长趋势,但是总体来说响应速度仍然较快,也就是说信息Agent能够第一时间发现财务系统的数据变化并将变化信息及时发馈给信息管理Agent,信息管理Agent更新生成当前的映射字典为中间件系统的查询运行提供参考。

通过以上测试可知,该中间件系统的设计能够满足集团用户“实时”查询财务数据的需求。

6 结语

随着企业应用范围的不断扩大,企业对信息的需求也日益增大,越来越多的企业应用需要访问到多种异构数据源。对于企业应用来说,这既是企业内部发展的需要,也是企业适应外部环境的需要。集团对子公司异构财务系统的查询监管是异构数据源集成的一个重要应用背景。基于中间件技术的异构数据库共享集成将成为广泛使用的异构数据库集成方法。本文针对集团异构财务系统集成的重点和难点问题作深入研究,提出了具体实现方案并通过实验验证了集成中间件系统的可行性和实时性。

[1] Dreilinger D. Howe A E. Experience with Query Using Mobile Agent[J]. ACM Trans on lnf sys,1997,15(3):195-222.

[2] W3C. Extensible Markup Languager(XML) 1.0 Third Edition[EB/OL]. http://www.w3.org/TR/2004/REC-xml-20040204/,2000.

[3] CHEN Miao, ZHU Qiuming, CHEN Zhengxin. An integrated interactive environ-ment for knowledge discovery from hetergeneous dataresources[J]. Information and Software Technology,2002,43(8):487-496.

[4] C. W. CHUNG. DATAPLEX: An access to heterogeneous distributed databases[R]. Comm. ACM,2002,33(1).

[5] Georgeff M, Pell B. Pollack M. The Belief — Desire — Intention Model of Agency Proceedings of Agents, Theories, Architectures and Languages(ATAL)[M]. 1999.

[6] WOOLDR IDGE M, JENN INGS N R. Intelligent Agents: Theory and Practice[J]. Knowledge Engineering,1995,10(2):704-708.

Research and Realization of the Middleware of the Heterogeneous Financial System

GAO Fei

(Baoji Professional Technology Institute, Baoji 721000)

In order to solve the heterogeneity of the financial system and realize that the group can interview all the financial systems of the subsidiary companies, the Agent technology was introduced to the database integration middleware. The modules about the system integration middleware was designed based on the multi Agent technology, and the operation process of the middleware system was analyzed, the Agent communication in the middleware system was designed based on the XML. The tests about the financial system middleware designed in this paper showed that this financial system middleware could solve the problems about the real time financial information inquired by the users and meet the requirements about the inquiring the financial data timely.

heterogeneous financial system, system integration, middleware, data access, mapping dictionary

2015年3月3日,

2015年4月27日

高菲,女,硕士研究生,研究方向:计算机教育。

TP311

10.3969/j.issn.1672-9730.2015.09.029

猜你喜欢
中间件异构文档
ETC拓展应用场景下的多源异构交易系统
浅谈Matlab与Word文档的应用接口
试论同课异构之“同”与“异”
有人一声不吭向你扔了个文档
多源异构数据整合系统在医疗大数据中的研究
吴健:多元异构的数字敦煌
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
Word文档 高效分合有高招
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat