问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

ActiveX到底是什么东西?对银行密码保密有什么作用?

发布网友 发布时间:2022-04-14 12:04

我来回答

6个回答

懂视网 时间:2022-04-14 16:25

摘要 事务控制是数据库应用系统中的关键技术之一,本文一开始先对事务控制的概念以及微软的 ActiveX 数据对象( ADO )的事务控制做了简介,之后以一个具体的实例给出ActiveX数据对象的事务控制在VB和DELPHI中的使用方法。 关键词 ActiveX数据对象(ADO);事务

摘要 事务控制是数据库应用系统中的关键技术之一,本文一开始先对事务控制的概念以及微软的 ActiveX数据对象(ADO)的事务控制做了简介,之后以一个具体的实例给出ActiveX数据对象的事务控制在VB和DELPHI中的使用方法。

关键词 ActiveX数据对象(ADO);事务控制;VB;DELPHI

1 引言

在数据库的应用中,有时会遇到以独立单元保存或取消对源数据所做的一系列更改。例如在货币转帐时,必须从帐户中减去某个数额并将其对等数额添加到另一个帐户。无论其中的哪个更新失败,都将导致帐户收支不平衡。再如,在进行商品库存管理时,当发生购进或售出商品时,一方面要在商品的销售表中保存该商品的销售记录,另一方面,还要在商品库存中对该种商品的库存进行调整。无论其中的哪个更新失败,都将导致商品收支不平衡。在这种情况下,必须通过事务控制来保证操作的一致性。

2 ActiveX数据对象事务控制

2.1 ActiveX数据对象(ADO)简介

Microsoft ActiveX Data Objects(ADO)是Microsoft开发的数据访问对象,它可使用户通过何OLE DB Provider 访问数据库服务器中的数据。ADO趋向于提供一种稳定的接口,来使用户利用多种不同的数据源包括从非关系型数据源(包括文本文件、电子邮件等)到ODBC关系型数据库。所以它是对ODBC的扩充。

ADO的主要优点是使用简单,快速,内存消耗量低,磁盘的占有量少,在关键

情况下网络的通信量最少,前端与数据存储之间的层次最少,是一种轻便质优的接口。

2.2 ActiveX数据对象(ADO)事务控制

BeginTrans、CommitTrans和RollbackTrans是ADOConnection部件供数据库应用程序在运行时调用开始事务、控制并保存或放弃所做数据修改的方法。

l BeginTrans 开始一个事务

当开始一个事务时,后来所有读写数据库的操作都发生在这次事务的环境中,直到本次事务通过调用CommitTrans或RollbackTrans来显示的终止为止。还以商品管理为例,当购进或售出商品时,在商品数据库记录上必须发生两个修改:

  A、购进或销售的记录必须记录在销售表中;

  B、在商品库存中对该类商品的库存进行调整。

        如果出于某种原因,其中的一个操作不能被完成,那么任何一个操作都不应该发生。因为这些操作是相关的,它们发生在同一个事务中。

l RollbackTrans 取消事务中的修改并终止当前事务

        为了取消对数据库所做的修改,必须用RolllbackTrans方法返回一个事务。RollbackTrans方法取消当前事务中对数据库所做的修改并终止当前事务。

l CommitTrans  提交一个事务

        为了做永久性的修改,必须CommitTrans方法提交事务,这将保存用户对数据库所做的修改并结束当前事务。

在VB 6.0中,ADO成为它与各种数据源的缺省接口,ADO数据访问方式是现在和未来VB乃至Microsoft的各种应用软件进行数据访问与应用的主流。

而在DELPHI中,基于DBE(Borland Database Engine的简称,即Borland数据库引擎)的数据库访问方式是DELPHI的标准的、传统的方式;基于ADO技术的数据库访问方式,这是DELPHI 5.0新增的功能。DELPHI 5.0 提供了一整套ADO组件,封装了ADO框架的所有功能。

下面以商品库存管理来分别阐明ADOConnection的事务控制在VB和DELPHI中的应用。

3 商品库存管理中的数据库

该数据库GoodsManagement用Microsoft的SQL Server创建,包括三个用户数据表,用户表Users、库存表Goods、进销表InOutGoods,每个数据表的表结构如下:

l 用户表Users

字段名        数据类型        长度

用户名        VARCHAR 8

用户类型 VARCHAR 10

用户口令 VARCHAR 6

    主键为: 用户名

    注:

      用户类型有一般用户和系统管理员两种,其中一般用户只能进行销售商品,碉系统管理员还可以增加或删除用户,由于本文章只是阐述ADOConnection的事务控制,所以也就涉及到用户管理。

l 库存表Goods

字段名        数据类型        长度

商品名        VARCHAR 14

商品描述 VARCHAR 16

商品库存 SMALLINT 2

主键为:商品名

l 进销表InOutGoods

字段名        数据类型        长度

进销 VARCHAR 2

商品名称 VARCHAR 14

商品数量 SMALLINT 2

商品价格 MONEY 8

操作人员 VARCHAR 8

操作时间 DATETIME 8

主键为:(操作人员,操作时间)

    外键为:操作人员,对应于Users表的用户名

4 ADO事务控制应用〈〈商品库存管理〉〉在VB中的实现

4.1 数据环境设计器

           

图1 数据环境设计器

数据环境设计器中主要控件的属性如下:

控件名        控件类型        重要属性设置

CN ADOConnection对象   ConnectSource如下:

Provider=SQLOLEDB.1;Password=SA;Persist Security Info=True;User ID=sa;

Initial Catalog=GoodsManagement

  Goods ADOCommand对象   ConnectionName:CN 

CommandText:Goods

InOutGoods ADOCommand对象 ConnectionName:CN  

CommandText:Goods

StrSQL ADOCommand对象 ConnectionName:CN 

CommandText:Goods

4.2 进库管理模块的代码 

下面就以其中的一个程序段“进库管理”来说明ADO数据对象如何实现事务管理。

 Dim intNum1, intNum2 As Integer

?

  ‘开始一个事务

DE.Cn.BeginTrans

With DE.rsInOutGoods

‘写入购进商品的记录

.AddNew

.Fields(0).Value = "进"

.Fields(1).Value = TxtName.Text

.Fields(2).Value = CInt(TxtNumber.Text)

.Fields(3).Value = CInt(TxtPrice.Text)

.Fields(4).Value = G_userName

.Fields(5).Value = CStr(Now)

.   .Update

End With

If DE.rsStrSQL.State = adStateOpen Then

DE.rsStrSQL.Close

End If

‘求进销表中商品名为TxtNumber.Text且为进的所有记录的进货数量之和

With DE.rsStrSQL

.Open "select sum(商品数量) from InOutGoods where 进销='进'" & " and 商品名称='" & TxtName.Text & "'"

intNum1 = .Fields(0).Value

.Close

End With

‘求进销表中商品名为TxtName.Text且为销的所有记录的进货数量之和

With DE.rsStrSQL

.Open "select sum(商品数量) from InOutGoods where 进销='销'" & " and

商品名称='" & TxtName.Text & "'"

If .RecordCount = 1 And IsNull(.Fields(0).Value) Then

intNum2 = 0

Else

intNum2 = .Fields(0)

End If

.Close

End With

  ‘调整商品库存中该商品的库存量

DE.Cn.Execute "update Goods set 商品库存=" & (intNum1 - intNum2) & " where 商品名='" & TxtName.Text & "'"

 ‘向数据库提交事务

D【本文来自鸿网互联 (http://www.68idc.cn)】E.Cn.CommitTrans  

?

5 ADO事务控制应用〈〈商品库存管理〉〉在DELPHI中的实现

5.1 系统中的数据模块

数据模块窗体主要控件的属性如下:

控件名        控件类型        重要属性设置

ADOCn       ADOConnection对象   ConnectSource :(同前)

  ADODatasetGoods 数据集部件ADODataset   ConnectionName:ADOCN  

CommandText:Goods

ADODatasetInOutGoods 数据集部件ADODataset ConnectionName:ADOCN  

CommandText:Goods

ADODataset1 数据集部件ADODataset ConnectionName:ADOCN  

CommandText:Goods

DataSourceGoods  DataSource控件   Dataset:ADODatasetGoods

DataSourceInOutGoods  DataSource控件 Dataset:ADODatasetInOutGoods

5.2 进库管理模块的代码

下面就以其中的一个程序段“进库管理”来说明ADO数据对象如何实现事务管理。

var

strSQL:string;

intNum1,intNum2,intRecordsAffected:integer;

begin

?

//启动事务控制

DM.ADOCn.BeginTrans;

//向进销表插入一条记录

with DM.ADODataSetInOutGoods do begin

  insert;

  fields[0].Value:='进';

fields[1].Value:= editName.text;

fields[2].AsString:=editNumber.text;

fields[3].AsString:=editPrice.text;

fields[4].Value:=G_UserName;

fields[5].AsString :=DateTimeToStr(now);

Post;

end;

//求进销表中商品名为editName.text且为进的所有记录的进货数量之和

strSQL:='select sum(商品数量) from InOutGoods where 进销=''进''

and 商品名称='''+editName.text+'''';

with DM.ADODataSet1 do begin

Close;

CommandText:=strSQL;

Open;

end;

intNum1:=DM.ADODataSet1.Fields[0].Value ;

//求进销表中商品名为editName.text且为销的所有记录的进货数量之和

strSQL:='select sum(商品数量) from InOutGoods where 进销=''销''

and 商品名称='''+editName.text+'''';

with DM.ADODataSet1 do begin

Close;

CommandText:=strSQL;

Open;

end;

if (DM.ADODataSet1.RecordCount=1) and

DM.ADODataSet1.Fields[0].Value=null) then

IntNum2:=0

else

intNum2:=DM.ADODataSet1.Fields[0].value;

strSQL:='update Goods set 商品库存='+intToStr(intNum1-intNum2)

+' where 商品名='''+editName.Text+'''';

DM.ADOCn.Execute (strSQL,intRecordsAffected,[eoExecuteNoRecords]) ;

DM.ADOCn.Execute(strSQL,intRecordsAffected,[eoExecuteNoRecords]) ;

DM.ADOCn.CommitTrans ;

?

热心网友 时间:2022-04-14 13:33

使用 ActiveX 控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能.例如动画什么的 还有保密功能.就是银行帐号下的密码通常要装这个才能输入
ActiveX
一、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对象。即是说,COM技术也是一种打包可下载代码的标准方法(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服务以Inter net信息服务器为中心进行构筑,它为服务器上的Web应用开发,提供脚本生成(Scripting )机构。网络服务以DCOM为中心进行构筑,通过以同步MS-RPC为中介的网络,使之能够连接控件。
Active Client是一种交叉平台。Microsoft的技术纵然是独家所有,但也希望将这种技术向多个OS开放。具体实施计划是使用脚本引擎(Scripting Engine)。这种脚本引擎是由标准的HTML和带有Microsoft特色的Java虚拟机(JVM)、Microsoft的VBScript与JSc ript所构成的。Active Client组装进了Microsoft的IE 3.0和4.0,通过ActiveX,可以变成用户的C/S应用的一部分。
从清一色采用Windows的企业用户来看,Active平台可以提供坚固的、具有可缩放性的服务器应用开发平台。ActiveServer在TP监视器这类高端产品的场合,也利用常见的一些工具和技术。因此,小型工作组和Intranet应用不会超越Active Server的能力。Acti ve平台的目标机虽是异种机环境,但由于过分依赖IE,所以不能驱动客户端。尽管在一些非Windows平台上也推出了Explorer,但最好的支持、最新版本的Explorer还是在Window s上。
三、ActiveX的进展
1.向分布计算扩充
COM的最初版本假定COM对象及其客户端是在同一个机器上运行(可以在同一个进程内 ,也可以在不同的进程内),DCOM是ActiveX家族中的重要成员。后来,它在Windows 95中也能使用。DCOM对于客户端制作COM对象、进行交互的方法没有做任何改变。
客户端使用完全相同的代码,可以访问本地以及远程对象。但许多场合下,客户想使用少数的DCOM附件。DCOM备有分布式安全保密机制,提供认证和数据加密。在1998年要发布的Windows NT 5.0中,要将Kerberos等安全保密协议,追加到DCOM中。DCOM已能够利用域名服务等简洁的目录服务,以用于搜寻在其他机器上的COM对象。NT 5.0要追加对Acti ve Directory的支持。Active Directory是基于域名服务和轻型目录访问协议的。
DCOM的劲敌,此前一直是OMG(Object Management Group)的CORBA(Common Object R equest Broker Architecture)。它被组装进了Iona的Orbix和Visigenic的VisiBroker等产品中。不久前,另一种支持分散对象的技术——Java的远程方法调用出台了。无论是C ORBA,还是DCOM,都能在多种语言写的对象间进行通信。而RMI却不同,它只限于在由Java 实现的对象间进行通信。显然,这是个制约。但RMI使用起来非常简单。另外,RMI的开发者可以用Java来设计协议规范。因此,在语言的功能上,可以做得浑然一体。
若写一个只处理两三个客户端的DCOM服务器,还是比较简单的。但是,要构筑一个高效处理几百、几千个客户端的DCOM服务器,则相当之难。
为了便于编写可缩放的DCOM服务器,Microsoft发布了事务处理服务器(MTS)。MTS在支持事务处理的同时,也提供自动生成线索和智能对象的重复使用等服务。MTS使可缩放服务器的制作变得相当简单。即使是无需事务处理的应用,使用MTS也有好处。实际上,M icrosoft鼓励人们用VB来写MTS应用。这与开发业务服务器的传统手法不同,所有的MTS应用,都是作为一个以上的COM对象来编写,且必须以DLL来实现。一般情况下,客户端看不到 MTS。客户端只管一如既往地制作、使用COM对象即可。
2.组件的标准化
基于组件的应用开发,其方法和组装电子装置一样,可以用已制作好的组件部件来构筑应用。桌面用的、基于COM的组件叫做ActiveX控件。所谓ActiveX控件不过是遵从一定的标准、与客户端交互的COM对象而已。
例如,ActiveX控件必须通过Automation (即使用dispinterfaces)来公开方法。用这个被标准化的交互功能,可以在多个不同的上下文中,使用同一个控件。在这个标准接口的"幕后",ActiveX控件几乎是什么都能执行。现在,许多软件公司都能提供实现各种功能的控件。
ActiveX控件是作为DDL编写的,为此,必须装载到某个容器中。ActiveX控件的原型容器是VB,除此之外,还有多种容器可供选择。目前,一个非常重要的控件容器是Microsoft 的Web浏览器
现在所谓ActiveX控件的那些内容,是实现许多方法所必须的。已经把它们从机器的本地硬盘移到了VB等容器中。几百KB和几MB的控件,似乎没有什么大区别。但要将控件装载到Web浏览器时,很可能要通过速度很慢的电话线。现在,控件的大小已经是非常关键的问题。一旦要执行超过了某个限度以上的控件,就会延长下载时间。因此,Microsoft规定 :在ActiveX控件中,只能执行绝对必要的功能。
Apple和IBM推行的OpenDoc,曾是ActiveX控件的主要竞争对手。现在OpenDoc的赞助企业,已正式宣告中止资助。大部分与Microsoft对抗的企业,转而支持JavaBeans(基于J ava的组件结构)。ActiveX控件,基本上都是和Windows*在一起、以二进制机器代码发放的,而JavaBeans却不同,它在哪儿都能执行。这当然是有代价的。显而易见,只要不牺牲可移植性,就不可能完全、彻底地利用本地环境。要编写从公共Internet上能下载的组件时,应优先选择JavaBeans。
桌面组件市场在持续、急速增长。其中绝大部分是以ActiveX控件构筑的(目前Java Beans仍然是少数)。但服务器组件的标准化要落后一些。在桌面上,Web浏览器、VB以及 PowerBuilder这些编程环境,作为容器是强有力的。但服务器容器又该当如何呢?作为服务器上的组件容器,事务处理服务器是一个较好的选择。
Microsoft的竞争对手,千方百计要阻止MTS和NT称霸市场。他们正在快马加鞭地制订服务器上的组件标准,其中最有前途的是Enterprise JavaBeans。它是JavaBeans的扩充 ,并定义了事务处理服务器接口。Enterprise JavaBeans的支持者们,希望独立软件厂商不是将服务器组件作为COM组件来编写,而是要作为Beans来编写。
四、ActiveX的构筑工具
随着ActiveX控件的推广,ActiveX控件的开发工具逐日增加。由于ActiveX不依赖于语言,所以传统的开发工具基本上都能构筑、配备ActiveX控件。最常用的有Delphi、Po werBuilder以及Visual Basic、Visual C++、Visual J++等。
1. 基本概况
用3GL开发ActiveX控件的方法有:①MFC (Microsoft Foundation Class,Microsoft 基础类),②ATL(ActiveX Template Library,ActiveX模板库),③BaseCtrl Framework等。MFC最经典,采用MFC,可以使开发者不去关心接口,而是集中精力关注对象的动作。缺点是控件的规模较大且执行时DLL必须与容器同时存在。ATL可利用模板生成代码。就是说 ,库和DLL无需与控件一起推出。在ATL中,需要从作为模板存在的几个基本类派生类。AT L也有缺点,即接口的处理较难,应用中必要的接口,必须分别制作。另外,ATL不支持类向导(Class Wizard)。遗憾的是,没有使对象描述语言(Object Description Language)和接口定义语言文件、与用户代码自动同步的向导。BaseCtrl是个简便型库。与ATL非常相似,但无模板。实际上,由于BaseCtrl过于简便,Microsoft并不支持它。在BaseCtrl中,带有几个万能控件(Skeleton Control)。BaseCtrl提供容易理解的ActiveX开发模型,但与 ATL相比并不简单,且灵活性也不及ATL。目前看来,对于ActiveX控件开发者来说,BaseCt rl是个"苦涩"的选择。
2. 开发工具
可制作ActiveX控件的、最初的工具是Microsoft的Visual C++。它可为ActiveX开发者提供最多的控件。Visual J++也可以制作ActiveX控件。
Borland推出的两个工具(JBuilder和IntraBuilder)也非常令人瞩目。但是,用Borl and的工具能制作ActiveX组件的,只有Delphi 3.0和C++ Builder。Borland把Delphi的A ctiveX开发功能,叫作Active Inside。它是将任意的Delphi Window做成ActiveX的形式。Active Inside备有配备在Web上的新控件。Delphi可以将控件链接到COM和DCOM。
PowerBuilder 5.0是改造成能用于ActiveX开发的、客户机/服务器开发工具。Powe rBuilder可以将Data Window(PowerBuilder应用开发的核心部分)作为ActiveX控件来配备。以使现在的PowerBuilder开发者,能使用PowerScript编程语言等某些熟悉的功能。
具有制作ActivX控件最好工具的,当属Microsoft。例如,若用Visual Basic 5.0,开发者就可使用可视化编程环境和本机的Visual Basic for Application语言,来开发控件。
五、ActiveX
的未来的确,Windows和Windows NT的世界,是ActiveX技术的最佳环境。但无论Micr osoft如何卖力推进它的OS,也不能使所有的企业都变成清一色的Windows。因此,Micros oft要设法使COM、DCOM以及ActiveX家族的一部分,也能在其他OS上使用。现在,在Macin tosh中,已经支持ActiveX,其中也包含对ActiveX控件的支持。Software AG正在把这些技术移植到多个Unix和IBM的OS/390上。DEC和HP也打算将这些技术在自己的系统上使用,他们也是用移植Microsoft代码的办法来实现的。
COM已成为Windows 95和Windows NT环境下基础软件的重要部分,但它的未来还有许多不确定的因素。例如,Microsoft是否能将COM作为多平台技术,让其继续存在发展下去 ?为了使NT服务器能适合已有的企业,就必须要使DCOM等分布式服务也能在非Microsoft平台上应用。要解决这些问题, 需花费相当长的一段时间。另外, 基于CORBA的产品和Jav a的RMI,已成功地运行在多OS环境下。多平台DCOM出台得越晚,CORBA和RMI就领先越多。
ActiveX控件和JavaBeans的竞争前景如何?无论使软件运行在Web浏览器上也好,还是在另外的地方运行也好,总之,组件式软件(ComponentWare)将是下一个软件开发的热点。目前,ActiveX控件虽然暂居领先,但由于OpenDoc的自生自灭,与Microsoft竞争的企业会结为一体与之抗衡。用户决不希望看到"一统天下",仅就这点而言,JavaBeans也会在这一市场竞争中抢占一席之地。

热心网友 时间:2022-04-14 14:51

ActiveX
一、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对象。即是说,COM技术也是一种打包可下载代码的标准方法(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服务以Inter net信息服务器为中心进行构筑,它为服务器上的Web应用开发,提供脚本生成(Scripting )机构。网络服务以DCOM为中心进行构筑,通过以同步MS-RPC为中介的网络,使之能够连接控件。
Active Client是一种交叉平台。Microsoft的技术纵然是独家所有,但也希望将这种技术向多个OS开放。具体实施计划是使用脚本引擎(Scripting Engine)。这种脚本引擎是由标准的HTML和带有Microsoft特色的Java虚拟机(JVM)、Microsoft的VBScript与JSc ript所构成的。Active Client组装进了Microsoft的IE 3.0和4.0,通过ActiveX,可以变成用户的C/S应用的一部分。
从清一色采用Windows的企业用户来看,Active平台可以提供坚固的、具有可缩放性的服务器应用开发平台。ActiveServer在TP监视器这类高端产品的场合,也利用常见的一些工具和技术。因此,小型工作组和Intranet应用不会超越Active Server的能力。Acti ve平台的目标机虽是异种机环境,但由于过分依赖IE,所以不能驱动客户端。尽管在一些非Windows平台上也推出了Explorer,但最好的支持、最新版本的Explorer还是在Window s上。
三、ActiveX的进展
1.向分布计算扩充
COM的最初版本假定COM对象及其客户端是在同一个机器上运行(可以在同一个进程内 ,也可以在不同的进程内),DCOM是ActiveX家族中的重要成员。后来,它在Windows 95中也能使用。DCOM对于客户端制作COM对象、进行交互的方法没有做任何改变。
客户端使用完全相同的代码,可以访问本地以及远程对象。但许多场合下,客户想使用少数的DCOM附件。DCOM备有分布式安全保密机制,提供认证和数据加密。在1998年要发布的Windows NT 5.0中,要将Kerberos等安全保密协议,追加到DCOM中。DCOM已能够利用域名服务等简洁的目录服务,以用于搜寻在其他机器上的COM对象。NT 5.0要追加对Acti ve Directory的支持。Active Directory是基于域名服务和轻型目录访问协议的。
DCOM的劲敌,此前一直是OMG(Object Management Group)的CORBA(Common Object R equest Broker Architecture)。它被组装进了Iona的Orbix和Visigenic的VisiBroker等产品中。不久前,另一种支持分散对象的技术——Java的远程方法调用出台了。无论是C ORBA,还是DCOM,都能在多种语言写的对象间进行通信。而RMI却不同,它只限于在由Java 实现的对象间进行通信。显然,这是个制约。但RMI使用起来非常简单。另外,RMI的开发者可以用Java来设计协议规范。因此,在语言的功能上,可以做得浑然一体。
若写一个只处理两三个客户端的DCOM服务器,还是比较简单的。但是,要构筑一个高效处理几百、几千个客户端的DCOM服务器,则相当之难。
为了便于编写可缩放的DCOM服务器,Microsoft发布了事务处理服务器(MTS)。MTS在支持事务处理的同时,也提供自动生成线索和智能对象的重复使用等服务。MTS使可缩放服务器的制作变得相当简单。即使是无需事务处理的应用,使用MTS也有好处。实际上,M icrosoft鼓励人们用VB来写MTS应用。这与开发业务服务器的传统手法不同,所有的MTS应用,都是作为一个以上的COM对象来编写,且必须以DLL来实现。一般情况下,客户端看不到 MTS。客户端只管一如既往地制作、使用COM对象即可。
2.组件的标准化
基于组件的应用开发,其方法和组装电子装置一样,可以用已制作好的组件部件来构筑应用。桌面用的、基于COM的组件叫做ActiveX控件。所谓ActiveX控件不过是遵从一定的标准、与客户端交互的COM对象而已。
例如,ActiveX控件必须通过Automation (即使用dispinterfaces)来公开方法。用这个被标准化的交互功能,可以在多个不同的上下文中,使用同一个控件。在这个标准接口的"幕后",ActiveX控件几乎是什么都能执行。现在,许多软件公司都能提供实现各种功能的控件。
ActiveX控件是作为DDL编写的,为此,必须装载到某个容器中。ActiveX控件的原型容器是VB,除此之外,还有多种容器可供选择。目前,一个非常重要的控件容器是Microsoft 的Web浏览器
现在所谓ActiveX控件的那些内容,是实现许多方法所必须的。已经把它们从机器的本地硬盘移到了VB等容器中。几百KB和几MB的控件,似乎没有什么大区别。但要将控件装载到Web浏览器时,很可能要通过速度很慢的电话线。现在,控件的大小已经是非常关键的问题。一旦要执行超过了某个限度以上的控件,就会延长下载时间。因此,Microsoft规定 :在ActiveX控件中,只能执行绝对必要的功能。
Apple和IBM推行的OpenDoc,曾是ActiveX控件的主要竞争对手。现在OpenDoc的赞助企业,已正式宣告中止资助。大部分与Microsoft对抗的企业,转而支持JavaBeans(基于J ava的组件结构)。ActiveX控件,基本上都是和Windows*在一起、以二进制机器代码发放的,而JavaBeans却不同,它在哪儿都能执行。这当然是有代价的。显而易见,只要不牺牲可移植性,就不可能完全、彻底地利用本地环境。要编写从公共Internet上能下载的组件时,应优先选择JavaBeans。
桌面组件市场在持续、急速增长。其中绝大部分是以ActiveX控件构筑的(目前Java Beans仍然是少数)。但服务器组件的标准化要落后一些。在桌面上,Web浏览器、VB以及 PowerBuilder这些编程环境,作为容器是强有力的。但服务器容器又该当如何呢?作为服务器上的组件容器,事务处理服务器是一个较好的选择。
Microsoft的竞争对手,千方百计要阻止MTS和NT称霸市场。他们正在快马加鞭地制订服务器上的组件标准,其中最有前途的是Enterprise JavaBeans。它是JavaBeans的扩充 ,并定义了事务处理服务器接口。Enterprise JavaBeans的支持者们,希望独立软件厂商不是将服务器组件作为COM组件来编写,而是要作为Beans来编写。
四、ActiveX的构筑工具
随着ActiveX控件的推广,ActiveX控件的开发工具逐日增加。由于ActiveX不依赖于语言,所以传统的开发工具基本上都能构筑、配备ActiveX控件。最常用的有Delphi、Po werBuilder以及Visual Basic、Visual C++、Visual J++等。
1. 基本概况
用3GL开发ActiveX控件的方法有:①MFC (Microsoft Foundation Class,Microsoft 基础类),②ATL(ActiveX Template Library,ActiveX模板库),③BaseCtrl Framework等。MFC最经典,采用MFC,可以使开发者不去关心接口,而是集中精力关注对象的动作。缺点是控件的规模较大且执行时DLL必须与容器同时存在。ATL可利用模板生成代码。就是说 ,库和DLL无需与控件一起推出。在ATL中,需要从作为模板存在的几个基本类派生类。AT L也有缺点,即接口的处理较难,应用中必要的接口,必须分别制作。另外,ATL不支持类向导(Class Wizard)。遗憾的是,没有使对象描述语言(Object Description Language)和接口定义语言文件、与用户代码自动同步的向导。BaseCtrl是个简便型库。与ATL非常相似,但无模板。实际上,由于BaseCtrl过于简便,Microsoft并不支持它。在BaseCtrl中,带有几个万能控件(Skeleton Control)。BaseCtrl提供容易理解的ActiveX开发模型,但与 ATL相比并不简单,且灵活性也不及ATL。目前看来,对于ActiveX控件开发者来说,BaseCt rl是个"苦涩"的选择。
2. 开发工具
可制作ActiveX控件的、最初的工具是Microsoft的Visual C++。它可为ActiveX开发者提供最多的控件。Visual J++也可以制作ActiveX控件。
Borland推出的两个工具(JBuilder和IntraBuilder)也非常令人瞩目。但是,用Borl and的工具能制作ActiveX组件的,只有Delphi 3.0和C++ Builder。Borland把Delphi的A ctiveX开发功能,叫作Active Inside。它是将任意的Delphi Window做成ActiveX的形式。Active Inside备有配备在Web上的新控件。Delphi可以将控件链接到COM和DCOM。
PowerBuilder 5.0是改造成能用于ActiveX开发的、客户机/服务器开发工具。Powe rBuilder可以将Data Window(PowerBuilder应用开发的核心部分)作为ActiveX控件来配备。以使现在的PowerBuilder开发者,能使用PowerScript编程语言等某些熟悉的功能。
具有制作ActivX控件最好工具的,当属Microsoft。例如,若用Visual Basic 5.0,开发者就可使用可视化编程环境和本机的Visual Basic for Application语言,来开发控件。
五、ActiveX
的未来的确,Windows和Windows NT的世界,是ActiveX技术的最佳环境。但无论Micr osoft如何卖力推进它的OS,也不能使所有的企业都变成清一色的Windows。因此,Micros oft要设法使COM、DCOM以及ActiveX家族的一部分,也能在其他OS上使用。现在,在Macin tosh中,已经支持ActiveX,其中也包含对ActiveX控件的支持。Software AG正在把这些技术移植到多个Unix和IBM的OS/390上。DEC和HP也打算将这些技术在自己的系统上使用,他们也是用移植Microsoft代码的办法来实现的。
COM已成为Windows 95和Windows NT环境下基础软件的重要部分,但它的未来还有许多不确定的因素。例如,Microsoft是否能将COM作为多平台技术,让其继续存在发展下去 ?为了使NT服务器能适合已有的企业,就必须要使DCOM等分布式服务也能在非Microsoft平台上应用。要解决这些问题, 需花费相当长的一段时间。另外, 基于CORBA的产品和Jav a的RMI,已成功地运行在多OS环境下。多平台DCOM出台得越晚,CORBA和RMI就领先越多。
ActiveX控件和JavaBeans的竞争前景如何?无论使软件运行在Web浏览器上也好,还是在另外的地方运行也好,总之,组件式软件(ComponentWare)将是下一个软件开发的热点。目前,ActiveX控件虽然暂居领先,但由于OpenDoc的自生自灭,与Microsoft竞争的企业会结为一体与之抗衡。用户决不希望看到"一统天下",仅就这点而言,JavaBeans也会在这一市场竞争中抢占一席之地。

热心网友 时间:2022-04-14 16:26

ActiveX就不用我多说了,这些人已经帮你搜索了一大堆,ActiveX就是可视化的组件,组件就是可以利用一些系统资源,来完成一些功能。

所以,你这个问题就很简单了。HTML本身因为权限的问题不能访问本地的大部分资源,也就是他不能访问系统提供的各种组件和API,所以网银等输入密码的控件就用ActiveX包装一层,这样,它可以访问本地的API,比如混乱按键,把你按键按照一定规则转换成别的,或者模拟别的几个按键,这样就防备了一些按键记录器。
还可以对输入的密码进行加密,这样数据传输的时候就安全了些,然后在服务器端再进行解密。

总之,在HTML里面能写的代码是script,是那些高级语言的一个子集,只能完成一些有限的功能,但ActiveX是VB或者.net这样的高级语言写的,只要你给它权限(通过下载安装),它就可以做其它更专业的事儿。

热心网友 时间:2022-04-14 18:17

ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX近控件。ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。

如果您使用的是Windows操作系统,您或许会注意到一些以OCX结尾的文件。OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。现在COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX控件代表组件对象。

组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个COM组件(ActiveX控件)可由不同语言的开发工具开发,包括C++和Visual Basic或PowerBuilder,甚至一些技术性语言如VBScript。

目前,ActiveX控件在Windows 95/NT和Macintosh中运行,Microsoft还准备支持UNIX的ActiveX控件。

ActiveX组件包括如下几类:

1.自动化服务器:可以由其他应用程序编程驱动的组件。自动化服务器至少包括一
个,也许是多个供其他应用程序生成和连接的基于IDispatch的接口。自动化服务器
可以含有也可以没有用户界面(UI),这取决于服务器的特性和功能。
2.自动化控制器:那些使用和操纵自动化服务器的应用程序。
3.控件:ActiveX控件等价于以前的OLE控件或OCX。一个典型的控件包括设计时和运
行时的用户界面,唯一的IDispatch接口定义控件的方法和属性,唯一的
IConnectionPoint接口用于控件可引发的事件。
4.文档:ActiveX文档,即以前所说的DocObect,表示一种不仅仅是简单控件或自动
化服务器的对象。ActiveX文档在结构上是对OLE链接和模型的扩展,并对其所在的
容器具有更多控制权。一个最显著的变化是菜单的显示方式。一个典型的OLE文档的
菜单会与容器菜单合并成一个新的集合,而ActiveX文档将替换整个菜单系统,只表
现出文档的特性而不是文档与容器共同的特性。
5.容器:ActiveX容器是一个可以作为自动化服务器、控件和文档宿主的应用程序

热心网友 时间:2022-04-14 20:25

是一个插件,如果被木马和病毒利用,就可以盗取你的信息和号码,注意用杀毒软件多扫描下
ActiveX到底是什么东西?对银行密码保密有什么作用?

使用ActiveX 控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能.例如动画什么的 还有保密功能.就是银行帐号下的密码通常要装这个才能输入ActiveX 一、ActiveX的由来 ActiveX最初只不过是一个商标名称而已,它所涵盖的技术并不是各自孤立的,其中多数都与Internet和Web有一定的关联。更重要的是,ActiveX的...

active X 是什么,作用是什么?

由于ActiveX不依赖于语言,所以传统的开发工具基本上都能构筑、配备ActiveX控件。最常用的有Delphi、Po werBuilder以及Visual Basic、Visual C++、Visual J++等。 1. 基本概况 用3GL开发ActiveX控件的方法有:①MFC (Microsoft Foundation Class,Microsoft 基础类),②ATL(ActiveX Template Library,ActiveX模板库),③BaseCtrl...

ActiveX控件的定义与作用

ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就...

什么是网上银行安全控件ActiveX?

工商银行|控件利用Windows的底层函数在黑客程序之前截取键盘事件,这样黑客程序就无法获得用户的密码,从而大大提高了网银使用的安全性。

插件是什么 是病毒吗

网页插件多是ActiveX插件(以前也叫做OLE控件或OCX控件),它实际就是一些软件组件或对象,可以直接将其插入到网页或其他应用程序中,一般的软件需要用户单独下载然后执行安装,而ActiveX插件则是在用户浏览到特定的网页时,浏览器自动下载并提示用户安装。像现在的在线杀毒、Flash动画播放、Windows Media Player...

IE浏览器上提示的acttivex有什么用

有些插件程序能够帮助用户更方便浏览因特网或调用上网辅助功能,也有部分程序被人称为广告软件(Adware)或间谍软件(Spyware)。此类恶意插件程序监视用户的上网行为,并把所记录的数据报告给插件程序的创建者,以达到投放广告,盗取游戏或银行帐号密码等非法目的。因为插件程序由不同的发行商发行,其技术水平也...

什么是网上银行安全控件ActiveX?

工商银行|控件利用Windows的底层函数在黑客程序之前截取键盘事件,这样黑客程序就无法获得用户的密码,从而大大提高了网银使用的安全性。工行网银ActiveX控件设置步骤 (一)请先登录工商银行网站,点击页面左侧“个人网银登录”下方“安装”按照“方法二:第一步”下载安装个人网上银行控件。可以单击鼠标右键选择...

ActiveX是什么东西 和阻止网页的弹出有关系吗

无关,ActiveX可以理解为一种插件,例如说工商银行的密码输入插件,FLASH PLAY,等都是ActiveX

为何有的银行不允许我输入银行密码,如何解决?

这是由于银行在输入密码处使用控件方式来保障密码安全,这时你只需要安装一下ActiveX插件即可解决问题。你打开任意IE浏览页点击工具——internet选项——安全——自定义级别——运行ActiveX控件和插件——启用。然后在银行支付界面点击安装ActiveX插件提示栏后安装即可。

农村信用社网上银行登录密码无法输入是什么原因?

遇到农村信用社网上银行登录密码无法输入的问题,可能是由于网站采用了一种特殊的输入方式,即ActiveX密码控件。这种控件需要先下载并安装到您的设备上才能正常使用。首次登录时,系统会自动下载密码控件,之后无需额外操作。如果未能自动下载,您可以在登录页面点击安装安全控件来解决这个问题。安全控件作为一款...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
什么东西让你觉得贫穷限制了你的想象力? ...考试得了100分,走在回家的路上。运用细节描写150字左右 作文:来吧,期中考试,600字 高考,其实也就是一次考试:一次什么的考试600字 若m小于0,则m➖m三次方的立方根是多少? 4.m 的立方根是-4,n的立方根是4,则m+n= ...立方根与算术平方根相同的数是n,求m+n的立方根 若立方根m+立方根n=0,则m与n的关系是【 】 A、m=n=0,B、m=n,C、m=... m的立方根是它本身,n的平方根是它本身, 孩子拖拉磨蹭家长怎么说最有效 孩子拖拉磨蹭家长如何助理最有效_百度知 ... 夜间越玩手机越睡不着,为什么呢?? 晚上睡不着,老是想着玩手机,怎么办呢? 睡前不玩手机能否正常入睡? 电视购物手机卡使用超过一年的用户699购1000元充值卡送手机要拨打10006210182这个号码 晚上不玩手机睡不着怎么办,一玩手机一会就睡了,但是我不想玩怎么办 木子联盟挂机,虚拟机可不可以刷,刷够积分给不给支付??? 很多人晚上睡不着,就干脆一直玩,这样对身体有多少坏处? 晚上睡不着,不是玩手机就是心静不下来,该怎么办? 刷网站广告联盟要怎么刷啊? 晚上11点关灯上床睡觉,可心里有事一直睡不着,在发呆,也没玩手机。到1.30左右才睡着属于熬夜吗? 怎样快速提升网站流量 现在挂什么东西好赚钱 人家开网站是如何赚钱的? 我是一个高三女生,现在我每天晚上不玩手机都失眠,就算睡着了半夜也会醒来就再也睡不着了,每天都很低落 做网站的基本知识? Adobe公司的软件到底有哪些?分别是用于什么的? 请问Adobe共有多少软件,都是什么软件 Adobe 是什么软件 什么胶水比502不强呢? 有没有一种胶水比502还要强悍点? 火腿咖喱饭怎么做 面料电荷量多少不会引起静电 已经有咖喱怎么做咖喱炒饭 为什么熟的鸡蛋会站起来 影后拼音怎么写(大写)? 大写的后是怎么写啊 后10个辅音字母的大小写 投标文件都用什么字体 招标文件投标书字体格式要求大全 制作招投标书的具体格式,字体,大小。是怎么规定的? 厕所 提示语 学生用ipad16g够用吗 ipad air2 16g拿来上网,看电影,听歌,,聊天,玩玩小游戏够用吗? 如果我要4-5个大型游戏和30个小软件苹果平板电脑16G内存够能吗? 为什么草莓会在较为温暖的环境催熟? 咨询下苹果平板电脑16g够用吗 孕妇梦见针是怎么回事,是不是怀孕期间的孕妇都特别爱做梦,怎么办? ActiveX控件是什么? ipad mini 16G够用吗? ipad air 16g够不够用
  • 焦点

最新推荐

猜你喜欢

热门推荐