




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ICE和ACE-高效的网络编程中间平台简介-hustlg的博客ICE和ACE-高效的网络编程中间平台简介关键词:ICEACECOMDCOMCORBAICE和ACE-高效的网络编程中间平台简介自从上世纪九十年代以来,计算工业一直在使用像DCOM和CORBA这样的面向对象中间件平台。在使分布式计算能为应用开发者所用的进程中,面向对象中间件是十分重要的一步。开发者第一次拥有了这样的可能:可以构建分布式应用中间件平台会照管大部分网络杂务,比如整编(marshaling)和解编(unmarshaling)(对数据进行编码与解码,以进行传送)、把逻辑对象地址映射到物理传输端点、根据客户和服务器的原生机器架
2、构改变数据的表示,以及应需自动启动服务器。然而,由于一些原因,无论是DCOM还是CORBA,都未能成功占领大部分计算市场:(1)DCOM是Microsoft的独家解决方案,在异种网络中,各种机器会运行多种操作系统,无法使用COM。(2)DCOM不能支持大量对象(数十万或数百万),这在很大程度上是它的分布式垃圾收集机制来的开销造成的。(3)尽管有多家供应商提供CORBA产品,几乎不可能找到一家供应商,能够为异种网络中的所有环境提供实现。尽管进行了大量标准化工作,不同的CORBA实现之间仍缺乏互操作性,从而不断地造成各种问题;而且,由于供应商常常会自行定义扩展,而CORBA又缺乏针对多线程环境的规
3、范,对于像C或C+这样的语言,源码兼容性从未完全实现过.(4)DCOM和CORBA都过于复杂。在异种环境中,让DCOM和CORBA共存从来都不是一件容易的事情:尽管有供应商提供互操作产,这两种平台之间的互操作从来都不是无缝的,而且难以管理,会产生互不相连的技术孤岛。2002年,Microsoft.NET平台取代了DCOM。但尽管.NET提供了比DCOM更强大的分布式计算支持,它仍然是Microsoft的独家解决方案,因而不是异种环境下的选择。另一方面,CORBA近年来已停滞不前,许多供应商离开了市场,给消费者留下了不再受到广泛支持的平台;剩下的少数供应商在进一步标准化方面的兴趣也已衰退,致使C
4、ORBA规范中的许多缺陷未能得到解决,或是在它们被报告多年之后才得到解决。在DCOM和CORBA衰败的同时,分布式计算社群对SOAP和webservices产生了浓厚的兴趣。使用无处不在的WWW基础设施和HTTP来开发中间件平台的想法十分迷人至少在理论上。SOAP和webservices曾经允诺要成为Internet上的分布式计算通用语言。但尽管引发了很大的公众效应,发表了许多论文,webservices却没有能兑现其允诺:用webservices架构开发的商业系统非常少。其原因是:无论是在网络带宽方面,还是在CPU开销方面,SOAP都会给应用造成严重的性能恶化,以致于该技术无法适用于许多有苛
5、刻性能要求的系统。尽管SOAP提供了"on-the-wire"规范,要开发现实的应用,那仍是不够的,因为该规范提供的抽象层次太低。应用可以把各种SOAP消息拼凑在一起,但这样做极其繁琐而易错。缺乏更高级的抽象促使供应商提供各种应用开发平台,使遵从SOAP的应用开发自动化。但是,除了协议一级,这些开发平台完全没有标准化,不可避免是私有的,所以用一家供应商开发的应用无法与其他供应商的中间件产品一起使用。关于SOAP和webservices的架构安全性,有一些严重的担忧。这些使人不快的选择,ZeroC,Inc.决定开发InternetCommunicationsEngine,简称
6、Ice。Riverace公司()采用开放源码商业模式对ACE进行商业支持。此外,ACE开发组的许多成员目前正在进行TheACEORB(TAO,/schmidt/TAO.html)的开发工作。ACE自适配通信环境(ADAPTIVECommunicationEnvironment)是可自由使用、开放源码的面向对象(OO)框架(framework),它实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可重用C+包装外观(wrapperfacade)和框架组件,可跨多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服
7、务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。ACE的目标用户是高性能和实时通信服务和应用的开发者。它简化了使用进程间通信、事件多路分离、显式动态链接和并发的OO网络应用和服务的开发。此外,通过服务在运行时与应用的动态链接,ACE使系统的配置和重配置得以自动化。ICE(InternetCommunicationsEngine)是ZeroC提供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础对象操作和数据库操作封装在这一层,在业务逻辑层以及表现层(java
8、,php,.net,python)进行更丰富的表现与操作,从而实现比较好的架构。基于ICE的数据层可以在未来方便的进行扩展。ICE支持分布式的部署管理,消息中间件,以及网格计算等等。Ice和ACE在性能与开发简便上深化了.CORBA这是一个老牌的分布式中间件平台,并且以其标准实现困难,开发者使用困难而著称。Ice采用的许多思想也能在CORBA及以前的一些分布式计算平台中找到。在有些方面,Ice与CORBA非常接近,而在另外一些方面,它们的差异则意义深远,并且在架构上有着广泛的影响。如果你曾经使用过CORBA,了解这些差异十分重要。尽管从表面看来,Ice对象模型与CORBA对象模型是一样的,但它
9、们在一些重要方面却有所不同。类型系统Ice对象和CORBA对象一样,都只有一个派生层次最深的(mostderived)主接口。但Ice对象可以提供其他接口作为facets。重要的是要注意到,一个Ice对象的所有facets都具有相同的对象标识,也就是说,客户看到的是具有多个接口的单个对象,而不是看到多个对象、每个对象有不同的接口。facets提供了极大的架构灵活性。特别地,它们为版本管理问题提供了一种解决途径:你可以简单地给已经存在的对象增加新的facet,轻松地扩展某个服务器的功能,而不会破坏已有的、已经部署的客户。代理语义Ice代理(CORBA对象引用的等价物)不是不透明的。客户只要知道对
10、象的类型和标识,无需其他系统组件的支持,就可以创建出代理(在使用间接绑定时,不必了解对象的传输地址)。ACE的好处包括:(1)增强可移植性:在ACE组件的帮助下,很容易在一种OS平台上编写并发网络应用,然后快速地将它们移植到各种其他的OS平台上。而且,因为ACE是开放源码的自由软件,你无需担心被锁定在特定的操作系统平台或编译器上。(2)更好的软件质量:ACE的设计使用了许多可提高软件质量的关键模式,这些质量因素包括通信软件灵活性、可扩展性、重用性和模块性。(3)更高的效率和可预测性:ACE经仔细设计,支持广泛的应用服务质量(QoS)需求,包括延迟敏感应用的低响应等待时间、高带宽应用的高性能,以
11、及实时应用的可预测性。(4)更容易转换到标准的高级中间件:TAO使用了ACE提供的可重用组件和模式。它是CORBA的开发源码、遵循标准的实现,并为高性能和实时系统作了优化。为此,ACE和TAO被设计为能良好地协同工作,以提供全面的中间件解决方案。ACE还包含一个高级的网络编程框架,集成并增强了较低层次的C+包装外观。该框架支持将并发分布式服务动态配置进应用。ACE的框架部分包含以下组件:(1)事件多路分离组件:ACEReactor(反应器)和Proactor(前摄器)是可扩展的面向对象多路分离器,它们分派应用专有的处理器,以响应多种类型的基于I/O、定时器、信号和同步的事件。(2)服务初始化组
12、件:ACEAcceptor(接受器)和Connector(连接器)组件分别使主动和被动的初始化任务与初始化一旦完成后通信服务所执行的应用专有的任务去耦合。(3)服务配置组件:ACEServiceConfigurator(服务配置器)支持应用的配置,这些应用的服务可在安装时和/或运行时被动态装配。(4)分层的流组件:ACEStream组件简化了像用户级协议栈这样的由分层服务组成的通信软件应用的开发。(5)ORB适配器组件:通过ORB适配器,ACE可以与单线程和多线程CORBA实现进行无缝集成。ACE框架组件便利了通信软件的开发,它们无需修改、重编译、重链接,或频繁地重启运行中的应用,就可被更新和
13、扩展。在ACE中,这样的灵活性是通过结合以下要素来获得的:(1)C+语言特性,比如模板、继承和动态绑定,(2)设计模式,比如抽象工厂、策略和服务配置器,以及(3)OS机制.除了OS适配层、C+包装外观和框架组件,ACE还提供了包装成自包含组件的标准分布式服务库。尽管这些服务组件并不是ACE框架库的严格组成部分,它们在ACE中扮演了两种角色:1. 分解出可重用分布式应用的“积木”:这些服务组件提供通用的分布式应用任务的可重用实现,比如名字服务、事件路由、日志、时间同步和网络锁定。2.演示常用的ACE组件的用例:这些分布式服务还演示了怎样用像Reactor、
14、ServiceConfigurator、Acceptor和Connector、ActiveObject,以及IPC包装这样的ACE组件来有效地开发灵活、高效和可靠的通信软件。Ice是一种面向对象的中间件平台。从根本上说,这意味着Ice为构建面向对象的客户服务器应用提供了工具、API和库支持。Ice应适合在异种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不同的操作系统和机器架构上,并且可以使用多种网络技术进行通信。无论部署环境如何,这些应用的源码都是可移植的。ICE的好处包括:(1)客户无需询问外部的查找服务,比如命名服务,就能够创建代理。实际上,对象标识和对象的名字被认为是同一
15、事物。这样能够消除命名服务的内容与实际情况失去同步所可能带来的问题;同时,为了让客户和服务器正常工作、必须正常运转的系统组件的数目也会减少。(2)通过创建所需的初始对象的代理,客户可以轻松地进行自引导(bootstrap)。这样就无需使用单独的引导服务了。3. )不需要对串化代理进行不同的编码。一种统一的表示就足够了,而这种表示是人可以阅读的。这样就避免了CORBA(IOR、corbaloc,以及corbaname)所带来的各种复杂问题。开发者多年使用CORBA的经验表明,对象引用的不透明性很成问题:它不仅需要更加复杂的API和运行时支,还会妨碍我们构建现实的系统。为此,CORBA增加了像co
16、rbaloc和corbaname这样的机制,以及用于进行引用比较的is_equivalent和hash操作(这些操作的定义有问题)。所有这些机制都降低了对象引用的不透明性,但CORBA平台的其他部分仍试图维持引用是不透明的这样一个错觉。结果,开发者在两方面所得的东西都是最糟的:引用既不是完全不透明的,也不是完全透明的这样所带来的混乱和复杂性相当大。对象标识Ice对象模型假定对象标识在任何地方都是唯一的(但并没有把这个要求强加给应用开发者)。这种对象标识的主要好处是,你可以迁移服务器,也可以把多个不同服务器中的对象合并进一个服务器,而不用考虑名字冲突的问题:如果每个Ice对象都具有唯一的标识,它
17、就不可能与另外的域中的对象的标识发生冲突。Ice对象模型还使用了强对象标识:使用本地的客户端操作,你就能确定两个代理表示的是否是同一个对象(在CORBA中,要进行可靠的标识比较,你必须调用远地对象上的操作)。本地标识比较要高效得多,而且对于有些应用领域而言(比如分布式事务服务),这样的比较也至关紧要。Ice在架构上提供的好处(1)面向对象的语义:Ice“在线路上”完全保留了面向对象范型。所有的操作调用都使用迟后绑定,所以操作的实现的选定,是根据对象在运行时的(而不是静态的)实际类型决定的。(2)持同步和异步的消息传递:Ice提供了同步和异步的操作调用和分
18、派,并且通过IceStorm提供了发布订阅消息传递机制。这样,你可以根据你的应用的需要来选择通信模型,而不必把你的应用硬塞进某种模型里。(3)支持多个接口:通过facets,对象可以提供多个不相关的接口,同时又跨越这些接口、保持单一的对象标识。这提供了极大的灵活性,特别是在这样的情况下:应用在发生演化,但又需要与更老的、已经部署的客户保持兼容。(4)机器无关性:客户及服务器与底层的机器架构屏蔽开来。对于应用代码而言,像字节序和填充这样的问题都隐藏了起来。(5)语言无关性:客户和服务器可以分别部署,所用语言也可以不同(目前支持C+、Java,以及PHP(客户端)客户和服务器所用的Slice定义建立两者之间的接口合约,这样的定义也是它们唯一需要达成一致的东西。(6)操作系统无关性:IceAPI完全是可移植的,所以同样的源码能够在Windows和UNIX上编译和运行。(7)线程支持:Iceruntime完全是线程化的,其API是线程安全的。作为应用开发者,(除了在访问共享数据时进行同步)你无需为开发线程化的高性能客户和服务器付出额外努力。(8)传输机制无关性:Ice目前采用了TCP/IP和UDP作为传输协议。客户和服务器代码都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年嵩山少林武术职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年山西青年职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年山东畜牧兽医职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年山东水利职业学院高职单招(数学)历年真题考点含答案解析
- 2025年宝鸡三和职业学院高职单招语文2019-2024历年真题考点试卷含答案解析
- HSE知识课件教学课件
- 2025年安庆医药高等专科学校高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年宁夏民族职业技术学院高职单招(数学)历年真题考点含答案解析
- 2025年宁夏工商职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 医院医疗救护工作总结与未来计划
- 2023年托幼机构幼儿园卫生保健人员考试题库及参考答案
- 2023年IDSA念珠菌病指南中文翻译
- 天生为卤人生为盐 课件
- 中医护理耳穴压豆课件
- YS/T 713-2009干式变压器用铝带、箔材
- YB 4068-1991热轧环件
- 阿尔茨海默病康复课件
- 老年人常见病防治与中医养生课件
- 雨果与《巴黎圣母院》课件
- 毕业论文-基于单片机的分贝计设计与实现
- 青岛版一年级下册数学期中知识点分类整理复习完美版
评论
0/150
提交评论