DOCM技术介绍 来源“中程在线”

DCOM是微软的分布式组件对象模型,扩展了COM技术,支持跨网络的组件通信。它允许应用程序在网络中分布,隐藏底层网络协议细节。通过DCOM,客户端可以调用远程服务器对象进行处理,广泛应用于企业内部网络和互联网。DCOM与CORBA类似,但它是Windows操作系统的一部分,也将支持多种UNIX平台和IBM大型服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DCOM

 

      DCOM分布式组件对象模型,分布式组件对象模式)是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口(运行在Windows95或者其后的版本上)。  

      Microsoft Distributed Component Object Model(DCOM)是Component Object Model(COM)的扩展,它支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。借助DCOM你的应用程序将能够任意进行空间分布。

       由于DCOM是COM这个组件技术的无缝升级,所以你能够从你现有的有关COM得知识中获益,你的以前在COM中开发的应用程序、组件、工具都可以移入分布式的环境中。DCOM将为你屏蔽底层网络协议的细节,你只需要集中精力于你的应用。

      例如,你可以为一个网站创建应该页面,其中包括了一段能够在网络中另一台更加专业的服务器电脑上处理(在将它们发送到发出请求的用户之前)的脚本或者程序。使用DCOM接口,网络服务器站点程序(现在以客户端对象方式发出动作)就能够将一个远程程序调用(RPC)发送到一个专门的服务器对象,它可以通过必要的处理,并给站点返回一个结果。结果将发送到网页浏览器上。  

      DCOM还可以工作在位于企业内部或者除了公共因特网之外的其他网络中。它使用TC/IP和超文本传输协议。DCOM是作为Windows操作系统中的一部分集成的。DCOM将很快在所有的主流UNIX平台和IBM的大型服务器产品中出现。DCOM替代了OLE远程自动控制。  

      在提供一系列分布式范围方面,DCOM通常与通用对象请求代理体系结构CORBA)相提并论。DCOM是微软给程序和数据对象传输的网络范围的环境。CORBA则是在对象管理组织(OMG)的帮助下,由信息技术行业的其他商家提供赞助的。 


DCOM概述

  Microsoft的分布式COM(DCOM)扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,你的应用程序就可以在位置上达到分布性,从而满足你的客户和应用的需求

  因为DCOM是世界上领先的组件技术COM的无缝扩展,所以你可以将你现在对基于COM的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。当你在做分布式计算时,DCOM处理网络协议的低层次的细节问题,从而使你能够集中精力解决用户所要求的问题。

为什么要做分布式应用

  将应用分布化并不是问题的结束。分布式应用引入了一个全新的设计和扩展概念,它增加了软件产品的复杂性,但是带来了可观的回报。某些应用本身就带有分布性,例如多人对战游戏、聊天程序以及远程会议系统等等。因此,一种健壮的分布式计算框架所带来的好处是不言自明的。很多其它的应用也是分布式的,即它至少有两个组件运行在不同的计算机上,但是因为它不是为分布性应用而设计的,所以它们的规模和可扩展性就有很大的局限性。任何的工作流或群件应用程序,大多数的客户机/服务器应用程序一些桌面办公系统本质上都控制着它们的用户的通讯和协作。将这些系统作为分布式系统并能够在正确的地方运行正确的组件会给用户带来好处,并且使人们对网络和计算机资源的运用更加充满信心。设计应用程序时考虑到分布性,能通过在客户端运行组件使应用适用于具有不同性能的不同的客户。

  设计应用时考虑分布性能够使系统在扩展上具有很高的灵活性。

  分布式应用与它们的非分布式版本比起来具有更大的可扩展性。如果整个复杂应用的逻辑结构可以用一个简单的模型来表示,那么仅仅只有一种方法来增加系统的工作效率:用更快的机器,而无需的应用本身进行调整。虽然现在的服务器和操作系统升级很快,但是买一个同样性能的机器还是比将服务器的速度升级为原来的两倍所花的钱少。有了一个设计适当的分布式应用系统,一台功能不怎么强大的服务器就能够运行所有的组件。当负载增加时,可以将一些组件扩展到价格便宜的附加的机器上。

DCOM的结构

  DCOM是组件对象模型(COM)的进一步扩展。COM定义了组件和它们的客户之间互相作用的方式。它使得组件和客户端无需任何中介组件就能相互联系。客户进程直接调用组件中的方法。图1说明了组件对象模型的表示法:

图1 同一进程中的COM组件

  在现在的操作系统中,各进程之间是相互屏蔽的。当一个客户进程需要和另一个进程中的组件通讯时,它不能直接调用该进程,而需要遵循操作系统对进程间通讯所做的规定。COM使得这种通讯能够以一种完全透明的方式进行:它截取从客户进程来的调用并将其传送到另一进程中的组件。图2表明了COM/DCOM运行库是怎样提供客户进程和组件之间的联系的。


图2 不同进程中的COM组件

  当客户进程和组件位于不同的机器时,DCOM仅仅只是用网络协议来代替本地进程之间的通讯。无论是客户还是组件都不会知道连接它们的线路比以前长了许多。

  图3显示了DCOM的整体结构:COM运行库向客户和组件提供了面向对象的服务,并且使用RPC和安全机制产生符合DCOM线路协议标准的标准网络包。

图3 DCOM: 不同机器上的COM组件

组件和复用

  大多数分布式应用都不是凭空产生的。现存的硬件结构、软件、组件以及工具需要集成起来,以便减少开发和扩展时间以及费用。DCOM能够直接且透明地改进现存的对COM组件和工具的投资。对各种各样组件需求的巨大市场使得将标准化的解决方案集成到一个普通的应用系统中成为可能。许多熟悉COM的开发者能够很轻易地将他们在COM方面的经验运用到基于DCOM的分布式应用中去。

  任何为分布式应用开发的组件都有可能在将来被复用。围绕组件模式来组织开发过程使得你能够在原有工作的基础上不断的提高新系统的功能并减少开发时间。基于COM和DCOM的设计能使你的组件在现在和将来都能被很好到使用。

位置独立性

  当你开始在一个真正的网络上设计一个分布式应用时,以下几个相互冲突的设计问题会很清楚地反映出来:


相互作用频繁的组件彼此间应该靠得更近些。

某些组件只能在特定的机器或位置上运行。

小组件增加了配置的灵活性,但它同时也增加了网络的拥塞。

大组件减少了网络的拥塞,但它同时也减少了配置的灵活性。


  当你使用DCOM时,这些设计上的限制将很容易解决,因为配置的细节并不是在源码中说明的。DCOM使得组件的位置对你来说完全透明,无论它是位于客户的同一进程中或是在地球的另一端。在任何情况下,客户连接组件和调用组件的方法的方式都是一样的。DCOM不仅无需改变源码,而且无需重新编译程序。一个简单的再配置动作就改变了组件组件之间相互连接的方式。

  DCOM的位置独立性极大地简化了将应用组件分布化的任务,使其能够达到最合适的执行效果。例如,设想某个组件必需位于某台特定的机器上或某个特定的位置,并且此应用有许多小组件,你可以通过将这些组件配置在同一个LAN上,或者同一台机器上,甚至同一个进程中来减少网络的负载。当应用是由比较少的大组件构成时,网络负载并不是问题,此时你可以将组件放在速度快的机器上,而不用去管这些机器到底在哪儿。

  图4显示了相同的“有效性检查组件”在两种不同情况下是如何分别配置的。一种情况是当“客户”机和“中间层”机器之间的带宽足够大时,它是怎样配置在客户机上的;另一种情况是当客户进程通过比较慢的网络连接来访问组件时,它又是怎样配置在服务器上的。

图4 位置独立性

  有了DCOM的位置独立性,应用系统可以将互相关联的组件放到靠地比较近的机器上,甚至可以将它们放到同一台机器上或同一个进程中。即使是由大量的小组件来完成一个具有复杂逻辑结构的功能,它们之间仍然能够有效到相互作用。当组件在客户机上运行时,将用户界面和有效性检查放在客户端或离客户端比较近的机器上会更有意义;集中的数据库事务应该将服务器靠近数据库。

语言无关性

  在设计和实现分布式应用系统时,一个普遍的问题就是为开发一个特定的组件而选择语言以及工具的问题。语言选择是一个典型的在开发费用、可得到的技术支持以及执行性能之间的折衷。作为COM的扩展,DCOM DCO具有语言独立性。任何语言都可以用来创建COM组件,并且这些组件可以使用更多的语言和工具。Java,Microsoft Visual C++,Microsoft Visual

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值