opendds

2019/07/01 23:06
阅读数 158

 

消息中间件,分布式数据服务,RPC,HTTP服务,通信机制等概念厘清加辨析

 

http://opendds.org/

http://www.dre.vanderbilt.edu/~schmidt/ACE.html

 

概念

https://baike.baidu.com/item/OPENDDS/979069

https://blog.csdn.net/bossxu_linuxer/article/details/81216030

https://blog.csdn.net/xinqingwuji/article/details/72803145

 

OpenDDSOMG数据分发服务(DDS)的一种开源实现,它遵循实时系统v1.2DDS规范(OMG Document formal/07-01-01)和实时公布/订阅互操作性通信协议v2.1DDS-RTPS规范(OMG Document formal/2010-11-01)OpenDDSOCI公司设计和维护,可从http://www.opendds.org/的OpenDDS社区门户中获得帮助,目前已经发布的最新版本为v3.10。

OpenDDS 是一个开源的 C++ 实现的 对象管理组织 OMG 数据分布式服务 (DDS) OpenDDS利用自适应通信环境(ACE)提供一个跨平台的环境。

 

OpenDDS是构建在ACEAdaptive Communication Environment,自适应通信环境,一套基于C++语言的开源网络可开发库)上,通过ACE保证跨平台和可移植性。OpenDDS同时利用了TAOThe ACE ORB,基于ACE基础上的CORBA实现框架),提供IDL

编译器

等功能作为OpenDDSDCPS信息仓库。

 

ACE概念(C++线程库)

https://www.ibm.com/developerworks/cn/aix/library/au-ace/

Adaptive Communication Environment (ACE) 是一个高性能、开放源码、面向对象的框架和 C++ 类库,它有助于简化网络应用程序的开发。ACE 工具包包括一个操作系统层和一个封装网络 API 的 C++ 外观(facades)集合。

 

书籍推荐,The Architecture of Open Source Applications volum 1, 2

 

actor模型参考维基百科定义(http://en.wikipedia.org/wiki/Actor_model):

actor是一个计算实体,当其收到消息时,可以并发执行如下操作:

1. 发送有限数量的消息给其他actor

2. 创建有限数量的新actor

3. 指定收到下一消息时的行为

 

ACE reactor是通过注册/回调方式进行驱动的程序开发模式,先注册自己关注什么事件,然后反应堆就会在该事件发生时回调你。这实际上与actor 模型有些类似。reactor在维基百科定义如下(http://en.wikipedia.org/wiki/Reactor_pattern):

reactor是一种设计模式,用于一到多个输入并发向一个服务处理器发送请求时进行事件处理。服务处理器将收到的请求同步分发到相应的请求处理器上。

按照定义,所有reactor系统都是单线程的,但可以应用到多线程环境中。reactor模型的特点是控制流反转(inversed flow of control

 

proactor模型可以认为是reactor模型的一种异步实现,reactor要求收到请求后同步分发的请求处理器上,而proactor允许异步处理,定义(http://en.wikipedia.org/wiki/Proactor_pattern):

proactor也是事件处理的设计模式,在这种模式中,长时间运行的活动在单独的异步过程中处理,异步处理过程技术后,一个completion handler被调用。这个有些类似akka actor模型中,future对象的onCompleteonSuccessonFailed方法。

proactorace实现(http://www.cs.wustl.edu/~schmidt/PDF/proactor.pdf

 

线程为啥不好?为啥要用event代替?http://www.stanford.edu/~ouster/cgi-bin/papers/threads.pdf


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部