1996年开始,COM技术又有了一个长足发展,随着NT 4.0发布的DCOM技术,作为NT的一部分,它实现了将COM在分布式系统中的应用。从此,COM技术成为分布式应用的重要柱石。其实有很多人把COM和COM+技术混为一谈,其实这两个技术还是略有区别的,由于历史的原因,COM、DCOM和MTS相互之间并不很融洽,难以形成统一的整体。COM+把这三者有效地统一起来,形成了一个全新的、功能强大的组件体系结构。COM+并不是COM的新版本,而是COM的新发展,或者COM更高层次上的应用。COM +的底层结构仍然以COM为基础,它几乎包容了COM的所有内容。COM+把组件软件提升到应用层而不是底层的软件结构,它通过操作系统的各种支持,使得组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统,因此,COM+与操作系统的结合更加紧密。COM+ 不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现,已经成为Microsoft系统平台策略的一部分。
由此可知,COM+技术于分布式应用并没有必然关系,而DCOM才是分布式应用的根本,不过由于目前很多系统的开发年代较早,所使用的COM组件几乎难以替换,除非重写所有业务逻辑,否则几乎难以维护,而目前随着Vista客户端的发布,更丰富的表现层应用和更古老的业务逻辑之间似乎略微有点配合上的小问题,所以偶尔会有一些用户抱怨使用Vista的客户机在调用COM组件的时候出现兼容性问题,可能随着客户端的升级,这些问题会得到解决,但也不排除这种问题继续存在,所以对于使用COM的企业来说,使用WCF升级才是最好的选择。
WebService的使用
曾几何时,WebService几乎成了软件行业面向服务应用架构的解决灵药,其知名度和热度丝毫不逊于今天的云计算,各大厂商都雄心勃勃的推出自己的WebService标准,希望在未来的面向服务领域独占鳌头,分布式调用中的跨平台应用更是为广大开发者津津乐道,能够让微软产品调用JAVA的服务,也能让SAP和Oracle同台共舞,这是一副多么美好的场景。
不过随着这一技术的种种细节逐渐细化,由于各个厂商都希望自己在这个领域能有更多的利润,所以标准化问题带来的是庞大而冗长的调用方式以及复杂的信息传输描述指令,最后WebService几乎成了臃肿和缓慢的代名词,目前虽然在分布式架构上应用较广,但是其性能的瓶颈一直都为业内所诟病,很多人在一些新应用上宁愿自己操作进行通信也不愿意调用WebService,情况之严峻由此可见一般。不过硬件的升级应该可以给这个问题提供一个比较好的帮助,另外一点就是,我们会在未来的云计算中看到更多的WebService通信应用的影子,因为毕竟,穿越防火墙、跨系统应用这些优点是具有绝对竞争力的,所以如果WebService能够在性能上再有所提升的话,这一技术就必将成为未来的分布式调用当仁不让的选择。
WCF集大成者
WCF分布式调用技术的核心就是可以使用别的调用技术,简单来说,他可以让COM和WebService互相调用,而不用重构大量代码,它的诞生就在于为原有的各种系统进行整合,从这一点上说这一产品是前途无量的。然而目前的情况是,虽然WCF编码并不特别复杂,但是在整合原有的分布式系统上,WCF还没有表现出性能方面的优势,而在部署这一操作的过程中WCF又缺乏特别方便的可视化工具,所以虽然推出一年有余,但是用户还没有完全理解其中的好处,开发者当中弥漫着观望情绪,对这一技术的未来并没有太好的预期,其实如果微软在以后的应用中为WCF应用提供一个好的整合原有分布式接口的工具,则可以大大提高这一产品的受欢迎程度,相信,如果能有这样方便的分布式开发和调用工具,则未来的WCF会是最有发展的技术。
综合以上所有情况,我们可以乐观的认为,未来的分布式应用会呈现一种新的格局,这种格局就是表面是WCF应用为主导的,原因如我们之前所说,WCF可以整合目前所有的应用情况,而COM技术则会慢慢退出市场,很多业务逻辑代码都需要从COM到WCF重构,如果有一家公司能提供这方面的技术顾问服务,那么未来几年它的生意会很不错。WebService的命运取决于云计算的推广程度,目前用过LiveMesh的人肯定都会拿它和微软以前的远程桌面做比较,LiveMesh的速度不如远程桌面快,但是可以跨越任何网络设备,也能在任何终端设备上使用,LIveMesh就像WebService技术而远程桌面则类似COM,很难说未来远程桌面一定没有使用前景,但是我想当网络速度更好的以后,我们还是会更喜欢LIveMesh的随时随地随心所欲。