组件模型:COM/DCOM、CORBA、KCOM

本文深入探讨了组件对象模型(COM)、分布式组件对象模型(DCOM)、通用对象请求代理体系结构(CORBA)以及KCOM,这些都是用于构建跨平台、跨语言的分布式应用程序的关键技术。COM和DCOM由微软开发,提供Windows环境下的组件互操作性;CORBA是一种开放标准,旨在实现不同系统间的无缝交互;KCOM则是在特定场景下的一种替代选择。这些技术通过接口定义语言和对象管理设施,实现了软件组件的复用和远程调用,极大地推动了互联网和分布式应用的发展。
摘要由CSDN通过智能技术生成

 

从第一台计算机产生开始,硬件技术和软件技术几乎同时开始它们的发展历程。但是半个世纪以来硬件技术的发展速度要远远高于软件技术的发展,从电子管到晶体管,从集成电路到超大规模集成电路,运算速度从每秒几千次到每秒上万亿次。相比之下软件技术就远远跟不上硬件技术的发展,其中的根源应该是很长时间内没有找到有效软件构造方法。可喜的是七十年代开始出现的面向对象的认知方法和编程语言,经过二十多年的发展,于九十年代结出累累硕果,在二十世纪末出现了由面向对象发展而来的组件技术,它正是软件业期待多年的这样一种有效的软件构造方法。

组件模型定义组件的制作方法,运行方式,以及相互作用机制。本文介绍目前流行的两种组件模型:COM(以及建立在COM基础之上的DCOM)组件模型、CORBA组件模型,最后引入一种便于提高组件构造效率的、更真实地反映现实世界的源码级组件模型——KCOM组件模型。

1.COM/DCOM组件模型

COM(the Component Object Model)是一种平台独立的、分布式、面向对象的系统,用于创建可互操作的二进制软件组件。COM 是微软的OLE(复合文档),ActiveX(可用于Internet的组件),以及许多其它技术的基础。COM最初是由微软公司提出并独立发展,现在,它已交给一个独立的组织管理。

为了理解COM以及所有建立COM基础之上的技术,有一点必须铭记在心,那就是COM不是一种面向对象语言,而是一种标准。COM 也不指定一个应用程序应该如何构建。语言,结构,以及实现细节都留给应用开发人员。COM指定一种组件模型以及COM组件(或对象)之间相互作用所需具备的编程要求。COM组件可以分布在同一个进程内,或者在不同的进程间,甚至是远端的机器上。COM组件可以是用不同的语言编写,结构也可以有很大的不同。COM被认为是一种二进制标准,因为它是一种当程序被编译成二进制机器码后才起作用的标准。

COM对语言的唯一要求就是必须能创建结构指针,并且能显式地或隐式地通过指针调用函数。面向对象语言,如C++、Smalltalk等,都提供简化COM组件实现的编程机制。其它语言环境,如C、Pascal、Ada、Java、BASIC等也都能创建和使用COM组件。

COM定义了COM组件的本质特征。一般来说,软件是由一组数据以及操纵这些数据的函数构成的。COM组件通过一个或多个相关函数集来存取组件的数据,这些函数集称为接口,而接口的函数称为方法。COM组件通过接口指针调用接口的方法。

除了指定二进制组件标准,COM还定义一些基本的接口以提供一些所有基于COM组件的技术所公有的函数。此外,COM还提供一些所有组件所需要的API函数。

DCOM(the Distributed Component Object Model)扩展COM,以支持不同计算机之间的对象间通信,这些计算机可以是位于局域网,广域网,甚至是互连网。

DCOM是COM这一世界流行的组件技术的自然发展,因此可以在充分利用已有的基于COM的应用程序、组件、工具、知识等的基础之上转向分布式计算。DCOM使用户能将重点放在真正的商业应用上,而不必关心太多的网络协议细节。

DCOM位于应用程序的组件之间,将组件以不可见的方式胶合在一起组成具有完整功能的应用程序。

DCOM的特性使得编写分布式应用程序变得容易:

l          适合从最小的单机环境到最大的集群服务器

l          提供组件间的丰富的、均衡的通讯

l          可以强有力地扩充以适应功能需求

l          可充分利用已有组件,比如说COM组件

l          精通不同编程语言和开发工具的小组可以

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值