CORBA Programming with TAO - 1.Start(基本概念)

TAO在CORBA编程中的深度应用 在信息技术快速发展的今天,分布式对象技术已成为构建复杂应用系统的基石。它允许不同网络节点上的软件组件,能够通过定义良好的接口进行交互。CORBA(Common Object Request Broker Architecture)是这种技术中的佼佼者,为构建和部署分布式系统提供了强大的标准。TAO(The ACE ORB)是基于CORBA标准的一个高效实现,专为实时系统设计,具有出色的性能和可扩展性。 阅读详情

CORBA Programming with TAO - 1.Start(基本概念)

CORBA Programming with TAO - 1.Start(基本概念)

摘要:

简要介绍CORBA的基本原理,并解释POA、stub、skeleton、servant等重要概念。

一、CORBA及TAO简介

CORBA是一个为简化跨平台应用而提出的规范,它独立于网络协议、编程语言和软硬件平台,支持异构的分布式计算环境和不同编程语言间的对象重用。CORBA可以作为不同平台应用间信息传递的中间件,CORBA通过引入经过充分验证的有效的框架结构和通信手段,最大限度地简化了网络通信相关应用的设计与开发,使得我们可以专注于业务逻辑的实现,而无需关心通信的细节。CORBA曾在无数文章中被称作“软总线”,以表明它作为数据传递通道的基本特性。

现在存在众多CORBA实现,既有商用的ORBacus、VisiBroker,也有一些优秀的开源实现,如:TAO、omniORB、MICO等。由于各实现遵从相同的规范,接口基本一致,所以在熟练应用一种CORBA实现后,转而使用其它实现时,一般不会存在太大的障碍。

 

TAO(The ACE ORB)是美国华盛顿大学的Douglas C. Schmidt教授领导开发的一个实时CORBA平台,它是一个免费的开放源码项目,用C++语言开发,符合CORBA2.6规范。

支持语言: C++

支持平台: Win32,常见的各种Unix/Linux,实时操作系统如VxWorks等等。在所有的CORBA实现中,TAO支持的平台是最多的。

支持的服务: Naming、Event、Notification、Security、Time、Scheduling、Logging、Lifecycle、Trading、Concurrency、Lifecycle、A/V Streaming、Load balancing等。

本系列文章将以当前最新的ACE-5.5+TAO-1.5+CIAO0.5为例,简要介绍如何应用TAO进行CORBA C++编程,其中部分内容(尤其是编译器配置相关的内容)是Windows平台特有的,但其它大多数信息在各平台上都是相同或者类似的。

二、基本概念

本文不打算深入介绍CORBA相关的理论基础(已有很多书籍、文章讨论了这些内容),但在进入下一主题前,为了便于后续问题的讨论,这里简要介绍一下CORBA的基本原理,并对几个重要的基本概念进行解释,以便为没有相关知识的朋友扫清障碍。下图是CORBA的基本模型:

 图中除上面那根灰线(有点浅,看不清的请慢慢找,^_^)以上的两个部分需要我们直接介入外,其他部分基本可以由IDL编译器自动生成或由CORBA实现为我们完成。借助CORBA提供的中间件机制,我们在进行方法调用时,无需考虑被调用对象所在的具体位置,而是像调用一个本地模块的方法一样“直接”与其通信(因此,有些应用中,CORBA也被用于本地进程间通信,以降低各模块间的耦合度,同时也便于系统结构的调整)。

上图主要包括以下几个组成部分:

·        Client        即客户程序,Client通过调用服务程序提供的接口实现特定功能。

·        Object       CORBA Object是一个语言无关的虚拟的实体,它可以由ORB定位,并可被客户程序请求调用,它最终由某种语言来具体实现,从而成为应用程序的一部分。

·        Servant     即实例化的Object,Servant是组成服务程序,具体为Client提供服务的某个运行中(且被注册到OA)的C++/Java(或其他语言)对象。Object与Servant是一对多的关系,一个Object可以被实例化多次,注册到一个或多个OA中为一个或多个Client提供服务,各Servant对应不同的IOR(多个IOR具有相同的Type信息,但唯一标识不同),并且,每个Servant都可以由IOR唯一确定,对于持久Object,该IOR在两次启动同一系统时不会发生变化,除非服务程序所在主机IP或配置信息等发生改变,而对于非持久Object,该IOR在两次启动同一服务程序时,总是变化的(因为其中往往包含一个时间戳)。

·        Stub          即桩,或称存根,Stub负责“假扮”Servant为Client提供一个本地化的接口,并负责与ORB进行交互,完成调用请求的列集(marshaling,即打包)与散集(unmarshaling,即解包)。列集的主要作用是按双方ORB可以识别的方式对需要传递的数据进行格式化,而散集则将收到的数据中还原成上层应用可以理解的内存数据形式,对于远端指针,散集时ORB还负责分配相应的内存空间,并将指针的内容复制到本地内存空间以为本地应用提供一个远端指针的镜像,从而保证本地应用对远端指针的“透明”访问。

·        Skeleton    与Stub对应,负责调用参数在Server端的解包和调用返回的打包。

·        ORB Core 屏蔽底层通信细节的中间件,所有远程访问请求在Client和Server端的ORB间被传递,使得上层应用无需关注平台、语言、网络结构等方面的差异。

·        Object Adapter(OA)   OA是ORB与Servant之间的桥梁,主要负责:

1、产生对象引用;

2、激活Servant或反之;

3、将请求分解后传递给对应的Servant;

4、与Skeleton配合完成对Servant提供方法的调用。

OA与Servant也是一对多的关系。

下面的图形进一步说明了ORB、OA、Skeleton、Servant之间的关系:

关于OA的更为详细的信息,详见参考1。

三、编译TAO

TAO可以从如下地址获得:

http://deuce.doc.wustl.edu/Download.html

由于TAO是以源码包的形式发布的,因此,获得TAO源码包后,需要自行在所使用的平台上编译TAO。由于下一系列《体验CORBA对象模型CCM》同样涉及CIAO的编译问题,因此下面将单独用一节内容来介绍如何在Windows平台上编译ACE+TAO+CIAO源码包。

参考:

1、Irfan Pyarali, Douglas C. Schmidt. An Overview of the CORBA Portable Object Adapter. http://www.cs.wustl.edu/~schmidt/PDF/POA.pdf

2、Michi Henning, Steve Vinoski. Advanced CORBA Programming with C++. Addison-Wesley, 1999.

3、Mentoya. TAO使用指南. http://www.huihoo.com/ace_tao/tao_guide.html

 
TAO CORBA CPP 编程指南 C++ TAO CORBA CPP 编程指南 C++ ACE 立即下载

相关推荐

基于TAO的CORBA编程详细介绍.rar

网上收集的CORBA Programming with TAO 资料,写的挺好,共享给大家

CORBA、ACE、TAO之间的关系

最近项目用到了CORBA,所以理一下这三者的关系: ACEis an open-source framework that provides many components andpatternsfor developing high-performance, distributed real-time and embedded systems. ACE provides powe...

u012159565的专栏 2336

《CORBA Programming with TAO》

用TAO进行CORBA编程的经典文章,对CORBA编程初学者会有很大帮助。是我自己从网上整理的,因网上的博客分多页不便下载收藏,故将其整理成word文档

实时CORBA平台TAO的安装和使用

实时CORBA平台TAO的安装和使用 这里以ACE-5.4+TAO-1.4+CIAO-0.4.tar.gz为例。 一.     Win32+VC6.0下编译和安装ACE和TAO 将网上下载的TAO软件包解压缩到某个目录(本文为C:\),该目录下会有ACE_wrappers目

hu_zhi_de的专栏 1135

基于TAO的CORBA程序设计

简单介绍了基于TAO的CORBA实现框架和基本概念。并有可执行的C++代码片段,对于刚解除CORBA和TAO的同学来说,这是个不错的入门资料。

人大金仓数据库Kingbase FlySync同步程序安装

Kingbase FlySync同步程序(以下简称 KFS)是面向异地容灾、数据集中共享的场景推出的具备在异构数据平台间实现实时、增量数据同步的工具类产品,主要采用了物理日志解析技术,帮助用户解决不同数据平台的数据间可实现任意方向实时移动流转的问题,并保证此过程中数据不丢失,状态可监控,流转数据量可统计。KFS 需要安装的主要组件有 2 个,分别是后端同步程序和管理控制平台,另外KFS的部署方式也有2种,为分离部署何集中部署•集中部署:KFS与数据库部署在同一机器上。

weixin_44312518的博客 1178

CORBA Programming with TAO (基本概念)

一、CORBA及TAO简介     CORBA是一个为简化跨平台应用而提出的规范,它独立于网络协议、编程语言和软硬件平台,支持异构的分布式计算环境和不同编程语言间的对象重用。CORBA可以作为不同平台应用间信息传递的中间件,CORBA通过引入经过充分验证的有效的框架结构和通信手段,最大限度地简化了网络通信相

wangyu1337的专栏 713

CAN总线BusOff恢复机制详解:快慢恢复策略在车载网络中的实战应用

本文深入解析了CAN总线BusOff恢复机制,重点阐述了快慢恢复策略在车载网络中的工程应用。通过对比NXP S32K与STM32平台的实现代码,并结合CANoe仿真与参数优化方法,为工程师提供了从理论到实战的完整解决方案,旨在提升车载网络的可靠性与功能安全。

7up55的博客 614

CORBA Programming with TAO - 1.Start(基本概念) 转载

CORBA Programming with TAO - 1.Start(基本概念)摘要:简要介绍CORBA的基本原理,并解释POA、stub、skeleton、servant等重要概念。一、CORBA及TAO简介CORBA是一个为简化跨平台应用而提出的规范,它独立于网络协议、编程语言和软硬件平台,支持异构的分布式计算环境和不同编程语言间的对象重用。CORBA可以作为不同平台应用间信息传递的中

chen_xiansheng的专栏 410

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

Windows服务器XMRig挖矿病毒深度清除实战指南

XMRig是一种广泛用于Monero(XMR)加密货币挖矿的开源工具,其在Windows环境中的持久化机制已远超传统木马范畴,融合WMI事件订阅、服务伪装、PowerShell无文件执行与注册表隐写等多重反检测技术。理解其基于行为而非特征的生存逻辑,是实现有效检测与根除的前提。该技术具备强隐蔽性、高自愈性与网络通信合法化特征,常见于RDP弱口令爆破、SMB共享泄露及PowerShell远程执行等非漏洞类入侵场景。本文聚焦Windows原生命令与Sysinternals工具链,提供覆盖进程定位、WMI清理、服

weixin_30535843的博客 730

TAO使用指南

1. 什么是TAO?TAO是美国华盛顿大学的CORBA界大牛Douglas C. Schmidt博士领导开发的一个实时CORBA平台. 它是一个开放源码项目, 所以是完全免费的. 用C++语言开发. 符合CORBA2.6版本.支持语言: C++支持平台: Win32, 常见的各种Unix, Linux, 实时操作系统如VxWorks等等. 在所有的CORBA平台中, TAO支持的平台应该是最多的.

bitman的专栏 3729

工业机器人抓取目标检测与抓取姿态估计系统:基于YOLOv12与Cornell Grasping Dataset

工业机器人抓取是自动化生产中的核心环节,而精确的目标检测和抓取姿态估计是实现高效抓取的关键。本文将详细介绍如何构建一个完整的工业机器人抓取系统,该系统结合了最新的YOLOv12目标检测算法和Cornell Grasping Dataset的抓取姿态估计,并提供了用户友好的UI界面。本文详细介绍了一个完整的工业机器人抓取系统,该系统结合了YOLOv12目标检测和基于Cornell Grasping Dataset的抓取姿态估计。我们将使用PyQt5构建一个用户友好的界面,集成目标检测和抓取姿态估计功能。

YOLO 573
上一篇: 关于ACE_Task::last_thread()
下一篇: CORBA Programming with TAO - 2.Compile Source Code(编译ACE/TAO/CIAO)
Stone
博客等级 码龄21年 1715粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值