1、一种以数据为中心的分布式系统自适应集成方法 陈华 魏长宝 蔡燕 江西环境工程职业学院通信学院 黄淮学院信息工程学院 摘 要: 为了减少分布式系统本身的紧耦合特性, 达到系统独立开发、增量开发的目的, 提出了一种以数据为中心的分布式系统自适应集成方法。该方法采用在网络中间件中添加协商模块实现了通信合约的自适应缔结。采用该方法开发的软件, 将 3 个独立的应用快速、高效地集成为一个温度推送分布式系统, 并满足了通信质量要求。这充分说明以数据为中心分布式集成方法可降低系统复杂度, 达到分布式系统的快速、高效的集成。关键词: 计算机; 分布式系统集成; 自适应; 耦合度; 作者简介:陈华 (1982-
2、) , 男, 江西赣州人, 汉族, 硕士, 讲师, 江西环境工程职业学院通信学院, 从事计算机应用和网络研究;作者简介:魏长宝 (1972-) , 男, 河南驻马店人, 汉族, 硕士, 副教授, 研究方向为数据应用与信息处理技术等;作者简介:蔡燕 (1983-) , 女, 江西赣州人, 汉族, 硕士, 讲师, 江西环境工程职业学院通信学院。收稿日期:2016-10-12Research on Data-Centered Self-Adaptive Architecture for Distributed System IntegrationCHEN Hua WEI Changbao CAI Y
3、an School of Communication, Jiangxi Environmental Engineering Vocational College; School of Information Engineering, Huanghuai University; Abstract: In order to reduce the tight coupling character of the distributed system and achieve the goal of system independently developed and incremental develo
4、pment 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 separ
5、ate 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.Keyword: computer; distribute enterprise info
6、rmation system; adaptive; the coupling; Received: 2016-10-12随着网络技术以及各计算平台的广泛应用和飞速发展, 对分布式系统的要求也越来越严格, 需其满足大规模、动态改变以及分散控制等要求。因而, 这就要求系统以及各参与者间, 需采用一种较为灵活的、具备动态性和松散耦合性的通信模型和交互机制。与传统的通信模型相比, 发布-订阅 (Pub/Sub) 通信模型能实现参与通信者时间和空间上的完全解耦, 具备异步、多点通信等优点, 较好地解决了目前分布式系统中存在的紧耦合问题。然而随着计算环境的不断更新、变化, 发布-订阅系统中仍有一些核心问题
7、亟待解决。目前, 以数据为中心的分布式系统集成方法的提出为实现实时分布式系统的集成提供了较好的解决方案。这种以数据为中心的发布-订阅通信模型 (DCPS) , 具有使数据耦合松散化, 多点通信等优点。但该机制需通过优先指定Qo S 策略才能保证通信服务的质量, 提高了系统的复杂度, 对实现达到动态、自适应、快速集成的系统提供了阻碍1-3。针对以上不足, 本文提出一种以数据为中心的分布式系统自适应集成方法, 在这种方法中数据生产者以及消费者将分别以通信质量约束方和需求方的角色, 以 Pub/Sub 的通信模型和中心节点为基础, 实现了自动配置通信质量策略的能力并降低了系统的紧耦合性。实验表明通过
8、这种自适应的集成方法, 能达到降低分布式系统耦合性, 提高通信质量的目的。1 分布式系统内在紧耦合性成因分析分布式系统被称之为一个集成的“系统组成的系统”, 即由多个独立系统集成在一起的一个大系统。能跨平台和多个系统间集成数据, 具备支持动态变化的环境和配置, 可靠性强, 安全性高等特点4-5。尽管分布式系统具有如此多的优点, 但由于其内部各系统间的独立性, 对于较为复杂的分布式系统来说, 很难使其存在于统一的系统架构中。因而, 各业务模块间也构成了相互耦合的复杂网络关系, 系统越复杂, 其耦合性也越强, 表现为系统内部的紧耦合特性。其内在的紧耦合特性如图 1 所示, 不同的数字代表各个不同的
9、独立系统, 不仅独立系统间存在差异性, 而且网络间的关系也较为复杂, 两种作用使得集成的复杂度大大提高。图 1 分布式系统的内在紧耦合关系 下载原图为降低分布式系统内在的紧耦合性, 提出了以下两点解决方案, 使耦合松散化6:一方面可通过降低各独立系统间的差异性来降低集成复杂度;另一方面可在系统中加入中心信息节点来降低耦合, 具体方法措施如下。1.1 通过屏蔽子系统差异性降低耦合在图 1 中, 不同的数字代表不同的独立系统, 这些独立系统间存在着较大的差异, 如:语言、数据、平台以及协议等方面的差异, 这写差异性的存在不可避免地增加了系统的集成复杂性。因此, 屏蔽差异性, 降低复杂度, 则成了以
10、后研究工作的重点, 通常可采用技术方法来屏蔽这种差异性, 降低系统接口间的耦合性。如今, 该技术应用的较为广泛, 如现在主流的异构跨平台通信组件Apache Thrift 基于 TCP/IP 协议实现了与多语言之间的通信;C+等编程语言实现了可移植跨平台通信等。另外, 屏蔽差异性还可以通过添加中间件的方法, 如分布式对象技术、远程调用过程技术, 以及实时 CORBA 对象技术等7。为了减小各系统间的差异性, 以达到降低集成复杂度的目的, 通过在各系统外添加一个标准化的规程来屏蔽这种差异性, 具体方法可形象的表示如图 2 所示。图 2 屏蔽了差异性的耦合关系 下载原图但采用该种方法的缺点是, 这
11、是一种面向对象模型, 数据库存储对象以对象为单位, 以点对点的方式进行通信, 通信的实现必须通过优先获取对方的网络地址才能完成联系, 在减小系统的集成网络复杂度、降低耦合方面并没有起到多大作用。1.2 添加中心节点降低网络复杂度以屏蔽子系统差异性降低耦合度的方法为基础, 提出了添加数据总线作为中心节点的方法, 具体过程如图 3 所示。在 C/S 通信模式下, 被屏蔽了差异性的子系统, 将数据信息发送到数据总线后再通过总线发送给各独立系统。采用这种方法, 各子系统间避免了多方传递的这种复杂联系, 而变成图 3 所示的单线联系, 即系统集成复杂度从 O (n) 变到了 O (n) 。然而, 采用这
12、种方法的弊端是, 所有的数据都集中到了数据总线上, 容易造成总线负载过大, 进而使系统因超负荷而导致数据失效等问题8-9。图 3 加入中心节点的耦合关系 下载原图1.3 基于发布-订阅通信模型的系统集成方法为了进一步弥补以上两种方法的不足, 又出现了一种发布-订阅 (Pub/Sub) 式的通信的模型。 (Pub/Sub) 模型定义了一种一对多的依赖关系, 让多个订阅者对象同时收到某个主题对象。且一旦这个主题对象在本身发生改变时, 即会通知所有订阅者, 使它们也能够实时更新自己的状态。该模型的优点是, 采用资源共享的方式, 将数据生产者以及消费者分别配以通信质量约束方和需求方的角色。以 Pub/
13、Sub 的通信模型和中心节点为基础, 实现了自动配置通信质量策略的能力并降低了系统的紧耦合性。其具体模型如如图 4 所示。图 4 发布-订阅通信模式下的耦合关系 下载原图该模型与上面加入中心节点最大的不同就是, 数据间的联系可在各个子系统间发生通信联系, 而不是将中心信息节点作为唯一的数据中转地, 从而大大减小了中心节点的负荷, 有效解决了因负载太大而导致数据失效的问题。尽管如此, 该方法还是具有一定的局限性, 以 DDS 为标准的相关技术为例, 为了实现数据的实时共享、确保通信质量的目的, DDS 将通过 Qos 策略来实现数据信息在发布者以及订阅者之间的匹配, 这种模式相当于在各个子系统间
14、建立了一个统一的合约, 只有满足这个合约才能进行下一步通信。而这种优先指定Qos 的策略, 无不避免地增加了系统的复杂度, 对提高通信质量是不利的。为了解决该方法的弊端, 降低因 Qos 策略而引起的高复杂度, 本文提出了以数据为中心的自适应集成方法, 该方法通过引入协商机制以自适应缔结通信合约, 从而取消了 Qo S 策略的事先约定过程。2 以数据为中心的分布式系统自适应集成方法系统集成的最终目的就是使资源达到充分共享, 实现集中、高效、便利的管理, 并使得事件按规定的协议发展。为了达到这个目的, 则必须降低系统的复杂度, 较少数据的冗余。分布式集成的复杂性来源于多个方面, 如:通信开始前首
15、先要约定通信内容, 然后需要确定联系双方的通信 IP 地址, 最后还要确保双方通信的质量, 确保通信的实时性、真实性以及有效性。然而, 对于通信双方的内容以及通信地址这些信息, 数据发送方在多对多通信模式下是无法获取的。因而, 为能自动获取通信双方的地址、节点信息以及策略信息等, 则要建立一种特定的机制, 以弥补元数据只包含通信双方内容信息的缺陷。这种特定机制则可通过 DDS 实现, DDS作为一种数据分发服务, 其能结合 (Pub/Sub) 通信模型, 依靠中心信息节点, 在网络中加入协商模块, 进而使得通信服务质量能自适应地进行配置。通过这种方法后, 自动获取通信双方的地址、节点信息以及策
16、略信息等就变得很容易了。下面将对此方法构建的通信模型以及通信传递过程进行详细地介绍。2.1 总体架构为了达到降低系统复杂度、较少集成耦合的目的, 将在元数据中限定各子系统间的接口。在协商模块中, 通信发布方与订阅方可自适应获取通信合约。以数据为中心的分布式系统集成总体架构图如图 5 所示。图 5 总体架构 下载原图这种以数据为中心的分布式系统集成主要由应用层、传输层以及核心部分中间层这 3 部分组成。3 个部分各司其职, 在整个系统中都占据着不可替代的位置。各部分的主要功能如下:应用层顾名思义就是指应用程序层, 该层中每个应用程序都是独立的, 而每当它们要进行相互交互必须要首先约定元数据信息。
17、以数据为中心的分布式系统集成规定在应用层必须且仅能约定元数据信息。传输层虽不涉及业务协议与逻辑方面, 但它是 OSI 中最重要、最关键的一层, 也是唯一负责总体的数据传输和数据控制的一层, 提供端到端的交换数据的机制。通信合约信息的完整、准确是顺利完成传输的必备条件, 通信合约中必须包含发送双方的地址、通信策略以及协议内容等。中间层是以数据为中心的分布式系统集成架构中重要的基础实施, 也是面向数据思想的集中体现。中间层处于应用层和传输层的中间部位, 起到了中转的作用。其作用显而易见, 可将应用层中约定的元数据信息, 通过中间层的作用转化为传输层中通信合约信息。另外, 一些数据信息的传递也可通过
18、中间层得以实现。中间件能提供一种形式化定义元数据包括数据模型和服务质量的机制;能满足数据流的传输需求, 并动态地定义和配置数据流, 具有较为强大的功能。根据创建的总体架构模型, 将按图 6 所示需要完成以下工作:元数据约定、通信前握手和样本数据传输。从用户的角度来看, 元数据的约定是用户进行系统集成唯一要做的, 从而最大化的弱化了接口, 减轻了集成耦合性。图 6 集成步骤 下载原图然而, 在应用层方面由于应用程序在约定信息时, 可能不具备完整性, 因此, 要想取得样本数据交互的完备信息, 系统在进行通信之前首先要通过中间层的中间件和中心节点进行握手取得。具体流程和握手阶段的信息, 可参见下一节
19、。2.2 握手阶段的信息模型及其传递中间层通信前握手的目的是为了将应用层的元数据信息转化为传输层的通信合约信息, 该握手阶段的信息模型主要涉及到以下模型:元数据信息模型 (Meta Data Information Model) 主要由元数据 (Meta Data) 以及主题 (Topic) 两部分组成。其中, 元数据与主题间是彼此相互对应的关系, 元数据是信息模型的主要内容, 主题是为了清晰地标出主要内容。主题也包含两个部分, 分别为元数据类型 (Meta Data Type, 缩写为 MDType) , 元数据大小 (Meta Data Size, 缩写为 MDSize) 。标识出元数据的
20、类型和大小的目的是为了完成元数据信息序列化和反序列化。在元数据信息模型中, 我们需将主题从中传递出来到达中间件。因此, 就需要数据生产者在中间层部分将信息注册发布出来。发布注册信息模型 (Pub Information Model) 主要由 4 部分组成, 分别为:主题信息 (Topic) 、发布方关键信息 (Key) 、生产者节点信息 (Pub Nodel Info) 、通信质量约束信息 (Comm Cons) 。其中, 关键信息 (Key) 的作用是为了在同时存在多个相同话题时, 能将它们通过标识清晰地区别开来。订阅注册信息模型 (Sub Information Model) 也主要由 4
21、 部分组成, 分别为:主题信息 (Topic) 、发布方关键信息 (Key) 、消费者节点信息 (Sub Nodel Info) 、订阅方通信需求信息 (Comm Req) 。订阅模块与发布模块组成部分, 大致相同, 但需要注意的是, 在订阅模块, 发布方的关键信息, 不是强制要求的, 可选择订阅。一旦指定了关键信息, 则可订阅该 Key 信息下的所有发布信息, 若不指定则可选择订阅该 Key 信息下的发布信息。中心节点信息指定的内容主要为数据生成方的网络地址和端口信息两部分。在中心节点处会对发布以及订阅模块中的注册信息进行集中注册。该部位的功能主要为:对所有的注册信息进行记录和监听, 并对所
22、有具有类似主题信息的发布方以及订阅方注册信息进行匹配集合。当集合完成后, 继续将该信息发送到中间层, 中间层的协商模块会对信息进行处理并转化为传输层所需的通信合约信息。至此, 通信握手完成。综上可得, 元数据在通信过程中起到了连接纽带的作用, 中间层几乎完成了所有的细节封装, 充分体现了以数据为中心的分布式系统的集成。2.3 基于协商机制的通信合约自适应缔结所谓以数据为中心的分布式系统集成, 就是数据生产者向数据消费者发送数据时, 能智能区分开各个数据消费者的需求并发送相应的数据。与传统通过传输数据的方法不同, 该方法通过将原先在系统集成之前完成的 Qo S 策略延缓到中间件中执行, 大大降低
23、了系统的耦合度, 通信合约缔结序列图如图 7 所示。图 7 通信合约缔结序列图 下载原图在通信过程中, 数据生产者负责生产数据, 数据生产的能力可由通信约束信息衡量, 通信约束信息即通信合约缔结过程中的一种表现形式, 数据生产能力主要包括生产数据的速率以及最大生产量。数据消费者要从大量的数据生产者生产的数据中找到所需求的信息, 就需要通过比较数据的可靠性、数据的关键性等找到通信需求信息。数据生产者的通信约束信息和数据消费者的通信需求信息, 都要经过中心节点传到数据生产者处, 然后再由协商模块中的协商算法算出它们的通信合约, 整个流程即为图 7 所示的通信合约缔结序列图。然而, 在上面的流程中,
24、 由数据生产者生产的数据是无法确定的, 因此通信约束信息也是变化的, 要想动态获取数据生产者的约束信息, 可采用协商模块作为数据生产者中间件的一部分。通信合约信息模型主要由 5 部分组成, 分别为:通信合约信息 (Agreement) 、主题 (Topic) 、发布方节点信息 (Pub Node Info) 、订阅方节点信息 (Sub Node Info) 、通信协议信息 (Comm Protocol) 、通信策略信息 (Commm Tacics) 。其中, Comm Protocol 指定了所使用的网络通信协议, Commm Tacics 指定了一些控制服务质量的关键信息。这两种信息均需要由
25、协商模块通过协商算法获得, 系统可对协商算法进行制定, 并通过相应软件得以实现。而其他的 Agreement、Topic、Pub Node Info 模块信息可由中心节点平台匹配取得。3 验证本文通过以上思路, 设计了包含多种模块的软件, 其中含有:中心节点服务程序、中间件软件模块、协商算法库以及可插入的传输软件模块。除此之外, 该软件还实现了跨平台服务, 例如:采用 TCP/IP 协议的数据通信服务, 采用标准 C+编辑语言的软件开发服务, 以及采取 OMG IDL 语言来约定元数据, 借以解除开发语言差异性的问题。接下来将以一个具体实例, 来验证此方法的可靠性。数据首先通过温度传感器可感应
26、到外界温度的实时变化情况, 其感应效率很高, 可达到 800 次/s。其次, 再通过电脑 PC 端将温度传感器感应到的数据实时记录下来, 其记录的的频率也较高, 每秒可记录 100 次, 且每当温度的变化超过设定范围时, 则会激发它的提醒模式。最后, 这些记录的数据将直接反馈到移动手机客户端, 反馈频率较前两个应用略低, 但依然可达到 10 次/s。基于这 3 种应用的特点, 我们尝试使用图 8 所示的部署方法将这 3 个独立的子系统集成到一起, 实现一体化的流程。图 8 采用的即是以数据为中心的分布式集成方法。图 8 温度推送分布式系统部署图 下载原图根据图 8 所示的温度推送分布式系统部署
27、图, 将移动端、PC 端、温度传感器这3 个应用分别进行相互的交互, 图 9 为在规定的一段时间内, 温度传感器产生的数据、温度实时记录系统记录的数据以及温度报告应用记录的数据。图 9 应用生产和消费的数据 下载原图从图 9 中可看到, 3 种应用在相同时间时记录的温度几乎相同, 记录的频率也与之前设置的一致。因此, 我们可得出只需要约定好应用之间的元数据接口并根据以数据为中心的分布式系统自适应集成方法, 即可自适应的完成通信合约间的缔结, 达到了降低系统集成复杂度、较少耦合的目的, 也为分布式系统集成提供了一种新的思路。4 结语综上, 为了减少分布式系统本身的紧耦合特性, 达到系统独立开发、
28、增量开发的目的, 重点要使得系统间的接口信息最小化以及动态化。因此, 本文提出了以数据为中心的分布式系统集成方法, 基于该方法, 提出通信服务信息应在中间层中完成而不是应用层, 这样就使得通信服务质量信息能在中间件中自适应获取, 达到减小耦合的目的。最后, 以应用生产和消费产生数据的实例, 说明了该方法的快速、有效性, 并能降低系统的耦合度。为以后设计以数据为中心分布式系统提供了一种新的方法。参考文献1汪洋, 王振宇.一个支持 Qo S 的实时 CORBA 中间件 ORB 的结构模型J.计算机科学, 2002, 29 (4) :38-40. 2王海涛, 宋丽华, 张学平, 等.面向无线自组网的
29、交叠分簇网络结构及性能分析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.