COM是一种技术标准。它是由微软公司创建,提供了使多个应用程序或组件对象协同工作并相互通信的能力。COM组件是遵循COM规范编写、以WIN32动态链接库(DLL)或可执行文件(EXE)的形式发布的可执行的二进制代码。遵循COM的规范标准,使组件与应用、组件与组件之间可以相互操作,极其方便地建立可伸缩的应用系统。从工程的角度看,组件在应用开发方面具有以下特点:
(1) 组件与开发的工具语言无关。开发人员可以根据需要和爱好选择特定语言工具实现组件的开发。常用的开发工具是VB、VC和Delphi。将组件编译成DLL或EXE置于服务器端。可有效保护商业秘密。
(2) 通过接口有效保证了组件的复用性。一个组件具有若干个接口,每个接口代表组件的某个属性或方法。其它组件或应用程序可以设置或调用这些属性和方法来进行特定的逻辑处理。组件和应用程序的连接是通过其接口实现的。负责集成的开发人员无须了解组件功能的如何实现,而只须创建组件对象与其接口建立连接。在保证接口一致性的前提下,可以调换组件、更新版本,也可以将组件应用在不同的系统中。
(3) 组件运行效率高、便于使用和管理。因为组件是二进制代码,比ASP脚本运行效率高,所以核心的商务逻辑计算任务必须由组件来负责,ASP脚本只起组装组件的角色。而且组件在网络上的位置可被透明地分配,组件和使用它的程序既能在同一进程中运行,也可在不同进程或不同的机器上运行。组件之间是相互分离和独立的。利用MTS或COM+对组件管理更加方便。
ActiveX是遵循COM/DCOM规程而开发的用于INTERNET的一种对象链接与嵌入技术(OLE)。COM是应OLE设计者的需求而诞生的。其基本的出发点是想让某个软件通过一个通用的机构为另一个软件提供服务。对于基于WEB的应用而言,它提供了使组件嵌入到WEB页面以扩展交互功能的应用机制。客户端控件是面向用户的,以可视化的图形视频或文字界面、或者音频形式在浏览器上出现。但它可能并不是浏览器的组成部分。这些控件原先是放在服务器上的。当浏览器发出请求时,WEB服务器回传页面,由浏览器负责解释。在解释过程中,若发现页面中要求调用ActiveX控件时,则用该控件的在页面中注明的ID值先在本地的注册表内进行查询。若已经存在,则说明该控件已经在本地安装,然后通过注册表中的相关信息直接使用该控件;否则就要根据页面中所提示的该控件所在的服务器上的路径到服务器上去下载并且自动完成在本地的安装注册,使该控件成为本地资源,供今后使用,这就是所谓“一次下载,永久使用“。客户端控件一旦在本地安装完毕,就等价于一个可执行的应用程序,它能访问使用本地的资源,甚至进行远程访问。当然,这可能带来了安全性问题。
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。