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