浅谈DCS集散控制系统产品开发
| nbsp;Component Object Model——-DCOM),即通常所说的"网络OLE"。DCOM是一种特殊的协议,允许应用程序在分布式计算环境(Distributed Calculating Environment——-DCE)里进行面向对象的远程过程调用(Remote Procedure Call——-RPC)。DCOM扩展了COM的性能,使得COM对象能够通过相关网络与远程机中的另一个对象交互并使用此对象,这些网络可以是局部网、企业的Intranet或现今的Internet。用户可以在Windows NT4.0版中得到DCOM,它特别适用于开发企业的信息管理系统、专用的Web等。基于网络方面的不安全性考虑,DCOM自身包含有较高的安全处理功能。 所有软件组件都遵循COM或DCOM标准。 4.2 ActiveX 根据微软的定义:支持组件对象模型(COM)的对象总称为"组件对象"。而现在流行的术语OLE--即OLE2,支持COM,所以OLE对象也称为"组件对象"。一个组件对象不仅支持"对象链接与嵌入",而且还可以远程调用或运行其它机器或网络中的组件对象等等,它的功能已远远超过了OLE字面所能表达的功能。为了适合未来更加复杂的应用,微软决定重新命名它,将所有这些组件对象统称为ActiveX。 随着OOP逐渐成为公认的编程主流,面向对象软件组件已成为事实上的标准。面向对象软件组件统称为ActiveX组件。经过一番扩展以后,ActiveX组件现在可提供对DCOM的支持。ActiveX是组件对象模型的一种物理实现方式,它为ActiveX组件的创建提供了基础。 ActiveX组件将程序逻辑封装起来,并可以进程内、本地进程外、远程进程外三种形式之一在网络中运行,为其它应用程序(客户机应用程序)提供服务。因此可以将ActiveX组件理解成"服务器"。它要么在"进程内"工作,即代码在与客户机应用程序相同的进程空间内执行(亦即一个DLL--ActiveX DLL);要么在"进程外"工作,即代码在同一机器的另一个进程内运行,或在远程电脑的另一个进程内执行(亦即一个EXE文件--ActiveX EXE)。利用Visual Basic 5.0,Visual C++5.0或Visual J++等OOP语言,可以很方便地创建ActiveX DLL(进程内服务器)和ActiveX EXE(本地或远程进程外服务器)。 控制系统软件开发者可以将自己的应用程序逻辑编写成进程内ActiveX DLL或本地进程外ActiveX EXE或远程进程外ActiveX EXE,以向其他ActiveX组件或外部应用程序开放它们的部分或全部对象。 建立和使用ActiveX EXE实例的客户应用程序,可开放它们的对象,并在进程外使用它们。这意味着,ActiveX EXE中的代码运行在它自己的进程中,并且是在它自己的空间中,这可把它与客户应用程序的代码空间分离开来。 ActiveX DLL不能作为一个应用程序单独运行,但可以为应用程序提供对象的动态链接库。由于DLL中的代码与调用它的应用程序运行于同一进程中,所以能使程序执行得更快、更高效。 控制系统软件开发者可以利用ActiveX组件组装自己的应用程序。使用ActiveX组件的方法与在OOP中使用其它对象类似: (1)创建一个你欲使用的ActiveX组件对象的实例; (2)利用该对象的方法、属性和事件编写代码; (3)使用完毕释放该对象; (4)必要时进行错误处理。 下面是Visual Basic 5.0中一个说明怎样在程序中利用ActiveX组件的VB程序片段。假设已建立了一个窗体,该窗体包含三个文本框(Text1、Text2和Text3)和一个命令按钮(Command1),并且在进程中增加了对微软Excel 8.0对象库的引用。当单击命令按钮(Command1)时,在Command1_Click事件过程中按照Microsoft Excel公式计算Text1与Text2的和,并将相加的结果显示在Text3中。程序如下: Private Sub Command1_Click() ‘说明对象变量 Dim xlApp As Excel. Application Dim xlBook As Excel. Workbook Dim xlSheet As Excel. Worksheet ‘用Add方法创建对象的实例 Set xlApp = New Excel. Application Set xlBook = xlApp. Workbooks.Add Set xlSheet = xlBook. Worksheets.Add ‘将文本框中的数据赋给Excel单元 xlSheet. Cells(1,1).Value = Text1. Text xlSheet. Cells(2,1).Value = Text2. Text ‘在Excel中,用Excel公式计算其和 xlSheet. Cells(3,1). Formula = " = R1C1 + R2C1" ‘在Text3文本框中显示结果 Text3. Text = xlSheet. Cells(3,1) ‘保存工作表单 xlSheet. SaveAs" c:\Test.xls" ‘关闭Excel xlApp. Quit ‘释放对象 Set xlApp = Nothing Set xlBook = Nothing Set xlSheet = Nothing End Sub 为简单起见,程序中没有进行错误检查。用户在编程时应养成检查错误、处理错误的习惯。 由以上程序可以看出,其编程方法完全是OOP的方法。这并不奇怪,因为ActiveX组件本身就意味着对象之间的共享,ActiveX组件是一种客户机/服务器关系,在这种关系中客户机请求对象,服务器提供对象。然而,具体一个ActiveX组件是客户机还是服务器并没有一个明显的界限。前面我们说可以把ActiveX组件理解成是一个服务器,因为它为用户程序(客户应用程序)提供服务;然而在其它场合,ActiveX组件本身往往还要向其它ActiveX组件请求服务,这时它又担当客户机的角色。 不管怎样,利用ActiveX组件组装成的应用程序,其结构必然是客户机/服务器结构,客户机/服务结构是网络发展的必然结果。 4.3 客户机/服务器结构 综观计算机网络系统结构的发展,大致可分为三个阶段:集中式结构、文件服务器结构以及客户机/服务器结构。这三个阶段代表了计算机网络系统结构发展的里程和趋势。 在六、七十年代,如果一家公司需要真正的计算能务(比如,天气预报、地震预报数据处理等等)便会考虑使用大型机,大型机代表一种集中式系统结构。 在集中式结构中,只有两种关键组件:服务器和客户机终端。客户机与服务器之间传输的唯一数据是用户的按键调度信息以及由服务器返回的终端字符。集中式结构伯优点包括出色的安全性以及可实现集中管理,这是因为无论应用程序逻辑还是数据都驻留于同一台机器--服务器上;同时也意昧着服务器的费用太高,因为它要完成网络中所有的计算。由于应用程序逻辑和数据都驻留于服务器上,集中式结构没有办法真正划分应用程序逻辑。 在本世纪80年代,PC机进入了商业舞台并逐渐走入千家万户。不久,局域网问世,同时引入了文件服务器的崭新概念。 文件服务器结构以DOS局域网和Windows3.X为代表。它使得廉价的PC机联成网络,共享资源。这对于那些根本没有实力实现大型机方案的公司来说,PC机无疑是他们的救星。但是,在这种结构中,应用程序逻辑总是在客户工作站上执行,使用的是客户机的CPU,而不是像集中式结构那样在服务器上执行。这意味着,客户机要有足够的计算能力,以便执行需要的任何应用程序,或能完成任何必要的任务。这无形中增加了客户机的负担,从而抵消了PC机价格低廉的优点。&nbs |
<< 论IC卡智能表优势电源技术与电子变压器 >>
