基于消息中间件的数据交换平台传输框架设计_梁彦杰
关于中间件技术在教务管理信息系统中的应用
由 国际 标 准 组 织 IO I C J C1 C 6 主 办 . 国家 S /E T S 3
标 准 化 管 理 委 员 会 、 育 部 、 业 和 信 息 化 部 、 海 市 科 教 工 上
贺
斌
工 作 组 和特 别 工 作 组 召开 了多 批 次 的分 组 工 作 会 议 , 详
J C1 C 6) 会 、 作 组 会 议 及 开 放 论 坛 , 2 1 T S 3 全 工 于 0 1年
9月 9 日~ 7 日在 中 国 上 海 召 开 。 1
队 主 要 主 持 了 第 六 工 作 组 ( 6) 工 作 讨 论 . 出 了 WG 的 提
提 案 的 改 进 版 本 , 完 成 二 项 国 际 标 准 , 得 了 较 好 已 取
教 师 和 教务 管 理 的 工 作效 率 。 据 系 统 规划 , 统 整 体功 根 系
能模 型 如 图 1所 示 。
教 务 管 理信 息 系 统
上层 的应 用 软件 提供 运 行 与 开发 的 环境 , 帮助 用 户灵 活 、
高效 地 开 发 和集 成复 杂 的 应 用软 件 。 我们 使 用 的 大部 分 应用 程序 都 需 要存 取 各 种 不 同 的
与设 计 f D 长安 大 学, 1 .. 2 05 0 【】 晓 梁 等 . 间件 及 其 在 三 层 客 户 机 服 务 器模 型 2宋 中
3 中 问件 技 术 在 系统 中的 应 用 . 建立 一 个 技 术 先进 、 高效 稳 定 的 基 于 Itrc ne t的教 a
本 文 主要 介 绍 了 中 间件 技术 在 教 务 管理 信 息 系 统 中 的应 用 , 并介 绍 了几 种典 型 的数 据访 问 中问件 技 术 , 并对 它们 进 行 了分 析 比较 。在 教 务管 理 信 息 系统 中利用 中 间 件 数 据 访 问管 理 功 能 , 便 了系 统软 件 的 开发 , 高 了系 方 提
基于数据库的分布式消息中间件系统及其运行方法[发明专利]
专利名称:基于数据库的分布式消息中间件系统及其运行方法专利类型:发明专利
发明人:梁晓靖
申请号:CN201310287640.0
申请日:20130709
公开号:CN103856393A
公开日:
20140611
专利内容由知识产权出版社提供
摘要:本发明公开了一种基于数据库的分布式消息中间件系统及其运行方法。
该分布式消息中间件系统包括消息采集组件、数据库、消息分发组件和消息交换组件,数据库中包括消息容器;消息采集组件用于接收来自消息生产者的消息并交给消息交换组件;消息分发组件用于接收来自消息消费者的消费请求并交给消息交换组件;消息交换组件用于将来自消息采集组件的消息存入消息容器,还用于根据消费请求从消息容器中读出消息并交给消息分发组件以供给消息消费者进行消费。
本发明结合了数据库的可靠性、高可用性、事务性和易于运维以及消息队列服务的异步性和应用解耦性等优点,并且显著地提高了在面对高并发的业务场景时的运行性能。
申请人:携程计算机技术(上海)有限公司
地址:200335 上海市长宁区福泉路99号携程网络技术大楼
国籍:CN
代理机构:上海智信专利代理有限公司
更多信息请下载全文后查看。
面向消息中间件的设计与研究
信息与电脑 China Computer&Communication
计算机工程应用技术
接请求的监听任务,利用监听线程模块,对于那些来自网络 层的连接请求,可以实现利用不同的独立线程进行接收。在 顺利接受之后,还可以与之建立相应的连接。如果数据收发 遇到其他一些操作中的连接情况,可以利用监听线程实现适 当的管理与调节。 (2)消息接收线程。消息接收线程可以利用连接管理 顺利到达监听线程接口,准确获取可连接客户端。之后,校 验所接收到的消息的完整性以及合理性等。如果经过校验, 确认所接收到的消息完整、合理,则将相应的消息置于消息 接收队列中,交由分发线程负责进行适当的处理。 (3)消息分发线程。消息分发线程可以接收到从消息 队列发送的消息,相应的消息处于待分发状态。对于接收到 的消息,消息分发线程需要对其携带的发送模式信息进行分 析。在进行消息传递时,可以采用不同的方式,包括点到点 的消息传递、 发布 / 订阅消息传递、 广播式消息传递等。 其中, 对于所有连接添加发送任务可以通过广播式消息传递模式予 以实现,对于指定连接添加发送任务可以通过点对点式消息 模式来实现,对于其中的一些订阅请求消息,可以通过发布 / 订阅消息传递模式来实现。更新操作发布式消息,对订阅 信息列表进行查询,进而添加各个独立的发送任务。 (4)消息发送线程。消息发送线程可以从消息发送任 务队列中接收到一定的消息,并获得相应的有效发送连接。 然后,对连接模块发送接口进行调节,实现对消息的发送, 将其发送到指定的连接之中。在这一过程中,受到一些因素 的影响,可能会出现消息发送失败的情况,导致出现消息丢 失或者消息阻塞等现象。在出现消息发送失败情况之后,消 息发送线程可以发挥出消息重发作用,提供一定的重发机制, 将之前发送失败的消息置于消息发送失败队列之中,实现对 消息的再次发送。 (5)连接服务器。该模式在消息中间件服务体系中可以 为所有模块提供对网络层访问的接口及消息构造来源。通过 该模块,可以实现对所有终端连接的管理,并提供各种接口, 包括链接添加和删除接口。通过该模块,还可以监听接收到的 全部数据,保证指定连接接收到相应的消息。同时,还承担着 对一定的消息进行发送任务添加以及消息发送的任务。 (6)消息接收队列。在该队列的内部,建立有一个特 殊的队列,即先进先出队列。利用该队列,可以收集已接收 但未及时分发的消息。从本质角度进行分析,消息接收队列 的实现属于互斥、阻塞的有限队列。该队列可以利用互斥信 号量对收集到的消息予以妥善保护。在队列为空时,支持让 发送进行等待,直至有消息进入。 (7)事件订阅模块。该模块可以提供发布和订阅消息 接口,对全部订阅信息予以有效维护,并提供一定的接口, 以实现订阅信息的更新,例如,删除原有订阅信息以及添加 新的订阅信息等。利用该模块,还可以按照不同的消息与消 息子类型,提供对订阅者的情况进行查询所需的接口。通过
自动测试系统消息中间件的设计与实现
( 中北 大学电子与计算 机科学技术学 院 山西 太原 0 3 0 0 5 1 ) 。 ( 中北 大学信息 与通信工程学 院 山西 太原 0 3 0 0 5 1 )
摘 要
针对 当前 的 自动测试 系统 只侧 重于单个或 同种类型武器性 能的测试 的现状 , 提 出基于 消息 中间件 的 自动测试 系统。阐
关键词
中图 分 类 号
自动测试系统
T P 3 1 1 . 1
测试数据 消息中间件 消息发布 消息订 阅
文献标识码 A D O I : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 0 — 3 8 6 x . 2 0 1 3 . 0 4 . 0 1 9
Ha n Ya n
( S c h o o l o fEl e c t r o n i c s a n d C o m p u t e r S c i e n c e a n d T e c h n o l o g y ,N o r t h U n w e r s i t y o fC h i n a ,T a i y u a n 0 3 0 0 5 1 ,S h a n x i ,C h i n a ) 。 ( S c h o o l o f I n f o r m a t i o n a n d C o m mu n i c a t i o n E n g i n e e r i n g , No r t h U n i v e r s i t y f o C h i n a ,T a i y u a n 0 3 0 0 5 1 ,S h a n x i ,C h i n a )
第3 0卷 第 4期
2 0 1 3年ቤተ መጻሕፍቲ ባይዱ4月
舞台机械设备信息集成与协同控制系统
舞台机械设备信息集成与协同控制系统白彦斌(通讯作者) 侯俊杰甘肃工大舞台技术工程有限公司 甘肃 兰州 730050摘 要 为解决我国目前舞台设备协同控制难、信号干扰严重、可靠性差引起的舞台表演视觉效果不佳、艺术创作力低下等制约文艺演出发展的问题,技术人员研发了舞台机械设备信息集成与协同控制系统。
该协同控制系统分为硬件系统构建和软件设计,硬件设备通过工业以太网将现场实时采集的数据传输到主控制器,主控制器对所有传输的数据进行解析、识别、转换,进而对硬件设备进行协同控制。
关键词 舞台机械设备;PLC;协同控制系统;人机界面Information Integration and Cooperative Control System of Stage Machinery EquipmentBai Yan-bin(Corresponding author), Hou Jun-jieGansu University of Technology Stage Technology Engineering Co., Ltd., Lanzhou 730050, Gansu Province, ChinaAbstract In order to solve the current problems that restrict the development of artistic performance in China, such as the poor visual effect of stage performance and low artistic creativity due to the difficulty of collaborative control of stage equipment, serious signal interference and poor reliability, a stage equipment information integration and collaborative control system was developed. The cooperative control system is divided into hardware system construction and software design. The hardware device transmits the real-time data collected in the field to the master controller through industrial Ethernet. The master controller analyzes, identifies and converts all the transmitted data, and then carries out cooperative control for the hardware device.Key words stage machinery equipment; PLC; cooperative control system; man-machine interface引言近年来,我国舞台艺术表演行业发展迅猛,为增加表演艺术效果,提高舞台表演感染力,在表演过程中,不仅用到多种类舞台机械设备,还增设了灯光、音响、视频以及用来烘托表演效果的其他特殊设备[1-3]。
基于大数据的网络通信系统架构设计
DCWTechnology Analysis技术分析61数字通信世界2024.041 大数据技术概述大数据技术是目前的一种新兴网络技术,通过此项技术的合理应用,可对海量数据进行快速、准确、有效的处理,使传统数据处理技术存在的不足得以有效弥补,充分满足当今海量信息数据的实际处理需求。
具体应用中,大数据技术主要将现代计算机技术作为基础,对传统行业和数据信息进行深度整合,以此来实现当今社会各个行业海量信息数据的实时提取、分析和处理等目标。
就目前的计算机信息领域而言,应用在其中的大数据技术主要包括数据采集、数据处理、数据储存、数据挖掘、基础架构、统计分析、模型预测以及结果呈现等[1]。
凭借着数据处理量大、处理效率高、智能化等的诸多优势,大数据技术已经在现代计算机网络信息领域中得到了广泛应用,且应用效果十分突出。
2 网络通信系统及其发展在研究现代网络通信系统的开发设计时,设计者首先需要明确传统网络通信系统中存在的问题,再以此为依据,对现代智能化通信系统架构的设计及其发展进行分析,最终通过合理的技术措施来提升其网络通信服务质量,满足现代社会实际应用需求。
2.1 传统网络通信系统传统的网络通信系统架构通常设计为分布式架构,其主要原理是将一个大型的系统分解成若干个小的子系统,其中的每一个子系统都能够在不同计算机节点上独立运行,从而使网络信息系统具备高性能、高可用性以及弹性收缩等特点。
但是在此类系统架构实际的设计与开发中,数据一致性、容灾、容错、调度以及通信性能不佳等问题都比较常见[2]。
在这样的情况下,传统网络通信系统设计及其应用都存在较大的基于大数据的网络通信系统架构设计蔡本心(北京联海信息系统有限公司,北京 100041)摘要:文章主要以当前先进的大数据技术作为依托,对网络通信系统的设计与实现进行分析。
包括大数据技术的基本概述,网络通信系统及其在当今时代中的发展,以及大数据技术支持下的网络通信系统整体架构设计及其实现分析。
核电厂辐射监测系统总体结构优化过程及改进方案
第38卷第2期(总第224期)辐射防护通讯2018年4月•经验交流•核电厂辐射监测系统总体结构优化过程及改进方案梁彦杰(福建宁德核电有限公司,福建宁德,355200)摘要核电厂辐射监测系统用于对电厂工艺、流出物及工作场所的辐射监测,确保电厂的安全运行及保护工作人 员和周围群众的健康。
计算机技术的快速发展,为电厂辐射监测系统实现全数字化创造了条件。
从岭澳核电一期、岭澳核电二期到宁德核电,电厂辐射监测系统总体结构发生了巨大的变化。
本文针对核电厂辐射监测系统在优化 过程中遇到的技术问题及改进方案进行分析讨论。
关键词:核电厂;辐射监测系统;优化改进中图分类号:TL75+ 1文献标识码:A核电厂辐射监测系统(KRT系统)的功能是确 保核电厂的运行安全,以及工作人员和周围居民 免受超剂M的辐射——主要包括工艺监测、流出 物监测、区域监测以及报警与隔离。
宁德核电 KRT系统的设计是以岭澳核电一期为参考电站,以岭澳核电二期的设计文件为参考文件进行的,其总体结构在岭澳核电二期的基础上进行了改文章编号:1004-6356(2018)02-0026-05进,简化了系统结构,增强了系统的可靠性,是同 类型电站中总体结构最优化的系统。
1岭澳核电一期的KRT系统岭澳核电一期的KRT系统采用模拟仪表搭 建而成,主要包括探头、测量盒、接线盒、就地显示 报警盒、INR远程机柜,如图1所示。
图1岭澳核电一期的K R T系统总体结构就地产生的脉冲信号通过INR机柜进行数字 显示,并在该机柜处转换成模拟量信号、开关量信 号,模拟量信号传输到主控侧,开关量信号传输到 继电器机柜侧。
优点:①技术比较成熟,有较长的运行经验;②所有固定式监测通道的下层结构从现场探头到远程显示单元都是完全独立的;③不依赖于DCS 系统。
缺点:①远程显示单元INR故障率高,并影响 1E级通道的连锁动作,采购成本和运行维修成本 很高;②数字化程度较低;③缺乏冗余设计。
一种基于移动中间件的交互界面动态更新的方法[发明专利]
专利名称:一种基于移动中间件的交互界面动态更新的方法专利类型:发明专利
发明人:叶颂洪,王萍,廖劲光,梁俊杰
申请号:CN201310461706.3
申请日:20130930
公开号:CN103473107A
公开日:
20131225
专利内容由知识产权出版社提供
摘要:本发明提供了一种基于移动中间件的交互界面动态更新的方法,针对依据用户行为动态更新MUIL页面的问题,通过采用MUIL标记要收集的用户行为,依据MUIL的标记收集用户行为信息压缩后发到服务器端进行用户行为的分析,依据用户行为的分析结果对用户端的MUIL页面进行更新,可以有效的动态收集用户行为信息,根据用户习惯为用户定制个性化的MUIL页面,给用户的操作提供较大的便捷。
申请人:广州乐庚信息科技有限公司
地址:510663 广东省广州市萝岗区广州科学城彩频路11号A栋608
国籍:CN
代理机构:北京新知远方知识产权代理事务所(普通合伙)
代理人:张艳
更多信息请下载全文后查看。
无线接入网络架构及其实时业务无损迁移的实现方法[发明专利]
专利名称:无线接入网络架构及其实时业务无损迁移的实现方法
专利类型:发明专利
发明人:王宗杰,许炳,梁欣刚
申请号:CN200510136843.5
申请日:20051230
公开号:CN1992717A
公开日:
20070704
专利内容由知识产权出版社提供
摘要:本发明提供了一种无线接入网络架构及其业务无损迁移的实现方法,该架构主要包括:物理节点ERS(边界无线基站)和IAGW(IP接入网关)及其上的分布式E_RLC(扩展的无线链路控制层)协议。
该方法主要包括:当工作在AM(应答模式)的UE未切换时,RRLC将CRLC下发的数据通过E_MAC层下发到UE,UE发送ACK/NACK(应答/错误应答)消息给RRLC,根据该ACK/NACK消息,ERS和IAGW 进行相应的处理;当UE发生小区切换时,当目标ERS与UE建立无线链路后,UE把所有未发的
ACK/NACK消息发送到目标ERS,通过目标ERS或IAGW将IAGW重传缓冲区的数据发送给所述UE。
利用本发明所述方法,可以在保证UE切换过程实时性的同时,实现UE的业务数据在源基站和目的基站之间无损迁移。
申请人:华为技术有限公司
地址:518129 广东省深圳市龙岗区坂田华为总部办公楼
国籍:CN
代理机构:北京凯特来知识产权代理有限公司
代理人:郑立明
更多信息请下载全文后查看。
数据交换平台的系统体系结构
体系结构大作业专业计算机科学与技术(软件工程)班级计Y094 学号姓名日期广西工学院计算机学院数据交换平台系统结构系统概述数据交换平台(数据交换引擎)为核心,基于J2EE架构设计,通过Web Service为服务接口,配合DataEX Agent(数剧交换代理)满足同一平台、不同平台、异构数据库之间、甚至是非网络连接系统之间的安全数据交换应用,管理员或服务使用者可以通过数据交换管理控制台实现对交换任务的定义和状态跟踪。
系统目标是设计一个完整、高效、健壮、安全、易用的数据传输、交换平台。
该交换平台是一个基于标准、组件化、架构良好、具有很好扩展性的多层的开放的软件体系。
系统的框架结构图可以从三个角度来加以描述。
以系统逻辑处理模型来表达一个宏观、易部署、易用的应用逻辑结构;以系统的功能细分及其交互模型来表达一个完整、高效、健壮、安全、易用的产品体系;按系统的软件层次结构及web Services组件模型来表达一个基于标准、组件化、架构良好、具有很好扩展性的开放的软件体系;交换引擎基于XML的数据流交换,基于XSLT格式的交换规则定义。
电路交换电路交换的原理是:在数据传输时,源节点和目的节点之间有一条利用中间节点构成的专用物理链路,此线路将一直保持到数据传输结束。
若是这两个节点之间的通信量很大,则可同时建立多条连接。
报文交换为解决电路交换占用通道的缺陷,报文交换产生。
其原理是:数据以报文为单位传输,长度不限且可变。
数据传送过程采用存储-转发的方式。
发送方在发送一个报文时把目的地址附加在报文上,途径的节点根据报文上的地址信息,将报文转发到下一个节点,接力式的完成整个传送过程。
每个节点在受到报文后,会将之暂存并检查有无错误,然后通过路由信息找出适当路线的下一个节点的地址,再把报文传送给下一个节点。
这个过程中,报文的传输只是占用两个节点之间的一段线路,而其他路段可传输其他用户的报文。
于是,这种解决方案不会像电路交换占用终端间的全部信道。
基于中间件模式的通用空间数据交换平台的研究
基于中间件模式的通用空间数据交换平台的研究姜艳媛郭健王卉信息工程大学测绘学院河南郑州450052摘要:在介绍了国内外数据交换的几种模式的基础上,提出了利用中间件思想的方法来解决多源空间数据交换的问题,着重讲述了其设计思路、实现的重点和界面。
关键词:数据交换中间件空间数据Abstract:On the basis of introducing the model of data exchange in and abroad ,it forms the argument of using middleware method to exchange Geospacial Data , emphasizes the design method and the realizing key-step and the interface.1. 前言GIS从20世纪60年代发展至今,其软件系统层出不穷,已经应用到多个部门和行业中,同时也积累了大量的地理空间数据。
这些空间数据的采集和维护是GIS工程中开销最大的部分。
然而,由于不同的GIS系统对各种时空现象的理解,描述方式、概念模型、数据结构、实现手段等都不近相同,它们就像一个个黑匣子,相互间很难利用对方的数据,导致了这些数据巨大的浪费。
众所周知,GIS是随着计算机技术的发展形成的一门新兴技术。
同时日新月异的信息技术、计算机技术,尤其是近年来中间件(MiddleWare)技术的出现,给GIS注入了新的活力,为其发展和应用开辟了新的空间。
根据国际数据公司(IDC)的定义,中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户/服务器的操作系统上,管理计算资源和网络通信。
它扩展了客户/服务器的结构,形成了一个包括客户、中间件和服务器在内的三层结构及多层结构。
它显著的特征就是实现资源共享、功能共享。
借鉴中间件的思想,我们提出了GIS数据中间件来解决多源空间数据交换的问题,真正实现数据的共享。
一种基于消息中间件的数据传输平台设计方法
一种基于消息中间件的数据传输平台设计方法
苏康
【期刊名称】《科学技术与工程》
【年(卷),期】2006(006)007
【摘要】结合国家烟草专卖局卷烟生产经营决策管理系统中数据传输的实际应用情况介绍了消息中间件的基本原理、特点,以及消息中间件软件WebSphere MQ 的使用方法.
【总页数】4页(P882-885)
【作者】苏康
【作者单位】湖南大学软件学院,长沙,410082
【正文语种】中文
【中图分类】TP311.56
【相关文献】
1.一种基于Workbench的仿真管理通用平台设计方法 [J], 雷静;金俊玲;彭名刚;徐汇
2.一种基于OneNET云平台和语音识别家居系统的设计方法 [J], 孟庆旭;姜保良;宋东明
3.一种基于OneNET云平台和语音识别家居系统的设计方法 [J], 孟庆旭;姜保良;宋东明;;;
4.一种基于背板总线的模块间数据传输设计方法 [J], 王山虎
5.一种基于VLC的可跨平台的播放器系统设计方法 [J], 蔡晓丽;程晓兰
因版权原因,仅展示原文概要,查看原文内容请购买。
基于消息中间件的信息系统数据传输与同步设计刘尧7.doc
基于消息中间件的信息系统数据传输与同步设计_刘尧7第47卷第18期2016年9月人民长江Yangtze River V ol.47,No.18Sep.,2016收稿日期:2016-05-20基金项目:国家重点基础研究发展“973”计划项目(2013CB328903-2)作者简介:刘尧,女,硕士研究生,主要研究方向为水利系统控制。
E -mail :liuyao_scu@163.com 通讯作者:宁芊,女,副教授,博士,主要从事水利信息化方面的研究。
E -mail :ningq@scu.edu.cn文章编号:1001-4179(2016)18-0106-04基于消息中间件的信息系统数据传输与同步设计刘尧,宁芊(四川大学电子信息学院,四川成都610065)摘要:传统人工作业和同步软件在水利信息传输及同步实现过程中无法保障数据的可靠性。
设计了一种基于消息中间件的数据双向通讯解决方案,根据不同需求在各级水利信息中心平台部署消息中间件,并通过Ac-tiveMQ 集群及负载均衡等技术,实现了水利信息系统数据高效管理与实时共享。
将该设计方案应用到山洪灾害监测系统数据中心平台中,验证了数据通讯的有效性、灵活性和可靠性。
关键词:数据通信;ActiveMQ 集群;负载均衡;水利信息中图法分类号:TP391文献标志码:ADOI :10.16232/j.cnki.1001-4179.2016.18.023随着信息化技术的迅猛发展,水利数据种类和形式多样,数据总量庞大且呈指数攀升,引发了水利信息数据中心平台建设的热潮[1]。
但传统的水利信息系统面临数据通信方面的问题。
首先,水利信息传输主要采用人工作业和同步软件2种方式,人工作业耗时耗力,不能满足传送海量水利信息数据的现状;而同步软件的不稳定性及可扩展性较差,易造成数据丢失和传输错误,耗费人工维护成本。
其次如何汇集分布于各区域的水利数据到数据中心平台,实现数据高效管理、实时共享,是水利信息发展面临的问题和挑战。
基于消息中间件的数据传输技术
基于消息中间件的数据传输技术
邱岩;王卫兵
【期刊名称】《现代电子技术》
【年(卷),期】2004(027)015
【摘要】给出了用中间件技术整合分离的业务系统的方法,给出了利用消息中间件完成数据转换、数据传输、数据平衡等关键技术的具体实现方法,是解决目前大量存在的系统整合问题的理想方案.
【总页数】2页(P44-45)
【作者】邱岩;王卫兵
【作者单位】青岛建筑工程学院山东,青岛,266033;洛阳市广播电视大学河南,洛阳,471000
【正文语种】中文
【中图分类】TP393
【相关文献】
1.基于消息中间件的数据传输方法研究 [J], 张今革; 林志达; 张华兵
2.基于消息中间件的多服务器通信协调控制方法 [J], 陈飞
3.基于Netty的高性能消息中间件设计与实现 [J], 王宁;张娜;于泽川;苏逸凡;包晓安
4.基于消息中间件的气象数据传输应用分析 [J], 黄艳红;姜娜娜;卓凤艳
5.基于Netty的高性能消息中间件设计与实现 [J], 王宁;张娜;于泽川;苏逸凡;包晓安
因版权原因,仅展示原文概要,查看原文内容请购买。
构建跨平台的通信模型及其基于RCS库的实现方法
构建跨平台的通信模型及其基于RCS库的实现方法廉梦佳;刘荫忠;王俊霖【摘要】在控制系统的领域中,现多数采用的是多处理器或多操作系统,会遇到异构平台间的过程控制等的通信问题,且不同平台可处理的数据格式不同.本文提出了一种跨平台的通信模型,该模型中采用中间代理的方法,将底层通信与上层应用分离,使底层的通信过程对用户透明.本文以RCS库的CMS和NML为基础,根据模型给出了相应的实现方法.CMS是RCS库的底层通信管理系统,提供消息读写、数据编码/解码以及跨平台的通信功能.NML是对CMS的封装,提供了更高层次的接口,CMS/NML均由一系列C++类实现.【期刊名称】《计算机系统应用》【年(卷),期】2017(026)002【总页数】6页(P195-200)【关键词】跨平台;通信模型;中间代理;RCS库;CMS/NML【作者】廉梦佳;刘荫忠;王俊霖【作者单位】中国科学院大学,北京100049;中国科学院沈阳计算技术研究所,沈阳110171;中国科学院大学,北京100049;中国科学院沈阳计算技术研究所,沈阳110171;大连理工大学,大连116024【正文语种】中文在现代控制系统领域中, 如专机控制系统、数控系统等, 数据采集与监测控制等已经得到广泛的应用, 大多数是在多种设备间进行数据传输, 有些是基于windows,但仍有一部分是基于Linux、UNIX等操作系统, 而且不同平台可处理的数据格式不同, 因此双方之间的通信存在很大的差异, 为了屏蔽这些差异, 构建一个跨平台的通信模型就显得尤为重要[1,2].跨平台的通信主要是解决操作系统和数据处理格式的差异性. 数控系统中现在的跨平台通信多数是采用socket套接字、串行接口等实现, 通信功能多数是针对不同的需求进行多次开发, 移植性比较低, 且开发的功能与实现方式基本相相似, 浪费资源, 增长了开发周期, 而且其中处理数据的格式比较单一, 无法满足多样性的选择. 本文中采用能够跨多个平台通信的中间代理思想, 利用对底层系统进行统一封装的方法, 在应用层实现统一的调用接口来屏蔽操作系统的不同; 对于数据的差异性, 采用的是基于中性语言的数据编码/解码的方法[1]. 可确保不同系统平台上的终端软件都可以使用相同的通信库构成连接, 进行通信.多操作系统之间的跨平台通信, 实质是指在远程进程与本地进程之间建立消息传输连接后, 通过共享存储缓冲区实现消息交换, 相较于其他进程通信方法, 共享缓冲区最大的优点在于效率高. 基于中间代理的思想构建了图1所示的跨平台通信模型. 图中计算机#1、#2和#3上运行的可以是相同的操作系统, 也可以是不同的操作系统. 其中进程#1、#2和#3通过共享存储缓冲区#1和#2直接进行消息的交换实现通信, 无需对消息进行编码/解码. 因为它们处于相同的计算机中, 所以通信属于本地(LOCAL)访问.进程#4只有通过中间代理#1, 进程#5和进程#6则通过中间代理#2才可以访问共享存储缓冲区, 进行消息交换. 当进程属于不同的计算机时, 通信则属于远程(REMOTE)访问.当进程#4和进程#5通信时, 它们需要分别通过中间代理#1、#2向各自所分配的缓冲区中写入要交换给对方的数据, 然后中间代理#1代替进程#4访问存储进程#5数据的缓冲区, 读取数据, 同理中间代理#2此时可并发地读取进程#4缓冲区中相应的数据完成进程间的通信.中间代理主要是位于底层通信系统与应用层之间, 底层通信主要是进行数据的传输和读写、缓冲区管理、系统间建立连接等. 中间代理负责和应用层之间进行交互,调用底层通信的接口函数进行数据的传输. 中间代理使设计人员不必理解底层通信的具体实现, 只需直接调用接口函数使用, 减轻了其负担[6-9].本文中实现跨平台通信的方法主要是基于RCS库的CMS和NML, RCS(Real-Time Control System)库是由美国国家标准与技术研究院(NIST)研发的实时控制系统, 是一个C++类库针对多平台的实时分布式应用程序, 具有良好的跨网络、跨平台的通信能力[3,4].CMS是RCS库的底层通信管理软件, 是控制系统中通信的主要部分, 通信过程中CMS内置函数可将所有基本的数据类型进行编码/解码, 因此, RCS库才可以进行跨平台之间的通信. 虽然在不同平台上CMS的通信方法不同, 但提供了统一的接口访问共享存储缓冲区.NML是RCS库的一种独立于计算机控制系统的中性消息语言, 是基于CMS的通信语言. NML是一个高效灵活的通讯机制, 适合嵌入式系统应用, 是有详细的说明的标准接口. 配置文件的使用允许使用者优化选择最高效的通讯协议, 而且没有平台的限制. 基于RCS库实现与其他方法的对比, 如表1所示.NML是CMS更高层次的应用程序编程接口API, 是开放的源代码,可以从NIST 免费获得的. 通过表1相对其他方法的对比, RCS库使开发人员不必考虑底层硬件、协议等的具体实现, 直接在应用层借助NML实现异构平台间通信. 可见基于RCS库的方法简化了异构平台之间实现通信的工作, 很大程度上降低了系统开发的难度和设计人员的负担, 一定程度上可缩短3-6周的开发周期.2.1 基于RCS库实现的通信模块图2显示了利用RCS库实现了跨平台通信的各个模块, 主要由NML和CMS组成,NML中的服务器相当于图1中的中间代理.接口层: NML函数库主要提供建立通道、读写消息等的接口函数, 对底层CMS提供高层次的接口函数, 如编码/解码的简化机制.NML层主要是消息管理模块和配置管理模块, 如消息词汇的定义, 消息类型的声明以及NML应用程序中配置文件的设置等; 同样包含通信模块等.CMS层给远程进程和本地NML服务器都提供了通信模块, 编码/解码模块, 在本地访问中还提供相应的缓冲区管理、读写信息管理[3,4].2.2 基于NML的具体实现过程通信简化过程大致如图3所示: 应用程序的控制模块control()通过NML接口调用自定义的格式化函数Format(NMLTYPE type, void *buf, CMS *cms)识别消息类型、建立缓冲区连接等, 调用自定义的更新函数Update(CMS *)更新成员信息, 接着CMS更新函数对数据进行编码/解码, 通过命令通道和状态通道传输信息, 最后读写操作调用CMS通信函数进行消息的读写.通信主要是基于NML的通信, NML应用程序的设计主要有以下几步:① 用C++类来定义NML消息词库, 在头文件中进行声明;② 创建NML配置文件, 指定相应的缓冲区位置以及进程如何与其连接等;③ 创建NML程序中进程与缓冲区的连接;④ 利用NML程序中的读写函数对信息进行传输;⑤ 用NML提供的NML Code Generator(NML代码生成器)生成相应的可执行的C++或者Java程序.2.2.1 NML消息定义NML消息可看作是, 在写操作期间复制到NML缓冲区中, 并在读操作过程中复制出的数据结构. 每个消息有唯一的正整数标识符, 来识别缓冲区中现存储的消息[8-13]. 如在头文件中对数据进行定义的代码:#include "rcs.hh"enum exCmdMsgType {EX_CONFIG_TYPE=6001,EX_GOTO_POINT_TYPE=6002,EX_HALT_TYPE=6003,EX_INIT_TYPE=6004};enum exStatMsgType {EX_STATUS_TYPE=6000,EX_RCS_DONE = 1,EX_RCS_EXEC = 2,EX_RCS_ERROR = 3};上述命令消息都继承RCS_CMD_MSG类, 例如:class EX_CONFIG : public RCS_CMD_MSG{public://构造函数EX_CONFIG();CMS 内置的更新函数void update(CMS *);};状态信息继承RCS_STAT_MSG类, 代码如下所示:class EX_STATUS : public RCS_STAT_MSG{public://基本构造函数EX_STATUS();//继承于类的构造函数EX_STATUS(NMLTYPE t, size_t s) :RCS_STAT_MSG (t,s) {};//CMS 更新函数void update(CMS *);//自定义的变量PM_CARTESIAN position;};另外, 消息类用格式化函数Format()来建立进程与缓冲区的连接, 识别当前所需处理的消息类型, 使通信过程中CMS能正确及时处理缓冲区中的多种类型信息, 如: int the_format(NMLTYPE type,void*buf,CMS *cms){switch(type){//可添加多种需处理的消息类型case EX_MSG_TYPE:((EX_MSG *)buf)->update(cms);break;default:return -1;}return 0;}2.2.2 NML配置文件的设置通信中使用配置文件来设置NML缓冲区、进程的相关参数. 开发人员大多数是在配置文件中指定参数选项, NML调用通信函数时配置文件作为参数读取, 得到相关信息.配置文件中的NML缓冲区是一段有固定最大值的存储空间, 缓冲区行是以大写字母B开头作为指示, 必须含有Name: 进程识别创建或连接缓冲区的名字; 类型Type: 进程访问缓冲区的方式, 本地有SHMEM、GLOBMEM、FILEMEM等方法, 远程则选用TCP、UDP等网络协议; Host: 缓冲区所在的主机名或IP地址; Size: 缓冲区容量的大小值; Number: 一个integer唯一标识缓冲区的序号; MP: 可访问缓冲区的最多进程数; 数据格式Neutral: 值为0是本地格式(native), 为1是独立于计算机的中性格式(neutral format)等参数.配置文件中P开头表示进程行, 进程一般有Name: 进程名; Buffer: 进程连接的缓冲区; Type: 进程类型, 表示进程与缓冲区是否在同一主机上, 关键字是本地Local 和远程Remote; Host: 进程坐在计算机的主机名或IP地址; OPS: 进程的操作类型, 读R、写W或者读写RW; Server: 服务器标志, 值为0表示不是服务器进程, 为1是服务器进程, 为2表示不是服务器进程但本身可创建一个服务器进程; Timeout: NML操作的等待时间; Master: 进程连接饿得缓冲区是否为本进程创建等参数[9], 设置图1所示的跨平台通信模型的配置文件如表2.2.2.3 NML通道的建立当图2中远程进程A向本地进程B发送命令时, 进程A的通信管理模块则需调用setCmdChannel(newRCS_CMD_CHANNEL(modAFo rmat,”modA_cmd”,”modA”,”test.nml”))函数来建立命令通道,而同样当进程A从状态缓冲区中读取进程B的状态信息时, 则需调用setStatChannel(new RCS_STAT_CHANNEL (modAFormat,”modA_sts”,”modA”,”test.nml”), modA_status)函数建立状态通道, 调用函数modB_sub_num = addSubordinate(new RCS_CMD_ CHANNEL(modBFormat,"modB_cmd", "modA", "test.nml"), newRCS_STAT_CHANNEL(modBFormat, "modB_sts", "modA", "test.nml"))与进程B进行通道连接. 当通道建立完成以后需要DECISION_PROCESS()决策函数来调用与当前命令类型合适的命令函数, 发送命令给其他函数. int addSubordinate()返回一个整型数, 当进程A调用sendCommand发送命令时, 返回值用来识别与其通信的进程.通信过程中, NML通道上传输的数据是编码后与平台无关的中性数据格式, 如: XDR、XML等格式. 消息到达各自平台时再将数据解码成平台可处理的相关格式.2.2.4 NML服务器远程进程需要通过服务器才能连接到本地缓冲区, NML服务器是一个进程, 运行在本地. 建立服务器连接:#include “nml.hh”#include “exvocab.hh” //使用NML词汇集void contact(){//连接到NML缓冲区NML * command_buffer = newNML(ex_format,”command”, ”server”,”test.nml”);NML * status_buffer = new NML(ex_format,”status”, ”server”,”test.nml”);//为两个缓冲区运行NML服务器run_nml_servers();}2.2.5 NML读写信息基于NML的通信, 主要是对缓冲区进行数据的读写操作, 对于编码的信息, 还需调用更新函数返回本地数据格式.NML常用的是非阻塞写write( NMLmsg *msg)函数, 返回值为0表示成功写入消息, 返回值为-1表示失败. 如果写消息是队列存储, 则不存在重写覆盖原有消息, 若是非队列存储, 会出现重写覆盖, 因此采用非破坏写函数write_if_read(NMLmsg *msg), 当缓冲区为空时直接写入, 否则检测信息是否已被读取, 已被读取直接写入新消息, 否则直至消息被读取才可以写入新消息. 写操作如下:#include “nml.hh”#include “exvocab.hh” //使用NML词汇集//写操作//连接NML命令缓冲区NML * command_buffer = newNML(ex_format,”command”,”server”,”test.nml”);EX_MSG *ex_msg;ex_msg->d = 12.3456;ex_msg->c = 'a';//写信息if( 0!= command_buffer->write(ex.msg)){printf(“err or writing:%d\n”,command_buffer->error.type);}NML的读函数有非阻塞读read()、阻塞读blocking_read()以及监听读peek()等, 所有读函数的返回值有三类, 返回0表示没有新的消息, -1表示出错, 其他值表示定义消息时的类型值, 则读操作成功, 随后进程对读到的消息进行复制到其缓冲区, 然后可以通过get_address()函数得到消息所在位置的指针. 读操作如下:#include “nml.hh”#inc lude “exvocab.hh” //使用NML词集// 读操作//连接NML状态缓冲区NML * status_buffer = new NML(ex_format,”status”, ”server”,”test.nml”);switch(status_buffer->read()){case -1: //NML出错rcs_print( "An error occurred.\n");break;case 0: //没有新的信息rcs_print( "The same message.\n");break;case EX_MSG_TYPE:ex_msg_ptr=(EX_MSG*)status_buffer->get_address();rcs_print("Have a new message.\n”);rcs_print(" The value of its membersare:\n");rcs_print("d=%f, c=%c\n",ex_msg_ptr->d,ex_msg_ptr->c);break;}在读取消息之前可用函数check_if_read()检测缓冲区消息是否被读取, 对于非队列存储, 返回值为0表示有一条未被任何进程读取的新消息, 为1表示有一条消息至少已被一个进程读取, 若是队列存储的消息, 为0表示该队列中至少有一条信息, 为1表示该队列为空. 进程从非队列存储的缓冲区中成功读取消息时, 对其他进程读取该消息不产生影响. 若进程从队列存储缓冲区读取消息成功, 则其他进程已无法读取到该消息.通过NML服务器进行的读写操作则是远程读写操作, 远程读写操作和本地读写操作源代码一样, 只是NML配置文件的设置不同.远程写操作是远程进程将含有消息、目标缓冲区(命令缓冲区)的写操作请求发送给服务器, NML服务器像本地写操作一样将消息写入目标缓冲区中.远程读操作是远程进程向服务器发送读请求的目标缓冲区(状态缓冲区), 服务器读取本地状态缓冲区的中信息内容, 然后将结果通过网络发送给远程进程. 远程读操作有轮询(Polling)、订阅(Subscribing)[9].在进行消息的读写时, 由于缓冲区资源共享, 必然会出现多个读写进程同一时间对同一个缓冲区进行操作, 则可能出现信息的不可靠, 所以设计时应考虑进程之间的同步操作如何解决, RCS库是一个完善的设计工具, 为此提出了互斥机制mutex解决该同步问题, 当读写进程访问共享缓冲区时, 将共享缓冲区锁定为其使用, 在释放之前不允许其他进程访问, 必须等共享的资源释放.随着现代工业控制的发展, 监测控制系统的多样性使数据采集等操作都是在异构平台之间进行, 因此跨平台的通信已然成为一种趋势. 本文中跨平台通信的设计方案, 给异构平台之间互相通信带来了极大地便利. 本文提出了基于RCS库中NML/CMS的共享缓冲区方法实现不同平台间进程的通信, 各进程可在主流的操作系统, 如Windows、Linux、UNIX和Mac等上运行, 高效地实现了跨平台的数据通信,而且使通信系统趋于标准化, 使其应用更加地广泛.1 孙涛,王品,李家霁.开放式数控系统中跨平台通信技术的研究.组合机床与自动化加工技术,2010,12:50–53.2 李校慧,于东,等.数控系统网络通信平台的设计与实现.计算机工程与设计,2013,34(4):1141–1146.3 田军锋,马跃,等.利用 RCS库实现数控系统模块间的通信. 数控技术,2012,25(7):121–122.4 王锋.FMS递阶分布式控制系统建模及通讯机制研究基[硕士学位论文].北京:中国科学院研究生院,2010:24–31.5 高甜容,于东,秦承刚,胡毅,岳东峰.数控系统中模块间通信方法的设计与实现.计算机工程,2010,12:238–241.6 李风忠,穆斌.跨平台通信中间件的研究与实现.计算机光盘软件与应用,2011,18:56–57.7 谢永刚,范琳,王忠民.基于共享内存的进程间通信在嵌入式软件测试中的应用.计算机应用与软件,2011,2:106–108.8 苏红旗,刘官树.一种基于内存共享的高效进程间通信机制. 新型工业化,2014,2:67–73.9 Shackleford W. Real-time control systems library: Software and documentation. http://www.isd.mel.nist.gv/projects/rcslib. [2014-07-16].10 周西峰,陆鹏,郭前岗.利用socket实现Windows与Linux平台间的网络通信.微型机与应用,2013,18:49–51.11 Dellinger E. Cross-platform communication enables continuous process improvement. Control Engineering, 2013, 60(4).12 Liang HB. A distributed real-time control system based on RCS library. Information & Control, 2011, (5): 581–583.。
面向移动自组织网络的信息传输系统设计与实现
面向移动自组织网络的信息传输系统设计与实现随着计算机和互联网技术发展,基于TCP/IP协议的信息传输系统逐渐成为一种强大的信息化工具,其传输内容经历了从单一文字信息到语音、图像和音视频等多媒体信息,再到在线资讯和视频直播等个性化信息的发展历程。
信息传输系统以其传输的及时性,信息类型的多样性和操作的便捷性,逐步发展成为集咨询、办公、协同工作为一体的信息交流平台。
当前信息传输系统提供的信息传输和信息共享已经成为互联网中的基础服务。
移动自组织网络挣脱了网络对于基础设施的依赖,通过节点自组织形成网络,并以其灵活性广泛应用于抗震救灾,搜索救援等领域。
随着移动自组织网络的发展以及移动终端功能和性能的爆炸式发展,使得设计一套面向移动自组网的信息传输系统具有重要的现实意义和商业价值。
但是现有移动互联网中信息传输系统应用到具有无中心、节点动态移动和网络资源受限等特点的移动自组织网络环境中时,会存在使用受限和兼容性问题,使得传统信息传输系统无法直接迁移到移动自组织网络环境中。
针对上述问题,本文研究了信息传输系统在移动自组织网络中的网络传输模型,同时分析移动自组网对于信息传输系统的需求,提出了一种面向移动自组织网络的信息传输系统,并给出系统的具体设计及实现。
该系统结构清晰,功能完善,且具备低负载,鲁棒性和拓展性等特点。
具体来说,本文主要包括以下内容:(1)本文设计了由消息队列、线程池和应用缓冲区组成的基于单一端口的管道传输框架,该框架减少了对硬件资源的依赖并降低了系统负载压力,并在此框架基础上设计了基于TCP的通信协议,保证传输数据的多样性。
(2)本文基于TCP长连接设计了心跳机制,能够及时检测网络节点的在线状态,同时设计了离线传输和断点续传协议,解决了节点离线和传输中断导致的传输异常问题,提高系统传输效率。
(3)本文设计了完善的传输域协作机制,为传输域中节点提供无缝漫游服务和跨域资源共享服务,保障了系统的拓展性。
(4)本文最后给出在Linux和Android平台下系统的各部分的实现细节和主要函数间逻辑调用关系,并对系统的功能和性能进行了测试,验证了本系统的高效性和稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于消息中间件的数据交换平台传输框架设计①梁彦杰1,2,廉东本21(中科院研究生学院,北京 100039)2(中国科学院沈阳计算技术研究所,沈阳 110168)摘 要:在为辽河流域的不同应用系统搭建数据交换平台的过程中,采用Web Services在节点之间进行数据传输存在着传输不可靠、不能很好地支持复杂数据、仅支持同步传输等问题。
首先对Web Services下可靠传输的方案进行了探讨,在此基础上提出了基于消息中间件的数据交换平台的传输框架,并对该传输框架下的数据传输流程和具体组件设计做了详细介绍。
关键词:数据交换平台;Web Services;消息中间件;可靠性;可扩展Design of Architecture on Transporting Data for Data Exchange Platform Based on MOM LIANG Yan-Jie1,2, LIAN Dong-Ben21(Graduate University, Chinese Academy of Sciences, Beijing 100049, China)2(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)Abstract: During the process of constructing data exchange platform for different application systems which belong to LiaoHe Basin, We found that there existed several problems by using web services to transport data between two application systems such as low reliability, the difficulty of supporting the complex data from different data source, the only support of synchronous process. In this article, firstly, we did a research on the solution of reliability data transmission based on web services. Secondly we had the idea of designing the Architecture on Transporting Data based on MOM. At last, we described its working process and the details of its components.Key words: data exchange platform;web services; message-oriented middleware; reliability; extendable数据交换平台能够有效地对异构的数据源进行集成和共享,一方面满足了人们宏观上掌握数据的需求,另一方面促使交换各方及时、安全、高效地传递数据,避免了信息孤岛的存在。
在辽河流域水污染治理过程中,数据交换平台在协调不同部门之间数据通信中扮演了重要角色,是辽河流域环境风险评估与预警平台课题的重要组成部分。
其中,数据传输是数据交换的前提和重要保障,本文旨在设计一个高效、可靠、准确和可扩展的数据传输框架,提高数据交换平台的性能。
1存在的问题现有的数据交换平台在开发过程中不同节点之间①收稿时间:2011-07-17;收到修改稿时间:2011-08-22数据传输是采用Web Services实现的,中心节点(数据交换平台的交换引擎所在,负责对数据进行清洗、转换、校验等处理)和客户端(辽河流域下各个异构应用系统)都要部署Web Services。
由于Web Services 采用无状态、不可靠的HTTP协议作为底层的传输协议[1],在测试的过程中,发现数据传输不可靠。
图1代表数据交换平台进行数据交换的一个任务流程,节点A发送数据到中心节点,然后由中心节点将处理之后的数据发送给B节点。
图1数据交换平台的一个任务流程示意图数据交换的过程中的不可靠性具体表现:首先,中心节点和B节点任何一个Web服务停止就会导致任务失败;其次,当平台运行在一个复杂的网络环境下或者节点的处理速度过慢,发送节点在HTTP的超时重传的机制下就会多次发送数据;第三,由于中心节点下有很多客户端,同时运行多个任务时,中心节点不能灵活地实现负载均衡。
此外,采用Web Services还存在着其他几个问题:1) 不能很好地支持复杂数据由于水污染治理过程不同的应用系统要处理各种复杂的数据,针对每一类型的复杂数据,必须提供相应的Web服务并且开发不同的客户端,降低了数据交换平台的可扩展性。
2) 数据传输与数据交换引擎过耦合平台将数据的接收、发送以及解析动作分别作为资源放在了数据交换引擎中一起被调度系统进行处理,这种数据传输和数据处理的耦合,即增加了平台监控的复杂性,又使平台异常处理和事务回滚变得困难。
2可靠性方案及传输框架的提出数据传输的可靠性是Web Services的一个缺陷,学术界以及商业领域针对Web Services的可靠性提出了很多解决方案。
这些解决方案大致可以分为两类:一类是通过扩展消息头部来保证可靠传输,如结构化信息标准促进组织(OASIS)提出的WS-Reliability标准。
这个标准的本质是在SOAP消息头部中加入确认和重传机制的标签内容[2],以此来保证消息的一次送达和按序送达。
这种方式虽然解决了可靠性问题,但却增加了Web Services应用层处理逻辑的复杂性,应用层不仅要处理自己本身的业务逻辑同时还要处理Web Services的可靠性逻辑;第二类的解决思路是用可靠的传输协议替代Web Services底层的不可靠的HTTP协议,如使用JMS来充当底层的传输协议,Apache CXF服务框架通过配置可以搭建这样的Web Services。
第二类方案的演变是采用底层可靠的数据传输协议构造一个消息中间件(MOM, Message-Oriented Middleware)来保证数据可靠传输[3],这样Web Services 框架被分成了两部分,上层提供服务,下层进行可靠传输。
国防科技大学StarWebAdapter系统[4]以及Piyush Maheshwari等人设计的WSMQ系统[5]都是采用这种思想来实现的。
尽管这种解决思路保证了数据传输的可靠性,但是由于其仍然属于Web Services的框架,解决了可靠性却不能解决上文提到的其他问题。
而且数据传输的效率也严重降低,因为发送节点先要将原始数据封装成SOAP消息,然后通过消息转换组件(SOAP消息与MOM消息互相转换)封装处理,接收节点进行相反的动作进行处理,在整个过程中加了很多SOAP标签,使传输的数据量增大。
基于以上研究,这里提出基于消息中间件的数据传输框架,即数据是通过消息中间件进行传输的,Web Services不是用来进行数据传输而是对数据进行处理,工作在消息中间件的上层。
进行数据传输时发送节点首先调用与发送节点同在的Web Services进行数据处理,然后将处理之后的数据通过消息中间件传递给接收节点。
3传输框架的设计客户端与中心节点拥有相同的传输框架结构,不同的是中心节点的传输框架上层是数据交换平台的交换引擎,客户端上层是辽河流域下的各应用系统。
传输框架的结构图如下所示:图2传输框架的结构图其中,数据服务管理器中将各种数据处理的方法发布成服务;数据监听器是数据处理的管道,它连接上层应用系统和底层消息中间件,根据任务配置的服务编码调用数据服务管理器中的服务,完成数据的加工处理的流程;消息中间件是传输框架的核心,在各种可靠性机制下负责将经过数据监听器处理的数据可靠地在节点间传递。
数据监听器和数据服务管理器的具体设计实现见下文中描述,消息中间件采用实现高级消息队列协议(AMQP)的RabbitMQ,这个消息中间件有着完善的可靠性机制并且使用方便。
以节点A 传向平台为例,传输框架下的数据传输过程为:第一,节点A数据监听器监听到应用层数据的变化,查询变化数据对应的任务配置信息(数据类型、目的节点的信息、任务优先级、加解密信息、解压缩信息等),生成唯一的事件编号,将事件编号和任务的配置信息写成XML字符串作为自定义报文的头部。
第二,按照报文头部定义的数据封装流程,调用数据服务管理器的数据服务对数据进行加工,如加密、压缩等,处理之后的数据与报文头部组装成报文。
第三,节点A数据监听器根据报文中的目的信息查询路由表获取接收节点的信息,并将这些信息和自定义的报文传递给消息中间件的消息发送队列中,同时客户端数据监听器中记录任务日志。
第四,报文由消息中间件发送到中心节点的消息队列。
第五,中心节点的数据监听器检测到消息队列中的报文,取出解析其头部,抽取出报文数据的服务编码,调用中心节点的数据服务对报文数据进行解析,获得原始的数据。
第六,中心节点的数据监听器将原始数据交付给上层进行处理。
经过平台交换引擎处理之后的数据再按照前三步从中心节点发送给最终的数据接收节点。
3.1 数据监听器的详细设计如上所述,数据监听器完成了数据接收、数据加工处理、数据投递的管道处理流程,在传输框架中充当应用层与服务管理器以及服务管理器与消息中间件之间的接口。
数据监听器主要是围绕自定义报文展开的,最终形成的自定义报文是消息中间件中要发送的消息,报文头部的长度是固定的,报文数据是对原始数据按照可选的规则来组织数据的,如用分隔符来对简单类型的数据拼接等。
数据监听器的核心部件如图3所示,各部分组件的实现的具体功能为:图3数据监听器的模块图报文头部生成器:数据监听器通过定期扫描要交换的数据源,如数据库中的数据或者某个路径下的文件,如果有数据,查询该数据源关联的任务编号,根据任务编号查询任务配置信息,将配置信息作为自定义报文的头部存入共享缓冲区。
一个可能的报文头部如下:<Head><EventID>2011062623431123Task001</EventID><TaskID>Task001</TaskID><Priority>5</Priority><AuthorizationUser>L YJ86Client</AuthorizationUser> <AuthorizationPassword>client86LYJ</Authorizati onPassword><RegisterDomain>SYDomainCenter</RegisterDom ain><RegisterDomainIP>192.168.131.73</RegisterDom ainIP><RegisterDomainPort>8080</RegisterDomainPort> <DestinationDomain>NMGDomain</DestinationD omain><DestinationDomainIP>192.168.139.185</Destinati onDomainIP><DestinationDomainPort>8080</DestinationDomai nPort><BeforeService><DataProtocol>Protocol001< /DataProtocol><DataFactory>Encoding001</DataFactory><Encryption>Encryption001</Encryption><Compression>Compression001</Compression></BeforeService><AfterService><Decompression>Decompression001</Decompression> <Decryption>Decryption001</Decryption><DataFactory>Decoding001</DataFactory><DataProtocol>DeProtocol001</DataProtocol></AfterService></Head>报文数据生成器:从报文头部中提取数据处理特征,如上述XML文件中 BeforeService标签里面的内容,根据这些数据服务的服务编码,有序地调用位于本地的Web服务,完成对不同类型的数据源的数据的抽取、协议封装、转码以及数据传输过程中需要的不同方式地加密、压缩等处理。