1747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK0041747-M1羅克A-B韋爾IC693CBK004
4.DCS軟件系統(tǒng)及其發(fā)展方向
隨著計(jì)算機(jī)的普及發(fā)展,企業(yè)網(wǎng)(Intranet)和國(guó)際互聯(lián)網(wǎng)(Internet)的商業(yè)化,Microsoft Windows受歡迎的程度與日俱增,這大大增加了工業(yè)控制領(lǐng)域?qū)indows開(kāi)發(fā)的普遍要求。
當(dāng)今的集散控制系統(tǒng)(DCS)環(huán)境下的控制系統(tǒng)軟件(或應(yīng)用程序)與一般環(huán)境下的應(yīng)用程序相比:一方面其功能已經(jīng)發(fā)生了質(zhì)的變化。比如,DCS網(wǎng)絡(luò)下的控制系統(tǒng)軟件能夠調(diào)用、執(zhí)行DCS網(wǎng)絡(luò)中其它計(jì)算機(jī)上的一個(gè)程序,并與之交互,這是其它環(huán)境下的應(yīng)用程序無(wú)法實(shí)現(xiàn)的;另一方面,DCS網(wǎng)絡(luò)系統(tǒng)將整個(gè)系統(tǒng)的任務(wù)分散進(jìn)行,然后集中監(jiān)視、操作、管理,這些應(yīng)用程序由于工作于網(wǎng)絡(luò)環(huán)境下,因而分布極廣,已被配置在網(wǎng)絡(luò)中10臺(tái)、100臺(tái)、1000臺(tái)甚至更多臺(tái)的機(jī)器上運(yùn)行,如果這些應(yīng)用程序不夠健壯、沒(méi)有靈活的可伸縮性,將給日后的維護(hù)、升級(jí)、重新配置帶來(lái)極大的困難,至少要消耗大量人力、財(cái)力和物力。而這種維護(hù)、升級(jí)、重新配置隨著市場(chǎng)的發(fā)展,用戶(hù)需求的擴(kuò)大是不可避免的。
為了解決這一問(wèn)題,微軟在對(duì)Windows系統(tǒng)本身進(jìn)行改進(jìn)、升級(jí)的同時(shí),對(duì)Windows應(yīng)用程序的標(biāo)準(zhǔn)、結(jié)構(gòu)等也進(jìn)行了重新定義,這就是:遵循組件對(duì)象模型(COM)/分布式組件對(duì)象模型(DCOM)標(biāo)準(zhǔn)、通過(guò)ActiveX實(shí)現(xiàn)的客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)。
客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)的主要思想是:根據(jù)COM/DCOM標(biāo)準(zhǔn),將應(yīng)用程序分割成若干個(gè)相互獨(dú)立的邏輯單元,每個(gè)邏輯單元為應(yīng)用程序提供一定的服務(wù)(以后就會(huì)明白這些邏輯單元被稱(chēng)為ActiveX組件),通過(guò)ActiveX把這些邏輯單元有機(jī)地結(jié)合起來(lái),使它們協(xié)同工作,完成特定的任務(wù)。應(yīng)用程序是ActiveX組件對(duì)象的集合,這些ActiveX組件對(duì)象知道怎樣相互通信、相互調(diào)用,以實(shí)現(xiàn)應(yīng)用程序要求的功能。
針對(duì)Intranet下控制系統(tǒng)的特殊情況,微軟給出了一個(gè)三層的服務(wù)系統(tǒng)模型:用戶(hù)邏輯(或用戶(hù)服務(wù))、商業(yè)邏輯(或商業(yè)服務(wù))和數(shù)據(jù)邏輯(或數(shù)據(jù)服務(wù))。用戶(hù)服務(wù)提供用戶(hù)可交互的或顯示對(duì)數(shù)據(jù)進(jìn)行查詢(xún)、處理結(jié)果的屏幕界面等,由于Windows應(yīng)用程序的屏幕界面已經(jīng)標(biāo)準(zhǔn)化,所以用戶(hù)服務(wù)相對(duì)來(lái)說(shuō)變化不會(huì)太大,將它作為一個(gè)獨(dú)立的邏輯單元,可被多個(gè)應(yīng)用程序使用,從而實(shí)現(xiàn)了代碼的重用;商業(yè)服務(wù)提供用戶(hù)處理數(shù)據(jù)的各種規(guī)則,這些規(guī)則根據(jù)不同的用戶(hù)有所不同,即使同一用戶(hù)不同時(shí)期也可能不同。將它作為一個(gè)獨(dú)立的邏輯單元并統(tǒng)一放在網(wǎng)絡(luò)服務(wù)器中,有利于應(yīng)用程序的日后維護(hù)。如果以后這些規(guī)則需要改變,只須重新配置網(wǎng)絡(luò)服務(wù)器中的商業(yè)服務(wù),而不需要重新編譯客戶(hù)機(jī)的應(yīng)用程序;數(shù)據(jù)服務(wù)為用戶(hù)提供各種數(shù)據(jù),它是用戶(hù)的數(shù)據(jù)源。實(shí)際中,這些數(shù)據(jù)源可能是Oracle、SQL Server、FoxPro、Access以及其它集散控制系統(tǒng)中的數(shù)據(jù)庫(kù)(如:Fix系統(tǒng))等等。
4.1 組件對(duì)象模型(COM)與分布式組件對(duì)象模型(DCOM)
多年來(lái),軟件工程師們一直在嘗試編寫(xiě)可迅速嵌入各程序開(kāi)發(fā)項(xiàng)目的可重用代碼--軟件組件(或簡(jiǎn)稱(chēng)為組件)。就像硬件工程師們先設(shè)計(jì)和制造出可用于各種電子設(shè)備的元件,然后利用它們組裝成設(shè)備一樣,控制系統(tǒng)軟件開(kāi)發(fā)者可以利用軟件組件去組裝自己的程序塊,且很放心地知道這些組件是無(wú)故障的。這些組件不使用全局變量,并且獨(dú)立于任何應(yīng)用程序。組件對(duì)象模型(Component Object Model——-COM)就是軟件組件采用的一種常規(guī)結(jié)構(gòu)。它根據(jù)面向?qū)ο缶幊蹋∣bject Oriented Programming——-OOP)的思想,將組件對(duì)象化,給出了面向?qū)ο筌浖M件(或簡(jiǎn)稱(chēng)為對(duì)象組件)的標(biāo)準(zhǔn)。
COM首次是在對(duì)象鏈接與嵌入(Object Linking and Embedding——-OLE)2.0版中引入的,它是一種標(biāo)準(zhǔn),而非一種實(shí)現(xiàn)。COM解釋了組件之間該如何通信,但為了具體實(shí)現(xiàn)它,還需要用到另一個(gè)東西,即ActiveX。
在設(shè)計(jì)COM的過(guò)程中,微軟解決了下列問(wèn)題:
(1)交互操作能力。開(kāi)發(fā)者怎樣才能創(chuàng)建出獨(dú)立的組件,使其能與其它組件充分地協(xié)作,而不用考慮它們是由誰(shuí)創(chuàng)建的?
(2)版本控制。一旦某個(gè)組件正由其他組件或應(yīng)用程序使用,怎樣才能改變或升級(jí)這個(gè)組件,而不影響正在使用它的組件或應(yīng)用程序?
(3)與語(yǔ)言無(wú)關(guān)。怎樣才能確保用不同語(yǔ)言編寫(xiě)的組件能協(xié)同工作?
(4)透明的跨進(jìn)程交互操作。開(kāi)發(fā)者怎樣才能編寫(xiě)組件,使其能在進(jìn)程內(nèi)或進(jìn)程外工作?
然而,OLE2中的COM只解決了同一網(wǎng)絡(luò)中對(duì)象之間的交互問(wèn)題,而沒(méi)有解決對(duì)象在不同網(wǎng)絡(luò)中的其它機(jī)器上生存或執(zhí)行的問(wèn)題,對(duì)這一問(wèn)題的解決將打開(kāi)通向在Windows環(huán)境下的分布對(duì)象結(jié)構(gòu)之路。為了適應(yīng)這一需要,微軟開(kāi)發(fā)出了分布式組件對(duì)象模型。
DCOM是一種特殊的協(xié)議,允許應(yīng)用程序在分布式計(jì)算環(huán)境(Distributed Calculating Environment——-DCE)里進(jìn)行面向?qū)ο蟮倪h(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call——-RPC)。DCOM擴(kuò)展了COM的性能,使得COM對(duì)象能夠通過(guò)相關(guān)網(wǎng)絡(luò)與遠(yuǎn)程機(jī)中的另一個(gè)對(duì)象交互并使用此對(duì)象,這些網(wǎng)絡(luò)可以是局部網(wǎng)、企業(yè)的Intranet或現(xiàn)今的Internet。用戶(hù)可以在Windows NT4.0版中得到DCOM,它特別適用于開(kāi)發(fā)企業(yè)的信息管理系統(tǒng)、專(zhuān)用的Web等?;诰W(wǎng)絡(luò)方面的不安全性考慮,DCOM自身包含有較高的安全處理功能。
所有軟件組件都遵循COM或DCOM標(biāo)準(zhǔn)。
4.2 ActiveX
根據(jù)微軟的定義:支持組件對(duì)象模型(COM)的對(duì)象總稱(chēng)為"組件對(duì)象"。而現(xiàn)在流行的術(shù)語(yǔ)OLE--即OLE2,支持COM,所以O(shè)LE對(duì)象也稱(chēng)為"組件對(duì)象"。一個(gè)組件對(duì)象不僅支持"對(duì)象鏈接與嵌入",而且還可以遠(yuǎn)程調(diào)用或運(yùn)行其它機(jī)器或網(wǎng)絡(luò)中的組件對(duì)象等等,它的功能已遠(yuǎn)遠(yuǎn)超過(guò)了OLE字面所能表達(dá)的功能。為了適合未來(lái)更加復(fù)雜的應(yīng)用,微軟決定重新命名它,將所有這些組件對(duì)象統(tǒng)稱(chēng)為ActiveX。
隨著OOP逐漸成為公認(rèn)的編程主流,面向?qū)ο筌浖M件已成為事實(shí)上的標(biāo)準(zhǔn)。面向?qū)ο筌浖M件統(tǒng)稱(chēng)為ActiveX組件。經(jīng)過(guò)一番擴(kuò)展以后,ActiveX組件現(xiàn)在可提供對(duì)DCOM的支持。ActiveX是組件對(duì)象模型的一種物理實(shí)現(xiàn)方式,它為ActiveX組件的創(chuàng)建提供了基礎(chǔ)。
ActiveX組件將程序邏輯封裝起來(lái),并可以進(jìn)程內(nèi)、本地進(jìn)程外、遠(yuǎn)程進(jìn)程外三種形式之一在網(wǎng)絡(luò)中運(yùn)行,為其它應(yīng)用程序(客戶(hù)機(jī)應(yīng)用程序)提供服務(wù)。因此可以將ActiveX組件理解成"服務(wù)器"。它要么在"進(jìn)程內(nèi)"工作,即代碼在與客戶(hù)機(jī)應(yīng)用程序相同的進(jìn)程空間內(nèi)執(zhí)行(亦即一個(gè)DLL--ActiveX DLL);要么在"進(jìn)程外"工作,即代碼在同一機(jī)器的另一個(gè)進(jìn)程內(nèi)運(yùn)行,或在遠(yuǎn)程電腦的另一個(gè)進(jìn)程內(nèi)執(zhí)行(亦即一個(gè)EXE文件--ActiveX EXE)。利用Visual Basic 5.0,Visual C++5.0或Visual J++等OOP語(yǔ)言,可以很方便地創(chuàng)建ActiveX DLL(進(jìn)程內(nèi)服務(wù)器)和ActiveX EXE(本地或遠(yuǎn)程進(jìn)程外服務(wù)器)。
控制系統(tǒng)軟件開(kāi)發(fā)者可以將自己的應(yīng)用程序邏輯編寫(xiě)成進(jìn)程內(nèi)ActiveX DLL或本地進(jìn)程外ActiveX EXE或遠(yuǎn)程進(jìn)程外ActiveX EXE,以向其他ActiveX組件或外部應(yīng)用程序開(kāi)放它們的部分或全部對(duì)象。
建立和使用ActiveX EXE實(shí)例的客戶(hù)應(yīng)用程序,可開(kāi)放它們的對(duì)象,并在進(jìn)程外使用它們。這意味著,ActiveX EXE中的代碼運(yùn)行在它自己的進(jìn)程中,并且是在它自己的空間中,這可把它與客戶(hù)應(yīng)用程序的代碼空間分離開(kāi)來(lái)。
ActiveX DLL不能作為一個(gè)應(yīng)用程序單獨(dú)運(yùn)行,但可以為應(yīng)用程序提供對(duì)象的動(dòng)態(tài)鏈接庫(kù)。由于DLL中的代碼與調(diào)用它的應(yīng)用程序運(yùn)行于同一進(jìn)程中,所以能使程序執(zhí)行得更快、更高效。
控制系統(tǒng)軟件開(kāi)發(fā)者可以利用ActiveX組件組裝自己的應(yīng)用程序。使用ActiveX組件的方法與在OOP中使用其它對(duì)象類(lèi)似:
(1)創(chuàng)建一個(gè)你欲使用的ActiveX組件對(duì)象的實(shí)例;
(2)利用該對(duì)象的方法、屬性和事件編寫(xiě)代碼;
(3)使用完畢釋放該對(duì)象;
(4)必要時(shí)進(jìn)行錯(cuò)誤處理。
下面是Visual Basic 5.0中一個(gè)說(shuō)明怎樣在程序中利用ActiveX組件的VB程序片段。假設(shè)已建立了一個(gè)窗體,該窗體包含三個(gè)文本框(Text1、Text2和Text3)和一個(gè)命令按鈕(Command1),并且在進(jìn)程中增加了對(duì)微軟Excel 8.0對(duì)象庫(kù)的引用。當(dāng)單擊命令按鈕(Command1)時(shí),在Command1_Click事件過(guò)程中按照Microsoft Excel公式計(jì)算Text1與Text2的和,并將相加的結(jié)果顯示在Text3中。程序如下:
Private Sub Command1_Click()
‘說(shuō)明對(duì)象變量
Dim xlApp As Excel. Application
Dim xlBook As Excel. Workbook
Dim xlSheet As Excel. Worksheet
‘用Add方法創(chuàng)建對(duì)象的實(shí)例
Set xlApp = New Excel. Application
Set xlBook = xlApp. Workbooks.Add
Set xlSheet = xlBook. Worksheets.Add
‘將文本框中的數(shù)據(jù)賦給Excel單元
xlSheet. Cells(1,1).Value = Text1. Text
xlSheet. Cells(2,1).Value = Text2. Text
‘在Excel中,用Excel公式計(jì)算其和
xlSheet. Cells(3,1). Formula = " = R1C1 + R2C1"
‘在Text3文本框中顯示結(jié)果
Text3. Text = xlSheet. Cells(3,1)
‘保存工作表單
xlSheet. SaveAs" c:\Test.xls"
‘關(guān)閉Excel
xlApp. Quit
‘釋放對(duì)象
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
End Sub
為簡(jiǎn)單起見(jiàn),程序中沒(méi)有進(jìn)行錯(cuò)誤檢查。用戶(hù)在編程時(shí)應(yīng)養(yǎng)成檢查錯(cuò)誤、處理錯(cuò)誤的習(xí)慣。
由以上程序可以看出,其編程方法完全是OOP的方法。這并不奇怪,因?yàn)锳ctiveX組件本身就意味著對(duì)象之間的共享,ActiveX組件是一種客戶(hù)機(jī)/服務(wù)器關(guān)系,在這種關(guān)系中客戶(hù)機(jī)請(qǐng)求對(duì)象,服務(wù)器提供對(duì)象。然而,具體一個(gè)ActiveX組件是客戶(hù)機(jī)還是服務(wù)器并沒(méi)有一個(gè)明顯的界限。前面我們說(shuō)可以把ActiveX組件理解成是一個(gè)服務(wù)器,因?yàn)樗鼮橛脩?hù)程序(客戶(hù)應(yīng)用程序)提供服務(wù);然而在其它場(chǎng)合,ActiveX組件本身往往還要向其它ActiveX組件請(qǐng)求服務(wù),這時(shí)它又擔(dān)當(dāng)客戶(hù)機(jī)的角色。
不管怎樣,利用ActiveX組件組裝成的應(yīng)用程序,其結(jié)構(gòu)必然是客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu),客戶(hù)機(jī)/服務(wù)結(jié)構(gòu)是網(wǎng)絡(luò)發(fā)展的必然結(jié)果。
4.3 客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)
綜觀計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)的發(fā)展,大致可分為三個(gè)階段:集中式結(jié)構(gòu)、文件服務(wù)器結(jié)構(gòu)以及客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)。這三個(gè)階段代表了計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)發(fā)展的里程和趨勢(shì)。
在六、七十年代,如果一家公司需要真正的計(jì)算能務(wù)(比如,天氣預(yù)報(bào)、地震預(yù)報(bào)數(shù)據(jù)處理等等)便會(huì)考慮使用大型機(jī),大型機(jī)代表一種集中式系統(tǒng)結(jié)構(gòu)。
在集中式結(jié)構(gòu)中,只有兩種關(guān)鍵組件:服務(wù)器和客戶(hù)機(jī)終端??蛻?hù)機(jī)與服務(wù)器之間傳輸?shù)奈ㄒ粩?shù)據(jù)是用戶(hù)的按鍵調(diào)度信息以及由服務(wù)器返回的終端字符。集中式結(jié)構(gòu)伯優(yōu)點(diǎn)包括出色的安全性以及可實(shí)現(xiàn)集中管理,這是因?yàn)闊o(wú)論應(yīng)用程序邏輯還是數(shù)據(jù)都駐留于同一臺(tái)機(jī)器--服務(wù)器上;同時(shí)也意昧著服務(wù)器的費(fèi)用太高,因?yàn)樗瓿删W(wǎng)絡(luò)中所有的計(jì)算。由于應(yīng)用程序邏輯和數(shù)據(jù)都駐留于服務(wù)器上,集中式結(jié)構(gòu)沒(méi)有辦法真正劃分應(yīng)用程序邏輯。
在本世紀(jì)80年代,PC機(jī)進(jìn)入了商業(yè)舞臺(tái)并逐漸走入千家萬(wàn)戶(hù)。不久,局域網(wǎng)問(wèn)世,同時(shí)引入了文件服務(wù)器的嶄新概念。
文件服務(wù)器結(jié)構(gòu)以DOS局域網(wǎng)和Windows3.X為代表。它使得廉價(jià)的PC機(jī)聯(lián)成網(wǎng)絡(luò),共享資源。這對(duì)于那些根本沒(méi)有實(shí)力實(shí)現(xiàn)大型機(jī)方案的公司來(lái)說(shuō),PC機(jī)無(wú)疑是他們的救星。但是,在這種結(jié)構(gòu)中,應(yīng)用程序邏輯總是在客戶(hù)工作站上執(zhí)行,使用的是客戶(hù)機(jī)的CPU,而不是像集中式結(jié)構(gòu)那樣在服務(wù)器上執(zhí)行。這意味著,客戶(hù)機(jī)要有足夠的計(jì)算能力,以便執(zhí)行需要的任何應(yīng)用程序,或能完成任何必要的任務(wù)。這無(wú)形中增加了客戶(hù)機(jī)的負(fù)擔(dān),從而抵消了PC機(jī)價(jià)格低廉的優(yōu)點(diǎn)。
為了折中考慮費(fèi)用與性能問(wèn)題,引入了客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)。在這種結(jié)構(gòu)中,允許應(yīng)用程序邏輯在用戶(hù)工作站、服務(wù)器(不再稱(chēng)為"文件服務(wù)器")或者兩者上運(yùn)行。SQL Server、Oracle等是客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)的代表。
在客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)中,同時(shí)至少有兩個(gè)獨(dú)立的應(yīng)用程序在運(yùn)行:一個(gè)是客戶(hù)應(yīng)用程序(簡(jiǎn)稱(chēng)為客戶(hù));另一個(gè)是服務(wù)器應(yīng)用程序(簡(jiǎn)稱(chēng)為服務(wù)器)??蛻?hù)提出請(qǐng)求,服務(wù)器響應(yīng)請(qǐng)求并為其服務(wù)。為了完成一項(xiàng)特定的任務(wù),客戶(hù)和服務(wù)器協(xié)同工作,以提高運(yùn)行速度和效率。例如,在網(wǎng)絡(luò)環(huán)境中,用戶(hù)在客戶(hù)端發(fā)出SQL命令查詢(xún)服務(wù)器上某數(shù)據(jù)庫(kù)中的數(shù)據(jù),在文件服務(wù)器和客戶(hù)機(jī)/服務(wù)器這兩種結(jié)構(gòu)中,該命令的執(zhí)行情況是不一樣的。如果讀者不能區(qū)分它們之間的差別,就不可能充分利用客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)為我們提供的強(qiáng)大功能。
事實(shí)上,在基于文件服務(wù)器的結(jié)構(gòu)中,查詢(xún)是在客戶(hù)端賦值并執(zhí)行的。這就意味著,如果查詢(xún)涉及的表中有10000條記錄,那么查詢(xún)邏輯會(huì)請(qǐng)求服務(wù)器通過(guò)網(wǎng)絡(luò)將包含這10000條記錄的表全部傳送到自己這兒(客戶(hù)端),在客戶(hù)端進(jìn)行查詢(xún)處理。而在基于客戶(hù)機(jī)/服務(wù)器原結(jié)構(gòu)里,SQL語(yǔ)句本身將通過(guò)網(wǎng)絡(luò)傳送并在服務(wù)器內(nèi)執(zhí)行,服務(wù)器使用自己的CPU處理完SQL語(yǔ)句后,只把處理結(jié)果(成功或失?。┩ㄟ^(guò)網(wǎng)絡(luò)反饋回客戶(hù)端。顯然,這大大減輕了網(wǎng)絡(luò)的負(fù)載,同時(shí)也縮短了執(zhí)行時(shí)間。這是對(duì)基于文件服務(wù)器結(jié)構(gòu)性能的一個(gè)重要改進(jìn)。
綜上所述,大型機(jī)和基于文件服務(wù)器的系統(tǒng)由于應(yīng)用程序邏輯必須在大型機(jī)內(nèi)運(yùn)行(針對(duì)集中式結(jié)構(gòu))或必須在客戶(hù)機(jī)內(nèi)執(zhí)行(針對(duì)文件服務(wù)器結(jié)構(gòu)),所以不能提供一個(gè)真正可伸縮的系統(tǒng)框架。而客戶(hù)機(jī)/服務(wù)器系統(tǒng)至少由兩部分組成:一臺(tái)發(fā)出請(qǐng)求的客戶(hù)機(jī),一臺(tái)為請(qǐng)求服務(wù)的服務(wù)器。這兩個(gè)部分協(xié)同工作,應(yīng)用程序邏輯則分布于客戶(hù)和服務(wù)器之間。這樣一來(lái),就為開(kāi)發(fā)運(yùn)行更快、更高效的應(yīng)用程序提供了基礎(chǔ)。
Intranet和Internet為客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)提供了極好的機(jī)遇。當(dāng)今的Web技術(shù)就是一個(gè)典型的客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu):瀏覽器是客戶(hù)機(jī),Web站點(diǎn)是服務(wù)器。
4.4 軟件開(kāi)發(fā)建議
在DCS網(wǎng)絡(luò)環(huán)境下運(yùn)行的應(yīng)用程序,應(yīng)該是遵循COM/DCOM標(biāo)準(zhǔn)、通過(guò)ActiveX實(shí)現(xiàn)的客戶(hù)機(jī)/服務(wù)器結(jié)構(gòu)的應(yīng)用程序。因?yàn)檫@樣的應(yīng)用程序是由ActiveX組件組裝而成的,與其它應(yīng)用程序結(jié)構(gòu)相比更加健壯、可伸縮性強(qiáng)且容易維護(hù)。
另外,應(yīng)注意:由于微軟的重新命名,OLE文檔已成為ActiveX文檔;OLE控件已成為ActiveX控件;等等。從而OLE這一術(shù)語(yǔ)才真正像它早期縮寫(xiě)的含義那樣,代表"對(duì)象鏈接與嵌入",而OLE中一些關(guān)鍵技術(shù)和組件則成為重新命名后的ActiveX技術(shù)和組件。
需要指出的是,究竟采用何種軟件進(jìn)行開(kāi)發(fā)并不十分重要。采用Visual Basic 5.0以上版本的軟件可以開(kāi)發(fā)出人機(jī)界面十分友好的組態(tài)軟件和監(jiān)視軟件,這也被大量的專(zhuān)業(yè)化組態(tài)軟件公司優(yōu)先采用,畢竟它是幾乎所有軟件編制人員最易上手的工具。它本身具備良好的可視化界面(所見(jiàn)即所得)和良好的結(jié)構(gòu)化風(fēng)格,允許多人協(xié)同工作。由于最大的軟件開(kāi)發(fā)工作量之一是編制界面,我們沒(méi)有必要選擇太專(zhuān)業(yè)化的開(kāi)發(fā)工具,因?yàn)槭煜ず驼莆帐切枰^長(zhǎng)時(shí)間。也有公司采用Visual Basic & Visual C++5.0或Visual J++等語(yǔ)言,可以相互彌補(bǔ)各自的不足。近段時(shí)間,國(guó)內(nèi)外有不少公司試著采用Java甚至HTML語(yǔ)言編制動(dòng)態(tài)的組態(tài)軟件,將枯燥乏味的組態(tài)軟件工作當(dāng)作是動(dòng)畫(huà)編輯,逐步得到人們的首肯。這對(duì)今后工業(yè)以太網(wǎng)控制系統(tǒng)的大量應(yīng)用無(wú)疑將占盡先機(jī),也逐步展現(xiàn)出迷人的前景。
27010640001M
270106400C1C
270106400C1M
270106400F1K
270106400F1M
270106400G1K
270106400G1M
270106400J1K
270106400J1M
270106400P1K
270106400P1M
270106400R1K
270106400R1M
27010645001C
27010645001K
27010645001M
27010726001K
27010730001C
27010730001K
270107300C1K
27010735001C
27010735001K
270107350C1K
270107350F1K
270107350F1M
270107350G1M
270107350R1K
270107350R1M
27010740001C
27010740001K
27010740001M
270107400C1K
270107400C1M
270107400F1K
270107400F1M
270107400G1K
270107400G1M
270107400J1K
270107400J1M
270107400P1K
270107400P1M