不要局限眼前,要看到CORBA带来的影响


(来源:转载自ZDNet China网站,http://www.zdnet.com.cn/news/vs3/vs3_day2.htm)

文/Mike Ricciuti
Staff Writer, CNET News.com
December, 2002

对此文章发表看法:http://www.huihoo.com/cgi-bin/forum/viewthread.php?tid=1886

产业标准组织Object Management Group(OMG)在分布式对象标准的推动上占有重要地位,而身为OMG幕后推手的Richard Soley更是非常清楚 解决不同系统间互通性与整合问题的困难,Soley表示OMG钻研这个问题的时间,也已经超过10年以上。从另外一个角度来说,备受重视的Web Service也只能算是解开这个老问题的一个最新尝试。

Soley在1991年的时候,导入Common Object Request Broker Architecture(COBRA)作为OMG的关键技术。只是在OMG不断地尝试与努力当中, COBRA现在也只能算是OMG投入较多的一部分。

在外界的观点来说,COBRA不如微软(Microsoft)和IBM主推的Web Service一样,因为可以做到专属系统间的整合而备受瞩目,但是Soley强调 COBRA才有办法独立于特定厂商之外。不过问题也随之而来,难道这真的足以让COBRA保住生存的空间吗?



问:现在Web Service的发展,是不是已经进和COBRA有所重复?

答:我认为现在大部分的Web Services都采用了COBRA。也许我们应该试着让整个架构更具弹性,而不是每18个月就更动整个架构。

问:那么通常COBRA和其它OMG的技术是怎么和Web Services相连的?

答:如果你想要建置Web Services,最好是可以有一个可以遵从的基础架构。如果采用了微软的DCOM(微软的一种因特网通讯协议),那么你 可以使用微软的.Net、或是C语言和其它各种的技术。但是CORBA是唯一一个中立于各种不同平台、不同厂商、和不同语言的架构。这也是为什 么多数的Web Services都建构于CORBA之上。这也是为什么你可以轻易地把CORBA架构转成Web Services。

问:那为什么我们没有听到很多关于CORBA的消息?

答:现在也还没有很多Web Services啊。换个方式来说,如果我想要建置一个Web Service,我应该要怎么做?目前来说最简单的方法,就是实 作COBRA。

OMG所做的也不只是CORBA而已,CORBA大概只占OMG的7-8%。几年前我们分出了两个主要的发展方向。其中一个就是所谓的UML(Universial Modeling Language,用来描述应用程序的一种通用方法),我们深入了各个垂直的产业,例如医疗业、财金业、电信业、和制造业等等,总共 累积了15个产业。过去一年来,我们正在努力的新架构,则是一种以UML为基础的Model Driven Architecture(MDA)。

和大家正在推动的Web Services一样,这又是一个新的架构。等到18个月以后,我们可能又会推出一个新的架构。这样的循环像是每18个月就 会有一个新的万灵丹。

问:那采购这些技术和使用这些技术的人,到底该何去何从?

答:也许正确的做法是:不要使用特定的架构,来设计你自己的系统,同时并确保在写程序时有足够的标准可以遵循。说正经的,也许我们会 落得和CASE(Computer-Aided Software Engineering,在90年代初期一种热门但过度夸张的软件开发方式)一样,有上千种建模语言的下场。 到头来,我们可能会惊讶的发现我们只是在重复同样的问题。

问:听起来似乎变得很不值得,是不是有比较乐观的可能呢?

答:我们其实站在一个很好的时间点上。你可以看到包括惠普(HP)、SUN(Sun Microsystem)、Computer Associate、微软、IBM等等每一家 公司都支持UML,而且大多数也支持UML的发展与维护。MDA不单只是UML而已,MDA是包含其它开发流程的一组标准。UML最重要的是他的开放性 与中立,UML没有被任何一家特定厂商所掌控。

问:MDA是不是和Web Service一样?对于Web Services这样用法,你的想法是什么?

答:MDA和Web Services是不同的两件事。Web Services对我来说,是把应用程序透过SOAP(Simple Object Access Protocol,在网络上使用 Web Services的通讯协议)的接口,连到网络上。Web Services当然还有很多种定义和解释,但是我所说的这个是最简单也最好的一个。Web Services让你可以在网络上,从任何的地方去使用你的软件。

至于MDA则是协助你写一个新的软件或是新的Web Services。举例来说,你想要写一个Web Services的软件,但是Web Services架构却还没有完 全定义完成。所以你当然希望以后等到这个新的架构完成以后,尽管架构有所变动,你现在写的软件还是能用,这就是MDA的目的。

问:所以MDA和Web Services将是彼此共存的?

答:你必须有办法整合你过去的资源、现有的环境、以及未来打算开发的计划。如果你是信息长,你就可以了解这段话的涵义。我们不确定未 来会建置什么系统,但是我们必须考虑未来的可能。这也是MDA和Web Services的关系。

此外,MDA也不仅限于Web Services,例如洛克希德马丁(Lockheed Martin),就采用MDA来开发飞行控制系统。

问:那个XML(Extensible Markup Language)扮演的角色为何?

答:XML是一个加强互通性的工具,但是很可惜对可移植性没有帮助。他是达到互通性的方法,可是如果你说这是唯一的一个方法,那就有点不 太聪明。

问:那么IBM和微软正在定义的Web Services是不是在重复COBRA所做过的,他们是不是会碰到COBRA已经解决的问题?

答:是的,而且我们也正在帮助解决这些问题。很明显的,Web Services针对了许多和COBRA相同的问题,也碰到了一样的困难。例如COBRA在 穿透防火墙上面所碰到一些问题,Web Services也一样碰到问题。

更重要的是,我们还碰到了许多现在Web Services还没涉及的问题。比如交易的完整性(确认交易确实成立)、安全与认证等等。在这些问题 上,我们都可以从COBRA延伸到Web Services。这也是MDA试图解决的部分,如何利用现有的技术去建立新的架构。我们可以负责这部分的问题 ,而你就可以专注在你的商业逻辑(Business Logic)。我们希望透过已经定义的标准,去协助Web Services尚未涉及的部分。

问:长久以来,一直有人认为COBRA过于复杂难以学习,而且大家也认为XML和Web Services比较容易精通。你如何说服程序开发人员采用 CORBA和MDA?

答:最简单的方法是你打开COBRA的书和Web Services的书去做比较,比比看在CORBA里面怎么撰写程序,在Web Services里面又怎么使用SOAP ,你会发现在CORBA里面根本没有提到什么协议,因为这对一个程序设计人员来说根本不重要。不用去考虑任何和协议有关的东西,是CORBA最 大的突破。我从来没有碰到一个COBRA的开发人员抱怨难以使用或难以学习。

问:那么你认为Web Services的价值何在?

答:如何去建立分布式应用并加以整合的问题由来已久。现在你可以看到每一个软件产业的厂商,都连成一气支持Web Services,这也正是Web Services的价值所在。我必须承认我原本根本不相信SUN 会去加入Web Services Interoperability Organization(一个由微软和IBM成立的产 业标准组织)。10年前我就希望同样的事情可以发生在COBRA身上。还好这也正在进行当中。

问:未来的6到12个月之前,你觉得在标准、实作技术的发展、和开发工具等各方面,哪一方面的发展是最重要的?

答:我认为是在实作技术上。我们已经有了基本的标准,其它的标准只是时间先后的问题,可以使用的工具也已经多过我们所需要的,但是在 大环境的不景气下,培养出充分的实作技术却没有那么容易。有些人已经投入分布式应用程序的开发,有些人则还没开始。还没开始的人得急 起直追,已经开始的人则必须加强他们的技巧。