异构平台信息交互的设计与实现

时间:2022-08-17 06:18:31

异构平台信息交互的设计与实现

摘要:为了解决目前异构测试设备相互独立、测试功能单一、测试能力难以获得进一步提升的问题,提出利用CORBA技术应用于异构测试设备互联互通的需求。分析CORBA技术在异构平台的信息交互系统体系结构的设计思想,通过操作方式,实现状态信息的交互,运用CORBA的事件服务实现消息的传递,达到不同具有异构特性测试设备之间的设备状态和测量信息的交互和互操作的目的。

关键词:CORBA;IDL;事件服务IC/S模式

中图分类号:TP311

文献标识码:B

文章编号:1004―373X(2008)04―040―03

CORBA是一个面向对象的分布式通信平台,为异构环境中实现对象间互操作提供支持,具备完全分布性,高度互操作性,完全面向对象的特点。CORBA的接口定义语言可以向不同的语言结构的映射,实现对不同语言平台的通用性。因此,在异构信息交互的设计中,引入CORBA有助于解决异构设备互不关联,多点多参数测试数据难以获取,各网络节点的信息不能交互,异构平台的资源模块的信息交互和协同互操作性难等问题。

1 系统设计

本系统是通过对c0RBA体系结构的研究,设计出适合于异构资源模块的通信平台,应用于异构通信平台中的所设计的CORBA结构的目标如下:

(1)实现异构资源模块的分布对象间进行基于C/S模式状态信息的传递;

(2)实现基于C/S模式下异构的资源模块的互操作;

(3)实现基于推模式下的事件通道消息传递模式。

系统体系结构设计如图1所示,服务器端以推模式向消费者提供测试设备的状态信息和测量信息。对象客户(处理中心、显示、数据库消费者)与客户端交互,而对象实现(信息供应者)与服务器端交互。在客户端,ORB层软件充当客户端与客户系统的网络之间的中介。在服务器端,ORB层软件充当服务器端与客户系统的网络之间的中介。通过公共协议,双方的ORB层能够解析对象编程语言及两台主机平台(网络及操作系统)之间的区别,从而协助双方的数据通信。ORB层之间的互操作是通过OMG定义的GIOP协议来实现。该规范提供了一个通用框架,用于在特定的传输层上构建互操作协议。对象客户使用名字服务来定位对象。

2 系统实现

2.1状态信息

用IDL定义接口,生成ResourceModule.idl文件,然后用IDL编译器进行编译,在生成的文件中为方法添加实现体。由于篇幅所限,下面只列出IDL接口,没有写出具体的实现体,但在操作的详细描述中给出了具体的实现方法。资源模块的IDL接口定义如下:

在上述接口中,对所需要的消息类型及其序列进行自定义,并给出、订阅、管理3个操作。

操作 其中包括2个out属性参数,分别是消息提供者的状态信息列表和测量信息。状态信息列表主要包括:任务代号、任务类型、定义设备的IP地址、设备标识、设备ID号、设备类型等。的测量数据信息主要包括:测量数据格式,测量数据类型以便于消费者订阅。该操作的返回值表示是否成功。

订阅操作 其中有一个属性为in的参数和一个属性为out的参数,处理过程是在的消息列表中查找消费者需求的数据,在消费者端订阅该数据的供应者。同时,向消息的者返回一个订阅请求。建立消息的逻辑传递连路。该操作返回值表示订阅是否成功。

管理操作 其中包括三个属性为in的参数,分别为服务质量优先级管理、列表管理和订阅列表管理。服务质量管理主要是对消息的优先级和,订阅的状态列表的更新进行管理等。定义优先级的等级设置为1~10,一般信息的等级设置为5,等级越低,传递的优先级越高。列表和订阅列表的管理是对那些新增加的供应者和消费者,那些供应者和消费者需要删除的管理。该操作的返回值表示管理是否成功。

2.2 消息的传递

在异构平台信息交互中有许多消息的供应者和消费者,如果直接用对象间的直接调用实现他们之间的消息传递是非常困难的。因此,通过CORBA事件服务实现的许多不同的消息供应者和消费者之间的消息传递。事件传递的模式有2种:推模式和拉模式。在靶场中各个消息供应者主动向网络提供设备的状态信息和测量信息,所以,以推模式来设计靶场中消息的传递。消息的传递以操作调用的形式进行,操作的参数就是消息的内容。在推模式中,这个操作取名为push,他的定义在消费者中,由消费者实现这个操作。供应者如果希望传递消息,可以主动调用消费者提供的这个push操作,使消息从供应者送达消费者。事件通道的两侧可以连接相同模式的供应者和消费者,也可以连接不同模式的供应者和消费者。供应者和消费者的数目也不受限制。因此,只需编写提供者和消费者的,就可以进行消息提供者和消费者的扩展。

消息供应者利用CORBA命名服务NamingContext接口中的bind()操作,给出事件通道名,获得事件通道的对象引用。调用事件通道对象引用上的操作for_supp-li-ers(),得到供应者管理的对象引用。再调用供应者管理上的操作obtain_push_consumer(),得到消费者的对象引用。消息供应者调用消费者上的操作connect_push_supplier(),连接到消费者上,从而使供应者的一个实例与一个事件通道的实例关联起来。

消费者调用bind()操作,创建与供应者所创建的相同的通道名。获得事件通道的对象引用。调用事件通道对象引用上的操作for_consumers(),得到消费者管理的对象引用。再调用消费者管理上的操作obtain_push_suppli―er(),得到供应者的对象引用。消息消费者调用供应者上的操作connect_push_consumer(),连接到供应者上,从而使消费者的一个实例与一个事件通道的实例关联起来。

供应者调用消费者上的push操作。因为消费者是消费者的一个映像,因此,所调用的push操作实际上在消费者中执行的,这样,事件消息就推到了消费者那里。完成事件消息的传递。

事件发送完毕后,供应者和消费者调用所连接的上的操作disconnect_push_consumer()和disconnect_push_supplier(),断开与他们的连接,并释放相应的资源。

3 结 语

本文设计和实现CORBA技术在异构平台信息交互的应用。解决异构测试设备互不相关、测试功能单一、测试能力难以获得进一步提升、异构测试设备的交互和互操作等问题。通过对、订阅和管理操作的定义,实现不同消息供应者和消费者之间的信息的和订阅,为事件通道建立逻辑链路。建立推模式下的事件通道,实现消息的传递。

上一篇:GPS相位观测值中周跳的探测与修复 下一篇:“动中通”天线极化轴稳定性研究