CN103067412A - 一种GIOP到RapidIO的新协议 - Google Patents
一种GIOP到RapidIO的新协议 Download PDFInfo
- Publication number
- CN103067412A CN103067412A CN2013100315702A CN201310031570A CN103067412A CN 103067412 A CN103067412 A CN 103067412A CN 2013100315702 A CN2013100315702 A CN 2013100315702A CN 201310031570 A CN201310031570 A CN 201310031570A CN 103067412 A CN103067412 A CN 103067412A
- Authority
- CN
- China
- Prior art keywords
- rapidio
- giop
- iop
- rio
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/58—Message adaptation for wireless communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/10—Multimedia information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种GIOP到RapidIO的RIO-IOP协议,包括硬件层、RapidIO总线层、RCS协议栈层、RIO-IOP协议层、GIOP层、应用层;所述RCS协议栈层运行在RapidIO的网络中的各个非交换节点上,RCS协议栈为对RapidIO的第一次封装,所述RIO-IOP协议层为对RapidIO进行的第二次封装,即把RCS封装成RIO-IOP协议。本发明将基于高速总线RapidIO的协议栈RCS无缝衔接到CORBA的传输层,把抽象协议GIOP映射为具体的RapidIO,从理论和实践上提出并实现了全新的RIO-IOP协议,完成经由RIO-IOP协议的CORBA基本调用。
Description
技术领域
本发明涉及嵌入式系统中的通信协议,具体涉及一种GIOP到RapidIO的新协议。
背景技术
RapidIO是一种高速、分组交换、全双工的互连体系结构,它的提出是针对在芯片间及板间进行数据和控制信息的传输,其传输效率高于以太网,在嵌入式系统领域具有明显的优势。
通用ORB间协议GIOP(general Inter-ORB protocol)为ORB之间的交互详细规定了一套标准的传输语法(低层次的数据表达)和一系列消息格式。GIOP是为ORB到ORB之间的交互而创建的,它直接工作在任何满足规定的面向连接的传输协议上。GIOP使CORBA可以在不同操作系统和编程语言的环境下实现客户和服务器对象的互操作。
在CORBA规范中,对于GIOP自身而言,它不提供完整的交互功能,它必须被映射为具体的协议。GIOP到TCP/IP存在映射IIOP,但是TCP/IP应用在嵌入式系统中有明显的局限性,因此越来越多的嵌入系统采用RapidIO技术,GIOP到RapidIO之间映射的研究还处于空白阶段。
CORBA参照模型包括ORB内核(ORB core)、对象适配、客户端存根(IDL stub)和服务端框架(IDL skeleton)、动态DII/DSI、CORBA客户端和服务端、ORB之上的服务(包括名字服务,事件服务)、底层驱动等。
从CORBA的体系中可以看出,CORBA客户端程序与服务端程序进行数据通信的基础是建立了统一的GIOP协议以及统一的数据通信架构。客户端对不同地址空间中的远端服务对象的使用过程,如同从本地的地址空间一样方便。
GIOP协议内容包括:公共数据表示CDR(common data representation)、GIOP消息格式、GIOP消息传输、IIOP协议(internet ORB间协议)以及双向GIOP(Bi-Directional GIOP)。GIOP定义了不同ORB间互操作的协议,它提供一个抽象协议规范,能被映射为常见的面向连接的传输协议。应用最广泛的因特网ORB间协议(IIOP, internet Inter-ORB protocol)就是GIOP消息传输到TCP/IP连接的映射。在基于网线传输的机制与TCP/IP协议基础上,IIOP协议就是具体的GIOP实现。但是由于过多的编码/解码,数据复制以及高阶的功能调用,IIOP协议在高速网络中表现出较低的性能。
发明内容
针对上述现有技术,本发明要解决的技术问题是:由于过多的编码/解码,数据复制以及高阶的功能调用,IIOP协议在高速网络中表现出较低的性能。
为了解决上述技术问题,本发明采用如下技术方案:
一种GIOP到RapidIO的新协议,其特征在于,包括硬件层、RapidIO总线层、RCS协议栈层、RIO-IOP协议层、GIOP层、应用层;在硬件层中采用RapidIO接口接入板卡上RapidIO交换芯片; 在所述RapidIO总线层中,所述RapidIO交换芯片的物理链路再接入交换网络中,网络中的交换模块负责维护点对点通信的路由信息;所述RCS协议栈层运行在RapidIO的网络中的各个非交换节点上,RCS协议栈为对RapidIO的第一次封装,通过RCS协议栈可以实现节点间的快速通信与数据交换;所述 RIO-IOP协议层由对RapidIO进行第二次封装,即把RCS封装成RIO-IOP协议,这样RIO-IOP协议使得所有的GIOP消息可以通过RCS协议栈发送和接收。
作为本发明进一步的改进,还包括ORB传输层服务端,ORB传输层服务端包含传输模块初始化组件、对同一目标地址空间的连接分组组件、遵循GIOP协议的GIOP消息机制组件、实现在RapidIO总线上的GIOP的映射RIO-IOP组件 、线程策略组件、协议包的封装组件CDR和传输规则组件。
作为本发明进一步的改进,还包括ORB传输层客户端,所述ORB传输层客户端包括传输模块初始化组件,连接分组组件,GIOP消息机制组件以及RCS协议的GIOP映射RIO-IOP组件。
作为本发明进一步的改进,在客户端呼叫服务对象的过程中,客户端对象将通过CDR对象将请求封装成GIOP协议格式,发送到服务端。
作为本发明进一步的改进,传输层提供给的外部接口包括:连接接口connect,监控连接事件接口acceptAndMonitor,监控连接接口monitor,通知可读接口notifyReadable,发送请求接口sendRequest,接收反馈接口receiveReply,接收请求接口receiveReques,发送反馈接口sendReply,数据发送接口send,数据接收接口recv。
IOR采用IDL结构来定义,一个对象引用IOR中包含了多个taggedProfile对象,每一个taggedProfile对象是包含了用来联系远程对象的多种协议方式;每一种taggedProfile对象中包含了一个ProfileId,如何对该对象的编解码进行解析,就依赖该标识。
CORBA客户端通过IOR调用服务端对象服务,客户端与服务端以IOR形式通过网络连接进行数据的通信,所述网络连接方式有三种分别为:单向连接上多重呼叫MultiplecallPer Connection、单向连接上的单重呼叫onecallPer Connection、双向连接bidirectionConnection
与现有技术相比,本发明具有以下有益效果:
将基于高速总线RapidIO的协议栈RCS无缝衔接到CORBA的传输层,把抽象协议GIOP映射为具体的RapidIO,从理论和实践上提出并实现了全新的RIO-IOP协议,完成经由RIO-IOP协议的CORBA基本调用。
附图说明
图1为使用配置的RIO-IOP连接服务端示意图;
图2 RIO-IOP建立到服务对象的连接过程图;
图3 为ORB传输层组件模型;
图4为网络层次模型对比图。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
实施例一 IOR的组成
客户端通过对象的引用与服务端建立通信联系,服务端在创建服务对象的时候,根据对象创建时候的上下文关系,将这些信息发布出来给客户端用于与伺服对象建立关联。
一个对象引用IOR中包含了多个taggedProfile对象,每一个taggedProfile对象是包含了用来联系远程对象的多种协议方式。比如,在客户端既可以通过RIO-IOP协议来与远程对象建立通信联系,也可以通过其他协议(如IIOP)与远程对象建立通信关系。
每一种taggedProfile对象中包含了一个ProfileId,如何对该对象的编解码进行解析,就依赖该标识。比如客户端按照ProfileId定义的一种方式将数据包进行编码,服务端解码的过程就需要通过该ProfileId来解码。
在实际应用中,很可能一个服务器端的某个对象的互操作对象引用(IOR)会被其它不同CORBA厂商的客户端所使用。因此,IOR采用IDL结构来定义的。
根据RCS网络节点间通信的机制,定义RIO-IOP IOR Profile IDL的结构为:
Module IOP{
typedef unsigned long ComponentId;
const ProfileId TAG_RIO_IOP = 2;
struct TaggedComponent{
ComponenteId tag;
sequence<octet> component_data;
};
Module RIO_IOP{
struct Version{
octet major;
octet minor;
};
struct RIO_IOPProfileBode_1_2{
Version riop_version;
string riop_host;
unsigned shot riop_port;
sequence<octet> object_key;
sequence<IOP::TaggedComponent> components;
};
使用RCS通信的对象,在对象IOR中提供了基于RIO-IOP的联系方式。riop_host 表示对象所在连接的目的地址,也就是RapidIO网络地址。riop_port表示对象所在连接的目的端口。object_key用来表示远程地址空间的对象。
实施例二 CORBA客户端通过IOR调用服务端服务
CORBA客户端调用服务端对象服务,是基于RIO-IOP协议通过IOR实现的。假设某个服务对象A的IOR提供了多种调用方式。通过RapidIO总线,目标对象RapidIO网络地址为节点标识HOSTA,端口为PORT1,对象引用键值为OBJECT_KEY。
通过TCP/IP协议,主机为HOST B,端口为PORT2,对象键值为OBJECT_KEY。通过ATM协议,主机为HOSTA_ATM,接入点为SAP1,对象引用键值为OBJECT_KEY。使用RIO-IOP连接服务端如图1所示。
对象A 的IOR当前使用的为:RIO-IOP: //HOSTA:PORT1/OBJECT_KEY,该对象中包含了联系服务端上的远程对象A的具体方式。通过taggedProfile的信息可以知道,该对象位于节点标识为HOSTA,服务端口为PORT1的端口上,通过RIO-IOP协议与服务器联系,在服务端使用OBJECT_KEY索引对象的实现。
IOR中承载的目标地址信息是用来建立或者选择连接通道用的。服务端将创建好的服务对象通过IOR的方式发布出去。客户端可以实现在目标地址不可用的情况下,自动尝试配置好的下一个联系方式。
客户端与服务端以IOR形式通过网络连接进行数据的通信,在ORB中连接的方式,根据呼叫发起方的差异,以及连接复用的方式,将连接划分以下3种:
1) 单向连接上多重呼叫(MultiplecallPer Connection)
2) 单向连接上的单重呼叫(onecallPer Connection)
3) 双向连接(bidirectionConnection)
在RIO-IOP消息机制中,客户端通过请求消息(request)定位到需要访问的对象,然后使用已经配置的连接。服务端在找到对应的实现后,通过应答消息(reply)将执行结果按照应答消息的包头以及消息体的格式,在外层加上GIOP协议头后传输给对应的客户端。请求消息与应答消息通过请求的标识ID进行关联。
为了能够通过RIO-IOP的方式访问服务对象,必须满足2点前置条件:识别RIO-IOP协议的IOR字符串和注册RIO-IOP传输到ORB内核中。对于第1点,需要在初始化以及IOR句柄解析的时候增加RIO-IOP对应的部分。对于第2点,需要新增RIO-IOP相关的协议支持接口以及关联部分的修改。RIO-IOP协议是GIOP协议在RCS协议上的实现,需要继承原有GIOP中关于数据传输的所有类,使得GIOP可以在RCS协议栈上运行。
另外,为了识别RIO-IOP协议的IOR字符串,需要在RIO-IOP设计时增加RIO_IOP对象,以及对一些ORB内核中原有的对象进行修改,这些修改对象包括:IOR、GIOP_S、Interceptor。
有了两点前置条件后,就可以通过具有RIO-IOP协议的IOR字符串访问服务对象。整个访问过程可以从客户端和服务端两个角度来看,通过8个阶段建立到服务端的联系,如图2所示。
8个阶段分别为:客户端ORB初始化阶段;客户端创建对象引用阶段;客户准备连接阶段;客户端请求分发阶段;服务端ORB初始化阶段;服务端对象适配器OA初始化阶段;服务端任务调度阶段;服务端请求分发阶段。
在RIO-IOP协议的网络中,由于连接都是预先分配,所以RzTask任务不可能会监控到新连接产生的事件,每个RzTask任务最多只需要监控一个连接句柄。
一个EndPoint固定对应着一个连接对象,没有需要监听的句柄,所以EndPoint中的句柄集合最多包含着一个连接句柄。在专职workerTask任务空闲的时候,监控连接的职责也将由专职workerTask任务完成,RzTask任务将会无连接句柄可以监控。当专职任务进行请求处理时,就会把连接句柄放入到连接集合中,由RzTask任务对连接句柄进行监控。
连接集合不会发生变化,一个RzTask任务将只监控一个连接句柄上的数据到达情况。
实施例三RIO-IOP对CORBA基本服务的支持
RIO-IOP命名服务是指支持经由RIO-IOP协议的CORBA命名服务,并且为了保证在分布式嵌入式系统中命名服务的高可靠性,RIO-IOP命名服务提供双命名服务。
RIO-IOP双命名服务是指客户端程序通过网络与主备命名服务进行连接。在默认情况下,客户端程序仅与主命名服务之间进行交互通信,当主命名服务出现故障时,客户端可以自动向备命名服务请求,以保障系统的持续稳定运行。同时在主备命名服务之间需要进行名字配置数据的同步,以使在主命名服务故障的情况下,备命名服务可以对该服务进行无缝切换并接管。
标准CORBA通信模式中,客户程序与伺服程序之间的通信是直接的,客户程序向伺服程序发出调用请求,伺服程序进行处理并返回结果,这种处理方式下,两者之间完全是耦合在一起的一对一的关系。
事件服务则是一种异步通信松耦合的模式,由事件的提供者产生事件而事件的消费者接收事件,它们之间不是一对一的紧耦合的关系也不需要关心对方的当前的情况,而是各自连接在事件通道上。事件通道作为2者之间的纽带,负责注册提供者和消费者,传递事件和错误处理。
RIO-IOP事件服务是指:开发的CORBA应用程序能够使用RIO-IOP协议,作为事件的消费者,能够向事件服务注册自己以及感兴趣的事件,在事件产生后,将得到通知;作为事件的提供者,能够使用事件服务提供的推送接口,将产生的事件推送给注册的消费者应用程序。
RIO-IOP事件服务的前置条件是可以通过RapidIO总线传输符合CORBA的GIOP1.2规范的协议数据包,后置条件是作为消费者与提供者的应用程序能够通过事件服务通道建立关联。
CORBA除了静态调用外,还支持2种用于动态调用的界面:动态调用界面(DII, dynamic invocation interface)和动态框架界面(DSI, dynamic skeleton interface),分别用于服务端和客户端的动态调用。限于RapidIO的应用场景的要求和制约,在基于RapidIO的RIO-RIO协议的CORBA应用中对动态特性没有需求,所以对动态属性进行剥离,以更好的适应嵌入式环境并节省程序的空间消耗。
上面已结合附图对发明的具体实施方式进行了示例性的描述,显然本发明不限于此,在本发明范围内进行的各种改型均没有超出本发明的保护范围。
Claims (7)
1. 一种GIOP到RapidIO的新协议,其特征在于,包括硬件层、RapidIO总线层、RCS协议栈层、RIO-IOP协议层、GIOP层、应用层;在硬件层中采用RapidIO接口接入板卡上RapidIO交换芯片;在所述RapidIO总线层中,所述RapidIO交换芯片的物理链路再接入交换网络中,网络中的交换模块负责维护点对点通信的路由信息;所述RCS协议栈层运行在RapidIO的网络中的各个非交换节点上,RCS协议栈为对RapidIO的第一次封装,通过RCS协议栈实现节点间的快速通信与数据交换;所述 RIO-IOP协议层由对RapidIO进行第二次封装,即把RCS封装成RIO-IOP协议。
2.根据权利要求1所述的GIOP到RapidIO的新协议,其特征在于,还包括ORB传输层服务端,所述ORB传输层服务端包含传输模块初始化组件、对同一目标地址空间的连接分组组件、遵循GIOP协议的GIOP消息机制组件、实现在RapidIO总线上的GIOP的映射RIO-IOP组件 、线程策略组件、协议包的封装组件CDR和传输规则组件。
3.根据权利要求1所述的GIOP到RapidIO的新协议,其特征在于,还包括ORB传输层客户端,所述ORB传输层客户端包括传输模块初始化组件,连接分组组件,GIOP消息机制组件以及RCS协议的GIOP映射RIO-IOP组件。
4.根据权利要求3所述的GIOP到RapidIO的RIO-IOP协议,其特征在于,在ORB传输层客户端呼叫服务对象的过程中,ORB传输层客户端对象将通过CDR对象将请求封装成GIOP协议格式,发送到ORB传输层服务端。
5.根据权利要求1或3所述的GIOP到RapidIO的新协议,其特征在于,传输层提供给的外部接口包括:连接接口connect、监控连接事件接口acceptAndMonitor、监控连接接口monitor、通知可读接口notifyReadable、发送请求接口sendRequest、接收反馈接口receiveReply、接收请求接口receiveReques、发送反馈接口sendReply、数据发送接口send、数据接收接口recv。
6.根据权利要求1所述的GIOP到RapidIO的新协议,其特征在于,所述RCS协议栈层通信的对象IOR采用IDL结构来定义,一个对象引用IOR中包含了多个taggedProfile对象,每一个taggedProfile对象是包含了用来联系远程对象的多种协议方式;每一种taggedProfile对象中包含了一个ProfileId,如何对该对象的编解码进行解析,就依赖该标识。
7.根据权利要求6所述的GIOP到RapidIO的新协议,其特征在于, ORB传输层客户端通过IOR调用服务端对象服务,客户端与服务端以IOR形式通过网络连接进行数据的通信,所述网络连接方式有三种分别为:单向连接上多重呼叫MultiplecallPer Connection、单向连接上的单重呼叫onecallPer Connection、双向连接bidirectionConnection。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100315702A CN103067412A (zh) | 2013-01-28 | 2013-01-28 | 一种GIOP到RapidIO的新协议 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100315702A CN103067412A (zh) | 2013-01-28 | 2013-01-28 | 一种GIOP到RapidIO的新协议 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103067412A true CN103067412A (zh) | 2013-04-24 |
Family
ID=48109871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100315702A Pending CN103067412A (zh) | 2013-01-28 | 2013-01-28 | 一种GIOP到RapidIO的新协议 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103067412A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114070663A (zh) * | 2021-10-11 | 2022-02-18 | 中国航空无线电电子研究所 | 一种基于事件维护的RapidIO网络 |
WO2023034982A1 (en) * | 2021-09-03 | 2023-03-09 | Google Llc | Session-less and connection-less message protocol for rcs messages |
-
2013
- 2013-01-28 CN CN2013100315702A patent/CN103067412A/zh active Pending
Non-Patent Citations (2)
Title |
---|
曾茹: ""SCA规范下基于RapidIO的CORBA封装"", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
陈文宇 等: ""基于RapidIO的GIOP协议--RIO-IOP"", 《通信学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023034982A1 (en) * | 2021-09-03 | 2023-03-09 | Google Llc | Session-less and connection-less message protocol for rcs messages |
CN114070663A (zh) * | 2021-10-11 | 2022-02-18 | 中国航空无线电电子研究所 | 一种基于事件维护的RapidIO网络 |
CN114070663B (zh) * | 2021-10-11 | 2022-12-27 | 中国航空无线电电子研究所 | 一种基于事件维护的RapidIO网络 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5790809A (en) | Registry communications middleware | |
US7028307B2 (en) | Data management framework for policy management | |
US6757731B1 (en) | Apparatus and method for interfacing multiple protocol stacks in a communication network | |
CN100492302C (zh) | 基于Java的进程间异步通信的实现方法 | |
EP1311946B1 (en) | System and method for concentration and load-balancing of requests | |
CN102064954B (zh) | 一种分布式容错系统、设备和方法 | |
Schmidt | A family of design patterns for applications-level gateways | |
CN101296176B (zh) | 一种基于群集的数据处理方法和装置 | |
EP4270204A1 (en) | Multi-cloud interface adaptation method and system based on micro-service, and storage medium | |
CN102810069A (zh) | 一种java对象的请求和响应方法、装置、系统和终端 | |
JP2011505048A (ja) | 共通メッセージングインタフェースを用いたサービス指向アーキテクチャアプリケーションの統合 | |
CN103067287B (zh) | 在转发和控制分离架构下实现虚拟可编程路由器的方法 | |
CN105556929A (zh) | 在云计算系统中运行应用的网络元件和方法 | |
KR101558289B1 (ko) | 메시지 처리 파이프라인 구성 | |
CN117061352A (zh) | 多模态虚拟网元的实现方法、装置、设备及介质 | |
WO2015043679A1 (en) | Moving stateful applications | |
CN103368872A (zh) | 数据包转发系统和方法 | |
CN101339520B (zh) | 一种将ejb接入企业服务总线的方法 | |
CN110247971A (zh) | 减少消息中间件连接数量的方法及其系统 | |
CN103067412A (zh) | 一种GIOP到RapidIO的新协议 | |
CN112256386A (zh) | 一种仿真运行支撑系统 | |
CN101621528B (zh) | 基于以太交换机集群管理的会话系统及会话通道实现方法 | |
CN112199211B (zh) | 基于RapidIO的CORBA中间件ORB间通信方法 | |
Crane et al. | A configurable protocol architecture for CORBA environments | |
CN109254853A (zh) | 数据共享方法、数据共享系统及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130424 |