CORBA的兴衰
- 格式:docx
- 大小:31.71 KB
- 文档页数:7
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 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平台特有的,但其它大多数信息在各平台上都是相同或者类似的。
本土运动品牌十年兴衰作者:来源:《中国经济信息》2018年第05期2018年1月12日,法院处置了晋江德尔惠股份有限公司此前抵押的厂房、土地、仓库等资产,以清偿债权人。
这个周杰伦代言十年、名噪一时的运动品牌以6.36亿元负债,黯然离场。
此前,另一家知名企业喜得龙(中国)有限公司已宣告破产。
这份离场名单中还有金莱克、美克等。
十年前,体育用品行业发生了库存危机,这场危机倒逼行业由批发模式向零售模式转型。
多位行业人士表示,未来中国体育用品行业仍将“强者愈强”,国内综合性运动品牌约有三家能与耐克、阿迪达斯在中国市场同场竞技,其他品牌只能在各细分市场中寻觅生存机会。
我国体育用品企业大体可以分为“晋江系”和“非晋江系”,前者包括安踏、特步、361度、乔丹、鸿星尔克、匹克等众多品牌,后者单指李宁。
20世纪90年代,晋江乌边港周围有着数千家制鞋厂,河的南面是安踏和361度的发源地,河的北面则是特步、乔丹、德尔惠、美克的起始站。
安踏的第一个转折点发生在2000年。
当时,安踏的年销售收入只有一亿元,利润也就几百万元,却于悉尼奥运会期间在央视投了近千万元的广告。
安踏创始人丁世忠后来回忆说:“那对安踏是一个相当大的改变,全国人民一下子就知道这个品牌了。
”后来,德尔惠请了周杰伦,喜得龙找了郭富城,金莱克选了王楠、张怡宁……找代言人的初衷还是促进销售。
由于各个运动品牌的产品差异不大,所以品牌商希望通过提升知名度来增加出货量。
提起2012年之前的那段时期,多位行业人士都感叹“那时候赚钱太轻松了,开店就赚钱”。
2012年之前,晋江系运动品牌的定位是“品牌批发公司”,也就是说除了塑造品牌之外,它们通过订货会向经销商展示商品,再根据订单生产商品,最后将商品交到经销商手里,就算销售完成。
至于货卖得多还是少、如何卖,它们都不需理会。
这个阶段,体育用品企业比拼的是品牌知名度以及发展经销商、铺渠道的速度。
据统计,2008年中国体育用品的行业规模已经达到1039亿元。
意大利蓝队的兴衰佚人英国《桥牌》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)阿华拉里是罗马梅花制的主要设计人。
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. 引言本报告旨在对乔氏公司的现状进行全面分析,以便帮助决策者对公司的发展和战略制定提供参考。
本报告首先介绍了乔氏公司的背景和现状,然后对其市场地位、竞争优势以及机遇与挑战进行了分析,最后给出了针对乔氏公司的一些建议。
2. 公司背景乔氏公司成立于2005年,总部位于中国,是一家以生产和销售高品质鞋类产品为主的公司。
乔氏公司通过不断创新和市场营销策略的调整,已经在国内市场取得了一定的成功。
3. 市场地位分析3.1 市场规模乔氏公司所在的鞋类市场规模庞大,且呈现稳定增长态势。
根据最新数据,2019年全球鞋类市场规模达到1000亿美元,其中中国市场占据了相当大的份额。
3.2 市场占有率尽管乔氏公司在中国鞋类市场的市场占有率相对较小,但通过不断扩大市场份额的努力,公司已在过去几年中取得了良好的增长。
公司的品牌形象和产品质量在消费者中享有较高的声誉。
4. 竞争优势分析4.1 产品质量乔氏公司一直以来都注重产品质量的保证。
公司致力于使用最优质的材料和先进的生产工艺,以提供耐用且舒适的鞋类产品。
这使得乔氏公司在市场上建立了良好的口碑,并吸引了众多忠实的消费者。
4.2 品牌形象乔氏公司在过去几年中,通过大规模的市场营销活动和品牌推广,成功建立起了强大的品牌形象。
公司始终强调自身对质量的承诺,并注重传递品牌的价值观。
这使得乔氏公司在市场中具有一定的竞争优势。
4.3 多元化产品线乔氏公司不仅提供各种不同风格和款式的鞋类产品,还拓展了相关配套产品的销售。
这种多元化的产品线有助于满足不同消费者的需求,提高公司的竞争力。
5. 机遇与挑战5.1 机遇随着中国经济的发展和居民收入水平的提高,人们对高品质鞋类产品的需求不断增长,这为乔氏公司提供了巨大的市场机遇。
此外,电子商务的兴起也为公司的产品销售提供了更广阔的渠道。
5.2 挑战尽管市场机遇很大,但乔氏公司也面临一些挑战。
首先,市场竞争激烈,来自国内外的竞争对手众多,需要公司加大市场推广和品牌建设的力度。
班尼路为什么不火了班尼路,曾经是国内一线潮装品牌,如今混到了无人理睬的地步。
如果不是前段时间班尼路老板潘德豪花3566万港币买下香港富人区的三个车位,很多人可能会认为班尼路已经破产了。
一边是班尼路6年时间关了3000多家门店,另一边是老板花3500万买停车位,真搞不懂潘德浩哪来这么多钱挥霍?其实,这两件事并不矛盾,都与优衣库有关。
优衣库在市场上击败了辉煌一时的班尼路,然后把班尼路的工厂变成了自己的代工厂。
给优衣库代工钱挣得固然比自己做品牌少,但并不妨碍老板发财。
击退优衣库2003年,优衣库第一次来中国时,首店选在了北京。
此时,班尼路正处于高速扩张时期,全国门店数600多家,轻而易举把“默默无闻”的优衣库击溃,优衣库被迫退出中国市场。
班尼路之所以能战胜优衣库,得益于强大的渠道能力。
彼时的中国零售市场尚处在“渠道为王”的时代,谁能在最短时间内开最多的店,便具有难以撼动的优势。
巨额广告投入+快速铺店是品牌成功的不二法门。
娃哈哈是“渠道为王”的典型案例。
娃哈哈本是浙江当地一家濒临倒闭的校办企业,在宗庆后接手后,在全国31个省市选择了1000多家一级经销商,组成渠道骨干,而剩下的二级、三级经销商负责下沉市场任务。
娃哈哈很少干预二级三级的野蛮生长,让他们放手去干,正是这种“抓大放小”的战略,使得娃哈哈既纪律严明又不失灵活,产品能渗透到全中国每一个村庄。
上世纪80、90年代,消费者有些迷信广告,娃哈哈在全国各大电视、报纸投放广告,一句“喝了娃哈哈,吃饭就是香”迅速植入消费者心中,让娃哈哈成为中国第一饮料品牌。
这套玩法放到班尼路身上同样成立。
1996年,中国香港德永佳公司收购了意大利品牌“宾奴”,准备趁着回归祖国的机遇,进军内地服饰市场。
但考虑到“宾奴”这个名字在内地有点贬义的味道,就把名字改成了更洋气的“班尼路”。
在内地市场,班尼路高举高打,请来刘德华、王菲做品牌代言人,带着当时特有的“香港光辉”高调进入广州,在明星+广告攻势下,成为年轻人向往的高端品牌。
CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。
或者说CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。
OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker)。
对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG 标准的内容。
ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。
分布的、可以互操作的对象可以利用ORB 构造可以互操作的应用。
CORBA系统CORBA标准由对象管理组织(OMG)设立并进行控制,CORBA定议了一系列API,通信协议,和物件/服务信息模型用于使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。
CORBA因此为定义明确的物件提供了平台和位置的透明性,这些物件是分布式计算平台的基础。
CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。
COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。
哥伦比亚的西班牙殖民统治与品贸易的影响在历史的长河中,西班牙对于哥伦比亚的殖民统治和品贸易起到了重要的影响。
这段历史时期对哥伦比亚的社会、经济、文化等方面带来了深远的影响,值得我们深入了解和研究。
一、殖民统治下的社会变迁在西班牙殖民统治下,哥伦比亚经历了社会结构的深刻改变。
西班牙殖民者将自身的社会等级制度引入哥伦比亚,建立了贵族和平民的等级制度。
贵族地主支配了大量土地资源和劳动力,而平民则处于被剥夺权益的弱势地位。
这种社会阶级制度成为整个殖民时期哥伦比亚社会的基本特征,直到独立后才得以逐渐改变。
此外,西班牙殖民者还引进了基督教信仰,广泛推行天主教。
许多原住民被迫改变宗教信仰,接受西方文化价值观念。
这种文化冲击导致哥伦比亚传统文化逐渐衰退,但也让哥伦比亚日后成为拉丁美洲天主教的中心。
二、品贸易的经济影响西班牙殖民统治下的哥伦比亚经济以品贸易为主。
哥伦比亚地理位置优越,成为西班牙帝国在美洲的重要殖民地,被开发为重要的农业、矿产和贸易中心。
在农业方面,哥伦比亚的主要农产品包括可可、咖啡、香蕉等。
这些农产品成为与西班牙之间的重要贸易品,为西班牙帝国带来了巨大的财富。
同时,西班牙殖民者在哥伦比亚推行的以外来劳工为主的种植模式,导致大量原住民失去土地和劳动力,进一步加剧了社会的不平等。
在矿业方面,哥伦比亚的矿产资源丰富,尤以金银为最。
西班牙殖民者将大量原住民动员到矿山开采金银,以满足西班牙对贵金属的需求。
然而,矿山劳动残酷,对原住民来说是一种剥削和苦难,同时也导致大量原住民因酷刑、疾病和饥饿而死亡。
三、哥伦比亚历史的转折西班牙统治下的哥伦比亚经历了辗转艰难的历史转折,为独立奠定了基础。
18世纪末至19世纪初,殖民地内部的社会不平等、经济剥削和政治压迫引发了许多起义和革命浪潮。
其中最重要的是独立战争,近十年的战争最终使哥伦比亚等拉丁美洲国家从西班牙的殖民统治下独立出来。
哥伦比亚独立后,国家面临着新的挑战和机遇。
彪马兴衰录
黄晶;史知元
【期刊名称】《竞争力》
【年(卷),期】2004(000)010
【摘要】当刘翔夺得110米栏奥运会冠军之后,所有人都为他欢呼。
从此,这位奥运英雄的方方面面都开始受到人们的关注,包括他在赛场穿的跑鞋。
因为刘翔成绩骄人,他这双跑鞋也被称为“红色魔鞋”。
【总页数】2页(P66-67)
【作者】黄晶;史知元
【作者单位】无
【正文语种】中文
【中图分类】F451.668
【相关文献】
1.最后的将军德川庆喜政权兴衰录 [J], 萧西之水;
2.日本制造业兴衰启示录 [J], 凡夫俗子;
3.皇台兴衰启示录 [J], 岳治中
4.安德玛的兴衰启示录 [J], 姚莎;陈成
5.世界百年政党兴衰启示录 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
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互操作协议的设计缺陷使得它不可能建立一个高性能的分布式服务。