CN109582479B - 一种基于反射内存卡的OpenDDS分布式通信方法 - Google Patents
一种基于反射内存卡的OpenDDS分布式通信方法 Download PDFInfo
- Publication number
- CN109582479B CN109582479B CN201811479697.XA CN201811479697A CN109582479B CN 109582479 B CN109582479 B CN 109582479B CN 201811479697 A CN201811479697 A CN 201811479697A CN 109582479 B CN109582479 B CN 109582479B
- Authority
- CN
- China
- Prior art keywords
- memory card
- diop
- data
- reflective memory
- opendds
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于反射内存卡的OpenDDS分布式通信方法,其中包括CORBA远程调用通信中基于UDP的DIOP协议修改,使用反射内存卡替换底层通信介质,将UDP数据流截断并使用反射内存卡传输,自适配通信环境中反应器监控通知机制的触发,基于反射内存卡的DIOP协议的加载和使用,在OpenDDS已支持的DIOP协议中快速实现数据重定向至反射内存卡。本发明使得OpenDDS中远程调用数据通过反射内存卡传输,将反射内存卡和发布/订阅模式结合,提供了一种高带宽、低延时的网络通信解决方案,更好地满足分布式系统实时性、可靠性的通信要求。
Description
技术领域
本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法。
背景技术
随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高。提供实时系统数据分发服务的OpenDDS是用于分发实时应用程序的网络中间件,它简化了分布式应用程序的开发、部署和维护,其以数据为中心的发布订阅模式极大地降低了在网络上发送数据所需的时间消耗,为大容量传输网络提供了针对时间关键数据快速且可预见的分发。此外,OpenDDS规范还定义了大量的QoS策略,使得系统可以很好地配置和利用系统资源,协调可预测性和执行效率之间的平衡,以支持复杂多变的数据流需求。
OpenDDS使用规范的IDL接口初始化和控制服务,是建立在CORBA上的应用框架,其中的信息传输分为远程调用和数据传输两部分,远程调用是分布式通信的主要技术,在分布式通信中起到重要作用,默认情况下传输介质为网卡,基于UDP的DIOP协议无需连接,通信效率高。
发明内容
为了降低网络间通讯的时延,屏蔽子网内部频繁通讯对整个网络中其他设备的干扰,本发明提出了一种基于反射内存卡的OpenDDS分布式通信方法。
本发明所采用的技术方案是:
一种基于反射内存卡的OpenDDS分布式通信方法,包括:
S0:在分布式通信计算机中安装反射内存卡,设置每个硬件节点号,并设定相应数据传输地址;
S1:在DIOP协议工程中加载反射内存卡驱动,在DIOP接收器中创建监控反射内存卡函数,通过判断指定地址写入标志是否置位,判断监控数据是否已经写入反射内存,监控到有数据写入时,则进入步骤S2;
S2:将写入标志清除,通过socket向本机地址发送1字节数据触发反应器,所述反应器监视到事先注册在其中的socket有数据到来,进而能够回调事先注册在所述反应器中的事件处理函数接收数据;
S3:在DIOP传输器接收函数中从所述反射内存卡的指定地址中读出数据,并将其读取标志置位;
S4:在DIOP传输器写入函数中判断指定地址读取标志是否置位,如果置位,则表示已读,进入步骤S5;
S5:在所述DIOP传输器写入函数中向指定地址写入数据,并将读取标志清除,将写入标志置位;
S6:重新编译DIOP工程。
较佳的,通过所述DIOP传输器接收函数和所述DIOP传输器写入函数获得相关数据和通信信息,将不同通道的数据映射到所述反射内存卡的同一片地址上。
较佳的,通过使用数据读写标识符控制所述反射内存卡中数据的读写顺序,实现不同进程数据的时序同步。
较佳的,所述步骤S6中,在OpenDDS中配置和加载改进的DIOP协议,其中包括:将DIOP工程加入到OpenDDS应用链接库中,通过服务配置器动态加载DIOP协议:在应用路径下创建配置文件,输入动态加载命令,在DCPS服务器端声明DIOP端点,在命令行输入相关参数即可运行程序。
本发明的有益效果是:
以数据为中心的OpenDDS拥有较高的通信效率,同时结合QoS策略控制服务行为,增加了通信的灵活性;
反射内存卡允许系统中所有节点同时读取共享的内存数据,无需通信协议,减少了网络中不必要的数据,提高了数据的传输效率,是一种非常适合实时分布式网络应用的底层硬件;
采用较为方便的修改DIOP协议,使得远程调用数据通过反射内存卡传输,同样实现了高效的通信;
将反射内存卡和发布/订阅模式结合,提供了一种高带宽、低延时的网络通信解决方案,更好地满足分布式系统实时性、可靠性的通信要求。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
图1为本发明在CORBA远程调用中的通信示意图;
图2为CORBA远程调用基于DIOP的通信流程图;
图3为本发明基于反射内存卡的OpenDDS分布式通信方法的总体结构图;
图4为本发明使用反射内存卡替换UDP的过程示意图;
图5为本发明使用标志位完成进程同步过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。
本发明提出了一种基于反射内存卡的OpenDDS分布式通信方法,在OpenDDS已支持的DIOP协议中快速实现数据重定向至反射内存卡。依据自适配通信环境中反应器监控硬件数据到来并完成通知的机理,以及反射内存卡相关API函数实现相应功能,将本通过DIOP协议完成远程调用的通信使用反射内存卡实现,完成了OpenDDS中基于DIOP协议下使用反射内存卡传输数据。
本发明的技术方案是首先研究OpenDDS架构和使用方法,从中研究OpenDDS的通信原理,其中包括分布式系统CORBA中的远程对象通信和数据传输部分,CORBA中对象请求代理之间的远程调用结合UDP生成DIOP协议,如图1和图2所示;再通过研究自适配通信环境中反应器的事件监控和分离机制,了解触发方法;最后使用反射内存卡替换原有的DIOP中的数据传输,并在反应器的架构下进行相应的数据监控,实现基于反射内存卡的OpenDDS通信方法,如图3所示。
本发明提出的一种基于反射内存卡的OpenDDS分布式通信方法,包括:
S0:在分布式通信计算机中安装反射内存卡,设置每个硬件节点号,并设定相应数据传输地址。
S1:在DIOP协议工程中加载反射内存卡驱动,在DIOP接收器中创建监控反射内存卡函数,通过判断指定地址写入标志是否置位,判断监控数据是否已经写入反射内存,监控到有数据写入时,则进入步骤S2。
步骤S1中,反射内存卡函数位置既要在数据接收端用于监控网卡数据的socket已经建立并完成监听端口绑定之后,又要在数据发送端给接收端发送第一帧数据之前,发送端还未向对方发送任何数据时创建该线程,以确保接收端能及时准确地监控到发送端写入反射内存卡的所有数据。
S2:如图4所示,将写入标志清除,通过socket向本机地址发送1字节数据触发反应器,反应器监视到事先注册在其中的socket有数据到来,进而能够回调事先注册在反应器中的事件处理函数接收数据。
S3:如图5所示,在DIOP传输器接收函数中从反射内存卡的指定地址中读出数据,并将其读取标志置位。
S4:如图5所示,在DIOP传输器写入函数中判断指定地址读取标志是否置位,如果置位,则表示已读,进入步骤S5。
S5:如图5所示,在DIOP传输器写入函数中向指定地址写入数据,并将读取标志清除,将写入标志置位。
步骤S3、步骤S4和步骤S5中,通过DIOP传输器接收函数和DIOP传输器写入函数获得相关数据和通信信息,将不同通道的数据映射到反射内存卡的同一片地址上。
步骤S3、步骤S4和步骤S5中,通过使用数据读写标识符控制反射内存卡中数据的读写顺序,实现不同进程数据的时序同步。
S6:重新编译DIOP工程。
步骤S6中,在OpenDDS中配置和加载改进的DIOP协议,其中包括:将DIOP工程加入到OpenDDS应用链接库中,通过服务配置器动态加载DIOP协议:在应用路径下创建配置文件,输入动态加载命令,在DCPS服务器端声明DIOP端点,在命令行输入相关参数即可运行程序。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (2)
1.一种基于反射内存卡的OpenDDS分布式通信方法,其特征在于,包括:
S0:在分布式通信计算机中安装反射内存卡,设置每个硬件节点号,并设定相应数据传输地址;
S1:在DIOP协议工程中加载反射内存卡驱动,在DIOP接收器中创建监控反射内存卡函数,通过判断指定地址写入标志是否置位,判断监控数据是否已经写入反射内存,监控到有数据写入时,则进入步骤S2;
S2:将写入标志清除,通过socket向本机地址发送1字节数据触发反应器,所述反应器监视到事先注册在其中的socket有数据到来,进而能够回调事先注册在所述反应器中的事件处理函数接收数据;
S3:在DIOP传输器接收函数中从所述反射内存卡的指定地址中读出数据,并将其读取标志置位;
S4:在DIOP传输器写入函数中判断指定地址读取标志是否置位,如果置位,则表示已读,进入步骤S5;
S5:在所述DIOP传输器写入函数中向指定地址写入数据,并将读取标志清除,将写入标志置位;
S6:重新编译DIOP工程,在OpenDDS中配置和加载改进的DIOP协议;
其中,通过所述DIOP传输器接收函数和所述DIOP传输器写入函数获得相关数据和通信信息,将不同通道的数据映射到所述反射内存卡的同一片地址上;
通过使用数据读写标识符控制所述反射内存卡中数据的读写顺序,实现不同进程数据的时序同步。
2.根据权利要求1所述的一种基于反射内存卡的OpenDDS分布式通信方法,其特征在于,所述步骤S6包括:将DIOP工程加入到OpenDDS应用链接库中,通过服务配置器动态加载DIOP协议:在应用路径下创建配置文件,输入动态加载命令,在DCPS服务器端声明DIOP端点,在命令行输入相关参数即可运行程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811479697.XA CN109582479B (zh) | 2018-12-05 | 2018-12-05 | 一种基于反射内存卡的OpenDDS分布式通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811479697.XA CN109582479B (zh) | 2018-12-05 | 2018-12-05 | 一种基于反射内存卡的OpenDDS分布式通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582479A CN109582479A (zh) | 2019-04-05 |
CN109582479B true CN109582479B (zh) | 2021-11-09 |
Family
ID=65927118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811479697.XA Active CN109582479B (zh) | 2018-12-05 | 2018-12-05 | 一种基于反射内存卡的OpenDDS分布式通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582479B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321236B (zh) * | 2019-07-11 | 2022-10-25 | 哈尔滨工业大学 | 一种基于OpenDDS的远程方法调用实现方法 |
CN111245919B (zh) * | 2020-01-07 | 2022-09-20 | 上海航天计算机技术研究所 | 一种基于OpenDDS的反射内存网组织管理方法 |
CN114006824A (zh) * | 2021-10-22 | 2022-02-01 | 南京芯传汇电子科技有限公司 | 一种基于分布式通信的反射内存卡仿真的通讯方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664954A (zh) * | 2012-04-25 | 2012-09-12 | 清华大学 | 基于hla的分布式仿真支撑平台及其实现方法 |
CN104573135A (zh) * | 2014-12-24 | 2015-04-29 | 北京经纬恒润科技有限公司 | 基于反射内存网与中间件技术的实时数据采集方法及装置 |
EP3264357A1 (en) * | 2016-07-01 | 2018-01-03 | General Electric Company | Systems and methods to integrate power production simulation with power distribution simulation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516052B2 (en) * | 2004-05-27 | 2009-04-07 | Robert Allen Hatcherson | Container-based architecture for simulation of entities in a time domain |
CN105205183B (zh) * | 2015-10-29 | 2018-06-22 | 哈尔滨工业大学 | 一种基于xml的dds分布式系统自动构建方法 |
CN108241770B (zh) * | 2016-12-27 | 2021-07-16 | 中国船舶重工集团公司七五○试验场 | 一种基于反射内存网的消息响应分布式仿真方法 |
CN107329920B (zh) * | 2017-07-06 | 2020-09-18 | 中国航空工业集团公司西安飞机设计研究所 | 一种反射内存的公共接口框架设计方法 |
-
2018
- 2018-12-05 CN CN201811479697.XA patent/CN109582479B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664954A (zh) * | 2012-04-25 | 2012-09-12 | 清华大学 | 基于hla的分布式仿真支撑平台及其实现方法 |
CN104573135A (zh) * | 2014-12-24 | 2015-04-29 | 北京经纬恒润科技有限公司 | 基于反射内存网与中间件技术的实时数据采集方法及装置 |
EP3264357A1 (en) * | 2016-07-01 | 2018-01-03 | General Electric Company | Systems and methods to integrate power production simulation with power distribution simulation |
Non-Patent Citations (4)
Title |
---|
CReMeS: A CORBA Compliant Reflective Memory based Real-time Communication Service;Sun-Tae Chung,等;《Proceedings 21st IEEE Real-Time Systems Symposium》;20001130;第1-12页 * |
Implementing Pluggable Protocols for TAO;Fred Kuhns,等;《http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/docs/pluggable_protocols/index.html》;20011208;第1-32页 * |
基于CORBA的可插拔协议研究;孙海彬,等;《电脑知识与技术》;20090925;第5卷(第27期);第7783-7787页 * |
高速光纤总线在导弹综合信息一体化技术中的应用;胥辉旗,等;《海军航空工程学院学报》;20120320;第27卷(第2期);第181-186页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109582479A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
CN109582479B (zh) | 一种基于反射内存卡的OpenDDS分布式通信方法 | |
US20200382578A1 (en) | Communication Method, System and Apparatus | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
KR20060079108A (ko) | 버스 프로토콜들 또는 네트워크들의 통합을 용이하게 하는버스 추상화 방법 및 시스템 | |
Leitão et al. | Integration patterns for interfacing software agents with industrial automation systems | |
CN105141603A (zh) | 通信数据传输方法及系统 | |
Li et al. | Interconnecting heterogeneous devices in the personal mobile cloud | |
US9116881B2 (en) | Routing switch apparatus, network switch system, and routing switching method | |
CA3165131A1 (en) | Service delivery at the edge | |
CN113259408B (zh) | 数据传输方法和系统 | |
EP3703342B1 (en) | Dynamic load balancing in network centric process control systems | |
CN116800616B (zh) | 虚拟化网络设备的管理方法及相关装置 | |
CN112714146B (zh) | 一种资源调度方法、装置、设备及计算机可读存储介质 | |
CN116055426B (zh) | 用于多绑定模式下流量卸载转发的方法、设备及介质 | |
US10757177B1 (en) | Data locality-aware MapReduce using IoT devices | |
CN114697334B (zh) | 一种编排任务的执行方法和装置 | |
CN109542833A (zh) | 一种基于微服务器架构的服务器管理方法、装置、服务器 | |
US10986036B1 (en) | Method and apparatus for orchestrating resources in multi-access edge computing (MEC) network | |
CN110809047A (zh) | 一种外网单域名连接内网kafka集群的实现方法及系统 | |
CN112099769B (zh) | 一种具有统一数据传输接口的软件化雷达装置 | |
WO2024041572A1 (zh) | 业务处理方法、装置、设备、介质及程序产品 | |
CN114884948B (zh) | 一种数据处理系统 | |
WO2023035777A1 (zh) | 网络配置方法、代理组件、控制器、电子设备和存储介质 | |
CN111245919B (zh) | 一种基于OpenDDS的反射内存网组织管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |