交易中间件设计(共7篇)
交易中间件设计 篇1
0 引言
目前,任何一家银行面临着国内和国外同业的巨大的竞争压力,这要求银行能够不断地根据客户的需求,以最快的速度推出新的银行产品和银行服务。这种需求将对银行IT基础架构提出非常高的要求,首先,银行的IT架构必须能够支持迅速的产品和服务开发能力,这种开发能够在不破坏原来的IT架构的情形下进行,并能够方便地使用各种原来系统中提供的功能;其次,新开发出来的产品和服务能够通过各种渠道,如柜面、网银、手机银行、电话银行等,让客户能够直接购买和享受这些服务。为达到这个目标,设计一个具有统一交易接口的中间交易平台将是非常重要的。通过这个中间交易平台能够逐步规范各个系统之间、各个渠道之间以及各种系统和渠道之间的交互访问方式,并在这个基础上,进一步规范新系统的开发模式。
1 设计原则
1.1 标准化原则
标准化原则要求在系统设计过程中尽可能遵循各种标准或者使用标准,包括IT方面的行业标准。如提供标准TCP、HTTP、Tuxedo的通信适配器,采用SOA的架构、AOP的架构等。标准化原则使得系统能够不断地扩展,而不是很快地老化。
1.2 开放性原则
开放性原则要求在系统设计过程中提供开放的能力,而不是封闭的功能。开放的设计使得系统有强大的扩展能力,在各个层次上都可以进行系统功能的扩展。
1.3 组件化原则
组件化原则要求系统设计能够正确地处理耦合性,使得各个组件之间的耦合关系能够和正常需求的耦合性一致,并能够将各种公共的功能抽象成公共的组件,从而保证系统的可重用性。
2 功能模块的设计
银行中间交易平台模型分为:通讯层、数据交换层和服务层。
通讯层需要解决的问题是如何屏蔽底层的通讯细节,向上层提供一个完整的数据报文;数据交换层需要解决的问题是如何屏蔽各种系统的数据物理表示和组织,向上层提供一个统一的数据接口;服务整合层需要解决的问题是如何屏蔽服务的具体实现,向使用者提供一个功能、接口明确的业务组件。
其层次架构图如图一所示:
2.1 通讯层
通讯接口层负责和外部系统进行通讯,进行原始报文数据的传输。通讯接口层需要实现以下的功能:
(1)利用系统层通讯协议和外部系统进行通讯,包括TCP/IP、SNA/LU0、TUXEDO等通讯协议。
(2)实现外部系统约定的通讯方式,包括如何进行通讯连接,如何进行通讯应答,如何进行数据传输,如何约定通讯报文的大小,如何确定数据传输是否完毕,如何处理通讯错误,如何关闭通讯连接,如何处理通讯层数据完整性校验等。
(3)识别外部系统类型,确定接收到的数据是从什么外部系统来的,以便为确定数据的具体组织方式提供依据。
(4)实现通讯连接的并发处理。
另外,以下功能由于涉及额外的信息,因而不需要由通讯接口层完成:非通讯层面的数据报文的加解密和非通讯层面的数据报文的压缩、解压缩处理。
对数据交换层来说,通讯接口层屏蔽了所有的通讯细节。数据交换层只知道从某个外部系统获得了或者发送了一个数据报文,至于该数据报文是如何获得或者发送的,和数据交换层本身无关。
2.2 数据交换层
数据交换层完成原始通讯数据和系统标准数据之间的相互转换。具体来说,数据交换层需要实现以下功能:
(1)应用层面的数据报文的加、解密。
(2)应用层面的数据报文的压缩、解压缩。
(3)数据报文类型的识别,如XML、ISO8583、主机报文、Front报文。
(4)数据报文的打包、拆包,根据报文类型将原始的数据报文拆分成基本的标准业务数据或者相反。
对服务整合层来说,数据交换层屏蔽了数据的具体物理表示和组织。服务整合层只知道收到了一个服务请求需要处理,至于该服务请求是从哪个系统发起的,原始的请求数据是什么,和服务整合层没有关系,只和数据交换层有关。
2.3 服务整合层
服务整合层完成一个服务的具体实现,该服务的具体实现和服务请求无关。服务整合层需要实现以下功能:
(1)完成对原子服务的调用。
(2)完成对服务调用流程的控制。
(3)完成对服务日志的记录。
(4)实现对服务执行过程数据一致性的保证。
(5)实现对不同类型服务的服务总量控制。
(6)完成在服务执行过程中关键信息的记录和输出,用于系统监控。
3 中间平台的集群
中间平台集群是基于Linux服务器集群系统———LVS(Linux Virtual Server)。使用多个平台服务器构成提供服务的真实平台服务器,对外使用一个虚拟IP。LVS调度器部署在两台机器上,一主一备。LVS将虚拟IP的请求分发给真实的服务器进行处理,分发采用VS/NAT的方式,算法采用轮叫(Round Robin)方式。对于前面的渠道层是透明的,跟访问一台服务器是一样的。
其架构如图二所示:
LVS采用的是IP负载均衡技术。在调度器的实现技术中,IP负载均衡技术是效率最高的。
用户通过虚拟IP地址(Virtual IP Address)访问服务时,访问请求的报文会到达负载调度器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将报文发送给选定的服务器。真实服务器的回应报文经过负载调度器时,将报文的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户。Berkeley的MagicRouter[8]、Cisco的LocalDirector、Alteon的ACEDirector和F5的Big/IP等都是使用网络地址转换方法。
采用VS/NAT方式不需要对真实服务器做任何配置,其他的方式都对真实服务器有所要求。
调度算法有很多种,鉴于VRouter的真实服务器配置和资源已经支撑的应用都完全相同,采用轮叫(Round Robin)方式是最合适的。
4 结束语
通过银行中间交易平台架构以及平台的集群设计,可以实现现有银行核心系统实现快速的与新业务系统的对接,也实现银行外围系统开发规范化、标准化。同时核心业务系统符合小后台大外围的发展趋势。
参考文献
[1]Judith M.Myerson.The Complete Bank of Middleware[M].USA:CRC Press,2004.
[2]周园春,李森,张建,等.中间件技术综述[J].计算机工程与应用,2002,(15).
[3]徐春金.Tuxedo中间件开发与配置[M].北京中国电力出版社,2003.
[4]宋宇宁.基于SOA的事件驱动企业应用集成技术研究[D].杭州:浙江大学,2005.
[5]贺志强.基于SOA的教育资源共享框架及支撑系统的开发研究[J].中国远程教育,2010(,02).
交易中间件CICS的研究 篇2
中间件具有平台功能,能够屏蔽底层操作系统及网络传输的复杂性,使开发人员面对简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在业务逻辑上,大大减少了应用开发的技术难度,缩短了应用开发周期。
在中间件技术产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机技术中最底层的东西,越底层越复杂,开发者不得不面对很多棘手问题,如操作系统多样性,繁杂的网络程序设计、管理复杂的网络环境,数据分散处理带来的不一致性问题等等。于是有人提出能不能将应用软件所要面临的共性问题进行提炼,抽象,在操作系统之上形成一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境。
中间件的产生和发展与客户机/服务器结构的发展是紧密结合的。近几年来,随着数据库应用的发展,传统客户机/服务器结构的缺点日益明显,比如可扩展性差、对于分布式交易的处理能力差等。因此,正是由于客户机/服务器环境一直存在着操作系统、文件格式、网络协议、服务等相互异构的多元化问题,才使得中间件作为不同结点间协同工作的桥梁得以不断发展。
目前,利用中间件平台来解决企业级应用异构环境下分布式系统开发问题在国内、国外应用很广泛。
2 中间件的基本概念
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件是一种软件,它能使处于应用层中的各应用成分之间实现跨网络的协同工作,也就是互操作,这允许各应用成分之下所涉及的系统结构、操作系统、通信协议、数据库和其他应用服务各不相同。分布式应用借助它在不同的技术之间共享资源、协同工作。
中间件位于客户机/服务器的操作系统之上,分布式应用之下,管理计算资源和网络通信,其核心思想是分层,通过在应用层与底层基础软件间增加一层,屏蔽底层复杂的技术细节,实现对底层的透明访问,为应用的开发、部署与管理提供支持。中间件是一类基于分布式技术的系统软件或软件平台,而非一种应用软件,涉及多种资源,包括各种操作系统、数据库、网络协议甚至语言,其核心是网络通信,其目标是在分布式计算环境中实现应用互联、资源共享、协同工作和互操作。
中间件提供了一个基础的框架来帮助开发人员建立、运行和管理一个三层客户机/服务器模式的应用,使开发人员不需要从零做起,缩短了应用开发的时间,提高了成功率。三层客户机/服务器模式的核心概念就是利用中间件将应用的业务逻辑、表示逻辑和数据氛围三个不同的处理层。如图1所示。
3 中间件的分类
中间件产品种类很多,可以大致分为以下五类:划分为以下五种:数据库中间件、面向消息中间件、远程调用中间件、基于对象请求代理的中间件、事务处理中间件。
3.1 数据库中间件(DM,Database Middleware)
数据库中间件是产生最早的一种中间件技术,发展到现在已经非常成熟。它位于数据库管理系统和应用程序之间,实现了应用程序和异构数据库之间的统一接口,有效地解决了应用系统在不同后台数据之间的移植问题。
数据库中间件只提供数据库连接,与ODBC的某些功能相近,其应用比较固定。大多数的客户机/服务器系统都有一个客户程序存取服务器上的数据库,如果这个客户程序设计为只存取一种数据库类型,那么采用数据库中间件十分理想。典型的数据库中间件产品是Oracle的SQL*net。
3.2 面向消息中间件(MOM,Message Oriented Middleware)
通过消息中间件,一些原本互相孤立的业务可以组合成一个可靠的、灵活的系统。借助消息机制,可以方便地实现客户方和服务方的通信,通知服务方进行相应的处理。其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。
典型的消息中间件产品有:IBM的MQ Series,BEA的Message Q,东方通科技公司的TongLink/Q。
3.3 远程过程调用中间件(RPC,Remote Procedure Cal1)
RPC机制是早期开发应用时经常采用的一种同步式的请求应答协议。RPC一般采用CALL/RETURN模式,多用于应用程序之间的通信,而且采用同步机制。代表产品有DCE-RPC,Inprise Entera。
3.4 基于对象请求代理的中间件(ORB,Object Request Broker)
基于对象请求代理的中间件技术的基本思想是在对象与对象之间提供一种统一的接口,对象之间的调用和数据共享无需再关心对象的位置、实现语言及所驻留的操作系统。
代表产品有Iona Orbix,Inprise Visibroker。
3.5 事务处理中间件(TPM,Transaction Processing Monitor)
事务处理中间件也称交易中间件。交易中间件可以向用户提供一系列的服务,如应用管理,管理控制,应用程序间的消息传递等常见的功能包括全局事务协调、事务的分布式两阶段提交、资源管理器支持、故障恢复、高可靠性、网络负载均衡等。交易中间件管理那些由应用程序声明和提交的交易,同时控制并发,实现交易路由和均衡负载,并通过两阶段提交协议等方式保证分布式交易的完整性。比较典型的产品包括Bea公司的Tuxedo,IBM公司的CICS等。
4 交易中间件CICS(Customer Information Control System)
4.1 综述
CICS是为IBM和非IBM平台上的应用提供联机事务处理和事务管理的产品,其功能是为商业应用提供一个事务处理环境,适用于银行这样有大量突发联机事件的系统。CICS建立在操作系统、ISO的分布式计算环境(DCE,Distributed Computing Environment)和Encina服务上,CICS可以与DCE紧密结合,以满足分布式环境对于安全性,名字服务等的特殊需求。
CICS的结构设计也是面向事务处理的,CICS构建的是一个三层次结构的应用系统,CICS有效地区分应用系统中的表述逻辑层、业务逻辑层和数据逻辑层,从而使应用系统结构清晰,效率高,速度快,维护简单易行。它帮助客户建立三层次结构的联机事务处理应用,为应用程序的开发、通信、恢复、显示、数据管理、安全性和内部通信等提供很多项服务。CICS环境最大的好处是它所提供的数据完整性知识不需要在应用程序中具有明显的处理逻辑。CICS系统明确地记录了应用程序对数据的修改,并当交易或应用程序失败后,自动的把对数据的修改回滚。CICS允许一个交易程序被很多用户同时请求执行,而交易之间互不妨碍。
4.2 CICS基本架构
作为三层C/S结构的中间层,CICS服务器通过客户系统和网关连接其前端,即CICS
客户机(如果某个CICS客户机是Web服务器,那么,它还有自己的前端,即浏览器),CICS服务器通过资源管理器连接后端,即关系型数据库,如DB2,ORACLE,SYBASE,INFORMIX和MS SQL Server等。
这相当于一个嵌套的两层C/S结构:界面逻辑层是CICS Client,业务逻辑层是CICS Server+Database Client,数据访问逻辑层是关系型数据库。
按照这样的结构分布,我们可以把CICS应用开发工作分为三个部分(见图2):界面逻辑层的开发人员来设计用户界面,比如:录入、显示和打印等;业务逻辑层的开发人员来设计应用逻辑,比如账务数据处理等;数据访问逻辑层的开发人员来配置和优化数据库系统。
4.3 CICS提供的功能模块
CICS的编程语句可以和SQL的编程语句共同存在于应用程序中。CICS在其客户机端支持C和COBOL语言,也采用统一的编程接口(API)。客户可以采用两种方式来编制CICS的客户端程序。一种是外部调用接口External Call Interface(ECI),它使得一个在客户机上运行的非CICS应用程序能同步或异步调用CICS程序,就像一个子程序。基于客户的应用程序使用简单的ECI调用,将需要调用的服务器程序名和一些数据通过通讯存储区传递到CICS区域,无需任何特殊的通信代码。另一种是外部显示接口External Presentation Interface(EPI),它使一个在客户机上运行的应用程序能调用服务器上的CICS事务,执行该事务就如同将它从3270终端启动,该事务向客户机返回一个3270数据流,而客户机可在图形用户界面中将它呈现出来,使得诸如图形或多媒体接口之类的现代技术可与传统的3270 CICS应用程序一起使用,而无须更改CICS应用程序。甚至,用户还可以在客户端使用己经比较习惯的PowerBuilder,Delphi等工具进行开发。但在实际应用中,主要采用的是ECI调用。
CICS提供了事务处理中共同需要的几乎所有功能模块,客户仅仅需要将他们的注意力集中在他们的业务逻辑上,从而快速的开发适合他们业务需要的应用程序。五大功能模块构成CICS核心功能模块,通过这些核心功能模块的作用使得CICS的基本功能得以体现。
4.3.1 TRANSACTION驱动功能:
CICS中的交易是由4位的TRANSACTION ID标识启动的。在CICS中各种应用处理功能是通过如下的方法调用而实现其工作机制的:
TRANSACTION ID→TRANSACTION→TASK→应用程序
4.3.2 多重任务功能:
按照TRANSCATION驱动机制,终端每启动一次TRANSCATION,也就建立了一个TASK。CICS对在同一区域中同时运行的许多TASK实施控制,所采用的技术是:TASK-SWITCHING,即终止一个TASK,将其置于等待的TASK队列中。让下一个有最高优先级的TASK获得控制权;如此循环执行。
4.3.3 多线处理功能:
在多重任务功能的支持下,调用同一个程序的多个TRANSCATION均可以使用该程序的同一个COPY,使得TRANSACTION对内存的开销能够保持较低水平。
4.3.4 准重入功能:
为了保证多线处理功能的实现,就必须保证程序模块具有准重入性。因此,CICS在终止一个TASK之前,将该TASK对程序模块中的数或指令所做的修改于以恢复,使后续TASK仍然使用程序模块的原始版本。
4.3.5 优先级处理功能:
这种功能使用户可将优先级分别指定给应用系统的操作人员、终端、以及TRANSACTION ID,而CICS则根据优先级的高低提供相应的响应时间。
5 结束语
CICS是对主操作系统的扩充,它帮助主操作系统把一类特殊的应用程序(既ONLINE应用程序)同其它应用程序分离开来,对ONLINE应用程序进行控制,为执行ONLINE应用程序提供相应的环境,并作为ONLINE程序同各种文件和数据库产品的接口。以CICS为中间件的交易设计,避免了直接对通信编程,既简化了工作量,又能保证交易执行的一致性,还能利用CICS对交易的调度管理功能实现对系统资源的合理运用。
参考文献
[1]焦尧森,刘相军.中间件及其主要评测内容[J].中国金融电脑,2003(5):87-88.
[2]宋晓梁,刘东生,许满武.中间件及其在三层客户机/服务器模型中的应用[J].计算机应用,2005,19(7).
[3]张育平.中间件技术研究[M].计算机应用研究,2001(10):44-46.
[4]IBM.CICS Plex SM V1R3 Managing Business Applications SC33-1809-00[S].
LGcom通讯中间件设计与开发 篇3
关键词:SOCKET,即时通讯,SQL Server2008,ORACLE,C++,Delphi
随着柳钢生产管理系统 (MES系统) 的设计开发, MES与柳钢其他三级系统与各厂二级之间存在大量的数据交互通讯。各个三级系统、二级系统的开发语言、平台各不相同, 在各自系统进行通讯开发, 开发难度大, 工作量大, 系统稳定性难以保障。LGcom屏蔽了复杂的通信层细节, 只需关注应用业务的需求, 达到了快速开发的要求, 大大降低了开发的成本和提升了系统的稳定性。
1 原系统存在的问题
原柳钢各系统之间通讯都以DBLink为主。DBLink通讯虽然简单易实现, 但是其安全性和可靠性存在一定问题。LGcom采用SOCKET通讯能够有效避免DBLink存在的风险, 安全稳定。
2 柳钢通讯中间件 (LGcom) 的系统方案设计
2.1 使用对象
需要进行数据交互的各级系统。
2.2 使用目的
LGcom的主要目的是使不同分布式系统实现通讯交互, 功能是在通信双方的应用程序间传递数据电文, 这些电文可以在不同的通信规约 (基于TCP/IP协议) 、不同的主机操作系统和不同的应用系统间进行传递。
2.3 系统逻辑策略
LGcom的基本工作原理如图1所示。
应用程序分布在网络中的节点主机A和B上, 当应用程序间要传送应用数据时, 只需调用本方LGcom提供的接口, LGcom会封装数据电文并利用TCP/IP方式, 将数据输送到接收端所在的节点, 然后提交给数据的接收者。
3 LGcom模块的详细设计介绍
3.1 数据输入与输出方式及实现
LGcom采用如下三种数据输入方式。
(1) DB接口:应用程序本身组好的待发送电文体写入系统工作表;LGcom从系统工作表中读取接收到的电文体。
(2) MSG接口:应用程序将待发送电文数据写入电文体结构表中, LGcom自动组成电文;LGcom从电文体结构表中读取接收到的数据。
(3) MEM接口:应用程序调用LGcom提供的共享内存接口文件写入发送电文数据;LGcom从共享内存接口文件中获取接收到的数据。
3.2 数据传输方式及实现
LGcom采用SOCKET技术和外部通信节点连接。在双方通信程序之间建立一条TCP通信链路, 一条回线既可以接收也可以发送数据, 但一般一条回线只是用作单向的数据传输。因此, 通信双方通信程序之间需要建立两条回线。
通讯传输方式有两种:静态和动态。
(1) 静态SOCKET:静态SOCKET通信是指通信双方建立的TCP/IP连接一直保持, 直到停止通信程序或异常终止。
(2) 动态SOCKET:动态SOCKET通信是指计算机之间的TCP/IP连接方式是动态的, 当一次通信结束后, 计算机之间的连接随之关闭, 下一次传送电文时, 需要重新建立SOCKET连接。
3.3 异常数据处理
(1) 通讯异常:当对方断开连接时, LGcom会检测到通信回线异常, 并自动断开回线, 并定期对断开的回线进行自动重新连接。
(2) 数据库异常:当数据库异常LGcom自动断开连接, 并启用重连机制, 同时主动关闭通讯回线等待数据库连接正常后再恢复通讯回线。
3.4 系统流程图
系统流程图如图2所示。
3.5 系统管理模块功能实现
LGcom提供管理平台, 通过应用管理等方式, 对LGcom进行管理和监控。
(1) 运行界面:显示系统当前的运行状态信息, 显示数据库连接状态、通讯连接状态、通讯数据收发量、接口读写量。
(2) 收发履历:发送、接收电文的查询、电文内容的展现。
(3) DB履历/MSG履历:DB接口和MSG接口的数据写入与写出履历查询。
(4) 日志:通过日志管理, 可以查看各条回线的通信状态信息, 从而进行通信跟踪维护和排障。
(5) 系统参数:设置系统运行参数, 进行数据库连接信息、通讯主机信息、外部主机信息、日志信息和电文分组的配置。
(6) DLL参数:配置MEM接口 (共享内存) 时外部的应用程序名称和电文信息。
(7) MSG参数:配置MSG接口 (电文结构表) 时的电文字段信息。
4 LGcom实际应用情况
4.1 主要实现功能及完成情况
LGcom是柳钢信息管理部自主研发的面向分布式应用的实时通信软件, 满足了以下功能需求。
(1) 提供简单易用的分布式应用开发和通信平台, 利用它可以快速方便地开发可靠、高效的分布式应用。
(2) 提供本地监控和控制功能, 可以方便监控通信信息和通信运行状况并进行系统管理。
(3) 提供多种平台安装, 目前提供WINDOWS 32位和64位系列操作系统以及Oracle和SQLServer数据库的支持。
(4) 提供对多种开发语言的支持, 目前明确支持C/C++、.NET、Delphi, 理论上支持VB、Java、Python等语言。
4.2 应用现状
LGcom目前稳定应用于转炉、热轧、冷轧、中板、冷轧、物资网、金材、能中、强实、物流园、经销等系统中, 通过LGcom实现了上述系统的数据共享。
5 结语
随着企业信息化技术的不断发展, 低级应用和高级应用之间不兼容、软件架构不兼容、网络架构不兼容、智能控制设备和控制系统与管理系统之间脱离等原因导致信息孤岛现象出现, 如何实现数据整合, 建立数据中心解决信息孤岛问题成为了一个亟需解决的问题。柳钢通讯中间件的开发完成解决了目前柳钢信息化发展中出现各子系统信息孤岛问题, 并且是柳钢完全拥有软件著作权的通讯产品。一次开发, 多系统使用, 应用前景十分广阔。
参考文献
[1]史济民.软件工程原理、方法与应用[M].北京:高等教育出版社, 1998.
[2]谭浩强.C++程序设计[M].北京:清华大学出版社, 2004.
[3]陈刚.C++高级进阶教程[M].武汉:武汉大学出版社, 2008.
基于传感网络的中间件设计方法 篇4
关键词:传感网络,中间件,体系架构,部署模式
1、概述
中间件是位于平台 (硬件和操作系统) 和应用之间的通用服务, 这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台, 它们可以有符合接口和协议规范的多种实现。
传感器网络中间件是面向传感器网络的部署及应用开发构建的通用中间件平台。它包含一个支持多应用的运行环境和一系列标准化系统服务, 如数据聚合、控制和管理策略以及自适应能量有效机制等。该方法可以简化传感器网络设计的复杂度, 并解决传感器网络实现中的种种限制和挑战问题, 为传感器网络的研究、应用和开发提供一个高效节能、可扩展和安全的开发方法和平台。
传感器网络中间件平台的设计目标是实现一个基于异构传感器网络的开发管理平台, 应用开发者可以基于传感器网络中间件快速地开发和部署相关应用, 而无需了解传感器网络底层的具体技术实现。传感器中间件为应用用户提供统一的系统级视图, 并且屏蔽所有的底层复杂处理的操作。
本文设计并实现了一种传感器网络中间件平台系统。该平台可以为传感网络应用开发者提供统一的开发接口和视图, 屏蔽传感器网络的底层实现技术, 并支持用户对异构传感网络的部署、管理与应用。
2、传感网络中间件的体系架构设计
传感网络中间件的设计目标很清晰。简单说, 就是为了实现上层应用开发的灵活性, 为上层应用提供统一的数据查询和网络状态监测等服务, 屏蔽底层物理传感网络及相关协议的细节。同时, 作为中介角色, 弥合底层传感网络异构性所带来的数据格式和通信接口上的差异, 将上层应用的数据查询及网络监测等服务请求转换为传感网络能够理解的形式, 并取得相关反馈。
中间件体系的设计决定了中间件的功能、使用范围、灵活性、可扩展性、可实施性以及具体的性能指标 (包括数据的处理能力、处理延迟、稳定性、安全性等) 。因此, 开展该方向研究的首要工作内容就是要设计一个完善、合理的体系结构, 本文采取一种“从两端到中间”的设计思路, 如图1:
中间件分为三层, 三个层次分别是上层应用API及服务接口、中间件服务层以及底层物理网络接口。通信模块负责处理中间件不同部署方式下的通信链路维护。其中, 中间件服务层中具体的功能模块划分和模块之间的关联关系决定了中间件的功能模型。
3、传感网络中间件部署模式
有了基本的传感网络中间件体系结构和功能模型, 还不能清晰勾画出中间件在传感网络应用开发中的角色和作用, 不能提供一个完整的基于中间件的传感网络应用开发方案。为了实现这些目标, 必须明确中间件的部署模式。部署方式, 决定了中间件的主要功能实体的分布和中间件内部层次及功能模块之间的通信形式及基本流程。
从灵活部署和易于实现的角度出发, 采用基于Sensor Node (感知节点) -Sink Node (Sink节点) -Gateway (网关) -Control Site (控制节点) -Applicatioin (应用) 的5级部署模型较为适合。中间件的各功能模块和层次模型可以根据应用的实际需要在上述5类实体上部署。不同的部署对于中间件的实现特别是通信模块的实现有不同的要求。
4、传感网络中间件的基本功能模型
无论是从上层应用还是从底层传感网络的角度来看, 作为一个承上启下的角色, 传感网络中间件最为基本、关键的功能无外乎以下三类:传感数据管理功能、传感网络管理功能和通信功能。在图2所示的传感网络体系结构框架基础上, 我们对传感网络中间件的功能进行了细化, 初步制定了如图所示的基本功能模型。
为此, 需要针对这三大基本功能模块开展深入的研究, 并基于研究结论不断丰富和完善整体的传感网络中间件体系结构。
5、结语
本文设计了传感器网络中间件, 为下一步大规模实现应用服务提供了支撑和保障。结合现在已有的部分应用服务, 证明此中间件设计方法具有很好的扩展性和维护性。
参考文献
[1]OMA.User Agent Profile Approved Version 2.0[Z]. (2006-02-06) .http://www.openmobilealliance.org.
交易中间件设计 篇5
物联网的出现打破了传统的关于物品信息的存储与查询的思维,通过将物理基础设施和IT基础设施统一化,建立起一个本身具有通信能力的交互信息网络,这个网络不仅涵盖生产运行、经济管理,甚至渗透到人们个人生活的各个方面。
在应用物联网RFID[1]技术时,首先面对的问题就是电子标签上数据的获取和有效信息的提取。作为RFID系统的重要组成部分,EPC中间件是数据采集、过滤等处理的主要单元。本文提出了一种中间件的设计思路,使上层开发者在开发RFID应用系统时无需再考虑如何与各种硬件设备交互而直接获取有价值的RFID信息。
1 EPC系统简介
EPC的全称是Electronic Product Code,即产品电子代码,是美国麻省理工学院自动识别中心(Auto-ID中心)提出的。EPC的载体是RFID电子标签,并借助互联网来实现信息传递。EPC系统为每一件商品建立全球唯一的识别标准,实现在全球范围内对商品具体信息的记录与查询,有效提高商品信息的管理水平,以及物流准确性,并且降低物流成本[2]。
EPC系统的信息网络系统是在全球互联网的基础上,通过Savant管理软件系统、ONS对象名称解析服务系统[3]、实体标记语言(PML)[4]实现实物的互联。
Savant中间件的系统协议主要由RFID通信协议、应用事件管理(ALE,Application Level Event)协议等组成。ALE是EPCgobal的中间件标准,是阅读器模块和客户应用程序之间的接口协议。该协议定义了客户可以如何过滤和整合来自读写器的EPC标签,并面向不同的企业应用程序和阅读器定义了统一的接口。ALE的处理过程是:接收来自一个或多个数据源的EPC标签码;根据企业应用程序要求以一定的时间间隔整合数据,过滤重复和不感兴趣的EPC码;根据企业应用程序要求以不同的形式打包发送报告[5]。
2 Savant中间件的功能与结构
在功能上,Savant软件系统利用ONS对象名称解析服务并调用PML服务器上的标签应用信息供Savant上层应用软件使用,所以Savant软件系统在结构上有一些用于ONS对象名称解析服务的专用接口。
处理模块与外部EPC系统的联系通过规范定义的接口,即阅读器接口和应用软件接口来实现。阅读器接口提供与标签阅读器的连接,Savant通过该接口和阅读器建立连接,向阅读器发送各种命令。
按照SavantSpecification 1.0[6]标准的描述,Savant软件系统就是处理模块与各接口模块的集成容器,其各个接口模块均有一定的标准,而能用于用户开发的是Savant软件系统的处理部分。根据功能的需要,能够得到Savant中间件软件的大体结构:
图1模型的基本功能在于其中处理模块通过输入接口模块与输出接口模块与阅读器和上层应用软件进行联系。Savant中间件系统是一个开放式系统,其用户定义的处理模块是功能实现的主要体现部分,提供各种用户要求的功能。在输入端,Savant中间件系统主要工作是对阅读器所采集到的电子标签信息进行收集和处理,或者根据自身内部设定的命令对阅读器输出反馈指令;在输出端,其面对的是上层应用软件的调用,或者是通过ONS对象名解析服务对PML服务器上的相应商品信息进行读取。
由上可知,Savant中间件起的是连接阅读器系统与上层应用或者信息存储系统作用,因此对其设计主要在于完成信息的处理、过滤、暂存与计算。
3 Savant中间件系统的实现
本文实现Savant中间体软件系统的主要功能:a.过滤;b.定量信息存储;c.解析;d.接口控制。
3.1 过滤功能
根据第2节中所述的基本模型,并考虑到整个系统的工作效率,过滤程序应该是系统中最先工作的模块。
一个Savant软件系统是服务于特定厂商或者是针对特定类型商品的软件,所以参考TCP/IP协定中局域网IP地址子网掩码过滤处理,只需要通过一段掩码,将该系统所服务的厂商或者所针对的特定类型商品过滤出来。将特定厂商或商品掩码与原始EPC标签代码信息通过一定的逻辑运算结合起来,即可以达到过滤信息的作用。如图2所示。
3.2 解析功能
为了方便读取PML服务器上的标签信息,需将EPC代码解析成ONS服务可识别的地址域名格式。根据该解析过程的规范化的要求,利用格式化转换字符串将EPC二进制代码转换成对应的PML文件地址。
类似于普通的Internet域名地址,存储于PML服务器上的商品信息域名地址也有着标准的域名结构。EPC地址域名由EPC域前缀名与EPC域后缀名组成。而且当前使用的EPC域后缀名为一个固定的根域名:epc.objid.net。这个翻译的过程需要引入标准的域名格式,即格式化字符串。
举例说明如下:
格式化字符串由1、2、3、4组成,分别表示该位所占EPC编码中的位数
例如对于16位的EPC码,其格式化字符串可以是
1.44.3.11.2 (0+1+4+4+3+1+1+2=16)
即如果这个16位的EPC码是:1001111010110010,放入格式化字符串的形式下成为了:
(1)(0011)(1101).(011).(0)(0).(10)=1.3D.3.00.2即成为EPC域前缀名。
即该1 6位EPC代码的PML域名地址为1.3D.3.00.2.epc.objid.net。
有了格式化字符串的标准转换功能,EPC电子标签代码可唯一且一一对应地转化成PML域名地址。
3.3 存储与查询功能
由于不同的厂商或商品在种类、数量、需求量以及关注程度上都有所不同,如果每次检测标签时均向PML服务器提取信息,不仅会由于PML服务器的数据过大而降低提取效率,同时在传输过程中也容易有所延迟与损耗。因此Savant中间件软件系统需存储一定量的简单信息伴随EPC的具体信息,以便上层应用软件的读取,提升数据读取效率。
本文选择FIFO(先进先出)的存储方式进行有限存储空间的利用。
对于FIFO的实现,基本上是做结构体的向前移位操作,将在结构体数组中位置为i的结构体的内部数据完整地赋值给位置为i-1的结构体。对于最后位置的结构体,即M-1位置,则是最新的赋值,而对于原始的第一个结构体,即0位置,会被覆盖。这个过程并不是一直无限进行下去,会有一个接口控制变量来决定是否进行移位。
3.4 接口控制功能
在Savant中间件软件系统中,需要加入接口模块与外部情况加以联系。如图3所示。
该接口模块不仅接收诸如PML服务器所传输的和阅读器所传输的信号,同时为上层应用软件提供读取信息的标志字,并且对Savant软件系统的内部模块进行控制。
在Savant中间件软件系统的内部模块之间也存在着相互控制的情况,需确定对外部情况进行联系的外部控制字以及关系到信息在系统内部传输的内部控制字。
3.5 带接口控制的整体Savant中间件软件系统结构
加入有效的控制字后,Savant中间件软件系统的功能变得完整,可以完成所需的过滤、解析、暂存等功能。依照前文所述的系统结构以及内部功能模块,本文画出了Savant中间件软件系统所集成的文正逻辑系统。如图4所示。
图4(a)逻辑程序块的主要任务集成了过滤功能与解析功能,当完成过滤后,确定该电子标签代码有效,即可进行解析操作,不需要在过滤与解析功能之间添加其他控制变量或控制信息。在完成图4(a)模块后,需要向PML服务器输出解析后的PML域名地址信息,并等待PML服务器返回该电子标签相应商品的具体信息,即进入图4(b)程序模块所代表的存储环节。由于本文采用的FIFO存储模式,需要在新的商品信息存储之前,调整存储空间中已有信息的位置,所以当图4(b)程序模块结束后,具体信息首先暂存在Savant中间件软件系统的另外开辟的存储缓冲区,并应当加入存储控制字,当该控制字有效后,存储空间进行FIFO调整,然后从另外开辟的存储缓冲区中取出待存储的信息存放至FIFO存储空间的最后位。以上即是Savant中间件软件系统的逻辑控制,三部分的逻辑控制流程图如图5所示。
4 结语
完成了Savant中间件软件系统的逻辑设计与编程设计之后,在软件平台上利用testbench文件对这些模块进行验证检验。检验结果表明所设计的Savant中间件软件系统能对EPC电子标签数据进行有效地处理。
参考文献
[1] Finkenzeller K.射频识别(RFID)技术-无线电感应的应答器和非接触IC卡的原理与应用[M].北京:电子工业出版社,2001.
[2] 黎立,朱清新,王芳.EPC系统中的中间件研究[J].计算机工程与设计,2009,27(18) :3360-3363
[3] Auto-ID Center.Object name service(ONS) specification [EB/OL]. http://www.epcglobalinc.org/standards_technology/ specifications.html
[4] Auto-ID Center.PML core specification 1. 0[EB/OL]. http ://www.epcgloabalinc.org/about/AutoID_Archive/ documents/PML_Core_Specification_v 1. 0. pdf.
[5] 刘铁华,尹俊勋.嵌入式RFID中间件的设计与实现[J].移动通信,2009(18) :37-41.
交易中间件设计 篇6
当前,世界已进入信息时代,信息技术的发展正逐渐改变着人们的生产和生活方式。这种情况下,对医疗卫生信息的要求不断提高。中央也将医疗卫生信息化列为医药卫生体制改革“四梁八柱”中的重要一柱。
近年来,云计算已经发展为一种能为用户提供大量多样化的资源的运算模型。同时,云计算已经展现出了其在广泛的领域中的适用性。云计算的不断发展,为医疗信息化的发展提供了新的契机。而中间件作为云计算中核心的一环,无疑起着至关重要的作用。在医疗云信息共享关键的则是存在于各医院中的异构数据的交换共享。本文提出了一种基于云平台的通用 医疗数据交换中间件,以充分利用计算资源,降低交换共享程序开发成本。
2 相关技术
2.1 云计算技术
云计算同时包含两层含义 :一方面是通过网络以服务形式送达的应用程序,另一方面是在数据中心提供这些服务的硬件及系统软件。云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS), 平台即服务(PaaS)和软件即服务(SaaS)。
2.2MapReduce
MapReduce是一种用于加工处理大数据的分布式编程模型及相关实现。用户通过指定Map和Reduce函数,底层的运行系统会自动在大规模集群计算机上运行并行计算。同时,系统将自动处理机器错误,安排机器间的交互,以提高网络和磁盘的运行效率。
2.3 中间件技术
中间件是云计算的基础技术之一。云计算中的核心服务PaaS又被称为共享中间件。当前已经有很多中间件在云计算之中的应用。IBM针对云计算的不确定性, 提出了一种用于控制跨越不同云平台的应用的中间件Altocumulus。里约热内卢联邦大学的学者提出了一种用于扫面科学工作流中的参数的云中间件SciCumulus。首尔大学的学者则提出了一种用于控制远程设备的云中间件。
3 医疗数据共享中间件
3.1 前置机方式进行数据共享
医院机构的本地业务系统通常是在其内部局域网中运行的。因此,医院通常会设立一台同时连接两个网络的前置机来进行数据的转换及转发,来实现本地业务系统与云平台之间的数据共享,其网络结构如图2所示。
使用前置机进行数据共享时,需要将不同业务系统的产生的数据转换成统一标准的数据后再上传至云平台数据中心。前置机在处理如XML这种通用性更强但结构松散的数据时的效率非常低下,导致大量数据的传输在时间上不可行。因此, 需要针对不同业务系统,在前置机上开发不同的软件系统。同时,在实际操作中,软件不能自动完成所有数据的处理,需要人工去除部分错误数据。因此,管理人员需要登录至不同的前置机对转换后的数据进行筛选。
另一方面,云计算提供了强大计算能力、改进了对操作格式之间的兼容性。使用云计算技术可以解决对于大量XML文件处理时效率低下的问题,减少开发成本。同时,将数据转换功能转移至云平台后可以减少信息交换对前置机的依赖,而使用路由和防火墙代替前置机的位置。
3.2 基于云平台的共享中间件架构
如图3所示,中间件主要由三层结构构成。应用层为用户提供了医疗机构所需的服务,主要为数据交换服务和适配器的开发服务。控制层负责控制中间件的运行和进行资源调配。执行层直接与云平台交互,实现数据交换。
其业务流程如下 :
数据上传 :首先由用户提出数据上传申请 ;云平台受理申请后执行数据传输模块和数据转置模块 ;数据传输模块将读取用户的传输协议配置,根据协议接受数据,并将数据传输至缓存中 ;数据转置模块会向云平台申请资源,并根据接口定义将数据进行转置后存入云平台中的数据中心。
数据调阅 :数据调阅过程与数据上传过程恰好相反,中间件会根据接口定义将数据中心的数据转置为用户所需数据后, 再根据协议定义将数据传输给用户。
适配器开发配置 :适配器的开发主要包括两部分,接口的开发和协议的配置。接口用于对数据进行转置,实现来自不同医院的异构数据的统一存储和调阅。协议用于医院与云平台间的数据传输,以实现对不同医院信息系统的传输协议支持。
3.3 基于 MapReduce 的数据转换
数据转换的特点为高并发,且相互基本独立,这很适合云计算的特点。数据转换的主要内容就将异构的数据表中的数据的转置为统一格式的数据,其MapReduce描述如下 :
3.4 泛用性实现
中间件提供了数据接口的配置界面, 通过设定本地数据库与云平台数据的映射关系,从而实现云平台与异构的医疗信息系统的交互。如图4所示,数据项和值域定义了平台本身的数据存储结构,接口和接口值域定义了各医疗系统与平台的数据映射关系。
用户接口配置过程如下 :
上传本地数据库包含的数据项说明及值域和说明。
中间件对上传数据说明与本地的数据定义比对,自动匹配生成映射关系 .
用户只对映射关系进行核实,手动配置未匹配数据项。
4 总结
对于来自不同医院系统的异构数据是构建医疗云的关键性难题之一。对于前置机上的数据转换系统的重复开发,极大的耗费了人力物力。
通过医疗数据交换中间件,将原本在医院端的数据转置运算移到云端,利用云平台的强大计算能力,实现对异构的信息系统的泛用的数据转换,避免重复开发的成本。
摘要:信息技术的不断发展对医疗信息化不断提出新的要求,云计算的发展与成熟为医疗信息化的发展提供了新的契机。中间件作为云计算中核心的一环,在医疗云平台的实现中起着至关重要的作用。本文提出了一种基于云计算技术医疗数据共享中间件,可以充分利用云平台的计算资源,降低重复开发交换共享程序的成本。
交易中间件设计 篇7
图2为VSM结构示意图,每个仿真模块中的共享内存作为网络的基本单元与通信网络相连,所有共享内存中的内容是相同的。在图2中有n个仿真模块,全局内存为A到N的内存块,所有仿真节点内存数据都是相同的,称为虚拟共享内存。当仿真模块1向内存A写数据时,将即时刷新其他仿真模块中A的内容,从而实现内存的共享。图中深色部分为节点所属内存,这部分数据只能由本节点写如,读操作不做限制。用户只需关心读写操作,底层数据更新由系统自动完成,从而满足仿真系统对透明数据交互的需求。
VSM中间件分为3个层次:网络接口层、系统管理层和用户接口层。网络接口层负责网络数据的传输并刷新各节点共享内存。系统管理层主要负责仿真任务调度及VSM共享内存的管理。用户接口层为用户提供了与内存模块交互的接口,方便用户进行读写操作。
1.2 VSM特性
采用VSM中间的分布式仿真试验提供透明的数据交互,VSM中间件使得用户测试程序不用关心网络传输,对内存的读写操作与对常规的内存读写无异,网络传输对用户而言是透明的。VSM具有可扩展性与可移植性,由于用户接口与网络接口的剥离,当网络硬件或网络协议发生变化时,无需更改用户接口,只需扩展网络接口,这增强了VSM对异构网络的可扩展性和用户程序的可移植性。VSM可以通过改变网络硬件或网络协议来满足不同性能指标的分布式测试要求。由于VSM设计中采用的是全局共享内存方式,不同于DSM,每次读操作都要通过访问远程节点读取数据,这样避免了数据的多次迁移。
VSM的这些优点使VSM能够为分布仿真试验提供实时透明的数据交互,但是VSM的设计特点同样面临一些的问题。
1.2.1 高负载下的稳定性
由于VSM的一个节点的数据更新,会导致所有数据节点的更新。这样在一个具有n个仿真节点的VSM分布仿真试验中,更新m字节数据 ,在网络上将需要传输n×m个字节,造成了大量额外开销。使分布仿真试验在负载较高的情况下网络传输的稳定性难以得到保证。
1.2.2 缺乏对大数据的支持
由于VSM网络传输代价高,大数据传输会导致较大的数据刷新延迟,影响VSM系统的实时性能。
1.2.3 VSM对总内存大小的支持
一般在几百kB内,只能支持一些中小型仿真系统。
VSM的这些问题,都有一个共同的原因,就是数据更新时,VSM网络传输的代价太高。为了降低VSM网络传输代价,同时保持VSM实时透明的数据交互特性,引入了发布订阅机制。
2 发布订阅的VSM实现
2.1 发布订阅的VSM提出与基本原理
从VSM在仿真测试中的应用发现,并不是所有仿真节点对所有共享内存都有需求。比如显示节点对计算节点的数据有需求,但计算节点并不需要显示节点的数据,但根据VSM全局内存的设计思想,仍然会将显示节点数据更新到计算节点,造成了不必要的网络传输开销。统计发现,在传统的分布试验仿真系统中,这种不必要的网络传输开销,占总开销的比例在33%至87%之间,具体比例与仿真系统中各个仿真节点间的数据依赖关系有关。
发布/订阅通信模式实现了时间、空间和同步关系3个方面的完全解耦合,使得它成为现代分布式计算环境的理想选择[4]。发布者和订阅者之间是完全透明的,它们各自并不知道对方的存在,而中间件的功能便是处理发布者与订阅者之间的生产消费关系,存储数据信息。由于它们之间的这种透明性,发布/订阅系统可以动态改变发布者和订阅者数量。这种可扩展特性使得发布/订阅通信模式能更好地适应现代大型分布式系统的要求[5]。
在原VSM系统中,当某仿真节点数据更新时,将向所有节点广播。基于发布订阅系统的思想,数据更新将不再向所有节点广播,VSM系统将根据发布订阅表,只对订阅了相关数据的节点进行数据更新。同时为了维护VSM的原特性,基于发布订阅的VSM总体设计思想是:不改变用户接口层,通过修改系统管理层与网络接口层实现发布订阅机制;系统管理层上负责管理发布订阅表,网络接口负责优化网络传输。
2.2 发布订阅的VSM实现
2.2.1 虚拟共享内存
为了维护VSM的原特性,并支持动态的数据订阅功能,在基于数据订阅的VSM系统中每个仿真节点依然都具有一个全局共享内存,这个全局内存的编址方式也是相同的,但是这个内存的内容不再是网络上所有节点数据内容拷贝的组合。全局内存中只有仿真节点订阅的数据所对应的内存才有可用值,只有订阅了的数据节点才能读。
2.2.2 数据的写与发布
系统管理层管理着仿真任务调度及VSM共享内存,在系统管理层中,添加一个数据发布表,管理数据的发布信息。基于VSM仿真特性,数据发布以节点为单位,即数据的发布订阅最小单位为一个节点的所有数据,节点间订阅关系描述为:A节点订阅B节点的数据(所有数据)。这样能够减少数据订阅关系,优化订阅算法,更加符合VSM仿真特性。数据发布表记录了数据与发布地址间的映射关系。每个节点数据对应一个发布地址,该地址为本地组播地址,范围为:239.0.0.1~239.255.255.255。组播通信解决了单点发送多点接收,在不增加带宽的情况下减少了发送方、接收方网络的负担,同时屏蔽了发送方与接收方间的关系[6]。数据发布方只需向自己对应的组播地址组播发送数据即可,无需关心订阅方的情况。基于VSM仿真特性,VSM数据发布表形成于仿真开始前,且VSM的数据发布是静态的,这与传统中间件的数据发布有所区别。
图2为仿真模块执行写操作的流程图,其中WriteData为写数据接口,DataID为数据标识,可以为数据名、节点IP地址+端口、数据ID号等唯一表示数据的标识。
如图2所示,在VSM仿真系统执行写操作时,根据DataID查找系统管理层中的共享内存表,找到对应数据在虚拟共享内存中的相对地址,从而向对应内存写入数据(此过程忽略了一些错误写操作的处理),写操作完成后通知数据发布线程对其他节点进行数据更新。
图3为数据发布线程,发布线程收到通知后,获得数据的发布地址,第一次将查找数据发布表,并保存在全局变量中,以后直接读取全局变量。VSM以该组播地址发送数据。对于用户而言,写数据与普通写操作无异,数据的发送由发布线程完成,用户无需关心。
2.2.3 数据的读与订阅
基于发布订阅的VSM系统为用户提供了动态数据订阅接口:订阅数据(Subscribe(DataID))与取消订阅(CancelSubscribe(DataID))。
如图4为数据订阅简易流程。当用户调用Subscribe(DataID)接口订阅数据时,根据DataID查找数据发布表获得所订阅数据的组播地址,并加入该组播地址,以后节点便可接受到该数据。VSM系统建立了线程用来接收订阅的数据,写入共享内存中,用户无需关心,只需直接读取。
如图5为数据的读操作流程。读取数据时根据DataID查找数据订阅表。如果没有订阅该数据,为了防止读取脏数据,将直接通知用户读取失败。如果订阅了该数据,将根据共享内存表中存储的相对地址读取数据。
3 基于发布订阅的VSM性能分析
3.1 基于发布订阅的VSM保持了原VSM的优点
从2.2中可以看出,改进后VSM并不影响用户写操作,只是在网络传输过程中增加了一个发布表查找过程。数据的发布是固定不变的,可以在仿真开始之前完成,不影响仿真测试。数据订阅操作是由用户自由选择的,一般在下一步仿真之前完成,所以对仿真过程影响不大。数据的读操作与之前相比,也只是增加了一个订阅表查找过程,对仿真性能影响也不大。
最重要的是,基于发布订阅的VSM中间件的发布订阅功能,不涉及网络传输,不会影响VSM底层的网络通信且数据的读写操作与原VSM操作相同。
可见改进后的VSM对原VSM透明的数据交互等特性没有任何影响。原VSM的应用程序,增加调用订阅接口,便可直接移植到新VSM中。可以看出很好保持了原VSM的优点。
3.2 基于发布订阅的VSM性能提升
在此提出一个概念“VSM数据依赖系数”。VSM数据依赖系数用来描述VSM共享内存间数据订阅关系密集度。VSM数据依赖系数=
∑所有数据(数据内存大小×该数据被订阅数)/(仿真节点数×虚拟共享内存大小),以下简称为依赖系数。
从基于发布订阅的VSM设计中可以看出,将基于全共享内存的更新方式改进为基于发布订阅的内存更新方式优化VSM的网络传输。在参考文献[3]中所提到的分布式飞行仿真系统:“空间实验室综合演示验证系统”[7]。基于该仿真模型我们对VSM系统完成一次所有虚拟共享内存更新所需时间进行测试(相当于所有节点同时进行写操作,并完成在其他节点的数据更新)。测试结果显示:在VSM数据依赖系数为10%情况下,改进后VSM系统完成一次全内存更新时间要比之前VSM系统快7倍左右。即使在依赖系数为90%的情况下,改进后的VSM系统也能与原VSM系统持平。另外在依赖系数为10%的情况下,VSM最大共享内存能够由之前的数百kB增加到10 MB左右。
从上述分析可以看出,基于发布订阅的VSM改进具有以下特性:
(1) 性能提升度与依赖系数有关:依赖系数越低,意味着基于发布订阅所需更新的数据量越低,与全内存更新方式相比,效率越高。所以依赖系数越低,改进后的VSM性能的提高越大。
(2) 提高了对大数据的支持:在依赖系数为10%的情况下,VSM最大共享内存能够由之前的数百KB增加到10 MB左右,这样便能支持一些大的数据传输。
(3) 静态的发布、动态的订阅:由于VSM虚拟共享内存的特性,使得数据的发布是静态的,数据的订阅是动态的,这样简化了发布订阅的处理流程。
(4) 提高了实时性能:通过优化网络传输,降低了网络通信量,增加了VSM通信的稳定性,提高了VSM的实时性能。
4 结束语
发布/订阅通信模式在通信领域占有重要的地位,它适应了计算机向实时、分布式发展的趋势。通过将发布订阅模式引入分布式仿真平台的VSM,增强了VSM通信的稳定性,提高了VSM的实时性能,从而满足分布式仿真逐渐增强实时性需求,以适应计算机仿真领域的不断发展。
摘要:针对航空、航天分布试验与仿真系统对透明数据实时交互的需求,所设计的虚拟共享内存中间件,提高了系统的实时性。然而在负载很大的情况下,VSM的稳定性较差。针对分布试验对VSM高负载下的稳定性需求,提出了一种基于发布订阅的VSM中间件的改进方案,优化了网络通信,提高了VSM中间件在高负载下的稳定性,加强了实时性能。
关键词:发布订阅,虚拟共享内存,中间件,分布式仿真
参考文献
[1]王琼,杜承烈.基于DSM技术的VSM中间件的研究与开发.计算机应用研究,2005;12:201—203
[2] Deng Gan,Xiong Ming,Gokhale A.Evaluating real-time publish/subscribe service integration approaches in QoS-enabled componentmiddleware.Proc of the 10th IEEE International Symposium on Ob-ject-oriented Real-time Distributed Computing.Santorini Island,Greece:[s.n.],2007
[3]黄姝娟,杜承烈,尤涛.中间件技术实时性能的比较.计算机工程,2009;35(11):32—37
[4] Eugster P,Felber P,Guerraoui R.The many faces of publish/sub-scribe.ACM Computing Survey,2003;35(2):114—131
[5]刘旭军,马跃,于东.发布/订阅通信模式的实时性能分析与评估.计算机工程,2010;36(20):229—231
[6](美)斯蒂文斯.TCP/IP详解,卷1:协议.范建华,等译.北京:机械工业出版社,2000