ActiveX是Microsoft提出的一组使用COM(ComponentObjectModel,部件对象模型)使得软体部件在网路环境中进行互动的技术集。它与具体的程式语言无关。作为针对Internet套用开发的技术,ActiveX被广泛套用于WEB伺服器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程式。
技术产生背景
随着Internet/Intranet的普及,人们对网路应用程式开发提出了更高的要求。如:Web页面需要更加丰富生动的多媒体内容,商业应用程式要求更高可靠性、更加灵活的网路套用软体开发工具等等,特别是如何在Internet上共享微软产品功能。于是微软提出了ActiveX技术。
技术简介
首先,ActiveX是一种标準。使用这个标準可以使用不同语言开发的软体构件在网路环境中相互操作。它使得Internet超越静态文本,利用多媒体效果和可互动的对象,向用户提供更加主动有趣和更加有用的服务。另外,ActiveX也是开放技术的集合,它涵盖了所有流行的Internet标準、语言和平台。通过连线Sun公司的Java技术和微软公司的OLE组件技术,ActiveX给用户和开发商提供了一个内容丰富的平台,在开发Internet新的应用程式的同时,可以保护他们以前在应用程式、工具和源码上的投资。ActiveX标準包括控制项(Controls)、文档(Documents)、脚本(Scripts)这三种最常用的技术,同时它也包括客户机技术、伺服器技术以及工具和应用程式。下面分别介绍:
* ActiveX控制项
以前被称为OLE控制项或OCX控制项,现在发展为能够运行在Web页面上的软体构件。它提供了一些可互动的用户控制功能,能够使用户不必打开其他应用程式,在Web浏览器中看到动画、影像,听到音乐。ActiveX控制项的一个主要优点是:它也能在当前许多流行的程式语言所写的应用程式中重用。如: Java,Visual Basic,Visual C++等。目前,已有1000多个ActiveX控制项可以使用,範围从小的定时器控制项到字处理器甚至Internet浏览器。
* ActiveX脚本
支持许多流行的脚本语言,包括Visual Basic Script 和JavaScript。脚本提供了在一个页面中多个对象互动的功能,如ActiveX控制项,Java applets,ActiveX Documents。其中VisualBasic Script是一个用于编写活动内容部件和Web页面的Visual Basic最佳化版本。开发人员能够用它来连结和自动生成ActiveX控制项或Javaapplets之类的程式部件,使之能够包含脚本所规定的动作。
* ActiveX文档
能使你在Web浏览器中看到非HTML格式文档,例如Microsoft Excel,Word或Visio档案。
* Java虚机器
能使任何支持ActiveX的浏览器,例如:Internet Explorer3.0,运行Java applets并且将ActiveX控制项和Java applets集成。
* ActiveX伺服器构架
提供了许多基于Web伺服器的功能,例如:安全机制、资料库访问等。目前,已有超过100家公司宣布支持ActiveX技术,并着手开发基于ActiveX的工具、应用程式以及控制项。另外,ActiveX也将被几种主要的作业系统支持,包括Window 95,Windows NT,Macintosh,Unix。这不仅能给用户选择平台的自由,而且也为ActiveX成为一种真正的分散式对象技术铺平道路。
技术区别
ActiveX、OLE和Java
ActiveX涵盖了Java和微软的OLE部件技术,但与两者有所区别。ActiveX与OLE都基于构件对象模型(Component Object Model,COM),但它们为开发者提供了本质上不同的服务。COM提供了底层的对象束定机制,这种机制允许对象之间相互通信。OLE利用COM提供应用程式的上层服务,例如: 对象的连结与嵌入,使用户能够创建複合文档。另一方面,ActiveX提供了一种机制使控制项能嵌入到Web页面中,并对事件作出回响。总的来讲,OLE侧重于单机应用程式的重用和配合,而ActiveX更侧重于网路和Internet。採用ActiveX技术,使台式计算机接口和Internet接口合二为一,消除了如档案之类的本地资源和网路资源之间的差别,对应用程式和最终用户做到网路透明。ActiveX与Java是两种不相同但相类似的技术。Java是一种平台无关的Intenet语言,用Java写的程式是一系列虚机器位元组代码,它可以在任何运行Java虚拟机(JVM)的平台上运行。而ActiveX是一套技术规範,它本身与语言无关。利用ActiveX技术,不同的开发语言可以互相利用已有的构件,这大大扩充了一种语言的功能。例如使用Visual C++创建一个定时器构件,开发人员可以在Visual Basic,Dephi,Visual C++,PowerBuilder以及其它支持ActiveX的语言中重用这个定时器构件,不必自行开发(如图一)。ActiveX比Java最大的优点就是保留了原有的技术投资,新的套用可以在老的基础上继续开发。@@11181000.GIF;图1 ActiveX控制项的开发和使用@@另外,由于ActiveX的底层支持(COM)和Java在许多概念上十分相似,使得COM和Java的集成变得十分方便。通过集成,ActiveX扩展了Java语言的功能。现在,Java程式设计师可以利用多媒体效果,一个扩充的软体对象集包括ActiveX控制项,ActiveX文档和ActiveX脚本去增强Javaapplets的功能,如在Java applets中增加声音、影像、列印、资料库访问,虚拟现实以及其他一些作业系统级的特徵。同样,用其它语言开发的对象也可以连结Java applets。图二显示了Java与ActiveX集成。总之,ActiveX已经把目前最强有力的Web技术联接到一起,Web开发者可以利用广泛的技术在保留原有投资基础上建立Internet的套用。@@11181001.GIF;图2 Java和ActiveX的集成@@
套用及开发
ActiveX的套用及开发
目前ActiveX除了原先的单机套用外,更多地使用在Internet上。ActiveX使得创建具有特色的可互动式的web页面更加快捷容易。由于有一千多个可重用的控制项,Web开发者不必再手工编写互动页面的每个部分。另外,由于有了ActiveX,开发人员不必在Web页面中只使用一种开发方式。一个Web页面可以包括Javaapplets、若干个ActiveX 控制项、ActiveX脚本或ActiveX文档。简而言之,ActiveX提供了一种粘合剂,把applets脚本、文档、图像以及其他一些ActiveX控制项集成在一个Web主页中。同时,ActiveX也给开发者一个广泛的工具选择。ActiveX控制项可以使用Visual Basic,Visval C++,Dephi,Borland C++,Visual J++开发。ActiveX文档可以使用广泛的桌面应用程式创建,例如Excel,Word,PowerPoint等。ActiveX脚本可以使用VBScript以及JavaScript编写。Java Applets可以使用一些PC工具开发商的开发工具创建,如Visual J++。无论使用什幺工具开发的对象通过ActiveX,都可以和另外一些对象集成在一个主页里。
发展现状展望
ActiveX的发展现状与展望
ActiveX这种分散式对象技术与其他同类技术相比,最大优点在于保护开发者以前的投资,几千个已有的控制项是这种技术的资本。同时,ActiveX又是一种开放的技术,它包容了现有的标準又鼓励第三方参与。但是,ActiveX技术目前还处于不断发展阶段,许多方面需要改进。比如,一些ActiveX控制项体积还过于庞大,用户浏览时进行下载速度较慢。另外,目前支持ActiveX的平台还只限于Windows系列,Unix和Macintosh对ActiveX的支持还在开发阶段,其他平台的支持也需要时间,从这一点看,ActiveX的平台无关性不如Java。这些都会限制ActiveX近期的推广和使用。然而,随着网路频宽的不断提高,异质环境对ActiveX的支持,一种分散式对象化系统必然会形成。