ICE介绍

     作一个分布式应用软件,最主要是中间件平台的选择,选择一个好的中间件平台可以让我们事半功倍。  首先介绍一下我们的开发环境,都是在linux操作系统下开发的,开发语言有c/c++,java,python,php等。

1 可供选择的中间件平台 

     我们当时调研了很多分布式中间件,其中我们比较熟知的中间件平台有DCOM和CORBA。 

     DCOM是微软的分布式解决方案,目前升级为了.Net,但只能用在微软的操作系统上,不能跨平台。因为我们完全是在linux环境下开发,就直接不予考虑。 

     CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范,是为解决分布式处理环境(DCE) 中,硬件和软件系统的互连而提出的一种解决方案。CORBA虽然有很多供应商,但很难找到一个供应商能提供所有的环境实现。CORBA的特点是大而全,互操作性和开放性非常好。 CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。 

     以上两个中间件平台都很复杂,进入门槛都比较高,熟练掌握都需要几个月的时间。  随着DCOM和CORBA的衰落,有很多新的分布式技术出现了。目前,选择一个中间件平台,我们可以从.NET/WCF,Java RMI,CORBA, Web Services这些当中选择。  其中.NET/WCF最严重的缺陷是它只能支持有限的几种语言和平台;Java RMI只是Java的解决方案;CORBA主要是太复杂,是个老化的平台;Web Services效率低,对于搜索引擎这种效率要求很高的系统是不适合的。 

      还有一种目前很流行的适合开发分布式系统的框架结构---ACE。 

     Adaptive Communication Environment (ACE) 是一种免费开放原代码的面向对象框架结构,该结构实现了许多并行通信软件的核心设计模式。ACE提供丰富的C++ wrapper facades, 以及可跨平台执行通信软件的基本任务的框架对象。ACE的目标用户是在UNIX和Win32平台上开发高性能通信服务和应用的开发者。ACE简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。通过在运行时将服务与应用动态链接进应用,并在一个或多个进程或线程中执行这些服务,ACE使系统的配置和重配置得以自动化。 

     ACE有很多优点,主要优点包括:   

     高可移植性 - ACE部件使书写某一操作系统的并行网络应用和快速移植到许多其他操作系统平台变的非常容易。而且,因为ACE是开发原代码、免费的软件,你不需担心在特定的操作系统或编译配置时被卡住。    

     增强的软件质量 - ACE部件是使用许多可增强通信软件关键的质量特性(如灵活性、可扩展性、可重用性与模块化等)的重要设计模式来设计的。   

     高效率与可预见性predictability - ACE通过小心的设计来支持对于不同应用质量的服务(application quality of service,QoS)的需求,包括对于延迟敏感的应用使用较少的延迟,要求较强通信带宽的应用提供高性能的服务,以及对实时性应用的可预见性等服务。   

     可容易的整合为高级的中间件 -- ACE 在TAO提供了可重用的部件与模式。而TAO是一个为高性能与实时系统应用优化过的,通过开放原代码实现了CORBA兼容标准。这样, ACE 与TAO被设计用来协同工作来实现复杂的中间件解决方案。   

     ACE可以说是个很好的开发分布式系统的框架,当时没有用它而选择了ICE也是个两难的选择。ACE很值得我们去学习研究,有兴趣的可以好好研究一下。以后有机会我也会把自己学得写出来。下面推荐一些学习资料:  

    a ACE Programmer's Guide (推荐,ACE的权威著作,原版读起来很轻松,由浅入深,写的非常好. 网上有电子版);   

    b cpp_network_prog_volume1 & cpp_network_prog_volume2. 网上都有相关下载,中文译本,银子买吧;  

    c 自适配通信环境中文技术文档, 马维达的主页上有, http://www.flyingdonkey.com/ 。

2 ICE介绍  

     ICE(Internet Communications Engine)是一个为普通的程序员而写的中间件平台,是由ZeroC公司开发的一个自由使用遵从GNU的GPL(GNU General Public Licens)许可的条款的开源软件。作为一个高性能的互联网通信平台,ICE包含了很多分层的服务和插件(Plug-ins),并且简单、高效和强大。

    ICE的应用可以使用各种语言编写,能够在不同的操作系统上运行,使用各种网络技术。ICE支持的语言有c++,java,c#,python,php,ruby,可以说常用的语言都支持了,很适合我们编写多个语言互操作的系统。 

    ICE的主要目标: 

    a 能够在不同环境中使用的面向对象中间件平台 

    b 提供支持满足开发各个领域分布式应用的功能集合 

    c 避免不必要的复杂性,易于学习和使用 

    d 提供有效使用网络带宽,内存和cpu的实现 

    e 提供内置安全实现 

    我们选择ICE最主要它功能强大高效,且使用简单,很容易就可以上手。目前ICE以及到了3.3版本,很多应用已经采用ICE做中间件了。关于更多的ICE的介绍,请访问http://www.zeroc.com。  后面我会陆续写出关于使用ICE的各种体会和更具体的技术介绍。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值