撰文:马维达
Marc Laukien:Object-Oriented Concepts, Inc的创办人和总裁。开放源码的ORBacus (原名OmniBroker,完全遵从CORBA的ORBA)的主要作者。在2001年IONA(著名的CORBA技术公司)收购OOC之后,他出任IONA负责CORBA开发的副总裁……
Michi Henning:IONA公司前首席CORBA科学家。CORBA编程的经典书籍Advanced CORBA Programming with C++的作者之一。他参与制订了若干OMG规范,并曾是OMG的C++ Revision Task Force的主席……
Bernard Normier:1995年加入IONA公司,并成为Orbix 2000的领头工程师之一。他是OMG的Persistent State Service规范的作者,并且直到2003年2月,他仍是C++和Transaction Service Revision Task Force委员会的主席……
……
看到这样一些CORBA“老兵”,倘若不加以说明,你一定会以为这是一篇关于CORBA的文章。但正如文章名和上面的简介中的一些措辞(“前”、“曾是”、“直到……仍是”……)所暗示的,本文将要讲述的,并非CORBA,而是对CORBA的“反叛”——这支“叛军”名为ZeroC公司,名不见经传;这家公司的旗舰产品叫Internet Communications Engine(Ice);而创办这家公司的,正是上述这些大名鼎鼎的前CORBA阵营中的领军人物。
一、 概览
按照ZeroC的说法,Ice是“一种现代的面向对象中间件,可用于替代像CORBA或COM/DCOM/COM+这样的中间件。在易于学习的同时,它为各种有着苛刻的技术要求的应用提供了强大的网络基础设施。在像SOAP或XML-RPC这样的技术太慢、或是没有提供足够的可伸缩性或安全性之处,正是Ice开始闪耀之地。”而如果把Ice看作是“Millennium CORBA,扔掉了在其生命期里累积的包袱,但却保留了它的全部好特性,增加了一些特性,并以一种明晰而整洁的方式设计它们”,或许更能够让你把握到Ice的本质;甚至于,如果你十分了解CORBA,了解它的长处和弱点,你又深入了解了Ice,你或许也会像给出上述评语的Frank Pilhofer(又一个CORBA专家!)那样叫道:“Way to go!”。
那么,与CORBA相比,Ice到底有何优点?在回答这个问题之前,先让我们看一看Ice拥有哪些值得夸耀的特性:
- 面向对象的规范语言。
- 易于使用的C++和Java映射。在未来的版本中还将支持更多的映射(比如C#)。
非常高效的协议,还可以进行协议压缩。 - 异步方法调用(asynchronous method invocation)和异步方法分派(asynchronous method dispatch)。
- 动态的传输插件。
- TCP/IP和UDP/IP支持,以及基于SSL的安全性。
- Ice防火墙解决方案,支持回调。
- 使用XM