基于消息队列软总线的系统集成与数据交换方案.pdf





《基于消息队列软总线的系统集成与数据交换方案.pdf》由会员分享,可在线阅读,更多相关《基于消息队列软总线的系统集成与数据交换方案.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华 南 理 工 大 学 学 报(自 然 科 学 版)第36卷 第5期Journal of South China U niversity of TechnologyV ol.36N o.52008年5月(N atural Science Edition)M ay2008文章编号:10002565X(2008)0520001205 收稿日期:20072062033 基金项目:粤港关键领域重点突破项目(2006A15006003)作者简介:邓辉舫(19572),男,教授,博士生导师,英籍专家,主要从事数据库与网络计算方面的研究.E2mail:基于消息队列软总线的系统集成与数据交换方案3邓辉舫 黄俊
2、成(华南理工大学 计算机科学与工程学院,广东 广州510006)摘 要:为了充分利用已有系统的数据资源和服务资源,建立一个扩展性好、资源占用少、松散耦合、复用性强、维护方便的平台级或大型集成系统,文中提出了一种基于消息队列软总线的系统集成方案.利用.net程序集技术和C#语言的反射机制来构造“热插拨”数据适配器,并将其编写成DLL程序集组件,从而实现异构(不同数据标准或格式)系统之间有效的、方便的数据交换.该方案已应用于物流通关公共服务信息平台.关键词:消息队列;软总线;热插拔;适配器;系统集成;数据交换;物流通关;公共信息平台中图分类号:TP311 文献标识码:A 在构建平台级系统的过程中,
3、往往需要对已有的各种业务系统进行有效地集成.由于已有系统之间所使用的数据标准和格式可能不一样,因此,系统集成的关键问题是如何实现原有系统间的信息交流或数据交换.例如,为了有效地构建物流公共信息平台,充分利用物流通关已有信息系统的数据资源和服务资源,人们需要集成供应链管理系统、企业物流系统、仓储管理系统、电子口岸信息系统以及电子政务应用系统等,使得这些采用不同数据标准的系统能够方便地进行信息交流.同时,实现系统集成应遵循“三不”原则:不影响企业的现有系统;不影响企业的业务流程;不影响企业的实际利益.其中一种系统集成方案是简单地在需要交换数据的系统之间增加数据转换模块(即数据适配器),但随着要集成
4、的系统和需要进行数据交换的系统不断增多,这种简单的“拼接模式”将使得集成系统内部的子系统之间的关系变得非常复杂,难以管理与扩展.软总线的概念来源于计算机硬件技术,希望它能够实现类似于硬件总线的桥梁功能,任何一个符合一定标准的应用程序都可以通过插件方式获得软总线的支持,与总线上的其它部件相互通信、协调与控制1.采用软总线体系结构的系统集成方式,可以有效地降低需要集成的系统之间的耦合程度,具有良好的可扩展性、可复用性、可维护性,是当前构建大型系统的首选方案.为了建立一个扩展性好、资源占用少、松散耦合、复用性强、维护方便的集成系统,文中提出一种基于消息队列软总线的系统集成与数据交换方案.1 与软总线
5、连接的数据适配器为了简化问题,文中先讨论两个系统A和B集成的情况.系统A是数据请求端,系统B是数据服务提供端,即B执行A的请求,如图1所示.在软总线体系架构下,不同系统之间的集成或者数据交换,需要经过软总线.不过,软总线并不能识别所有系统发过来的请求数据,即使能识别进入其中的数据,处理该请求数据的服务端也不一定能识别由软总线流出的请求数据.在软总线中流通的数据,必须符合软总线的数据格式.因此,不同系统之间要经过软总线进行通信或数据交换,需要适配器来对数据进行必要的转换,使得数据从请求端流入软总线后能让软总线识别和处理,或者将经软总线处理过的数据转换成能让数据服务端识别和处理的数据.图1 适配器
6、在系统间数据交换中的作用Fig.1Function of adapters in data exchange among systems2 系统集成与数据交换方案2.1 基于消息队列的软总线目前,软总线的实现技术主要有3种:远程过程调用、对象请求代理和消息队列.远程过程调用和对象请求代理两种方案中,相互通信的系统在设计与开发的过程中都需要遵守严格的接口规范,它们都是耦合程度较高的软总线实现方式.而消息队列为构造以同步或异步方式实现的分布式应用提供了松耦合方法2.构建大型应用系统需要考虑以下问题:(1)集成已有系统.由于现有系统之间的相异程度很大,使用的数据标准不一样,因此根据系统集成的“三不”
7、原则,必须采取松散耦合的系统集成方法.(2)系统未来扩展.在开发系统时并不能完全预见将需要与之交互、集成的系统的通信要求,为了便于未来的扩展与使用,应为系统建立有效、便捷的通信和调用机制.综上所述,采用基于消息队列的软总线可以有效降低系统的耦合程度,有利于系统的集成和扩展,是较为理想的软总线实现方式.2.2 系统集成与数据交换方案架构基于射频识别(RFI D)公共服务平台的软总线与适配器的架构大致可分为3部分(如图2所示):服务请求端、软总线和服务提供端.其中,最关键部分是软总线的设计,因为软总线采用的消息格式、对消息的路由策略以及对消息的接收、处理与分派,都直接影响到数据请求与服务的执行.该
8、方案的执行流程如图3所示,执行步骤如下:(1)服务请求端和服务提供端分别在信息中心注册其网络地址,并获得其标识号.(2)到信息中心注册数据适配器信息,如适配器名字及其提供的方法、参数等.(3)在信息中心配置消息路由信息,即服务请求端的消息到了软总线后,经哪个数据适配器进行数据转换,转换后的数据发往哪个服务提供端.(4)软总线接收到服务请求端的消息,对消息进行分析,并在信息中心查找相关的信息,如消息的路由信息、使用哪个数据适配器的哪个方法进行数据转换、转换后数据发往哪个服务提供端.(5)软总线根据消息的信息和信息中心中的配置信息,激活对应的数据适配器为消息服务.(6)消息中携带的数据通过数据适配
9、器进行转换.图2 基于消息队列软总线的系统集成与数据交换方案架构Fig.2Architecture of system integration and data exchangesolution based on message queue software bus图3 基于消息队列软总线的系统集成与数据交换方案的运行时序图Fig.3Run sequence diagram of system integration and dataexchange solution based on message queue software bus2华 南 理 工 大 学 学 报(自 然 科 学 版)第
10、36卷(7)经数据适配器转换后的数据发往目标的服务提供端.2.2.1 服务请求端服务请求端可以理解为从已有系统中提取业务数据(这些数据最终由服务提供端处理),总线适配器把业务数据“打包”成能让软总线处理的消息格式.总线适配器可以在业务数据上添加一些路由信息(如请求端的标识、消息路由的目的地),或者对业务数据加密等,但添加的信息应该符合软总线的消息标准.2.2.2 服务提供端服务提供端接收从服务请求端发送、由软总线上的数据适配器转换后的数据,并利用这些数据进行业务处理.通过服务提供端在信息中心注册的位置信息和软总线的路由信息,软总线可以把数据适配器处理过的数据正确路由到服务提供端.2.2.3 软
11、总线软总线的设计主要包括4个方面:软总线消息规范、信息中心、消息处理器和数据适配器,具体设计如下:(1)软总线消息规范 如何描述消息队列中的消息,消息如何包装服务请求端的数据,这并没有严格的约束.在本方案中,采用XML语言来描述消息3.消息包括两大部分:消息来源,指软总线中的消息是由哪一个服务请求端发来的,是一个服务请求端的标识串,该标识串是服务请求端在软总线的信息中心注册后获得的;消息数据,该部分又可分为参数和返回值两部分.消息的数据部分描述了服务请求端所要处理的数据及其类型,返回值部分描述了该消息是否需要返回值以及返回值的类型等.(2)信息中心 软总线负责接收由请求端发送的消息、消息的路由
12、,并分派到适当的数据适配器处理.但是,软总线在能正常处理消息之前,必须先对软总线的信息中心进行配置.需要配置的信息主要有两类:1)位置信息,记录服务请求端、服务提供端的网络位置(如网络中的IP、端口信息);2)消息的路由信息,从服务请求端发送到软总线的消息,路由到适当的数据适配器处理,并把处理后的消息发送到对应服务提供端,要实现这个过程,软总线需要了解消息的路由信息.(3)消息处理器 消息处理器取出队列头消息,软总线根据消息上的服务请求端标识,查找在信息中心配置的路由信息,找到该标识对应所使用的数据适配器方法以及最终的服务提供端,对消息进行路由与处理.(4)数据适配器 数据适配器在软总线上有3
13、种工作方式:主动监听方式、订阅消息方式和动态调用方式.由于在主动监听和订阅消息方式中,适配器都时刻处于监听状态,容易造成计算资源浪费,而软总线动态调用数据适配器方法(如图4所示)则可以解决这个问题.图4 软总线动态调用数据适配器的方式Fig.4Way of software bus dynamically invoking adapters 在软总线动态调用数据适配器的方法中,数据适配器平时处于空闲状态,只有软总线需要调用适配器对消息中的数据进行转换,相关的数据适配器才处于工作状态,一旦数据适配器处理完本次消息数据,又恢复到空闲的状态.要实现动态调用数据适配器方式,软总线必须知道每一个适配器的
14、名字、各个适配器中的服务方法名和参数,文中使用面向对象高级编程语言的反射机制来实现软总线的这个功能.通过反射机制,将以代码文件形式存在的类或组件,在运行时动态导入到程序中,使程序可以了解到这些类或组件的属性与方法,从而能够动态地访问属性和调用方法4;同时,系统自描述的改变能够立即反映到系统底层实际状态和行为的变化,从而简单地实现了“热插拔”的功能,即只要通过在信息中心配置信息,然后将现有的数据适配器放到软总线上,无需“重启”或修改软总线的相关组件,即可实现系统之间的数据交换.可见,本软总线在技术实现上主要提供了以Web服务为主的封装方式,以XML格式的文本作为数据载体,以XML Schema对
15、数据进行校验.由于Web服务与XML都与开发语言无关,而且得到了大多数主流开发工具的支持,可以使不同数据格式的系统能以统一的方式通过软总线进行数据交换.文中的这种系统集成方案使系统具有更高的开放性、扩展性和动态适应性.由于程序集.net Framework应用程序的基本构造块包含描述其各个子模块自身的内部版本号以及这些子模块所包含的所有数据和对象类的详细信息3 第5期邓辉舫 等:基于消息队列软总线的系统集成与数据交换方案的元数据,且仅在需要时才加载,所以,文中采用.net程序集来实现数据适配器,并将其编写成DLL程序集组件,结合C#语言的反射机制,共同实现适配器的“热插拔”.此外,使用DLL程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 消息 队列 总线 系统集成 数据 交换 方案

限制150内