COM组件和Web服务组件的区别?

日期: 2008-05-25 作者:Daniel Foody 来源:TechTarget中国

问:能给出COM组件(.DLL 动态链接库,以可执行文件扩展名.DLL保存)和Web服务组件(以.ASMX文件扩展名保存)之间有什么样的区别?为什么他们对事务逻辑使用一个以.dll为扩展名的文件来替代?   答:用户使用COM有两种截然不同的方法:一是作为进程中的DLLs,另一个是作为远程服务(分布式COM)。当COM是被用作进程中的时候,组件是典型地fine-grained(组件期望有很多的API(应用程序编程接口),它们中的每一个都返回一个小数量级的数据)。既然DLL运行在调用进程中,那么它也需要调用方拥有这个DLL的拷贝。这意味着任意一个时间的DLL版本,任意一个应用,需要DLL被建立起……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

问:能给出COM组件(.DLL 动态链接库,以可执行文件扩展名.DLL保存)和Web服务组件(以.ASMX文件扩展名保存)之间有什么样的区别?为什么他们对事务逻辑使用一个以.dll为扩展名的文件来替代?

  答:用户使用COM有两种截然不同的方法:一是作为进程中的DLLs,另一个是作为远程服务(分布式COM)。当COM是被用作进程中的时候,组件是典型地fine-grained(组件期望有很多的API(应用程序编程接口),它们中的每一个都返回一个小数量级的数据)。既然DLL运行在调用进程中,那么它也需要调用方拥有这个DLL的拷贝。这意味着任意一个时间的DLL版本,任意一个应用,需要DLL被建立起来(因为DLL通常会和这些应用捆绑到一起)。这也意味着任何数据库或者其他的数据存储需要通过DLL,这个DLL需要从每一个DLL已经被安装的应用里面可被利用(意思是所有的合适的驱动需要被正确的安装完成)。这些需求带来了很多令人头疼的问题。

  与之形成比较的是Web服务和分布式COM,服务提供商提供的客户端远程登录。这允许服务提供商来压缩任何的数据库或者数据易用逻辑,而不需要客户端了解它。Web服务和分布式COM也允许服务提供商可以被versioned,而不需要去升级任何客户端。

  来自分布式COM的Web服务自身区别就是在它们的协同作业能力中。Web服务作业通过操作系统和平台(Windows,UNIX,C#,JAVA,等等),通过互联网(因为比较二进制的分布式COM协议,他们更倾向于经由规则的超文本传输协议HTTP来访问),并且比较分布式COM,甚至允许更高级的组件。举例来说,你可以扩展你的数据结构而不需要破坏你的客户端。

相关推荐