CORBA的兴衰

合集下载

CORBA技术剖析及其应用

CORBA技术剖析及其应用

CORBA技术剖析及其应用梁剑,李晓,胡彬华(中国科学院新疆物理研究所,新疆乌鲁木齐830011)摘要:为了满足复杂的、大型的分布式应用开发的需求,作为基于组件对象模型的分布式技术规范,CORBA 和COM/DCOM技术被广泛采用。

主要分析CORBA技术的标准、结构、特点及其作用,并提出了CORBA对象的具体实现方法;同时也给出了CORBA技术和COM/DCOM技术相应的对比。

关键词:分布式应用;CORBA;COM/DCOM中图法分类号:TP311.5文献标识码:A文章编号:1001-3695(2002)08-0091-03The Anatomy and Application of CORBA TechnologyLIANG Jian,LI Xiao,HU Bin-hua(The Xinjiang Institute of Physics,the Chinese Academy of Sciences,Wulumugi Xinjiang830011,China)Abstract:In order to meet that need of the large-scale and complicated development of distributed application,as the distributed technology standard of component model,CORBA and COM/DCOM technologies are used widely.In this paper,we analyze the criterion,structure,char-acteristic and function of CORBA technology,and give an achieving method.In addition,we have given the comparison between CORBA and COM/DCOM technologies.Key words:Distributed Application;CORBA(Common Object Reguest Broker Architecture);COM/DCOM1引言目前,开发分布式多层应用系统似乎是所有开发工具、数据库厂商、Internet/Intranet、工具,以及操作系统厂商都积极提倡的应用系统结构。

CORBA技术及其发展

CORBA技术及其发展

l 6
重 庆 电 力 高 等 专 科 学 校 学 报
第 1 卷 2
现。从这个意义上讲 ,O B C R A是一种 中间件 ( i Md —
def ) lwl 技术 。 l  ̄
关, 那么 I L 则使 C R A做到语言无关 。 D, OB 正像 其名 字 中显示 的那样 ,D IL仅仅 定义 接 口, 而不定义实现 , 类似于 C中的头文件。实际上
Ma . 2 0 r 07
C R A技术及其发展 OB
博 格 利
( 大连民族学院 , 辽宁 大连 160 ) 160
【 要】 摘 介绍一种分布式计算技术 C R A的体系结构、 OB 相关概念及其发展历史。C R A是基于面向对象技 OB
术的 , 它能解决远程对象之 间的互操 作问题 。C R A是真 正跨 平台的 , 台独立性是 C R A的特点之一 。任 OB 平 OB 何 语言都能制作 C R A组 件 ,O B OB C R A组件在任何 语言下 都能使 用。因此 ,O B C R A是 一种异 构平 台下 的语言
现 ( betm lm nao ) 而客 户方 要访 问服务 器 O jc pe etin , I t
t t e是为了实现分布式计算而引入的。 eu ) cr 对象上 的方法 , 则要通过客户桩。而双方又要通过 与 过 去 面 向 过 程 的 R C( e t rcdr 而 O B O j t eus B kr对象请 求代理) P R mo Poeue e R ( b c R qe r e, e to 总 Cl 不同 ,O B a) 1 C R A基于面向对象技术 , 它能解决远 线通信 。 程对象 之 间 的互 操 作 问 题。M c Sf i o o r t的 D O CM ( ir ue o pnn O jc Moe) 是 解 决 这 Dsi tdC m oet bet d1 也 tb 问题 的,但 它 基 于 Wi o s操 作 系 统 , 管 nw d 尽 DO C M已有在其他操作系统 , SnSl i Dsa 如 u o r , it as l U i, B V n IM M S上的实现 , 毫无疑 问, x 但 只有在微 软的操作系统上才会实现得更好 。而只有 C R A O B 是真正跨平台的, 平台独立性正是 C R A的初衷 OB 之一。另一种做到平 台无关性 的技术是 Jv M aaR I

基于TAO(The ACE ORB)的CORBA编程

基于TAO(The ACE ORB)的CORBA编程

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::ORB_var orb=CORBA::ORB_init (argc, argv); // Find the Naming Service CORBA::Object_var NamingObj=orbNamingObj=orb>resolve_initial_references("NameService"); cout<<"Initialize NameService...OK"<<endl; CosNaming::NamingContext_var root=CosNaming::NamingContext::_narrow(NamingObj.in( )); if(CORBA::is_nil(root.in())) { cerr<<"Nil Naming Context reference"<<endl; return 1; } // Get reference to Root POA CORBA::Object_var RootObj=orbRootObj=orb>resolve_initial_references("RootPOA"); PortableServer::POA_var poa=PortableServer::POA::_narrow(RootObj.in()); cout<<"Create RootPOA...OK"<<endl;
CORBA简介 CORBA简介
语言映射 IDL (Interface Description Language) 是 一种说明对象接口的语言。可以将IDL映射成不 一种说明对象接口的语言。可以将IDL映射成不 同的语言,例如:可以映射成C++代码,JAVA 同的语言,例如:可以映射成C++代码,JAVA C++ 代码等。 对象调用示意图

本土运动品牌十年兴衰

本土运动品牌十年兴衰

本土运动品牌十年兴衰作者:来源:《中国经济信息》2018年第05期2018年1月12日,法院处置了晋江德尔惠股份有限公司此前抵押的厂房、土地、仓库等资产,以清偿债权人。

这个周杰伦代言十年、名噪一时的运动品牌以6.36亿元负债,黯然离场。

此前,另一家知名企业喜得龙(中国)有限公司已宣告破产。

这份离场名单中还有金莱克、美克等。

十年前,体育用品行业发生了库存危机,这场危机倒逼行业由批发模式向零售模式转型。

多位行业人士表示,未来中国体育用品行业仍将“强者愈强”,国内综合性运动品牌约有三家能与耐克、阿迪达斯在中国市场同场竞技,其他品牌只能在各细分市场中寻觅生存机会。

我国体育用品企业大体可以分为“晋江系”和“非晋江系”,前者包括安踏、特步、361度、乔丹、鸿星尔克、匹克等众多品牌,后者单指李宁。

20世纪90年代,晋江乌边港周围有着数千家制鞋厂,河的南面是安踏和361度的发源地,河的北面则是特步、乔丹、德尔惠、美克的起始站。

安踏的第一个转折点发生在2000年。

当时,安踏的年销售收入只有一亿元,利润也就几百万元,却于悉尼奥运会期间在央视投了近千万元的广告。

安踏创始人丁世忠后来回忆说:“那对安踏是一个相当大的改变,全国人民一下子就知道这个品牌了。

”后来,德尔惠请了周杰伦,喜得龙找了郭富城,金莱克选了王楠、张怡宁……找代言人的初衷还是促进销售。

由于各个运动品牌的产品差异不大,所以品牌商希望通过提升知名度来增加出货量。

提起2012年之前的那段时期,多位行业人士都感叹“那时候赚钱太轻松了,开店就赚钱”。

2012年之前,晋江系运动品牌的定位是“品牌批发公司”,也就是说除了塑造品牌之外,它们通过订货会向经销商展示商品,再根据订单生产商品,最后将商品交到经销商手里,就算销售完成。

至于货卖得多还是少、如何卖,它们都不需理会。

这个阶段,体育用品企业比拼的是品牌知名度以及发展经销商、铺渠道的速度。

据统计,2008年中国体育用品的行业规模已经达到1039亿元。

CORBA

CORBA

OMG IDL接口定义语言 IDL接口定义语言
OMG IDL 代码类似于C++或者JAVA代码 代码类似于C++或者JAVA代码 它支持的属性包括:模板(module) 它支持的属性包括:模板(module),接口 (interface),操作(method),属性 interface),操作(method),属性 (attribute),继承(inheritances),数据 attribute),继承(inheritances),数据 类型,异常(exception),传播的上下文. 类型,异常(exception),传播的上下文. 下面举一个IDL简单定义的例子. 下面举一个IDL简单定义的例子.
DSI
ORB (GIOP/IIOP) )
CORBA体系结构 CORBA体系结构
OMG接口定义语言 OMG接口定义语言 OMG IDL是一种声明性语言,不是编程语言, IDL是一种声明性语言,不是编程语言, 用于指定包含操作的属性的接口,它使对 象行为与对象实现分离.使不同语言产生 的对象之间可以互操作,但是需要编译器 把IDL映射为具体的语言,目前,已经有 IDL映射为具体的语言,目前,已经有 IDL到 IDL到C ,C++, C++, Smalltalk,Ada,Java,COBOL|等的映射. Smalltalk,Ada,Java,COBOL|等的映射.
Module CORP { struct PersonalData {string name; string phone; string site;}; typedef PersonalData EmpPersonalData; struct EmpData {char jobjob-class; float hourlyhourly-rate;}; Interface Employee {attribute EmpData personal-data; personalreadonly attribute Department department-obj; departmentvoid promote (in char new-job-class); new-job}; Interface Manager: Employee { void approve-transfer(in Employee employee-obj, approveemployeein Department current-department); current} }

意大利蓝队的兴衰

意大利蓝队的兴衰

意大利蓝队的兴衰佚人英国《桥牌》1992年1月号刊载世桥联公报牌手积累大师分的最新统计如下:1.贝拉多纳意18212.葛罗索意17523.福奎特意14754.哈曼美14095.达里利奥意12606.沃尔夫美12237.梯西意9108.查格斯巴西7239.白朗科巴西65510.劳伦斯美624意大利牌手成绩最佳,包办了前3名,在前10名中占了5名,都是著名的蓝队队员。

蓝队自1956年建队至1969年解体期间,曾连续赢得十届“百慕大怀”冠军和连续三届奥林匹克团体赛冠军。

1972年重组复出,再赢得73、74和75年“百慕大杯”冠军,但原有队员仅剩下二至三人。

蓝队已20年没正式比赛,但他国牌手成就迄今仍无出其右。

意大利高手吃老本便继续名列前茅,亦足以自豪矣!蓝队全盛时最强阵容为,贝拉多纳—阿华拉里,葛罗索—福奎特,达里利奥—梯西。

现将他们的佳作简介于后(贝拉多纳系20年来世界第1高手,特选其两牌。

葛罗索与贝拉多纳齐名,牌艺早已有口皆碑,葛打的牌从略):(1)几年前一次队式赛,南北有局,西发牌。

7652K62J63KQ3KJ9483QJ54108104521052AJ98764AQ10A973AKQ987他桌也是由南主打6。

两桌西首攻都出2,东A盖明手K,被暗手将。

他桌南飞失败。

定约下一。

本桌贝拉多纳将A后,出3轮.用明手大垫手里10,将第3轮,这时剩7张牌局势为:7652K62KJ983QJ54108J98AQA973Q贝拉多纳出Q。

西受挤压,无论垫,或垫,都无法阻止庄家赢得6墩牌(树立明手两赢张,或赢Q和长),作成满贯。

(2)1965年欧洲锦标赛,贝拉多纳坐南主打4。

J9K4J10876A764K42Q1087A965Q95K432KQ93J1082AQ1087653J32A5西首攻,暗手A。

贝拉多纳不假思索,A进明手,出4!这是安全打法,除非A被将吃,定约方不会失多于3墩牌。

(3)阿华拉里是罗马梅花制的主要设计人。

CORBA的兴衰

CORBA的兴衰

The rise and fall of CORBA作者Michi Henning,2006.6.5我们可以从CORBA的错误中学到很多主要历史在90年代早期,要使不同机器上的程序相互之间通信是一场恶梦,特别是不同的硬件、操作系统和编程语言都存在的环境:程序员要么使用socket靠自己来写整个协议栈,要么他们的程序之间就完全不能通信。

(其它早期中间件,如Sun的ONC,Apollo的NCS以及DCE,都是基于C语言和UNIX操作系统的,并不适合于异构的环境)。

CORBA 1.0并不成功,因为它不能互操作,并且只提供C语言的映射。

OMG在1997年发布了CORBA 2.0,它提供了标准协议,以及C++语言的映射,1998年提供了Java语言的映射。

CORBA 2.0使得开发者可以相对容易地构建异构的分布式应用。

CORBA很快就流行起来,很多任务关键的应用都用CORBA来构建。

CORBA的前景看上去非常乐观。

在经历了90年代中后期的增长后,一些主要的变化影响了计算的前景,最为著名的就是Java与Web的出现。

CORBA提供了Java语言映射,但是并没有涉及到爆炸式增长的Web。

商业公司并没有等待CORBA给出解决方案,它们转向了其它技术,并且开始构建他们基于Web浏览器、HTTP、Java和EJB的电子商务基础设施。

除此之外,有经验的CORBA开发者发现编写实用的CORBA应用程序相当地困难。

许多API都很复杂,不一致,甚至完全让人感觉神秘,使得开发者必须关注许多细节问题。

想比之下,组件模型的简单性,比如EJB,使得编程简单得多(虽然不那么灵活),因此对CORBA组件模型的呼声越来越大。

但是组件模型的到来花了很长的时间。

始于1996年的工作基于CBOF(通用业务对象设施),但是那个努力因为公司行政策略上的斗争陷入了困境,不久就被放弃了,取而代之的是CORBA组件模型CCM。

1999年CCM的规范终于发布,但是很大程度上确成为了雷声大、雨点小的事。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

The rise and fall of CORBA作者Michi Henning,2006.6.5我们可以从CORBA的错误中学到很多主要历史在90年代早期,要使不同机器上的程序相互之间通信是一场恶梦,特别是不同的硬件、操作系统和编程语言都存在的环境:程序员要么使用socket靠自己来写整个协议栈,要么他们的程序之间就完全不能通信。

(其它早期中间件,如Sun的ONC,Apollo的NCS以及DCE,都是基于C语言和UNIX操作系统的,并不适合于异构的环境)。

CORBA 1.0并不成功,因为它不能互操作,并且只提供C语言的映射。

OMG在1997年发布了CORBA 2.0,它提供了标准协议,以及C++语言的映射,1998年提供了Java语言的映射。

CORBA 2.0使得开发者可以相对容易地构建异构的分布式应用。

CORBA很快就流行起来,很多任务关键的应用都用CORBA来构建。

CORBA的前景看上去非常乐观。

在经历了90年代中后期的增长后,一些主要的变化影响了计算的前景,最为著名的就是Java与Web的出现。

CORBA提供了Java语言映射,但是并没有涉及到爆炸式增长的Web。

商业公司并没有等待CORBA给出解决方案,它们转向了其它技术,并且开始构建他们基于Web浏览器、HTTP、Java和EJB的电子商务基础设施。

除此之外,有经验的CORBA开发者发现编写实用的CORBA应用程序相当地困难。

许多API都很复杂,不一致,甚至完全让人感觉神秘,使得开发者必须关注许多细节问题。

想比之下,组件模型的简单性,比如EJB,使得编程简单得多(虽然不那么灵活),因此对CORBA组件模型的呼声越来越大。

但是组件模型的到来花了很长的时间。

始于1996年的工作基于CBOF(通用业务对象设施),但是那个努力因为公司行政策略上的斗争陷入了困境,不久就被放弃了,取而代之的是CORBA组件模型CCM。

1999年CCM的规范终于发布,但是很大程度上确成为了雷声大、雨点小的事。

规范巨大而复杂,许多都未曾被实现过,甚至概念性的证明都没做过。

阅读文档就可以清楚知道CCM技术上是不成熟的;部分根本不可实现,即使实现,也无法提供可移植性。

非商用的CORBA厂商承担了实现CCM的义务,却使其成为了夭折的孩子。

即便在CCM发布的时候实现已经可以获得,也太迟了。

机会已经过去了:EJB已经进入了产业,其它技术已经没有机会取得成功。

CCM的失利并未增加CORBA客户的信心,这些客户正陷于CORBA复杂技术的泥潭。

同时,工业界对于中间件的需求出现了前所未有的高涨。

在使用HTTP、HTML和CGI 构建了电子商务系统之后,使用这些方式构建分布式系统出现了明显的严重缺陷。

没有适当的类型系统,应用被迫解析HTML来提取语义,这与抓屏一样没什么价值。

这导致系统非常脆弱。

另一方面,EJB拥有正确的类型系统,但是局限于Java技术,并不适用于许多环境。

商用CORBA实现一般每个开发席位都会花费几千美元左右,加上许多情况下的运行时版税(每个应用部署后收取)。

对许多潜在的客户来说,CORBA这样的平台限制对他们来说太昂贵了。

CORBA平台的学习曲线陡峭,技术复杂,不容易正确使用,这些因素导致了开发周期长,易出错。

早期的实现常常充满Bug并且受苦于缺乏有质量的文档。

公司不容易找到他们需要的有经验的CORBA程序员。

微软并没有使用CORBA,取而代之的是推出自己的DCOM。

这使得市场要么选择中立要么使用DCOM,但是DCOM未能赢得中间件之战,因为它仅仅能工作在Windows平台上。

(Software AG做了一个UNIX的移植,但是没有获得进一步的动力)。

微软在几次扩展DCOM应用范围的尝试失利以后,最后放弃了DCOM。

那时,中间件市场处于支离破碎的状态,许多技术在竞争,但是没有哪一个技术能够获得足够的份额来统一分布式系统的开发。

另外一个导致CORBA下降的重要因素是XML。

90年代后期,XML成为了计算工业新的银弹:几乎所有只要是定义为XML的东西都是好的。

在放弃了DCOM之后,微软并没有把电子商务市场留给竞争对手,微软没有再参与一场不可能打赢的战争,而是使用XML 来开辟了新的战场。

在1999年年末,工业界看到了SOAP的发布。

SOAP由微软和DevelopMentor发布,随后提交给W3C作为标准,SOAP使用XML作为远程过程调用的线上编码方式。

SOAP有严重的技术缺陷,但是,作为一种市场策略,它是巧妙的一招。

随着大量的厂商都想分一杯羹,并且从CORBA转向萌芽的Web服务市场,市场变得更加的分化。

对客户来说,这增加了CORBA生存能力的不确定性,在许多情况下,使得他们更加投资于有把握的技术。

当2002年Internet泡沫破灭时,CORBA遭到了另一个打击。

工业界的金融崩溃使得许多软件公司退出市场,幸存者必须重新集中它们的资源。

结果导致了大量商用CORBA 产品的损耗。

在崩盘之前,几个厂商已经停止或者边缘化了它们的CORBA产品,并且在崩盘后,更多的CORBA产品随之并停止。

在90年代中期到后期一片繁荣景象的许多有竞争力的产品忽然成为了市场的边缘,并且只有极少的厂商、客户和投资者。

那时,可以获得CORBA的开源实现,这部分重建了市场的信心:CORBA不再是业界心爱的孩子。

今天,CORBA大多用于连接公司内部网络的组件,与外部世界的通信由防火墙进行保护。

CORBA也用于实时和嵌入式开发,在这个领域CORBA确实在增长。

整体上说,CORBA 的使用在减少,但是仅仅作为一个适得其所的技术,其它什么也不是。

考虑到仅仅几年前,CROBA被认为是先进的中间件,被提出来革新电子商务,现在令人惊奇的是技术如此快地被边缘化,为此种失利分析其更深层次的原因是有益的。

Technical Issues 技术因素很明显,大量的外部因素导致了CORBA的失利,比如Internet泡沫的破灭以及其它技术的竞争,比如DCOM,EBJ和Web服务。

人们可以说CORBA是工业趋势的受害者。

在计算工业中,特定技术的技术优势常常对其成功贡献很少,份额和市场是更加重要的因素。

但是这篇辩论文并不能完整说明CORBA为何失利。

毕竟,如果技术像原来的设想的一样引人注目,客户不会抛弃它而选择其它的替代技术。

技术优势并不是成功的充分条件,但是,长期来看,它是一个必要条件。

不管有多少工业幻想,如果一种技术有严重的技术缺陷,它最后还是会被放弃的。

这也是我们所发现的CORBA失利的主要原因。

Complexity 复杂性最明显的技术问题就是CORBA的复杂性--特别是,API的复杂性。

许多CORBA的API比起所需要的来说要复杂得多。

例如,CORBA的对象适配器要求大于200行的接口定义,其实30行的定义就可以实现同样的功能--其它170行对于功能来说没什么用,它们只能造成CORBA运行时严重复杂的程序交互。

其它的问题是C++语言的映射。

映射不易使用,包含许多导致bug的缺陷,特别关于线程安全性、异常安全性和内存管理的部分。

大量的其它过度复杂和设计糟糕的API在CORBA规范中随处可见,比如名字服务、交易服务和通知服务,它们提供的API都是易错的、不容易使用的。

类似地,CCM的配置也是如此复杂以致如果没有使用附加工具的支持,难以产生有效的结果。

设计糟糕的接口和语言映射是任何技术非常明显的部分,因为他们是软件开发的“面子”:他们是开发者和平台相会的点,他们的易用性和安全性对于开发时间和错误累计有很重要的影响。

明显地,任何受困于特定复杂性的技术都使得它自己对开发者来说较少具有亲密性,对于管理来说就更是如此了。

复杂性也来源于体系结构的选择。

例如,CORBA的IOR(互操作对象引用)是不透明的实体,内容对于开发者来说是不可见的。

由于以下三个原因,这导致了不利:不透明的引用几乎强制使用名字服务,因为客户端在没有外部服务的帮助时不能创建对象引用。

这不仅复杂化了系统的开发和部署,也将冗余状态引入到了系统中(伴随着状态出错的危险),并且创造出了另外的失效点。

不透明的对象引用在相当的程度上复杂化了API。

例如,CORBA的拦截API应该能够简化很多,对象引用也可以透明。

不透明的对象引用要求远程调用比较对象标识符。

对许多应用来说,这些调用的负载是禁止的。

其它导致复杂的原因是类型系统。

例如,CORBA的接口定义语言提供了大量的类型,比如无符号整型,定点和扩展精度浮点数,有界和无界序列以及数组和能存储任何类型值的Any类型。

支持这些类型复杂化了许多API(特别是,反射和动态调用的接口),导致了微妙的移植性问题。

例如,Java不支持无符号类型,因此当Java客户端与C++服务器端通信时,在接口中使用无符号整数可能导致溢出问题。

类似地,在没有本地定点或双精度浮点数支持的平台上,实现必须模拟这些类型。

模拟难以用跨平台的统一方式实现,它们也需要额外的API。

这导致了更多的复杂性,而且是一个难以诊断的互操作问题的根。

最后,一些OMG的早期对象服务规范,比如生命期规范、查询规范、并发控制、关系和集合服务规范,不仅仅是复杂,而且根本没什么用。

它们仅仅在已经复杂的规范集合上增加了更多的噪音,使得客户迷惑,并且加强了CORBA难以使用的名声。

Insufficient Features 不足的特征CORBA提供了大量丰富的功能,但是没有提供两种核心特征:安全性。

CORBA的流量是不加密的,这使得它容易被窃听以及遭受插入式攻击,而且每个服务都要求防火墙打开一个端口。

这与企业安全策略是相冲突的。

(附带提一下,CORBA的这个缺点是导致SOAP声名鹊起的一个主要原因。

SOAP不需要在企业防火墙上打开一个端口,所以信息都通过80端口传递,这被看做主要优点,尽管这个想法非常幼稚。

)OMG数次努力制定CORBA的安全和防火墙穿透,但是由于技术缺陷以及防火墙厂商的冷漠而放弃了。

版本。

部署商业软件要求中间件可以用后向兼容的方式逐步升级。

CORBA没有提供任何版本机制(除了派生的版本控制,这完全不够)。

升级一个CORBA应用常常会破坏客户端和服务器之间的线上协议。

这强制许多已经部署的应用必须一次性替换,这是不可行的。

(CORBA的这个缺点是导致SOAP流行的另外一个主要原因。

XML所设想的松散耦合本质被视作解决问题的方法,尽管这个想法与通过80端口传输所有通信的想法一样幼稚。

)对于商用的电子商务基础设施来说,缺乏安全和版本控制是相当简单的暂停--许多潜在的电子商务客户仅仅因为这些原因拒绝使用CORBA。

Other Technical Issues 其它问题,大量的其它技术问题折磨CORBA,其中:CORBA互操作协议的设计缺陷使得它不可能建立一个高性能的分布式服务。

相关文档
最新文档