ActiveX的内容
ActiveX
控件
以前称为
OLE
控件或
OCX
控件
.
是组件
(或对象)
打包
,
别人编程功能
.
以便您可以重用
Web
页或其他程序中插入。
例如
,
随
InternetExplorer
一起提供
ActiveX
控件可用于增强
Web
页具有复杂格式功能和动画。
ActiveX
控件结合了
Java
程序和
Netscape
插件优点,还可以用许多编程语言
,
包括所有
Microsoft
编程和在数据库语言编写程序中使用
ActiveX
控件。
ActiveX
文档
用一个
ActiveX -
识别
Web
浏览器如
InternetExplorer,
浏览时
ActiveX
文档使您能够使用自己的工具栏和菜单可打开程序。
这意味着您可以通过使用
ActiveX -
识别
Web
浏览器打开非
HTML
文件
,
如
MicrosoftExcel
或
MicrosoftWord
文件。
ActiveX
脚本
ActiveX
脚本支持最常用脚本语言
,
包括
Microsoft VisualBasic
脚本和
JavaScript
。
ActiveX
脚本可用于集成行为若干
ActiveX
控件或
Java
程序从
Web
浏览器或服务器
,
扩展其功能。
ActiveX的特点
在因特网上,
ActiveX
插件软件的特点是:一般软件需要用户单独下载然后执行安装,而
ActiveX
插件是当用户浏览到特定的网页时,
IE
浏览器即可自动下载并提示用户安装。
ActiveX
插件安装的一个前提是必须经过用户的同意及确认。
ActiveX
插件技术是国际上通用的基于
Windows
平台的软件技术,除了网络实名插件之外,许多软件均采用此种方式开发,例如
Flash
动画播放插件、
Microsoft MediaPlayer
插件、
CNNIC
通用网址插件等。
相关内容
1.
浏览器如何保证
ActiveX
插件的安全性?
当通过
Internet
发行软件时,软件的安全性是一个非常引人注意的问题,
IE
浏览器通过以下的方式来保证
ActiveX
插件的安全:
ActiveX
使用了两个补充性的策略:安全级别和证明,来追求进一步的软件安全性;
Microsoft
提供了一套工具,可以用它来增加
ActiveX
对象的安全性;
通过
Microsoft
的验证代码工具,可以对
ActiveX
控件进行签名,这告诉用户你的确是控件的作者而且没有他人篡改过这个控件;
为了使用验证代码工具对组件进行签名,必须从证书授权机构获得一个数字证书;证书包含表明特定软件程序是正版的信息,这确保了其他程序不能再使用原程序的标识。证书还记录了颁发日期。当您试图下载软件时,
Internet Explorer
会验证证书中的信息,以及当前日期是否在证书的截止日期之前。如果在下载时该信息不是最新的和有效的,
Internet Explorer
将显示一个警告;
在
IE
默认的安全级别中,
ActiveX
控件安装之前,用户可以根据自己对软件发行商和软件本身的信任程度,选择决定是否继续安装和运行此软件。
在最新的
IE 7
中,安全性有进一步的提高。
2.
关于三个概念:
ActiveX
、
OLE
和
COM
熟悉面向对象编程和网络编程的人一定对
ActiveX
、
OLE
和
COM/DCOM
这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多人还是比较模糊的。
在具体介绍它们的关系之间,我们还是先明确组件(
Component
)和对象(
Object
)之间的区别。
组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(
Rules Object
)。组件看起来像对象,但不符合对象的学术定义。它们的主要区别是:
1
)组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用;
2
)组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序;
3
)组件为模块重用,而对象为代码重用。
现在,比较流行的组件模型有
COM
(
Component Object Model
,对象组件模型)
/DCOM
(
Distributed COM
,分布式对象组件模型)和
CORBA
(
Common Object Request Broker Architecture
,公共对象请求代理体系结构)。到这里,已经出现了与本文相关的主题
COM
,而
CORBA
与本文无关,就不作介绍。之所以从组件与对象的区别说起,是想让大家明确
COM
和
CORBA
是处在整个体系结构的最底层,如果暂时对此还不能理解,不妨继续往下看,最后在回过头看一看就自然明白了。
现在开始阐述
ActiveX
、
OLE
和
COM
的关系。首先,让大家有一个总体的概念,从时间的角度讲,
OLE
是最早出现的,然后是
COM
和
ActiveX
;从体系结构角度讲,
OLE
和
ActiveX
是建立在
COM
之上的,所以
COM
是基础;单从名称角度讲,
OLE
、
ActiveX
是两个商标名称,而
COM
则是一个纯技术名词,这也是大家更多的听说
ActiveX
和
OLE
的原因。既然
OLE
是最早出现的,那么就从
OLE
说起,自从
Windows
操作系统流行以来,
“
剪贴板
”
(
Clipboard
)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是
“
死
”
数据,应用程序开发者得自行编写、解析数据格式的代码,于是动态数据交换(
Dynamic Data Exchange
,
DDE
)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据,但是,解决彼此之间的
“
数据格式
”
转换仍然是程序员沉重的负担。对象的链接与嵌入(
Object Linking and Embedded
,
OLE
)的诞生把原来应用程序的数据交换提高到
“
对象交换
”
,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容,其实
OLE
是
Microsoft
的复合文档技术,它的最初版本只是瞄准复合文档,但在后续版本
OLE2
中,导入了
COM
。由此可见,
COM
是应
OLE
的需求而诞生的,所以虽然
COM
是
OLE
的基础,但
OLE
的产生却在
COM
之前。
COM
的基本出发点是,让某个软件通过一个通用的机构为另一个软件提供服务。
COM
是应
OLE
的需求而诞生,但它的第一个使用者却是
OLE2
,所以
COM
与复合文档间并没有多大的关系,实际上,后来
COM
就作为与复合文档完全无关的技术,开始被广泛应用。这样一来,
Microsoft
就开始
“
染指
”
通用平台技术。但是
COM
并不是产品,它需要一个商标名称。而那时
Microsoft
的市场专家们已经选用了
OLE
作为商标名称,所以使用
COM
技术的都开始贴上了
OLE
的标签。虽然这些技术中的绝大多数与复合文档没有关系。
Microsoft
的这一做法让人产生这样一个误解
OLE
是仅指复合文档呢?还是不单单指复合文档?其实
OLE
是
COM
的商标名称,自然不仅仅指复合文档。但
Microsoft
自己恐怕无法解释清楚,这要花费相当的精力和时间。于是,随着
Internet
的发展,在
1996
年春,
Microsoft
改变了主意,选择
ActiveX
作为新的商标名称。
ActiveX
是指宽松定义的、基于
COM
的技术集合,而
OLE
仍然仅指复合文档。当然,
ActiveX
最核心的技术还是
COM
。
ActiveX
和
OLE
的最大不同在于,
OLE
针对的是桌面上应用软件和文件之间的集成,而
ActiveX
则以提供进一步的网络应用与用户交互为主。
到这里,大家应该对
ActiveX
、
OLE
和
COM
三者的关系有了一个比较明确的认识,
COM
才是最根本的核心技术,所以下面的重点
COM
。让对象模型完全独立于编程语言,这是一个非常新奇的思想。这一点从
C++
和
Java
的对象概念上,我们就能有所了解。但所谓
COM
对象究竟是什么呢?为了便于理解,可以把
COM
看作是某种(软件)打包技术,即把它看作是软件的不同部分,按照一定的面向对象的形式,组合成可以交互的过程和以组支持库。
COM
对象可以用
C++
、
Java
和
VB
等任意一种语言编写,并可以用
DLL
或作为不同过程工作的执行文件的形式来实现。使用
COM
对象的浏览器,无需关心对象是用什么语言写的,也无须关心它是以
DLL
还是以另外的过程来执行的。从浏览器端看,无任何区别。这样一个通用的处理技巧非常有用。例如,由用户协调运行的两个应用,可以将它们的共同作业部分作为
COM
对象间的交互来实现(当然,现在的
OLE
复合文档也能做到)。为在浏览器中执行从
Web
服务器下载的代码,浏览器可把它看作是
COM
对象,也就是说,
COM
技术也是一种打包可下载代码的标准方法(
ActiveX
控件就是执行这种功能的)。甚至连应用与本机
OS
进行交互的方法也可以用
COM
来指定,例如在
Windows
和
Windows NT
中用的是新
API
,多数是作为
COM
对象来定义的。
可见,
COM
虽然起源于复合文档,但却可有效地适用于许多软件问题,它毕竟是处在底层的基础技术。用一句话来说,
COM
是独立于语言的组件体系结构,可以让组件间相互通信。随着计算机网络的发展,
COM
进一步发展为分布式组件对象模型,这就是
DCOM
,它类似于
CORBA
的
ORB
,本文对此将不再做进一步的阐述。通过上面的讲述相信大家一定对
ActiveX
、
OLE
和
COM/DCOM
的关系有了一个清楚的了解。