欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
TAO
您可以在Wikipedia上了解到此条目的英文信息 TAO Thanks, Wikipedia. |
TAO是一种C++ ORB,它兼容大部分CORBA 2.6标准,包括实时CORBA部分。
在线文档:http://docs.huihoo.com/ace_tao
TAO可以在很多平台上面使用,包括: Win32 (i.e., WinNT 3.5.x, 4.x, 2000, Embedded NT, XP, Win95/98, and WinCE using MSVC++, Borland's C++ Builder, and IBM's VisualAge on Intel and Alpha platforms), UNIX (e.g., Solaris 1.x and 2.x on SPARC and Intel, SGI IRIX 6.x, HP-UX 10.x and 11.x, Tru64UNIX 4.x, AIX 4.x and 5.x, SCO, 免费UNIX: Debian Linux 2.x, RedHat Linux 5.2, 6.x, and 7.x, FreeBSD, and NetBSD), 实时操作系统 (e.g., LynxOS, VxWorks, QnX Neutrino, OS9, and ChorusOS), OpenVMS, and MVS OpenEdition。我们计划要把TAO移植到所有ACE支持的平台上。另外,TAO可以与其它ORB很好的互操作(比如Orbix,JacORB,ORB Express,VisiBroker等)。通过这些,我们对IIOP的健壮性以及互操作性有充分的信心。 TAO在商业化项目中亦有广泛的应用,通过这里可以看到:TAO Press Release and TAO Success Stories 。
TAO包括的组件
每个部分描述如下:
- IDL Compiler -- TAO的IDL Compiler是建立在SunSoft IDL Compiler的增强版本上。实现了最新的CORBA2.X IDL-to-C++映射,包括POA。该IDL Compiler同时还支持Object-by-Value以及CORBA Messaging标准。另外,TAO IDL Compiler还可以生成实现异步方法调用的client和server需要的代码。
TAO IDL Compiler产生的compiled stubs/skeleletons具有非常高的效率。TAO IDL compiler可以生成支持本地C++ exceptions或者更具移植性的CORBA::Environment的stubs/skeletons. TAO IDL compiler还可以生成用于smart proxies的代码,它可以允许第三方的应用程序把一些特性"plug "进client 以及可移植拦截器(portable interceptors)用来实现Interceptor模式(Interceptor pattern)。
- 内部ORB协议引擎(Inter-ORB Protocal Engine) -- TAO包含一个高度优化的通讯协议引擎,它实现了CORBA 2.X的GIOP/IIOP 1.0,1.1和1.2。因此,TAO可以无障碍的同其它支持IIOP的ORB互操作。TAO的协议引擎支持静态和动态的CORBA编程,比如可以分别支持SII/SSI和DII/DSI。TAO还支持Dynamic Anys.
另外,TAO支持插件化的协议框架(pluggable protocols framework),这样GIOP消息亦可以在其它非TCP协议上面传输,包括共享内存,UDP单点传输和广播传输,UNIX-domain sockets,SSL(Secure Sockets)以及VME backplanes等多种方式。这个功能通常在一些DRE应用中要求比较高。
请阅读:Implementing Pluggable Protocols for TAO
- ORB核心 -- TAO核心为高性能和实时应用提供高效的、可扩展以及predictable的单向,双向以及可靠的单向同步或异步传输架构。它提供下面的同步模型:(1)reactive,(2)线程每连接(thread-per-connection),(3)线程池(thread pool)以及 (4)reactor-per-thread-priority(该模型是为实时系统专门优化设计的)。在以上所有的同步模型中,TAO ORB核心支持嵌套的向上调用。
TAO ORB核心是建立在ACE的模式以及框架(frameworks)的基础上。在TAO中应用的设计模式以及ACE框架包括:Acceptor and Connector,Reactor,Active Object,Half-Sync/Half-Async以及Service Configurator。(建议读者阅读ACE的设计及其相关著述)
- 可移植适配器(POA,Portable Object Adapter) -- TAO的POA设计采用了高优化的请求分发策略(request demultiplexing strategies),比如优秀的hashing and active demultiplexing ,用来区分持久或暂态对象(for object identified with either persistent or transient object references)。These strategies allow TAO'S POA to provide constant-time lookup of servants based on object keys and operation names contained in CORBA requests。
- 实现库(Implementation Repository),用它可以实现自动定位客户端请求的目的服务器。
- 接口库(Interface Repository), 提供IDL接口的运行时信息。
TAO提供的标准CORBA服务
all TAO services files are located under $TAO_ROOT/orbsvcs. Service Implementation Sub-directory
- A/V Streams Service orbsvcs/AV
- Concurrency Service orbsvcs/Concurrency
- Event Service orbsvcs/CosEvent
- Real-time Event Service orbsvcs/Event
- LifeCycle Service orbsvcs/LifeCycle
- Load Balancing Service orbsvcs/LoadBalancing
- Logging Service orbsvcs/Log
- Naming Service orbsvcs/Naming
- Property Service orbsvcs/Property
- Scheduling Service orbsvcs/Sched
- Security Service orbsvcs/Security
- SSLIOP Pluggable Protocol orbsvcs/SSLIOP
- Trading Service orbsvcs/Trader
- Time Service orbsvcs/Time
- Notification Service orbsvcs/Notify
中文介绍:
- 音频/视频流服务(Audio/Video Streaming Service) -- TAO的A/V流服务实现了标准的 Control and Management of Audio/Video Streams Specification.该服务曾与QuO framework集成和测试。
- 并发服务(Concurrency Service) -- TAO的并发服务用在分布式系统中,使客户端可以获取和释放不同类型的锁。注意它现在只支持CORBA同步服务的一个子集,即非事务部分。
- 事件服务(Event Service) -- TAO的事件服务采用标准的GIOP/IIOP协议实现在多个事件提供者和消费者之间的解藕通讯。
- 生命周期服务(Lifecycle Service) -- TAO的生命周期服务提供一个标准的方法用于定位,移动,复制和删除对象。
- 日志服务(Logging Service) -- TAO的日志服务实现了OMG 的Telecom Log Service标准,通过它,应用程序可以将日志记录发送到日志服务器上。
- 名字服务(Naming Service) -- TAO 的名字服务同时支持对象引用与串行化字符的持久和非持久映射。同时,TAO还支持可互操作的名字服务(Interoperable Naming Service).
- 通告服务(Notification Service) -- TAO的通告服务是对事件服务的增强,它增加了对事件的过滤以及QoS的功能。
- 持久状态服务(PSS,Persistent State Service) -- TAO的持久状态服务可以使服务持久化。
- 属性服务(Property Service) -- TAO的属性服务可以实现动态的将对象和其属性关联起来的功能。通常属性服务用在TAO的A/V流服务中传输QoS信息。
- 安全服务(Secutity Service) -- TAO提供了CORBA安全服务的部分实现。
- 时间服务(Time Service)-- TAO的时间服务用于多客户端的时间同步。
- 交易服务(Trading Service) -- TAO的交易服务实现了对象属性与对象引用的映射关系,根据对象属性,可以通过交易服务查找到对象引用。
另外,TAO还提供如下服务,这些服务在DRE应用系统中经常可以遇到:
- 负载均衡服务(Load Balancing Service) -- TAO的负载均衡服务采用轮转(round robin)以及minimum dispersion的算法实现在多台主机间的负载分配。
- 实时的事件服务(Real-time Event Service) -- TAO的实时事件服务是在标准CORBA事件服务基础上加上了对事件源以及消息类型的过滤,事件相关性,实时分发以及UDP/IP广播的功能。
- 计划服务(Scheduling Service)-- TAO's real-time Scheduling Service supports static rate monotonic scheduling and dynamic maximum urgency first scheduling to assign priorities and validate schedulability. It is currently integrated with TAO's Real-time Event Service, though we're ultimately planning to integrate this with the ORB. In addition, we are enhancing our Scheduling Service to conform to the Scheduling Service defined in the new Real-time CORBA specification, as well as the forthcoming dynamic scheduling specification.
链接
- http://www.cs.wustl.edu/~schmidt/TAO.html
- ACE http://www.cs.wustl.edu/~schmidt/ACE.html
- ACE and TAO @ GitHub
- ACE/TAO文档
<discussion>characters_max=300</discussion>