ACE是一个开源框架,它为开发高性能、分布式实时和嵌入式系统提供了许多组件和模式。ACE为套接字、解复用循环、线程和同步原语提供了强大而高效的抽象。
TAO(ACE-ORB)是CORBA对象请求代理(ORB)的开源实现,它是使用ACE框架中的组件和模式构建的。
CIAO(Component Integrated ACE ORB)是构建在TAO之上的CORBA组件模型(CCM)的开源实现。
DAnCE是构建在TAO之上的部署和配置标准(D&C)的开源实现。
OpenDDS是OMG数据分发服务(DDS)的一个开源实现
2.win7下安装
//环境
vs2015
perl5.18.4 x86
ACE+TAO-6.5.10
OpenDDS-DDS-3.12.2
1)安装perl
解压安装,安装完成后查看perl -v
2)安装ACE+TAO
//解压、设置环境变量
解压到目录,例如我把ACE和DDS都放到了openDDS的目录下,C:\openDDS\ACE_wrappers,C:\openDDS\DDS
设置环境变量:
添加方环境变量方法自己百度,
ACE_ROOT= C:\openDDS\ACE_wrappers//就是你的存放路径
TAO_ROOT= C:\openDDS\ACE_wrappers\TAO
在Path后面加:%ACE_ROOT%\lib%ACE_ROOT%\bin
注意分号
//添加config.h
在%ACE_ROOT%/ace下添加config.h文件,内容为
//生成工程文件
打开 ACE_vc14.sln,环境选择debug-x86
项目-重订解决方案目标-确定
生成解决方案
以上ACE的编译完成,然后进入TAO目录,按照上述步骤生成TAO_ACE_vc14.sln
3)编译OpenDDS
解压OpenDDS到相关文件,设置环境变量
DDS_ROOT=C:\openDDS\DDS //这里是你自己的解压目录
添加Path:%DDS_ROOT%\lib%DDS_ROOT%\bin
使用vs生成工具生成DDS的VS工程文件
cd DDS
.\config
报错时,修改config文件,找到报错行,修改compiler_version,指定版本
$opts{'compiler_version'}="vc14"
打开生成的dds.sln,按照ACE的步骤生成解决方案
4)测试
OpenDDS-3.12.2\examples\DCPS\Messenger_Imr下执行
run_test.pl ,执行结果为test passed为成功
3.opendss使用
1)新建 Messenger.idl文件
module Messenger {
#pragma DCPS_DATA_TYPE "Messenger::Message"
#pragma DCPS_DATA_KEY "Messenger::Message subject_id"
struct Message {
string from
string subject
long subject_id
string text
long count
}
}
2)编译生成文件
tao_idl Messenger.idl
opendds_idl Messenger.idl
tao_idl -I../OpenDDS-3.12.2 MessengerTypeSupport.idl
您好亲,很荣幸为你回答问题,关于您提出的问题详细如下:ACE作为通讯方面的开源架构,不但用c++实现,而且用JAVA实作的架构已经可以使用了,由此看来掌握ACE成为每个开发通讯程序的程序员的必备技能。CE的库分为4个层次: OS适配层 该层将ACE的较高层和与OS机制相关联的平台特有的依赖屏蔽开来。 OO包装层 封装并增强在像Win32和UNIX这样的现代操作系统上可用的并发、进程间通信(IPC)、以及虚拟内存机制。应用可以通过有选择地继承、聚合(aggregating)、和/或实例化ACE包装类属来合并和编写这些组件 框架 包括反应器,服务配置器,流。 ACE 的通讯模式包括接受器-连接器,前摄器两种主要的通讯模式。前摄器理解可以理解为象Windws的Overlapper形式的一种利用操作系统的挂钩进行快速异步处理IO通讯的一种方式。它在某种程度上类似于一种软中断。用户只负责编写并注册相应的挂钩, 操作系统负责j监测事件发生,并调用相应的挂钩。接受器-连接器模式是我们经常使用的通讯模式。相对于连接器,接收器模式是服务器处理程序经常重复编写的救世主。程序员在编写服务器处理程序时,无论是采用异步通讯还是阻塞通讯,单个线程还是多个线程,都可以采用接收器方式,由此可见接受器-连接器模式的强大。接受器-连接器模式的服务器端用接收器,客户端使用连接器连接服务器(当然可以采用其他方式连接到采用接收器的服务器上),相对于连接器,接受器简化了服务端编程的复杂度,使程序员从大量重复的工作中解脱出来,并且编写出成熟稳定的服务处理程序,对比以前只有少数具有丰富的通讯程序编写经验的人才能写出稳定健壮的服务处理程序(如web服务器),ACE的接收器可以称之为改写这一历史的巨人。 接受器模式是ACE中最闪耀之处,是通讯程序编写史上的分水岭,他的强大足以使我们震惊。希望我的回答能帮助到您,如果对我的服务满意,请给个赞哦,祝您一切顺利!