陈 华,魏长宝,蔡 燕
(1.江西环境工程职业学院通信学院,江西 赣州 341000;2.黄淮学院信息工程学院,河南 驻马店 463000)
一种以数据为中心的分布式系统自适应集成方法
陈 华1,魏长宝2*,蔡 燕1
(1.江西环境工程职业学院通信学院,江西 赣州 341000;2.黄淮学院信息工程学院,河南 驻马店 463000)
为了减少分布式系统本身的紧耦合特性,达到系统独立开发、增量开发的目的,提出了一种以数据为中心的分布式系统自适应集成方法。该方法采用在网络中间件中添加协商模块实现了通信合约的自适应缔结。采用该方法开发的软件,将3个独立的应用快速、高效地集成为一个温度推送分布式系统,并满足了通信质量要求。这充分说明以数据为中心分布式集成方法可降低系统复杂度,达到分布式系统的快速、高效的集成。
计算机;分布式系统集成;自适应;耦合度
随着网络技术以及各计算平台的广泛应用和飞速发展,对分布式系统的要求也越来越严格,需其满足大规模、动态改变以及分散控制等要求。因而,这就要求系统以及各参与者间,需采用一种较为灵活的、具备动态性和松散耦合性的通信模型和交互机制。与传统的通信模型相比,发布-订阅(Pub/Sub)通信模型能实现参与通信者时间和空间上的完全解耦,具备异步、多点通信等优点,较好地解决了目前分布式系统中存在的紧耦合问题。
然而随着计算环境的不断更新、变化,发布-订阅系统中仍有一些核心问题亟待解决。目前,以数据为中心的分布式系统集成方法的提出为实现实时分布式系统的集成提供了较好的解决方案。这种以数据为中心的发布-订阅通信模型(DCPS),具有使数据耦合松散化,多点通信等优点。但该机制需通过优先指定QoS策略才能保证通信服务的质量,提高了系统的复杂度,对实现达到动态、自适应、快速集成的系统提供了阻碍[1-3]。
针对以上不足,本文提出一种以数据为中心的分布式系统自适应集成方法,在这种方法中数据生产者以及消费者将分别以通信质量约束方和需求方的角色,以Pub/Sub的通信模型和中心节点为基础,实现了自动配置通信质量策略的能力并降低了系统的紧耦合性。实验表明通过这种自适应的集成方法,能达到降低分布式系统耦合性,提高通信质量的目的。
分布式系统被称之为一个集成的“系统组成的系统”,即由多个独立系统集成在一起的一个大系统。能跨平台和多个系统间集成数据,具备支持动态变化的环境和配置,可靠性强,安全性高等特点[4-5]。
尽管分布式系统具有如此多的优点,但由于其内部各系统间的独立性,对于较为复杂的分布式系统来说,很难使其存在于统一的系统架构中。因而,各业务模块间也构成了相互耦合的复杂网络关系,系统越复杂,其耦合性也越强,表现为系统内部的紧耦合特性。其内在的紧耦合特性如图1所示,不同的数字代表各个不同的独立系统,不仅独立系统间存在差异性,而且网络间的关系也较为复杂,两种作用使得集成的复杂度大大提高。
图1 分布式系统的内在紧耦合关系
为降低分布式系统内在的紧耦合性,提出了以下两点解决方案,使耦合松散化[6]:一方面可通过降低各独立系统间的差异性来降低集成复杂度;另一方面可在系统中加入中心信息节点来降低耦合,具体方法措施如下。
在图1中,不同的数字代表不同的独立系统,这些独立系统间存在着较大的差异,如:语言、数据、平台以及协议等方面的差异,这写差异性的存在不可避免地增加了系统的集成复杂性。因此,屏蔽差异性,降低复杂度,则成了以后研究工作的重点,通常可采用技术方法来屏蔽这种差异性,降低系统接口间的耦合性。如今,该技术应用的较为广泛,如现在主流的异构跨平台通信组件Apache Thrift基于TCP/IP协议实现了与多语言之间的通信;C++等编程语言实现了可移植跨平台通信等。另外,屏蔽差异性还可以通过添加中间件的方法,如分布式对象技术、远程调用过程技术,以及实时CORBA对象技术等[7]。为了减小各系统间的差异性,以达到降低集成复杂度的目的,通过在各系统外添加一个标准化的规程来屏蔽这种差异性,具体方法可形象的表示如图2所示。
图2 屏蔽了差异性的耦合关系
但采用该种方法的缺点是,这是一种面向对象模型,数据库存储对象以对象为单位,以点对点的方式进行通信,通信的实现必须通过优先获取对方的网络地址才能完成联系,在减小系统的集成网络复杂度、降低耦合方面并没有起到多大作用。
以屏蔽子系统差异性降低耦合度的方法为基础,提出了添加数据总线作为中心节点的方法,具体过程如图3所示。在C/S通信模式下,被屏蔽了差异性的子系统,将数据信息发送到数据总线后再通过总线发送给各独立系统。采用这种方法,各子系统间避免了多方传递的这种复杂联系,而变成图3所示的单线联系,即系统集成复杂度从O(n2)变到了O(n)。然而,采用这种方法的弊端是,所有的数据都集中到了数据总线上,容易造成总线负载过大,进而使系统因超负荷而导致数据失效等问题[8-9]。
图3 加入中心节点的耦合关系
为了进一步弥补以上两种方法的不足,又出现了一种发布-订阅(Pub/Sub)式的通信的模型。(Pub/Sub)模型定义了一种一对多的依赖关系,让多个订阅者对象同时收到某个主题对象。且一旦这个主题对象在本身发生改变时,即会通知所有订阅者,使它们也能够实时更新自己的状态。该模型的优点是,采用资源共享的方式,将数据生产者以及消费者分别配以通信质量约束方和需求方的角色。以Pub/Sub的通信模型和中心节点为基础,实现了自动配置通信质量策略的能力并降低了系统的紧耦合性。其具体模型如如图4所示。
图4 发布-订阅通信模式下的耦合关系
该模型与上面加入中心节点最大的不同就是,数据间的联系可在各个子系统间发生通信联系,而不是将中心信息节点作为唯一的数据中转地,从而大大减小了中心节点的负荷,有效解决了因负载太大而导致数据失效的问题。
尽管如此,该方法还是具有一定的局限性,以DDS为标准的相关技术为例,为了实现数据的实时共享、确保通信质量的目的,DDS将通过Qos策略来实现数据信息在发布者以及订阅者之间的匹配,这种模式相当于在各个子系统间建立了一个统一的合约,只有满足这个合约才能进行下一步通信。而这种优先指定Qos的策略,无不避免地增加了系统的复杂度,对提高通信质量是不利的。为了解决该方法的弊端,降低因Qos策略而引起的高复杂度,本文提出了以数据为中心的自适应集成方法,该方法通过引入协商机制以自适应缔结通信合约,从而取消了QoS策略的事先约定过程。
系统集成的最终目的就是使资源达到充分共享,实现集中、高效、便利的管理,并使得事件按规定的协议发展。为了达到这个目的,则必须降低系统的复杂度,较少数据的冗余。
分布式集成的复杂性来源于多个方面,如:通信开始前首先要约定通信内容,然后需要确定联系双方的通信IP地址,最后还要确保双方通信的质量,确保通信的实时性、真实性以及有效性。然而,对于通信双方的内容以及通信地址这些信息,数据发送方在多对多通信模式下是无法获取的。因而,为能自动获取通信双方的地址、节点信息以及策略信息等,则要建立一种特定的机制,以弥补元数据只包含通信双方内容信息的缺陷。这种特定机制则可通过DDS实现,DDS作为一种数据分发服务,其能结合(Pub/Sub)通信模型,依靠中心信息节点,在网络中加入协商模块,进而使得通信服务质量能自适应地进行配置。通过这种方法后,自动获取通信双方的地址、节点信息以及策略信息等就变得很容易了。下面将对此方法构建的通信模型以及通信传递过程进行详细地介绍。
小意:没人能让你堕落,除非你先放弃自己,所以,不必勉强自己融入别人的圈子,做你自己就好。上了大专不意味着停止进步,希望你学精技术的同
为了达到降低系统复杂度、较少集成耦合的目的,将在元数据中限定各子系统间的接口。在协商模块中,通信发布方与订阅方可自适应获取通信合约。以数据为中心的分布式系统集成总体架构图如图5所示。
图5 总体架构
这种以数据为中心的分布式系统集成主要由应用层、传输层以及核心部分中间层这3部分组成。3个部分各司其职,在整个系统中都占据着不可替代的位置。各部分的主要功能如下:
应用层顾名思义就是指应用程序层,该层中每个应用程序都是独立的,而每当它们要进行相互交互必须要首先约定元数据信息。以数据为中心的分布式系统集成规定在应用层必须且仅能约定元数据信息。
传输层虽不涉及业务协议与逻辑方面,但它是OSI中最重要、最关键的一层,也是唯一负责总体的数据传输和数据控制的一层,提供端到端的交换数据的机制。通信合约信息的完整、准确是顺利完成传输的必备条件,通信合约中必须包含发送双方的地址、通信策略以及协议内容等。
中间层是以数据为中心的分布式系统集成架构中重要的基础实施,也是面向数据思想的集中体现。中间层处于应用层和传输层的中间部位,起到了中转的作用。其作用显而易见,可将应用层中约定的元数据信息,通过中间层的作用转化为传输层中通信合约信息。另外,一些数据信息的传递也可通过中间层得以实现。中间件能提供一种形式化定义元数据包括数据模型和服务质量的机制;能满足数据流的传输需求,并动态地定义和配置数据流,具有较为强大的功能。
根据创建的总体架构模型,将按图6所示需要完成以下工作:元数据约定、通信前握手和样本数据传输。从用户的角度来看,元数据的约定是用户进行系统集成唯一要做的,从而最大化的弱化了接口,减轻了集成耦合性。
图6 集成步骤
然而,在应用层方面由于应用程序在约定信息时,可能不具备完整性,因此,要想取得样本数据交互的完备信息,系统在进行通信之前首先要通过中间层的中间件和中心节点进行握手取得。具体流程和握手阶段的信息,可参见下一节。
中间层通信前握手的目的是为了将应用层的元数据信息转化为传输层的通信合约信息,该握手阶段的信息模型主要涉及到以下模型:
元数据信息模型(MetaData Information Model)主要由元数据(MetaData)以及主题(Topic)两部分组成。其中,元数据与主题间是彼此相互对应的关系,元数据是信息模型的主要内容,主题是为了清晰地标出主要内容。主题也包含两个部分,分别为元数据类型(MetaData Type,缩写为 MDType),元数据大小(MetaData Size,缩写为MDSize)。标识出元数据的类型和大小的目的是为了完成元数据信息序列化和反序列化。
在元数据信息模型中,我们需将主题从中传递出来到达中间件。因此,就需要数据生产者在中间层部分将信息注册发布出来。发布注册信息模型(Pub Information Model)主要由4部分组成,分别为:主题信息(Topic)、发布方关键信息(Key)、生产者节点信息(PubNodelInfo)、通信质量约束信息(CommCons)。其中,关键信息(Key)的作用是为了在同时存在多个相同话题时,能将它们通过标识清晰地区别开来。
订阅注册信息模型(Sub Information Model)也主要由4部分组成,分别为:主题信息(Topic)、发布方关键信息(Key)、消费者节点信息(SubNodelInfo)、订阅方通信需求信息(CommReq)。订阅模块与发布模块组成部分,大致相同,但需要注意的是,在订阅模块,发布方的关键信息,不是强制要求的,可选择订阅。一旦指定了关键信息,则可订阅该Key信息下的所有发布信息,若不指定则可选择订阅该Key信息下的发布信息。
中心节点信息指定的内容主要为数据生成方的网络地址和端口信息两部分。在中心节点处会对发布以及订阅模块中的注册信息进行集中注册。该部位的功能主要为:对所有的注册信息进行记录和监听,并对所有具有类似主题信息的发布方以及订阅方注册信息进行匹配集合。当集合完成后,继续将该信息发送到中间层,中间层的协商模块会对信息进行处理并转化为传输层所需的通信合约信息。至此,通信握手完成。
综上可得,元数据在通信过程中起到了连接纽带的作用,中间层几乎完成了所有的细节封装,充分体现了以数据为中心的分布式系统的集成。
所谓以数据为中心的分布式系统集成,就是数据生产者向数据消费者发送数据时,能智能区分开各个数据消费者的需求并发送相应的数据。与传统通过传输数据的方法不同,该方法通过将原先在系统集成之前完成的QoS策略延缓到中间件中执行,大大降低了系统的耦合度,通信合约缔结序列图如图7所示。
图7 通信合约缔结序列图
在通信过程中,数据生产者负责生产数据,数据生产的能力可由通信约束信息衡量,通信约束信息即通信合约缔结过程中的一种表现形式,数据生产能力主要包括生产数据的速率以及最大生产量。数据消费者要从大量的数据生产者生产的数据中找到所需求的信息,就需要通过比较数据的可靠性、数据的关键性等找到通信需求信息。数据生产者的通信约束信息和数据消费者的通信需求信息,都要经过中心节点传到数据生产者处,然后再由协商模块中的协商算法算出它们的通信合约,整个流程即为图7所示的通信合约缔结序列图。
然而,在上面的流程中,由数据生产者生产的数据是无法确定的,因此通信约束信息也是变化的,要想动态获取数据生产者的约束信息,可采用协商模块作为数据生产者中间件的一部分。
通信合约信息模型主要由5部分组成,分别为:通信合约信息(Agreement)、主题(Topic)、发布方节点信息(PubNodeInfo)、订阅方节点信息(SubNodeInfo)、通信协议信息(CommProtocol)、通信策略信息(CommmTacics)。其中,CommProtocol指定了所使用的网络通信协议,CommmTacics指定了一些控制服务质量的关键信息。这两种信息均需要由协商模块通过协商算法获得,系统可对协商算法进行制定,并通过相应软件得以实现。而其他的Agreement、Topic、PubNodeInfo模块信息可由中心节点平台匹配取得。
本文通过以上思路,设计了包含多种模块的软件,其中含有:中心节点服务程序、中间件软件模块、协商算法库以及可插入的传输软件模块。除此之外,该软件还实现了跨平台服务,例如:采用TCP/IP协议的数据通信服务,采用标准C++编辑语言的软件开发服务,以及采取OMG IDL语言来约定元数据,借以解除开发语言差异性的问题。接下来将以一个具体实例,来验证此方法的可靠性。
数据首先通过温度传感器可感应到外界温度的实时变化情况,其感应效率很高,可达到800次/s。其次,再通过电脑PC端将温度传感器感应到的数据实时记录下来,其记录的的频率也较高,每秒可记录100次,且每当温度的变化超过设定范围时,则会激发它的提醒模式。最后,这些记录的数据将直接反馈到移动手机客户端,反馈频率较前两个应用略低,但依然可达到10次/s。基于这3种应用的特点,我们尝试使用图8所示的部署方法将这3个独立的子系统集成到一起,实现一体化的流程。图8采用的即是以数据为中心的分布式集成方法。
图8 温度推送分布式系统部署图
根据图8所示的温度推送分布式系统部署图,将移动端、PC端、温度传感器这3个应用分别进行相互的交互,图9为在规定的一段时间内,温度传感器产生的数据、温度实时记录系统记录的数据以及温度报告应用记录的数据。
图9 应用生产和消费的数据
从图9中可看到,3种应用在相同时间时记录的温度几乎相同,记录的频率也与之前设置的一致。因此,我们可得出只需要约定好应用之间的元数据接口并根据以数据为中心的分布式系统自适应集成方法,即可自适应的完成通信合约间的缔结,达到了降低系统集成复杂度、较少耦合的目的,也为分布式系统集成提供了一种新的思路。
综上,为了减少分布式系统本身的紧耦合特性,达到系统独立开发、增量开发的目的,重点要使得系统间的接口信息最小化以及动态化。因此,本文提出了以数据为中心的分布式系统集成方法,基于该方法,提出通信服务信息应在中间层中完成而不是应用层,这样就使得通信服务质量信息能在中间件中自适应获取,达到减小耦合的目的。最后,以应用生产和消费产生数据的实例,说明了该方法的快速、有效性,并能降低系统的耦合度。为以后设计以数据为中心分布式系统提供了一种新的方法。
[1] 汪洋,王振宇. 一个支持QoS的实时CORBA中间件ORB的结构模型[J]. 计算机科学,2002,29(4):38-40.
[2] 王海涛,宋丽华,张学平,等. 面向无线自组网的交叠分簇网络结构及性能分析[J]. 软件学报,2012,40(10):81-84.
[3] 田祎. 分布式计算机网络结构的可靠性与运行模式分析[J]. 计算机学报,2014(35):90-91.
[3] 张亚珍. 分布式计算机网络结构的优化措施研究[J]. 系统仿真学报,2015(21):18-19.
[4] 高俊,熊淑云. 分布处理计算机系统研究[J]. 东南大学学报(自然科学版),2016(3):81-82.
[5] 熊淑云,高俊. 计算机技术在通讯中的应用研究[J]. 数字技术与应用,2015(6):118.
[6] 刘亚霄. 松散耦合的分布式信息系统的研究与实现[J]. 清华大学学报(自然科学版),2012(8):18-25.
[7] 周建华,支晓繁,钟亦平. 无线传感器网络的通信能量有效性的研究[J]. 传感技术学报,2016,29(1):37-41.
[8] 秦忠国,姜弘道. 静态负载平衡问题的表示与算法[J]. 计算机科学,2013,25(2):95-97.
[9] 蔡皓,冯仁剑,万江文. 具有多种通信方式的无线传感器网络网关[J]. 传感技术学报,2012,25(1):169-172.
ResearchonData-CenteredSelf-AdaptiveArchitectureforDistributedSystemIntegration
CHENHua1,WEIChangbao2*,CAIYan1
(1.School of Communication,Jiangxi Environmental Engineering Vocational College,Ganzhou Jiangxi 341000,China;2.School of Information Engineering,Huanghuai University,Zhumadian He’nan 463000,China)
In order to reduce the tight coupling character of the distributed system and achieve the goal of system independently developed and incremental development of system,an adaptive integration method of the distributed data-centric system has been proposed. The negotiation module is added in the network middleware and the communication agreement of adaptive conclusion is realized. The software was developed by this method. In the software,three separate applications was integrated to a distributed system of temperature push quickly and efficiently. The data-centric distributed integration method can reduce the complexity of the system and achieve rapid and efficient integration of distributed systems.
computer;distribute enterprise information system;adaptive;the coupling
10.3969/j.issn.1005-9490.2017.06.031
2016-10-12修改日期2017-04-17
TP393.0
A
1005-9490(2017)06-1490-06
陈华(1982-),男,江西赣州人,汉族,硕士,讲师,江西环境工程职业学院通信学院,从事计算机应用和网络研究;
魏长宝(1972-),男,河南驻马店人,汉族,硕士,副教授,研究方向为数据应用与信息处理技术等;
蔡燕(1983-),女,江西赣州人,汉族,硕士,讲师,江西环境工程职业学院通信学院。