分布式中间件

2024-06-26

分布式中间件(精选6篇)

分布式中间件 篇1

分布式计算是近年提出的一种新的计算方式,分布式计算使多个软件共享计算基础架构,从而实现更高的灵活性、功能效率、性能、可伸缩性和可用性,能够负载均衡和灾难冗余,当去除不需要或有故障的机器,而不中断服务确保业务持续进行。同时可以以较小的单元按需扩展计算功能,而非购买太大的系统来应对高峰期或不确定的增长,可以有效的节约成本。

ICE(Internet Communications Engine)提供的新的面向对象的中间件平台,可以使开发者更加轻松地开发分布式Client/Server模式的分布式应用程序。尽管在概念上ICE与CORBA基本一致,但ICE解决了过去长期困扰中间件的低效问题,并提供了数据报协议(UDP)支持、异步方法分派、嵌入的安全机制、对象的保存和接口聚集等技术支持,从而建立了一个更简单也更高效的新的基础架构。作为开源软件,ICE是Mutable Realm公司的超大型在线游戏Wish的核心平台,上万用户可以同时处在同一个不分区的游戏世界里,这个案例体现了其作为网络中间件平台的强大的信息互通、共享、互操作的特性和品质[1,4]。

本文基于ICE实现分布式搜索服务,以使系统具有较高的灵活性、可伸缩性和可用性,达到较高的性能,同时节约成本。

1 ICE中间件

ICE是一个由ZEROC公司开发的开源中间件系统,是一种适用于异种环境的面向对象中间件平台,是除DCOM、CORBA、JA-VA、RMI、.NET Remoting、Web Service和SOAP RPC以外的一种远程调用方式。更重要的是ICE是一种跨操作系统、跨语言的远程调用方式,目前支持C++、PHP、JAVA、Python、VB和Rubby等几种开发语言,并且支持在多种操作系统上运行。ICE是一种面向对象的中间件平台。从根本上说,这意味着ICE为构建面向对象的客户-服务器应用提供了工具、API和库支持。ICE应用适合在异种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论部署环境如何,这些应用的源码都是可移植的[2]。

ICE的主要优点如下[4]:

1)提供适合于异构环境中使用面向对象的中间件平台;

2)为广泛领域中的分布式应用提供一整套强大的特性和功能支持;

3)平台易于学习和使用,避免不必要的复杂性;

4)平台提供在网络带宽、内存使用、CPU开销等方面高效的实现;

5)平台提供内置安全特性的实现,可跨越不安全的网络使用。

1.1 ICEGrid

ICEGrid是ICE分布式计算的一个重要服务。一个ICEGrid域由一个注册表(Registry)和任何数目的节点(Node)构成。注册表(Registry)和节点(Node)一起协作管理一些信息以及一些应用服务进程。每项应用(Application)被部署在特定节点上的服务。注册表(Registry)持久记录了这些信息,而节点(Node)负责启动和监测其指定的服务进程。对于一个典型的配置,一个节点(Node)运行在一台计算机(称之为ICE服务器主机)。注册表(Registry)占用处理器时间比较少,所以它常常是和一个节点(Node)运行在同一台计算机上的。如果必要的话,注册表(Registry)可以和一个节点(Node)可以运行在同一进程中。基于容错考虑,注册表(Registry)可以使用主从式的设计支持冗余复制(Replication)[3]。

图1显示一个很简单的ICEGrid应用,它运行在一个有三台计算机的网络上。ICEGrid Registry运行在PC1主机上,而两个ICEGrid Node分别运行在PC2和PC3主机上。在此示例中,每个节点(Node)上只有一个服务。

对于客户端应用程序来说,注册表(Registry)的主要责任是解决作为ICE定位服务的间接代理问题。当客户端第一次使用一项服务,客户端的ICE runtime向注册表(registry)请求指定名称的服务,注册表根据服务名称返回给客户端该服务的一个实际的endpoint,允许客户端建立一个连接。

间接代理(Indirect Proxies)的优点是:服务地址(endpoint)对客户端透明,这点和直接代理(Direct Proxies)不同,客户端不需要知道服务的地址和端口信息,只需知道服务名称即可。只是间接代理(Indirect Proxies)在客户端的第一次使用服务时增加了一些延迟,不过以后所有的相互作用直接发生在客户端和服务器之间,所以间接代理的第一次定位开销是微不足道的。此外,间接代理允许服务动态迁移到不同的计算机上,而不需要更新客户端(Client)所持有的代理(Proxies)。

注册表(registry)还有一些更复杂的功能,如当接收到一个定位请求后指示相应节点(Node)自动启动目标服务(如果目标服务没有启动);根据每台计算机的负荷统计选择适当的endpoint;等等。

2 分布式搜索服务

2.1 系统架构

图2为总体架构图。

1)搜索主逻辑

实现统一的对外接口;接受请求,查询路由表,得到需要调度执行的子搜索模块名称列表;访问Registry获得子搜索模块的endpoint,调度子模块执行,收集子模块执行的结果,并进行相应的处理返回结果给调用端。

2)路由服务

a).管理所有子逻辑:登记了所有子逻辑的服务名称以及一些基础信息。主逻辑获得这些子逻辑服务名称后请求注册表(Registry)获得实际的endpoint访问相应服务。如果新增一个子搜索逻辑,只需将这个子搜索逻辑的服务名称等基础信息配置到路由信息中,并在下面的搜索规则中定义相应规则即可。

b).定义搜索规则:根据搜索请求解析出相应的子搜索逻辑执行序列。序列包括并行执行和串行执行两种情况。

并行处理:主逻辑模块将查询请求同时发送给几个需要并行处理的子搜索逻辑,并等待所有的结果都返回后,进行合并处理。并行处理表示方式为“()”,在括号之内的子搜索逻辑均作为需要并行处理的子搜索逻辑,没有先后顺序之分。例如:(Service1,Service2,Service3)则表明该查询需要Service1,Service2,Service3,三个子搜索模块并行执行。

串行处理:主逻辑将取得上一个子搜索逻辑的结果后,做一些判断,然后再向下一个子搜索模块发出查询请求。这样,最后一个串行子搜索模块处理完成后,主逻辑将所有结果进行合并,连接,剔除后得到最后的结果返回给调用者。表示方式为两个串行子搜索逻辑之间用“,”隔开。例如:Service1,Service2,Service3,则表明需要先进行Service1查询,取得结果后,再进行Service2查询,最后进行Service3查询。

优先串行处理:在串行处理中有一个特例,有可能串行的几个业务逻辑是存在优先顺序,在第一个子搜索逻辑中已经取得了合理的结果,就可以省略后续的查询过程。这种优先串行逻辑用“;”进行分隔。例如:Servie1;Service3;Servie3则表明先进行Service1查询,如果获得了需要的结果集,则可以直接返回,不再进行后续的查询了。否则,需要在进行后续的子搜索逻辑查询。

采用路由配置的形式,子搜索逻辑增删改,搜索规则的调整只需调整路由信息即可以;并且支持热修改,系统运行时就可以增删子搜索逻辑,能够很好的适应业务逻辑的变化。

3)搜索子逻辑

实现一个具体的搜索子任务。所有的搜索子逻辑都实现相同的接口,针对不同的数据源执行查询任务。接口如下:

对于调度执行它们的主逻辑来说,所有的子搜索逻辑除了服务名称和endpoint不一样外,其他都是一致的。服务名称是从路由服务中获取的,endpoint是通过Registry根据服务名称获取的,所以子逻辑的动态增删对于主逻辑是无需感知的。根据性能需要很方便地增加服务器然后增加Node,部署相应的子逻辑服务,子逻辑服务部署到Node上后,会自动注册服务名称和endpoint到Registry。Registry根据将新的endpoint返回给相应请求,这样新增服务就开始工作了。

4)数据库访问代理

实现统一的数据库操作接口,支持不同的数据库系统,对上层屏蔽不同数据库系统的差异。

统一管理所有的数据库连接。分布式运算由大量的服务单元组成,如果每个单元都有单独的数据库连接那么就会造成大量的数据库连接,并且数据库连接得不到合理分配不能最大效率得利用数据库连接。数据库访问代理统一管理数据库连接,所有服务单元共享所有的数据库连接,连接数得到控制,最大程度地发挥每一数据库连接的效率。

5)日志服务

对于分布式服务来说,运行时出现异常,日志收集与分析是一件艰难的事情,因为日志往往是分布在多个不同的机器上,需要从多个机器上提取日志;而且一个任务往往是有多个服务协作完成,因此定位一个问题需要结合多个服务的日志分析。日志服务,接收所有服务警告级别以上的日志信息,提供提取各个子服务日志的统一操作界面,并且提供一定分析协作功能,如根据某一个关键字将所有服务的相关日志按时间顺序排列好等。

6)监控控制

监测ICEGrid域里的每一个Node和服务的状态,手动启动停止任一服务。

2.2 服务处理时序

图3为服务处理时序图。

1)“主搜索逻辑”接收到一个外部查询请求后,首先将查询条件全部传送给“路由服务”,“路由服务”根据策略将需要调度执行的子搜索逻辑序列返回给主搜索逻辑。

2)“主搜索逻辑”根据子搜索逻辑执行序列,首先调用两个并行的子搜索逻辑“子搜索逻辑1”、“子搜索逻辑2”发出查询请求,并将两个子搜索逻辑查询的结果进行内部合并、连接、剔除处理。

3)主搜索逻辑将搜索条件和上一步结果处理后的一些数据传送给“子搜索逻辑3”,子搜索逻辑根据搜索条件以及输入数据进行查询,将查询的结果返回给主搜索逻辑,主搜索逻辑将所有查询结果处理后返回给查询调用者。

2.3 分布部署图

图4为搜索服务分布部署图。

如图4所示Registry主从互备实现灾难冗余,正常只有主Registry工作,当主Registry出现异常时备Registry开始工作。

其他所有服务至少部署两个实例,这两个实例能够同时工作实现负载均衡,当其中任何一个实例出现问题所有到该实例的请求切换到另一实例实现灾难冗余。

在图4中每个服务只部署了两个实例,根据系统运行的需要每一服务都可以动态地增加实例。

3 结束语

基于ICE构建的分布式搜索服务,采用路由表的配置形式和基于Registry的间接代理,子逻辑服务可以动态增删改,业务规则也可以动态的调整;根据性能需要可以很容易的扩展服务器。并且提供集中的管理监控和日志分析服务,为系统的运维带和问题定位来了极大便利。在系统的长期运转中,很好地适应了频繁的业务变更,增添服务器设备以及停机检修都不影响系统运行,节约了成本和提高了效率。

参考文献

[1]周克强,张保山.基于ICE中间件的战术信息管理[J].东南大学学报(自然科学版),2008,38 Sup(II):208-212.

[2]陈功,于洁,杨奕.ICE中间件技术在医疗数据集成平台中的应用[J].医疗设备,2008,21(10):1-4.

[3]Henning M,Spruiell M.Distributed Programming with Ice M.America ZeroC,Inc,2009.

[4]刘裕,吴坚.中间件技术与ICE[J].微机发展,2004,14(10):37-39.

分布式中间件 篇2

面积和中间膨胀效应对丽江地区种子植物物种丰富度垂直分布格局的影响

滇西北地区是我国三大特有物种分化中心之一.作者利用地方植物志资料,结合数值高程模型(DEM)数据,研究了云南丽江地区种子植物物种丰富度的垂直分布格局,并分析了面积和中间膨胀效应(mid-domain effect)对该格局的影响.研究结果表明:随着海拔的升高,各海拔段面积呈先增加后下降的分布格局;物种丰富度、物种密度和中间膨胀效应的物种丰富度预测值在海拔梯度上均呈单峰型变化格局.面积和中间膨胀效应对丽江地区物种丰富度的.垂直分布格局有着显著的影响.其中,面积起主要作用,对物种丰富度的变异解释百分率达80.2%,而中间膨胀效应的影响作用相对较小,仅占11.3%.

作 者:冯建孟 王襄平李晶 方精云 Jianmeng Feng Xiangping Wang Jing Li Jingyun Fang 作者单位:北京大学环境学院生态学系,北京大学地表过程分析与模拟教育部重点实验室,北京,100871刊 名:生物多样性 ISTIC PKU英文刊名:BIODIVERSITY SCIENCE年,卷(期):200614(2)分类号:Q94关键词:种子植物 物种丰富度 海拔梯度 面积 中间膨胀效应

分布式中间件 篇3

随着通信网络和计算机技术的快速发展, CAD系统的应用开发正逐步从单机应用模式过渡到分布式协同应用模式[1]。传统的CAD系统都是单机系统, 设计人员只能在本地独立地进行设计工作, 对于设计的效率和创新性有着很大的制约。分布式协同设计允许分散于不同空间位置上的设计人员通过计算机网络并发同步的实现交互工作[2]。在此种工作模式中, 设计人员会有良好的协作感知体验, 可以进行密切的人人交互。该工作模式已越来越多的为国内外设计人员所接受。现有的一些IT公司已经开发和销售了分布式协同CAD系统[3]。其中具有代表性的系统是PACT[4]。但是, 相较于传统的CAD系统, 这些分布式协同CAD系统只能适用于某些特定的领域, 缺乏通用性。并且受诸多因素影响, 在能够提供设计功能方面, 其也比传统的CAD系统大打折扣。基于以上分析, 本文并不是直接开发一个分布式协同CAD系统, 而是提出一种新的中间件技术, 以其连接若干个单机CAD系统形成一个分布式协同应用环境, 从而提供给设计人员一个自然和谐的协作平台。

2 基于中间件的分布式协同应用框架

2.1 总体框架

基于中间件的分布式协同应用框架是首先构造一个灵活、开放的中间件, 然后借助于该中间件将多个单机CAD系统连接在一起。这种应用框架既保留了原有CAD系统的功能, 又为其添加了协作功能, 能为设计师们提供分布式协同的应用环境。

分布式协同应用框架的包括了基础层、中间件层和应用层。基础层包括操作系统, 计算机硬件系统。中间层是用来作为应用层和基础层的互连接口, 其对传统的CAD系统进行了封装, 提供了协同设计过程中所需的群组感知、任务管理、群组广播、通信机制等要素。在应用层, 设计人员可以利用传统的CAD系统发出操作命令, 便捷的与其他设计人员进行协同工作。

2.2 中间件的设计

中间件是整个框架的核心部分, 其又可以细分为里封装、表封装、中间件通信等三个部分。里面封装并不涉及整个框架的底层, 其主要实现传统CAD系统的透明协作, 主要包含以下三个部件。 (1) 事件监控器。捕捉设计人员输入的键盘和鼠标事件。 (2) 命令监控器。检查设计人员的发出的命令解析出其中的信息, 并将其转换成相应的语义命令。 (3) 协同控制器。协调本地的命令信息与从网络接收的远程信息的执行顺序, 并确定如何调用本地CAD系统的GUI命令或者API函数以修改本地的模型数据。模型数据经过渲染之后可以为设计人员所见。

表封装接收从里封装发出的语义命令, 并将其解析成符合中间件通信要求的形式, 以实现多个基于传统CAD系统的协作端点的通信。同时, 也将从其他协作端点发来的网络信息转换为语义命令, 并发送到里封装。表封装还可以接收来自于基础层的反馈信息, 并将其发送到里封装。此外, 表封装也还具有任务管理功能, 具体包括以下步骤。在表封装内建立代理服务器和协调服务器。协作端点通过代理服务器申请加入到任务过程中, 通过协调服务器查找合适的任务接入点。代理管理器受理新的设计任务添加, 并赋予接受任务的设计师以相应的角色。同时, 代理服务器接收多个协作端点的命令信息, 并按照并发控制机制, 形成CAD命令的协作历史记录。由里面封的协同控制器按照该历史记录在本地执行以获取当前的协作状态。

中间件通信部分可以直接采用当前较为成熟的分布式通信技术。这些技术包括微软的分布式组件对象模型 (Distributed Component Object Model, DCOM) 、OMG的通用对象请求代理体系结构 (Common Object Request Broker Architecture, CORBA) 以及Java Soft的Java远程方法调用 (Java/Remote Method Invocation, Java/RMI) 。

3 原型系统实现

本文基于3.6GHz四核CPU、8GB内存、DCOM分布式通信技术使用C++编程实现了提出的分布式协同CAD应用框架。为了使协同设计的实验更具有普适性, 本文基于典型的单机CAD系统Solid Works, 采用全复制式体系结构连接了三个协作端点。因此, 每个协作端具备了双重功能, 其既是服务器端, 也是客户端。

在协同设计过程中, 代理服务器为协调服务器提供协提供IRegister接口, 为端点通信进程提供ITalk接口。端点通信进程通过IReceive接口接收协调服务器发送的命令。协调服务器利用ISend接口接收端点通信进程的信息。本地的单机CAD系统可以通过代理服务器的ITalk接口动态加入协同设计过程。从而与其他端点协同工作。

基于DCOM的中间件通信机制, 各个协作端点可以借助于DCOM对象的接口获取相应的信息服务。由于DCOM支持静态和动态的对象调用, 在本文实现中, 使用了动态对象调用方式。DCOM通过一个对象类Register、Talk定义代理服务器的IRegister, ITalk接口。同样, 单机CAD系统Solid Works的API函数功能也需要通过DCOM对象调用。

基于以上实现过程, 如图1所示, 本文给出了一个原型系统运行示例。其通过各自端点的Solid Works对共享的模型数据进行了编辑。

4 结论

本文详细探讨了灵活、开放的基于中间件的分布式协同应用框架, 其可以有效的连接多个单机CAD系统, 为设计人员提供一个随时随地的分布式协同设计环境, 很大程度上提升设计过程中的用户体验。未来的工作包括使用不同的分布式通信技术, 如COR-BA, 来实现一个分布式协同应用框架以及在异构的CAD系统之间, 尤其是三维系统如Pro/E, MDT, CA-TIA, UG实现分布式协同应用等。

摘要:提出了一种基于中间件的分布式协同CAD应用框架。采用中间件来封装传统的单机CAD系统。探讨了中间件的里封装与表封装的构造与功能。通过该应用框架, 可以集成多个单机CAD系统, 使其成为分布式协同CAD应用环境。

关键词:CAD,分布式协同应用,中间件,封装,通信

参考文献

[1]W.Li, J.Y.H.Fuh and Y.Wong, “Collaborative computer-aided design-research and development trend”, Proceedings of CAD’04 conference, 24-29, Pattaya, Thailand;May 2004

[2]2.B.Xu, Q.Gao and W.Lian, “A General Framework for Constructing Application Cooperating System in Windows Environment”, ACM SIGSO FT Software Engineering N otes, 2003, 28 (2) , 15

[3]3.J.F.Gerhard, D.Rosen, J.K.Allen and F.Mistree.“A distributed product realization environment for design and manufacturing”, ASME Journal of Computing and Information Science in Engineering, 2001, 1 (3) , 235-244.

分布式中间件 篇4

1 数据库访问中间件的性能与特征介绍

数据库中间件是介于系统软件、应用软件二者间的软件, 该软件可以确保应用层内部不同应用成分间协调运转。在整个电子业务交换平台上, 该中间件占据着关键的位置, 能够发挥十分重要的作用。

在整个的系统中, 数据库中间件的位置相对特殊, 位于数据库、应用程序二者中间, 发挥着数据交流与转换等作用, 且关键针对于应用程序和相关数据源间的数据转换, 该数据源主要指的来自于本地、异地、同构、异构等的数据源。总体来看, 数据库中间件发挥着桥梁、纽带的重要作用, 主要用在应用程序和数据库二者之间, 发挥着数据通讯通道的作用。

每逢客户端应用程序发射SQL请求命令, 服务器接到这一命令, 对应的数据库中间件会对请求命令做出处理, 同时, 也要把这一命令发送至数据库服务器, 这样在服务器的作用下, 数据库就会得到相应的处理, 再将把SQL处理结果凭借中间件返归客户一侧。数据库中间件在实际运用过程中, 体现出多方面的优势和优点, 具体体现在:便于集成、方便扩充、易于使用、便于操作, 安全等。

2 分布式网络中数据库中间件技术

数据库中间件系统有着一定的结构, 其中包含多个部件, 不同部件之间相互支持、相互作用, 从整体上打造出一个中间件系统, 发挥整体的优势功能。图1 为中间件系统的结构图。

2.1 数据库中间件的系统构成

2.1.1 信息接收部件

该部件同服务器、业务系统直接联系起来, 其接口被科学定义, 当客户一端有SQL数据请求时, 接口能够有效接收该数据请求, 同时检测此请求是否合法合规, 再将此命令传输至数据库脚本提取部件。

2.1.2 数据库脚本提取与执行部件

当该部件收到SQL数据请求后, 会对其脚本信息加以提取, 同时传输至执行部件, 脚本执行部件则负责执行操作, 同时将所获得成果形成特殊的文件格式, 通常为:XML格式, 再形成此格式的数据包, 使其传输到数据发送部件。

2.1.3 数据发送部件

数据包抵达发送部件后, 数据发送部件进入运行状态, 负责向客户端程序发出数据发送请求, 如果能够获得客户端应用程序的许可, 数据发送部件则会负责把来自于执行部的信息进一步传输, 使其抵达应用程序。

2.2 部件的设计

以一定的开发平台为基础, 来设计数据访问中间件, 主要平台为:J2EE。其中不同部件间, 及其同应用服务器之间能够进行有效的数据传输, 这其中依赖于EJB组件得以协商。为了确保数据访问与传输的速度与效率, 各项设备、组件之间的数据传输都依赖于定义规范的接口, 而且通常采用XML实现组件间的数据直接交换。

中间件内部包括4 大关键性部件, 都统一采用EJB组件。不同的部件被设置成类文件。其中包括Receiver, Sender等。Receiver (接收文件) 则涵盖两大方法:

(1) 接收方法:负责收录SQL数据请求, 此请求多来自于业务系统;

(2) 检查方法:负责对所受到的SQL数据加以检查, 分析其是否合法。其数据构造包括:消息标志、数据长度、类别、服务器地址等。不同的数据结构发挥着不同的功能, 其中消息标志负责check请求命令, 检测其是否合法, 当检测为合法, 消息标志将设置成真, 继而将数据进一步传输, 相反不合法, 则暂停传输。

Send XML具体实现过程中, 必须把握好关键点:

(1) XML语句必须同数据库内部各个表中的某一字段。

(2) 对不同类的操作必须做出标识。

(3) SQL语句的实际数值需要形成特殊标识。

SQL Picker则主要涵盖两大方法:

(1) 分析接收部所收到的各种数据信息, 瞄准数据库, 并将其中的脚本信息进行有效提取。

(2) 将所提取的脚本信息通过一定的形式进行传输, 使其抵达脚本执行器。

执行器则覆盖三大方法, 具体指代的是:

(1) 分析脚本数据信息, 对数据源实施有效地分离、归类, 再对应加以判断, 如果其中出现了费正确信息, 则要对应发出提示。

(2) 有效分离并执行, 来自于提取部件的XML信息。

(3) 通过XML的形式, 将执行结果加以传输, 最终抵达发送部件。

Sender则涵盖两大方法:第一种方法为:数据信息尚未正式传输前, 将返回结果数据请求加以发送, 最终的发送目标为:客户端应用程序。第二种方法:请求获得许可的前提下, 对数据信息进行传输, 使其抵达应用程序。

由此可见, 不同的部件发挥着不同的作用, 而且相互之间有效配合、集中统一运作, 最终打造出一个可以彼此协调、支持性运作的系统, 从而形成了以XML为基础的系统模型, 发挥着数据的访问与传输等功能。

总体来看, 数据库中间件主要发挥信息数据传输的通道, 确保数据从客户端到服务器端的传输。一般来说, 中间件同客户端实施特殊的信息通讯模式, 确保不同的应用程序可以共同针对相同的数据信息来实施访问, 以此来有效增强数据库的访问程度。

3 总结

分布式网络中数据库中间件系统发挥着重要的功能和作用, 本文主要介绍了数据库中间件的性能与特征, 同时对中间件系统的设计进行了详细的论述。该中间件有效克服了各类数据库之间信息的交流、访问与传输问题, 确保了数据访问水平。

摘要:分布式网络中数据库中间件系统发挥着重要的功能和作用, 本文主要介绍了数据库中间件的性能与特征, 同时对中间件系统的设计进行了详细的论述。该中间件有效克服了各类数据库之间信息的交流、访问与传输问题, 确保了数据访问水平。

关键词:分布式网络,数据库中间件,性能,特征,设计

参考文献

[1]智永锋, 张骏.基于XLM的数据库访问中间件设计与实现[J].计算机应用研究, 2011 (11) :87-89.

[2]廖湘琳, 张宏军, 赵振南等.数据访问中间系统设计与实现[J].计算机工程, 2010, 7 (32) :86-87.

分布式中间件 篇5

射频识别(RFID)技术是利用感应、无线电波或微波能量进行非接触双向通信,达到识别及数据交换的目的[1]。RFID技术可以对高速移动的物体进行远距离识别,属于一种非接触式自动识别技术。大容量编码的电子标签能够对单一物品提供唯一编码识别及跟踪管理,同时,RFID技术还可瞬时同歩读取批量数据,适应供应链中信息量增长幅度更大、读取速度更快的现状。RFID技术可读可写、双向通信的特性实现动态管理信息,多次读写、循环使用的特性则可以有效利用资源。射频识别RFID中间件(Middleware)处于读写器与后台网络的中间,扮演RFID硬件和应用程序之间的中介角色,是RFID硬件和应用之间的通讯服务,这些服务具有标准的程序接口和协议,能实现网络与RFID读写器的无缝连接[2]。而RFID中间件将企业级中间件技术延伸到RFID领域,是RFID产业链的核心技术。由于RFID中间件屏蔽了RFID设备的多样性和复杂性,能够为后台业务系统提供强大的支称,从而可以驱动更为广泛的、更为丰富的RFID应用[3]。

国内在物联网中间件和公共服务方面已经开展了一些工作。依托国家“863”计划的“无线射频识别关键技术研究与开发”课题,中科院自动化所开发了RFID公共服务体系基础架构软件和血液、食品、药品可追溯管理中间件;华中科技大学开发了支持多通信平台的物联网中间件产品Smarti;上海交通大学开发了面向商业物流的数据管理和集成中间件平台[4]。此外,国内公司的产品包括北京东方励格公司的LYNKO-ALE中间件、清华同方的ez物联网中间件、ez ONEez Framework基础应用套件等[5]。RFID技术进入中国的时间比较短,各方面的工作还处于起步阶段。虽然我国政府对RFID应用提供了政策、项目和资金的支持,并且RFID在国内的发展也较为迅速,但因起步较晚,在很多方面与国外还有明显的差距。

使用条形码、IC卡、磁卡等技术不能及时采集制造车间内的数据,这是因为它们存在不足之处:需要接触识别,对环境要求较高,不能写入数据等等。射频识别技术能有效克服这些缺点,由于RFID有一系列优点[6]被广泛应用在物流、商品追溯[7,8,9]、仓储管理[10]、高速公路不停车收费[11]等场合,甚至应用在一些制造行业[12,13]。运用于商业物流、物品追溯等方面的RFID中间件,并不能满足制造企业的要求,需要开发应用于制造业的RFID中间件。为了不增加制造企业开发应用系统的成本,不改变现有制造企业的应用系统,更好地利用射频识别技术采集零件的加工信息,对应用于制造车间数据采集的RFID中间件进行了研究,并提出了对制造信息的保护机制和RFID中间件采用分布式的结构。

1 RFID中间件的模型

a)基于RFID的制造车间数据采集

制造车间通过RFID技术采集的数据有:隶属型号、设计图号、投产批次、领料时间及本道工序、下道工序、当前工位、完成状态,其中前4个是属于静态信息,是零件的第一道工序前领料时写入的,后4个是动态信息,是零件加工中写入的。利用RFID技术一系列的优点,通过对物料使用状况的实时掌握联系各个工位的生产信息,通过与物料绑定的电子标签来实现物料信息与生产信息的关联,如图1所示。

图1 基于RFID电子标签的信息关联

RFID设备采集的信息要成为MES等提供实时加工信息还须经过预处理和筛选,而且RFID设备必须与信息系统有充分的信息交互,这些功能都需要用RFID中间件实现。RFID中间件是连接RFID硬件与MES等企业应用系统的桥梁,是RFID系统的核心。RFID中间件的信息传输和数据预处理是提供制造车间零件加工信息的基础。

b)RFID中间件的模型

RFID中间件采用的模型结构如图2所示。RFID中间件采集到的零件加工信息写入到电子标签的同时,还写入到服务器端的数据库,企业应用系统可以通过访问数据库获得所需的数据。其中RFID中间件的各个部分的内容和功能如下:

图2 RFID中间件的模型结构

1)读写器接口:读写器接口包括RFID中间件与射频识别的读写器建立连接和断开连接,RFID中间件首先通过读写器接口与读写器建立连接,只有成功建立连接才能进行下一步的操作;当完成需要的操作或需要退出程序时通过读写器接口断开RFID中间件与读写器的连接。

2)电子标签的设置:主要内容包括对标签的密码设置、锁定、过滤和销毁等,当标签被锁定后只有知道密码才能对其操作,避免了非法读写器的操作和误操作。

3)系统配置:系统配置由读写器配置和电子标签配置两部分组成,每个配置都分为两个选项,一是查询配置,二是设置配置。查询和设置读写器配置的参数主要有端口及其功率、跳频表、以太网IP、发码间隔、是否支持RSSI等;查询和设置标签的配置参数主要有:标签协议类型、默认Q值、默认EPC的长度等。

4)电子标签的读写:实现读写电子标签数据的功能,包括电子标签的UID(UID是只能读取的)、EPC和用户数据,其中EPC对应零件的编号,用户数据对应要采集零件的加工信息,主要采集零件的隶属型号、设计图号、投产批次、领料时间及本道工序、下道工序、当前工位、完成状态。

5)数据的加密和解密:主要实现对写入电子标签内的数据进行加密/解密的功能,从而达到保护零件制造信息的目的。RFID中间件提供了五种不同加密算法来对数据进行加密、解密,RFID中间件实现加密和解密的过程见RFID中间件的加密/解密功能。

由射频识别硬件设备组成的数据采集系统为RFID中间件提供基础数据,RFID中间件对这些数据进行一系列处理后供上层应用调用。RFID中间件从制造车间采集零件的加工信息,能实时反映零件的加工进度、加工流程,提供车间内零件实际的工艺,与设计的工艺比较,可以反映是工艺是否合理。同时通过RFID中间件将零件的工艺与制造车间机床、零件关联起来。RFID中间件向上层应用提供制造车间零件的实时加工信息,通过这些信息管理者可以追溯产品的加工过程,还可以为车间的监控管理提供数据支持。

c)RFID中间件运行过程

RFID中间件运行过程分为以下几个步骤:1)RFID中间件调用读写器接口建立与读写器的连接;通过调用读写器相应的API函数建立连接,该函数会返回是否成功建立连接。2)对电子标签数据的读写分为两个方面,一方面是领取物料时写入的信息,包括隶属型号、设计图号、投产批次和领料时间,另一方面是加工零件时写入的工艺信息,包括本道工序、下道工序、当前工位和完成状态;3)对电子标签的设置主要包括上面提到的密码设置、数据的锁定、过滤和销毁等,例如领取物料时写入的信息一般不希望任意修改,可以对其进行锁定操作来达到这个目的。4)系统配置由读写器配置和电子标签配置组成,主要是查询、设置读写器及电子标签的参数;系统配置是一个可选的步骤,如果不需要改变当前的系统设置,这一步是可以忽略的。5)RFID中间件操作完后要断开与读写器的连接,成功断开连接后就可以退出程序了。RFID中间件运行过程如图3所示。

2 RFID中间件的分布式结构

计算机网络拓扑结构是指网络中各个站点相互连接的形式,在局域网中明确一点讲就是文件服务器、工作站和电缆等的连接形式。现在最主要的拓扑结构有总线型拓扑、星型拓扑、环型拓扑、树型和分布式结构。分布式结构的优点如下:由于采用分散控制,即使整个网络中的某个局部出现故障,也不会影响全网的操作,因而具有很高的可靠性。网中的路径选择最短路径算法,故网上延迟时间少,传输速率高;各个节点间均可以直接建立数据链路,信息流程最短。便于全网范围内的资源共享。所以RFID中间件采用了分布式结构,同时RFID中间件是基于B/S结构的。B/S结构(Browser/Server)即浏览器和服务器结构,其优点主要有:1)节约成本:大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。2)安全:它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。3)方便:B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,不需要做任何的维护。RFID中间件的分布式结构如图4所示。

图3 RFID中间件运行过程

图4 RFID中间件的分布式结构图

RFID中间件采用Active X控件的形式,并嵌入到相应的网页中,当访问该网页时,会自动判断该硬件设备中是否有中间件,没有的话会自动安装。分布式的RFID中间件是通过Active X控件来实现的,Active X控件是用VS2008中的C#编程开发的。

当网页运行时会自动判断客户端是否安装Active X控件,如果已经安装直接运行中间件;否则会访问服务器自动下载Active X控件,然后自动安装在本地,接着就可以采用射频识别技术采集数据。Active X控件的自动安装流程如图5所示。

3 RFID中间件的加密/解密功能

为了保护制造车间零件的加工信息,RFID中间件封装了一个用于数据加密和解密的类。该类包括了DES、3DES、AES、IDEA和RC2五种算法,这五种算法的加密函数和解密函数是公共的,这样就可以让RFID中间件调用它们对加工信息进行加密和解。

RFID中间件调用加密函数和解密函数的过程如下:当RFID中间件从电子标签读到数据时,就调用解密函数,然后解密函数根据选择的算法和输入的密钥对数据进行解密,随后将解密后的数据返回给中间件;RFID中间件要想标签写入数据时,要先调用加密函数,同样地加密函数根据选择的算法和输入的密钥对数据进行加密,然后将加密后的数据返回给中间件。RFID中间件调用加密函数和解密函数的流程如图6所示。

4 RFID中间件原型系统的实现

RFID中间件是在惠普台式机Win7系统上以VS2008为开发工具进行设计开发的,该中间件主要应用于制造车间数据的采集。RFID中间件以Active X的形式存在服务器中,当用浏览器访问服务器中的RFID中间件时,就会自动安装Active X控件并显示射频识别中间件的页面,成功连接RFID读写器后就可以利用射频识别技术采集车间内零件的加工信息,经过中间件过滤、密码保护等一系列处理后写入零件对应的电子标签进行流通,同时通过接口写入服务器的数据库用于产品的追溯等上层应用。在成功连接到读写器的过程中,还可以对读写器和电子标签的配置进行查询、设置处理。例如某一零件的隶属型号为xinghao1,设计图号为sjtuhao1,生产批次为scpici01写入电子标签的情形如图7,第一道工序为gongxu01,第二道工序为gongxu02,进行零件的第一道工序时写入电子标签的情形如图8。

图6 RFID中间件调用加密函数和解密函数的流程图

图7 将零件的隶属型号、设计图号、生产批次写入对应的电子标签

图8 零件第一道工序时写入对应电子标签的本道工序和下道工序

5 结语

RFID中间件通过自动识别与零件绑定的电子标签读写零件的加工信息,并成功调用加密和解密算法对数据进行保护,RFID中间件的分布式能很好地在局域网的服务器和浏览器上自动下载、安装,加密及解密算法很好地起到了对零件加工信息的保护,并且由于采用了五种算法保证了算法的安全可靠性,符合一部分企业对制造信息保密的要求。总的来说,RFID中间件在不改变制造企业应用系统的前提下,把射频识别技术应用到制造车间,提高了企业的效率,降低了成本。

摘要:为了更好的利用RFID的优点采集制造车间的数据,并对企业应用系统的影响最小,企业不需要重新开发部署应用系统,对应用于采集制造车间数据的RFID中间件进行了研究,RFID中间件采用了分布式的结构,达到了提高效率、节省时间和降低成本的目的,同时提出了对制造信息的保护,满足了企业对重要制造信息保密的要求。

分布式中间件 篇6

分布对象的异步消息传递机制是构造大型分布应用必不可少的机制之一,但是在目前的典型分布式应用支撑平台中,没有很好地解决消息的异步机制问题,缺乏对消息异步传递、服务质量控制和时间无关的存储转发机制的支持。目前,在分布式对象中间件平台中,支持异步机制的研究主要有两个方面,第一种异步机制是通过中间件代理服务解耦对象请求端与接收端,以实现异步、松耦合和多对多通信。这种方式适合构造基于事件的中间件应用,不能够支持消息接收端向消息发送端返回应答。第二种异步机制是基于方法级支持请求发送端与接收端之间的异步通信,它可以直接支持消息接收端向发送端返回应答。这种基于方法级的异步机制有两种基本的模型:异步回调模型和异步轮询模型。这两种异步模型能够解耦消息发送端和接收端,消息发送端发送请求之后不需要阻塞等待应答结果。但回调和轮询异步模型存在以下缺点:

(1) 要求消息发送端和接收端都必须处于活动状态,具有时间紧耦合的缺点。

(2) 消息的服务质量支持不足,对消息的可靠性传递不能保证。

(3) 无法支持消息应答双方是不同对象的请求,具有空间紧耦合的缺点。

针对上述方法级异步消息模型存在的问题,我们设计了一种支持时间解耦的分布对象异步消息模型TIAIM(Time Independent Asynchronous Invoke Model )。该模型引入了消息转换层MCL(Message Conversion Layer)来完成消息的提取、包装和变换,以实现原始的请求消息转化为一个可存储转发的消息。该模型设计了一种软件路由代理SRA(Software Route Agent)来存储和转发消息,以支持消息异步传递和时间无关激活,同时很好地支持消息服务质量的控制。本文主要针对TIAIM中消息转换机制进行研究。

1 基于软件路由代理支持时间解耦的TIAIM

时间解耦异步消息模型TIAIM属于方法级的异步机制,它基于回调和轮询异步模型进行扩展。TIAIM可形式化地定义为:

定义1 TIAIM=<DE,O,MCL,SRA>,其中,分布式对象O=<Oc,Orh ,Op ,Osrh ,Os> Oc表示客户请求对象,Os表示服务对象,Orh为Reply Handler对象,它是异步回调模型中引入的接收应答对象,Op 为异步轮询模型引入的查询(Poll)对象,Osrh是针对TIAIM中的异步轮询模型引入的由系统维护的应答接收对象。MCL为消息转换层,负责原始请求消息的转换。SRA为软件路由代理,它基于DE分布环境,对MCL转换后的消息进行存储转发。

基于时间解耦的分布对象中间件异步通信模型如图1所示。

2 TIAIM消息转换层MCL

2.1 TIAIM消息转换层MCL体系结构

TIAIM的消息转换层MCL的结构如图2所示。

MPA:提取原始GIOP Request消息,请求消息包括GIOP主版本号、次版本号、服务上下文、应答标志、对象Key、操作名及IN/OUT类型参数。

PI: MCL提供给Client选择使用的一组有关路由策略接口,实现了路由策略设置与具体实现的无关性。

QSI: MCL提供的QoS接口,以控制消息的服务质量。QSI设置的服务质量信息将作为请求消息的一部分随消息进行传递,并影响SRA对消息的处理。

RE:根据RE作用的不同,RE可以分为三种:转换规则、路由规则及其它应用层规则。转换规则的作用是将GIOP Request消息转换为可以存储转发的消息。路由规则作用是选择开始的路由器。

MAA:在MT的控制下,将转换后的请求消息、路由信息、服务质量信息、应答目的地信息包装为一个可以存储转发的消息Request Info,通过DE发送出去。

2.2 MCL消息提取适配机制

GIOP(General Inter-ORB Protocol)是OMG在CORBA规范中定义的一个ORB间的通信协议。GIOP请求消息由GIOP固定消息头、请求消息头和请求消息体组成。

为了包装和重构一个请求消息,以便SRAT能够激活一个GIOP Request,MPA需要提取以下信息:GIOP_version、flags、response_expected、reserved、Object_key、operation、Service_context。MPA提取信息的处理算法如下:GIOP_version、flags、response_expected、reserved、Object_key、operation、Service_context。

2.3 MCL策略接口PI及算法

PI为MCL向上提供一组与路由有关的策略接口,供Client选择使用,实现路由策略设置与具体实现分离。在异步消息模型中,由于SRA之间互连构成了一定的拓扑结构图,消息要从一个Client传递到一个Server,可能要经过SRA的多次存储转发,而SRA传递消息的效率取决于寻径算法,算法的优劣会给系统的正确性、可扩展性、可靠性带来很大的影响,因此寻径算法设计是异步消息模型研究中的一个重要问题。

SRA之间可以采取静态或动态路由的策略。静态路由策略,在生成服务方对象引用时,在对象引用中嵌入路由信息。动态路由策略,每个SRA都动态地更新路由信息。我们结合TCP/IP协议的IP寻径技术与IRP寻径方法的优点,设计了链路-状态寻径(L-S)算法。利用该算法,消息传递的路径不依赖于Server提供的路径构件,而是通过SRA之间周期性地交换路径信息,来更新SRA维护的路由拓扑图的信息表为消息的传递提供路径。

链路-状态寻径算法是一种动态路由算法,能够适应大规模分布式对象环境的变化,保证消息的正确寻径,具有较大的应用前景。由于篇幅的原因,不对该算法进行详细描述。

2.4 MCL服务质量接口及算法

MCL提供了QSI,对消息的服务质量进行控制,实现了策略和机制的分离。服务质量信息是客户对Client及SRA处理消息的一种要求。客户方通过QSI设置自己的服务质量策略,该策略不仅控制客户方的行为,并随着RequestInfo传递来影响SRA的行为。

排序策略对消息的服务质量有较大的影响。排序策略不同,消息被服务的先后顺序不同。在分布对象异步消息模型中,消息的发送不必等待前面异步消息应答的返回,并且它们的传递路径可能不同,因此消息的发送极有可能出现“先发后服务”、“后发先服务”的情况。在这种情况下,客户方得到的应答结果可能是错误的。所以,排序策略及其核心算法是一个值得研究的问题。我们从Client-Server的全局的角度出发,设计了一种基于优先级的消息排序算法能够解决上述问题。

基于优先级的消息排序算法根据消息的优先级和同一客户方发出消息的依赖关系,控制消息被目标对象服务的顺序,有效地解决了服务顺序不合理的问题。

2.5 MCL消息装配适配机制

MAA的任务可以分为两个阶段:第一阶段:首先把Request Body中的信息与字节顺序装配为MessageBody结构,然后把MPA提取的信息与MessageBody装配为一个RequestMessage结构。

第二阶段:将RequestMessage及服务质量信息Qos、路由信息 RouteInfo、应答目的地 Target装配为一个可以存储转发的消息RequestInfo。

2.6 基于异步轮询的MCL处理算法设计

针对异步回调和异步轮询应答处理方法的不同,MCL的处理算法不同。在基于异步回调的TIAIM模型中,MCL需要对ReplyHandler对象的引用进行注册,并把提取出的请求消息包装为可以存储转发的消息。在基于异步轮询的TIAIM模型中,MCL不需要进行以上操作,但是要创建Poller对象并将它返回给Client。下面给出基于异步轮询的TIAIM模型中MCL的处理算法。

MCL处理算法:

由该算法可以看出,路由策略是影响MCL的主要因素。当使用TIAIM时,MCL激活MT,MT通过MPA提取原始请求消息,然后由MAA将消息进行装配为可以存储转发的消息,算法执行完毕时返回一个poller对象。算法的复杂度为O(n)。

3 TIAIM实现与测试

基于我们开发的CORBA企业级异构集成中间件平台,对TIAIM进行实验性实现与测试。引入TIAIM模型之后,应用系统发生了改变,主要表现在:

(1)客户方利用MCL将消息转换后,需要启动SRAs,服务方需要启动SRAT,中间节点可选择若干SRAM。(2)将SRAs对象引用配置到请求发送方。(3)配置SRA之间的路由关系,客户方代码只需设置适当的存储转发策略,服务器方不需要改变。引入TIAIM前后的性能如图所示。

引入TIAIM的企业级异构集成中间件平台实现了常规CORBA系统无法实现的功能,例如:消息的存储转发、断开的Client/Server应用、时间无关的激活和移动应用。在系统的性能方面,引入SRA后请求执行路径变长,对系统的性能产生影响。我们选择引入SRA前后的同一测试程序,在线程容量为75时的性能测试。H1表示引入SRA之后的测试结果,H1测试时要保证测试实体之间的连接,否则无法比较延迟。H2表示引入SRA前的测试结果。分析该图可以看出,在保证连接的情况下,引入SRA后的延迟大于引入SRA前的延迟。测试结果符合实际情况,因为引入SRA后请求执行的路径变长,在消息存储转发过程中,要进行对象创建和激活、请求排队以及包装应答结果等,对于要求时间无关的异步激活应用,是可以接受的。

4 结束语

实现分布对象中间件异步通信的时间解耦问题,是当前大型分布式应用软件的需求。通过在分布对象中间件异步通信模型中,引入消息转换机制和软件路由代理机制可以较好地解决上述时间解耦问题。本文重点论述了在分布对象客户请求端的消息转换机制。TIAIM在我们开发的基于CORBA标准的企业异构集成中间件中进行了实验,结果表明分布对象异步调用模型对于时间无关性有了很大的改进。

摘要:针对目前分布对象中间件消息通信机制中不支持时间解耦和服务质量控制的问题,提出一种能够支持消息异步传递和时间解耦的异步通信模型,通过在客户端引入消息转换层来完成异步消息的提取、包装和转换,将原始的请求转换为一种可路由的消息,然后设计一种软件路由代理来实现异步消息的传递与转发。重点论述了分布对象中间件异步通信消息的转换机制。

关键词:分布对象中间件,异步通信模型,时间解耦,消息转换机制

参考文献

[1]Vinoski Steve.New features for CORBA3.0.Communications of theACM,1998,41(10):44-52.

[2]Tai S,Rouvellou I.Srrategies for integrating messaging and distributedobject transactions.In:Proceedings of IFIP/ACM International Con-ference on Distributed Systems Platforms and Open Distributed Pro-cessing,New York,USA,2000:308-330.

[3]朱其亮,郑斌.CORBA原理及应用.北京:北京邮电大学出版社,2001.

[4]Object Management Group.CORBA Messaging Specification.http://www.omg.org,1998.

[5]Aahlad Y,Martin B,Marathe M,et al.Asynchronous notification a-mong distributed objects.Toronto:Proceedings of the 2nd Conferenceon Object-Oriented Technologies,1996,6.

上一篇:墙体隔热下一篇:方案与任务