VB 版 (精华区)
发信人: zxfsnow (别怕我伤心), 信区: VB
标 题: ActiveX技术面面观
发信站: 哈工大紫丁香 (2000年06月01日19:05:50 星期四), 转信
发信人: lijialie (day), 信区: VB
标 题: ActiveX技术面面观
发信站: 饮水思源站 (Mon Sep 6 10:40:38 1999) , 站内信件
一、ActiveX的由来
ActiveX最初只不过是一个商标名称而已,它所涵盖的技术并不是各自孤立
的,
其中多数都与Internet和Web有一定的关联。更重要的是,ActiveX的整体技术是由
Microsoft的COM(Component
Object Model,组件对象模型)构筑的。但不要误认为ActiveX是定义了所有
包
含基于COM的技术。COM与Microsoft
Office和Windows以及Microsoft现在所做的一切都有关联,但显然这些产品
并不是ActiveX家族中的成员。
ActiveX是从Microsoft的复合文档技术——OLE成长起来的。OLE最初发布
的版本,只是瞄准复合文档,但在后续版本OLE2中,导入了COM。COM是应OLE设计者的需求
而诞生的。其基本的出发点是想让某个软件通过一个通用的机构为另一个软件提供服务
。因
而,COM的第一个使用者是OLE2。实际上,COM与复合文档间,没有多大关系。后来,COM就作
为与复合文档完全无关的技术,开始被广泛使用。这样一来,Microsoft就开始"染指"通用
平
台技术。但COM不是产品,它需要一个商标名称。不巧,市场专家们选用了"OLE"作为商标
名
称。于是,使用COM的技术都开始贴上了OLE的标签。当然,这些技术中的绝大部分与复合
文
档没有关系。Microsoft要想向人们解释:"OLE不单单是指复合文档!",这要花费相当的精
力
和时间。
于是,在1996年春,Microsoft改变了主意,选择了ActiveX作为新商标名。
ActiveX是指宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文档。当然,最重要的
核心还是COM。
让对象模型完全独立于编程语言,这是一个非常新奇的思想。从C++和Java
的
对象上,我们就能有所了解。但所谓COM对象究竟是什么?为了便于理解,可以把COM看作是
某种(软件)打包技术,即把它看作是使软件的不同部分,按照一定的面向对象的形式,组合
成
可以交互的过程和一组支持库。COM对象可以用C++、Java和VB等任意一种语言编写,并可
以DLL或作为不同过程工作的执行文件的形式来实现。使用COM对象的客户端,无需关心对
象是用什么语言写的,也无需关心它是以DLL、还是以另外的过程来执行的。从客户端来
看,
无任何区别。
这样一个通用的处理技巧非常有用。例如,由用户协调运行的两个应用,可
以将
它们的共同作业部分,作为COM对象间的交互来实现(当然,现在的OLE复合文档也能做到)
。
为在浏览器中执行而从Web服务器下载的代码,浏览器可把它看作是COM对象。即是说,CO
M
技术也是一种打包可下载代码的标准方法(ActiveX控件执行这种功能)。
甚至连应用与本机OS进行交互的方法,也可以用COM来指定(Windows和
Windows
NT用的新API,多数是作为COM对象来定义的)。COM虽然起源于复合文档,但
却可有效地适用于许多软件问题。
二、ActiveX王国
Active平台是Microsoft的世界观。其基本思想是:使用ActiveX控件,来构
筑包括从与用户交互和适应COM的事务处理监视器到Web服务器、全部实现自动化的机构
。
Active平台包括两大部分:Active
Server和Active Client。
Active
Server实际上是中间层。使用组件或Active服务器页面,来提供用于业务逻
辑和主要应用处理的场所。ActiveServer的技术,其核心是NT
Server、Microsoft事务处理服务器、数据管理服务、目录服务、Web服务
以
及网络服务。
事务处理服务器是把线程产生和数据库多重化等传统的TP监控功能与
Microsoft的基于组件的编程模型结合起来。数据管理服务等Active平台的其他组件是用
OLE
DB和ODBC,访问DB2、Oracle、SQL Server等的数据源。目录服务是在
DCOM(Distributed
COM,分布式COM)的周围,提供目录服务层,这样使远程对象在网络上能相互
搜
索。Web服务以Internet信息服务器为中心进行构筑,它为服务器上的Web应用开发,提供
脚本生成(Scripting)机构。网络服务以DCOM为中心进行构筑,通过以同步MS-RPC为中介
的
网络,使之能够连接控件。
Active
Client是一种交叉平台。Microsoft的技术纵然是独家所有,但也希望将这
种
技术向多个OS开放。具体实施计划是使用脚本引擎(Scripting
Engine)。这种脚本引擎是由标准的HTML和带有Microsoft特色的Java虚拟
机(JVM)、Microsoft的VBScript与JScript所构成的。Active
Client组装进了Microsoft的IE 3.0和4.0,通过ActiveX,可以变成用户的C
/S
应用的一部分。
从清一色采用Windows的企业用户来看,Active平台可以提供坚固的、具有
可
缩放性的服务器应用开发平台。ActiveServer在TP监视器这类高端产品的场合,也利用常
见的一些工具和技术。因此,小型工作组和Intranet应用不会超越Active
Server的能力。Active平台的目标机虽是异种机环境,但由于过分依赖IE,
所
以不能驱动客户端。尽管在一些非Windows平台上也推出了Explorer,但最好的支持、最
新
版本的Explorer还是在Windows上。
三、ActiveX的进展
1.向分布计算扩充
COM的最初版本假定COM对象及其客户端是在同一个机器上运行(可以在同一
个进程内,也可以在不同的进程内),DCOM是ActiveX家族中的重要成员。后来,它在Windo
ws
95中也能使用。DCOM对于客户端制作COM对象、进行交互的方法没有做任何
改变。
客户端使用完全相同的代码,可以访问本地以及远程对象。但许多场合下,
客户
想使用少数的DCOM附件。DCOM备有分布式安全保密机制,提供认证和数据加密。在1998年
要发布的Windows
NT
5.0中,要将Kerberos等安全保密协议,追加到DCOM中。DCOM已能够利用域名
服务等简洁的目录服务,以用于搜寻在其他机器上的COM对象。NT
5.0要追加对Active Directory的支持。Active Directory是基于域名服务
和轻型目录访问协议的。
DCOM的劲敌,此前一直是OMG(Object Management Group)的CORBA(Common
Object
Request Broker
Architecture)。它被组装进了Iona的Orbix和Visigenic的VisiBroker等
产品中。不久前,另一种支持分散对象的技术——Java的远程方法调用出台了。无论是C
ORBA,
还是DCOM,都能在多种语言写的对象间进行通信。而RMI却不同,它只限于在由Java实现的
对象间进行通信。显然,这是个制约。但RMI使用起来非常简单。另外,RMI的开发者可以
用
Java来设计协议规范。因此,在语言的功能上,可以做得浑然一体。若写一个只处理两三
个
客户端的DCOM服务器,还是比较简单的。但是,要构筑一个高效处理几百、几千个客户端
的
DCOM服务器,则相当之难。
--
--
以科计为本,以产业报国!
超越自我,飞跃无限!
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.235.249]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.571毫秒