專利名稱:用于過(guò)程控制系統(tǒng)的分布式數(shù)據(jù)訪問(wèn)方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及過(guò)程控制系統(tǒng)(process control system),特別涉及用于過(guò)程控制系統(tǒng)的分布式數(shù)據(jù)訪問(wèn)方法和設(shè)備。
背景技術(shù):
像那些用在化工、石油或其他生產(chǎn)過(guò)程中的過(guò)程控制系統(tǒng),一般包含一個(gè)或多個(gè)中央過(guò)程控制器,該控制器通過(guò)模擬、數(shù)字或模擬/數(shù)字組合總線與至少一個(gè)主機(jī)或操作站以及一個(gè)或多個(gè)現(xiàn)場(chǎng)設(shè)備通信連接?,F(xiàn)場(chǎng)設(shè)備可以是例如閥門(mén)、閥位定位器、開(kāi)關(guān)和傳送器(例如溫度、壓力和流量傳感器),執(zhí)行過(guò)程內(nèi)的功能,例如打開(kāi)或關(guān)閉閥門(mén)以及測(cè)量工業(yè)參數(shù)。過(guò)程控制器接收表示由現(xiàn)場(chǎng)設(shè)備所進(jìn)行的過(guò)程測(cè)量的信號(hào)和/或關(guān)于現(xiàn)場(chǎng)設(shè)備的其他信息,使用該信息以執(zhí)行控制例程(routine),然后產(chǎn)生通過(guò)總線或其他通信鏈路發(fā)送到現(xiàn)場(chǎng)設(shè)備的控制信號(hào)以控制過(guò)程的操作。來(lái)自現(xiàn)場(chǎng)設(shè)備和控制器的信息可用于由操作站運(yùn)行的一個(gè)或多個(gè)應(yīng)用程序,以使操作者能執(zhí)行與過(guò)程相關(guān)的期望功能,例如觀察過(guò)程的當(dāng)前狀態(tài)、修改過(guò)程的操作等等。
通常,過(guò)程控制系統(tǒng)在運(yùn)營(yíng)企業(yè)中運(yùn)行,該運(yùn)營(yíng)企業(yè)可包含幾個(gè)過(guò)程控制工廠、組成部分和/或服務(wù)供應(yīng)商以及顧客,所有這些可分布在較大的地理區(qū)域中,或在某些情況下,分布在全世界中。過(guò)程控制工廠、供應(yīng)商和顧客可使用各種通信介質(zhì)和技術(shù)或平臺(tái)來(lái)彼此通信,例如因特網(wǎng)、衛(wèi)星鏈路、地基無(wú)線通信、電話線。當(dāng)然,由于互聯(lián)網(wǎng)提供了已建成的通信設(shè)施,從而最小化或減少了企業(yè)的通信設(shè)施成本,所以因特網(wǎng)已經(jīng)成為許多運(yùn)營(yíng)企業(yè)的首選通信平臺(tái)。此外,用于經(jīng)由因特網(wǎng)傳送信息的技術(shù)是眾所周知的、穩(wěn)定的、安全的。
企業(yè)中的每一個(gè)過(guò)程控制工廠可以包含一個(gè)或多個(gè)過(guò)程控制系統(tǒng)以及許多其他與業(yè)務(wù)相關(guān)的或信息技術(shù)系統(tǒng),需要這些系統(tǒng)來(lái)支持或維護(hù)或補(bǔ)充過(guò)程控制系統(tǒng)的整個(gè)操作。一般地,相關(guān)于過(guò)程控制工廠的信息技術(shù)系統(tǒng)可以包含生產(chǎn)運(yùn)行系統(tǒng),例如維護(hù)管理系統(tǒng),并且也可以包含企業(yè)資源計(jì)劃系統(tǒng),例如調(diào)度、財(cái)務(wù)和采購(gòu)系統(tǒng)。雖然這些信息技術(shù)系統(tǒng)可以是物理上位于工廠之內(nèi)或工廠附近,在某些情況下,這些系統(tǒng)中的一些或可能是所有的系統(tǒng)可以位于相對(duì)于該工廠較遠(yuǎn)的位置上,并且可使用因特網(wǎng)或采用無(wú)線和/或硬布線通信介質(zhì)和技術(shù)的任意期望組合的其他任意合適的通信鏈路與工廠通信。
企業(yè)中的每一過(guò)程控制工廠也可以包含用戶交互式應(yīng)用程序,該應(yīng)用程序可以運(yùn)行在服務(wù)器或工作站上,該服務(wù)器或工作站通信連接至在工廠中協(xié)同工作或執(zhí)行過(guò)程控制系統(tǒng)行為的一個(gè)或多個(gè)服務(wù)器、工作站或其他計(jì)算機(jī)的。這樣的用戶交互式應(yīng)用程序可以實(shí)現(xiàn)計(jì)劃管理功能、歷史數(shù)據(jù)管理功能、資產(chǎn)管理功能、批量管理功能等等。此外,每一過(guò)程控制系統(tǒng)可以包含過(guò)程管理應(yīng)用程序,該程序可以例如管理通信并且提供關(guān)于報(bào)警和/或其他過(guò)程事件的信息,提供相關(guān)于過(guò)程狀態(tài)或由過(guò)程控制工廠執(zhí)行的過(guò)程的信息或數(shù)據(jù),提供涉及與過(guò)程控制工廠相關(guān)的設(shè)備的狀態(tài)和性能的信息或數(shù)據(jù)等等。特別是,過(guò)程管理應(yīng)用程序可以包含震動(dòng)監(jiān)視應(yīng)用程序、實(shí)時(shí)優(yōu)化應(yīng)用程序、專家系統(tǒng)應(yīng)用程序、預(yù)測(cè)維護(hù)應(yīng)用程序、控制環(huán)監(jiān)視應(yīng)用程序或其他任何相關(guān)于控制、監(jiān)視和/或維護(hù)過(guò)程操作系統(tǒng)或工廠的應(yīng)用程序。
此外,過(guò)程控制工廠或企業(yè)可以包含一個(gè)或多個(gè)通信應(yīng)用程序,該程序可用于經(jīng)由各種不同通信介質(zhì)和平臺(tái),將信息從過(guò)程控制系統(tǒng)或工廠傳送到用戶。例如,這些通信應(yīng)用程序可以包含電子郵件應(yīng)用程序、尋呼應(yīng)用程序、語(yǔ)音通信應(yīng)用程序、基于文件的應(yīng)用程序等等,所有這些應(yīng)用程序可以經(jīng)由無(wú)線或硬布線介質(zhì)向臺(tái)式機(jī)、筆記本計(jì)算機(jī)、個(gè)人數(shù)據(jù)助理、蜂窩電話或?qū)ず魴C(jī)、或任意其他類型的設(shè)備或硬件平臺(tái)發(fā)送信息。
一般來(lái)說(shuō),在企業(yè)中的信息技術(shù)系統(tǒng)、用戶交互式應(yīng)用程序、過(guò)程管理應(yīng)用程序和通信應(yīng)用程序之間進(jìn)行通信并且集成這些系統(tǒng)和應(yīng)用程序是相當(dāng)困難的,這是因?yàn)樗鼈円话銖V泛地分布在整個(gè)企業(yè)中,并且在某些情況下,它們?cè)诘乩砩鲜欠稚⒌?。此外,許多前面提到的系統(tǒng)和應(yīng)用程序可以通過(guò)例如筆記本計(jì)算機(jī)、蜂窩電話、尋呼機(jī)、個(gè)人數(shù)據(jù)助理等這樣的手持或便攜式硬件平臺(tái)來(lái)運(yùn)行,它們中的許多設(shè)備被構(gòu)造成能提供適合運(yùn)行包含例如web瀏覽器等復(fù)雜的客戶端應(yīng)用程序或軟件的操作環(huán)境。
此外,這些系統(tǒng)和應(yīng)用程序一般需要開(kāi)發(fā)使不同系統(tǒng)和應(yīng)用程序能互相通信的定制通信接口或軟件驅(qū)動(dòng)程序。結(jié)果,當(dāng)企業(yè)中的任何系統(tǒng)、應(yīng)用程序、設(shè)備或組成部分由于例如固件升級(jí)、設(shè)備更換等原因發(fā)生變化時(shí),用于該系統(tǒng)、設(shè)備和組成部分的定制通信驅(qū)動(dòng)器或接口也可能必須改變。很明顯,所需的大量定制驅(qū)動(dòng)器導(dǎo)致了需要大量耗時(shí)的驅(qū)動(dòng)器維護(hù)工作,這就導(dǎo)致了很高的企業(yè)維護(hù)成本。此外,向企業(yè)或過(guò)程控制工廠增加系統(tǒng)或應(yīng)用程序常需要大量的編程工作,這是因?yàn)楸仨氶_(kāi)發(fā)大量定制通信驅(qū)動(dòng)器或接口,以使新系統(tǒng)或應(yīng)用程序能與企業(yè)中的其他系統(tǒng)和應(yīng)用程序通信。因此,使用這樣的定制通信接口的系統(tǒng)不是很靈活或可擴(kuò)展的,并且不便于例如過(guò)程控制系統(tǒng)與其他系統(tǒng)和應(yīng)用程序的集成,這種集成可以由過(guò)程控制系統(tǒng)的制造商和/或第三方制造商或開(kāi)發(fā)者來(lái)提供。
更多的著重于增加企業(yè)內(nèi)系統(tǒng)的靈活性和可擴(kuò)展性的近期開(kāi)發(fā),伴隨著例如Windows XP、Microsoft.NETTM等改進(jìn)的操作系統(tǒng)的發(fā)展和普及以及例如以太網(wǎng)、基于Internet協(xié)議(IP)的語(yǔ)音、流視頻等通信協(xié)議的發(fā)展。而且,已發(fā)展了例如由可擴(kuò)展標(biāo)記語(yǔ)言(XML)、簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)、統(tǒng)一描述、發(fā)現(xiàn)和集成(universal description,discovery and integration,UDDI)等提供的改進(jìn)的信息或數(shù)據(jù)傳輸以及中心數(shù)據(jù)存儲(chǔ)設(shè)備和技術(shù),例如Biztalk等改進(jìn)的編排系統(tǒng)(orchestration system)或服務(wù)器,例如java等對(duì)運(yùn)行平臺(tái)不敏感的改進(jìn)的編程語(yǔ)言,以及許多其他改進(jìn)的通信和/或數(shù)據(jù)管理工具、標(biāo)準(zhǔn)、協(xié)議、編程語(yǔ)言等等。
當(dāng)許多近來(lái)的開(kāi)發(fā)使得組成運(yùn)營(yíng)企業(yè)的多個(gè)系統(tǒng)可被更容易地配置以相互通信時(shí),相對(duì)于眾所周知的客戶端-服務(wù)器體系來(lái)說(shuō),這些系統(tǒng)互操作于其中的整個(gè)系統(tǒng)體系沒(méi)有發(fā)生顯著的變化。在許多眾所周知的客戶端-服務(wù)器體系中,客戶端向服務(wù)器發(fā)送收集的數(shù)據(jù)或信息,并從被顯示的和/或由系統(tǒng)操作者以別的方式利用的服務(wù)器接收處理結(jié)果。此外,服務(wù)器一般保持并且執(zhí)行或運(yùn)行業(yè)務(wù)或數(shù)據(jù)庫(kù)規(guī)則,以對(duì)從一個(gè)或多個(gè)客戶端接收的數(shù)據(jù)進(jìn)行操作或處理。
然而,由于服務(wù)器一般保存和運(yùn)行業(yè)務(wù)邏輯、數(shù)據(jù)庫(kù)規(guī)則和/或其他數(shù)據(jù)集中處理,所以在具有經(jīng)由一個(gè)或多個(gè)通信網(wǎng)絡(luò)進(jìn)行通信的多個(gè)分布式系統(tǒng)的企業(yè)、過(guò)程控制工廠或過(guò)程控制系統(tǒng)中,對(duì)已知客戶端-服務(wù)器體系的使用很不充分。結(jié)果,客戶端一般必須參與大量與服務(wù)器的往返通信(即向服務(wù)器發(fā)送信息或數(shù)據(jù)以及業(yè)務(wù)邏輯運(yùn)行的請(qǐng)求,以及接收來(lái)自服務(wù)器的響應(yīng)通信)。在基于已知客戶端-服務(wù)器體系的分布式系統(tǒng)中的大量往返通信,可以消耗大量有限的且因此而很昂貴的通信網(wǎng)絡(luò)或信道帶寬。例如,在無(wú)線通信鏈路(例如蜂窩和衛(wèi)星鏈路)的情況下,信道帶寬相當(dāng)昂貴,因此每分組、每比特等的成本相當(dāng)高。而且,通信信道延遲(即往返傳輸時(shí)間)可導(dǎo)致長(zhǎng)時(shí)間的延遲,這可能是許多面向過(guò)程的功能所不能接受的,特別是實(shí)時(shí)過(guò)程控制功能。
在任何情況下,由于這些面向過(guò)程的功能和服務(wù)器運(yùn)行的業(yè)務(wù)邏輯需要頻繁請(qǐng)求數(shù)據(jù)和規(guī)則運(yùn)行以及由此而來(lái)的頻繁的往返通信,所以由帶寬限制、成本、通信信道延遲等造成的通信效率低或困難,在客戶端參與面向過(guò)程的功能和/或服務(wù)器執(zhí)行面向過(guò)程的業(yè)務(wù)邏輯的情況中都會(huì)加劇。同樣,參與例如企業(yè)優(yōu)化行為這樣的企業(yè)級(jí)過(guò)程行為的客戶端和/或服務(wù)器,一般也會(huì)陷入頻繁的協(xié)調(diào)工作以及大量的信息或數(shù)據(jù)傳輸。因此,這樣的企業(yè)級(jí)行為類似地加劇了通信的無(wú)效率以及已知客戶端-服務(wù)器體系的困難(例如,有限的帶寬、高數(shù)據(jù)傳輸成本、通信信道延遲等等)。
為了減少對(duì)過(guò)程控制系統(tǒng)、工廠和/或企業(yè)內(nèi)的通信信道的需求(以及與之相關(guān)的運(yùn)行和維護(hù)成本),一些系統(tǒng)雖然維護(hù)了已知或傳統(tǒng)的客戶端-服務(wù)器體系,卻將大量數(shù)據(jù)、業(yè)務(wù)邏輯、數(shù)據(jù)庫(kù)規(guī)則運(yùn)行和數(shù)據(jù)處理邏輯從服務(wù)器移動(dòng)至客戶端。一般地,所有可能被客戶端使用的信息或數(shù)據(jù)以及規(guī)則,都被移至相關(guān)于這些客戶端的本地存儲(chǔ)器。在這種方式下,客戶端可以本地訪問(wèn)所需的信息、數(shù)據(jù)、規(guī)則等等以執(zhí)行它們的行為,從而減少或最小化執(zhí)行上述行為所需的網(wǎng)絡(luò)通信量。
然而,將大量的數(shù)據(jù)、規(guī)則運(yùn)行和其他處理職責(zé)向下推給客戶端系統(tǒng),導(dǎo)致難于安裝和管理的“任務(wù)繁重”客戶端。而且,在根據(jù)已知客戶端-服務(wù)器體系配置的系統(tǒng)內(nèi),基于這樣的任務(wù)繁重客戶端的使用的系統(tǒng)導(dǎo)致了相對(duì)不靈活和不容易擴(kuò)展的系統(tǒng)。特別是,許多利用現(xiàn)有客戶端-服務(wù)器體系的系統(tǒng)非常依賴于特定的(ad-hoc)客戶端邏輯和數(shù)據(jù)傳輸格式。換句話說(shuō),每一客戶端應(yīng)用程序可能執(zhí)行它自己版本的規(guī)則和數(shù)據(jù)庫(kù)結(jié)構(gòu)。結(jié)果,簡(jiǎn)單的數(shù)據(jù)庫(kù)更改以及由超過(guò)一個(gè)客戶端使用的規(guī)則的改變,需要對(duì)大量可能使用該數(shù)據(jù)庫(kù)和/或規(guī)則的客戶端應(yīng)用程序進(jìn)行獨(dú)立且耗時(shí)的重新配置。而且,由于客戶端可能基于與不同制造商、開(kāi)發(fā)團(tuán)隊(duì)等相關(guān)的不同類型的系統(tǒng),其中必須執(zhí)行給定規(guī)則的特定方式可能從一個(gè)客戶端到一個(gè)客戶端明顯變化,從而使得系統(tǒng)維護(hù)行為(例如修改或改進(jìn))變得非常復(fù)雜和昂貴。而且,向這樣一個(gè)現(xiàn)有系統(tǒng)增加一個(gè)客戶端或服務(wù)器,需要對(duì)該客戶端進(jìn)行耗時(shí)的配置,以使該客戶端能以期望的方式運(yùn)行一個(gè)或多個(gè)規(guī)則,并且使系統(tǒng)中的其他客戶端和/或服務(wù)器能與加入的客戶端或服務(wù)器互操作。然而,為現(xiàn)有的客戶端應(yīng)用程序而開(kāi)發(fā)的特定代碼常常不能適應(yīng)于新的客戶端應(yīng)用程序的使用。結(jié)果,向這樣的系統(tǒng)添加客戶端應(yīng)用程序,一般會(huì)導(dǎo)致額外的新的特定軟件或代碼的開(kāi)發(fā)。
發(fā)明內(nèi)容
根據(jù)一個(gè)方面,訪問(wèn)相關(guān)于過(guò)程控制系統(tǒng)的數(shù)據(jù)庫(kù)的系統(tǒng)和方法,將對(duì)客戶端應(yīng)用程序的信息請(qǐng)求發(fā)送到中間數(shù)據(jù)服務(wù)器過(guò)程(process),并確定該信息是否被存儲(chǔ)在相關(guān)于該中間數(shù)據(jù)服務(wù)器過(guò)程的數(shù)據(jù)源中。如果該信息未被存儲(chǔ)在該數(shù)據(jù)源中,則公開(kāi)的系統(tǒng)和方法也可以將對(duì)該中間數(shù)據(jù)服務(wù)器過(guò)程的信息請(qǐng)求發(fā)送到另一個(gè)過(guò)程,并且可在其他過(guò)程接收該信息請(qǐng)求之后,訪問(wèn)該數(shù)據(jù)庫(kù)以檢索該信息。
根據(jù)另一方面,一種過(guò)程控制系統(tǒng)包含多個(gè)通信連接的中間數(shù)據(jù)服務(wù)器、多個(gè)可與一個(gè)或多個(gè)中間數(shù)據(jù)服務(wù)器通信的客戶端應(yīng)用程序和包含信息的數(shù)據(jù)庫(kù),所述信息至少包含相關(guān)于該過(guò)程控制系統(tǒng)的數(shù)據(jù)和規(guī)則。該中間數(shù)據(jù)服務(wù)器適應(yīng)于互操作,以根據(jù)至少一些客戶端應(yīng)用程序的信息要求檢索信息的子集,并且將其存儲(chǔ)在相應(yīng)的本地?cái)?shù)據(jù)源中。
圖1是其中可實(shí)現(xiàn)在此說(shuō)明的設(shè)備和方法的示例企業(yè)的一部分的方框圖。
圖2是基于已知對(duì)象分層結(jié)構(gòu)并且可用于實(shí)現(xiàn)所公開(kāi)的設(shè)備和方法的示例數(shù)據(jù)庫(kù)模式的概略圖。
圖3是公開(kāi)的設(shè)備和方法可使用的示例對(duì)象結(jié)構(gòu)的概略圖。
圖4是描述包含多個(gè)進(jìn)行互操作以訪問(wèn)數(shù)據(jù)庫(kù)的中間數(shù)據(jù)服務(wù)器的示例系統(tǒng)的方框圖。
圖5是描述一種方式的示例的詳細(xì)圖,客戶端應(yīng)用程序以該方式訪問(wèn)存儲(chǔ)在相關(guān)于中間數(shù)據(jù)服務(wù)器的數(shù)據(jù)源中的信息或數(shù)據(jù)。
圖6是具有使用中間數(shù)據(jù)服務(wù)器以訪問(wèn)數(shù)據(jù)庫(kù)的多個(gè)處理系統(tǒng)的示例系統(tǒng)的方框圖。
具體實(shí)施例方式
圖1是可使用在此描述的分布式數(shù)據(jù)設(shè)備和方法的示例企業(yè)10的方框圖。如圖1所示,企業(yè)10包含具有通過(guò)總線或局域網(wǎng)(LAN)22通信連接的控制器14、操作站16、工作站18和20的過(guò)程控制系統(tǒng)12,該系統(tǒng)提出被稱為應(yīng)用控制網(wǎng)絡(luò)(application control network,ACN)。工作站18和20可被構(gòu)造成執(zhí)行一個(gè)或多個(gè)信息技術(shù)應(yīng)用程序、用戶交互式應(yīng)用程序和/或通信應(yīng)用程序的應(yīng)用程序站。例如,應(yīng)用程序站18可被構(gòu)造成主要執(zhí)行與過(guò)程控制相關(guān)的應(yīng)用程序,而應(yīng)用程序站20被構(gòu)造成主要執(zhí)行通信應(yīng)用程序,該通信應(yīng)用程序使過(guò)程控制系統(tǒng)12能使用任何期望的通信介質(zhì)(例如無(wú)線、硬布線等)和協(xié)議(例如HTTP、SOAP等)與其他設(shè)備或系統(tǒng)通信。當(dāng)然,可使用一個(gè)或多個(gè)工作站或任意其他合適的計(jì)算機(jī)系統(tǒng)或處理系統(tǒng),來(lái)實(shí)現(xiàn)操作站16以及工作站18和20。例如,可以使用單處理器個(gè)人計(jì)算機(jī)、單或多處理器工作站等,來(lái)實(shí)現(xiàn)操作站和/或工作站18和20。
可使用期望的通信介質(zhì)或協(xié)議來(lái)實(shí)現(xiàn)LAN 22。例如,LAN 22可以基于硬布線或無(wú)線以太網(wǎng)通信方案,該方案是公知的,因此,在此不作詳細(xì)說(shuō)明。然而,本技術(shù)領(lǐng)域人員很容易理解,可以使用任何其他合適的通信介質(zhì)和協(xié)議。此外,雖然只示出單個(gè)LAN,但是可以使用操作站16以及工作站18和20的范圍內(nèi)的多個(gè)LAN和合適的通信硬件,以便在這些系統(tǒng)之間提供冗余的通信鏈路。
控制器14可通過(guò)數(shù)字?jǐn)?shù)據(jù)總線30和輸入/輸出(I/O)設(shè)備32連接至多個(gè)智能現(xiàn)場(chǎng)設(shè)備24、26和28。智能現(xiàn)場(chǎng)設(shè)備24-28可以是Fieldbus兼容閥門(mén)、傳動(dòng)器、傳感器等,其中智能現(xiàn)場(chǎng)設(shè)備24-28經(jīng)由采用已知的Fieldbus協(xié)議的數(shù)字?jǐn)?shù)據(jù)總線30來(lái)進(jìn)行通信。當(dāng)然,也可以替代使用其他類型的智能現(xiàn)場(chǎng)設(shè)備和通信協(xié)議。例如,智能現(xiàn)場(chǎng)設(shè)備24-28可被替換成經(jīng)由使用已知的Profibus和HART通信協(xié)議的數(shù)據(jù)總線30進(jìn)行通信的Profibus和HART兼容設(shè)備??蓪⒏郊拥腎/O設(shè)備(與I/O設(shè)備32類似或相同)連接至控制器14,以使其他組智能現(xiàn)場(chǎng)設(shè)備能與控制器14通信,這些智能現(xiàn)場(chǎng)設(shè)備可以是Fieldbus設(shè)備、HART設(shè)備等等。
除了智能現(xiàn)場(chǎng)設(shè)備24-28之外,一個(gè)或多個(gè)非智能現(xiàn)場(chǎng)設(shè)備34和36可通信連接至控制器14。非智能現(xiàn)場(chǎng)設(shè)備34和36可以是例如傳統(tǒng)4-20毫安(mA)或0-10伏直流(VDC)設(shè)備,它們經(jīng)由各自的硬布線鏈路38和40與控制器14進(jìn)行通信。
控制器14可以是例如由Fisher-Rosemount System,Inc.銷售的DeltaVTM控制器。然而,可以替代使用任意其他控制器。此外,雖然在圖1中只示出一個(gè)控制器,但是,任意期望類型或類型組合的其他控制器可連接至LAN 22。在任意情形中,控制器14可以執(zhí)行一個(gè)或多個(gè)相關(guān)于過(guò)程控制系統(tǒng)12的過(guò)程控制例程,該例程由系統(tǒng)工程師或使用操作站16的其他系統(tǒng)操作者創(chuàng)建,并且被下載至控制器14中,并且在該控制器14被中實(shí)例化(instantiated)。
如圖1所示,企業(yè)10也可以包含經(jīng)由通信鏈路44、LAN 46以及工作站18和20通信鏈接至過(guò)程控制系統(tǒng)12的工作站42。工作站42可被構(gòu)造成執(zhí)行企業(yè)級(jí)功能,可與其他過(guò)程控制系統(tǒng)(未示出)相關(guān)聯(lián)且被構(gòu)造成主要執(zhí)行過(guò)程控制功能,并且可被構(gòu)造成執(zhí)行一個(gè)或多個(gè)通信功能等。而且,當(dāng)通信鏈路44是例如無(wú)線通信鏈路、基于因特網(wǎng)或其他基于分組交換的通信網(wǎng)絡(luò)、電話線路(例如數(shù)字用戶線)或它們的任意組合時(shí),工作站42可以在地理上處于遠(yuǎn)程位置上。
提供示例企業(yè)10以說(shuō)明一種類型的系統(tǒng),其中可方便地采用下面所詳細(xì)描述的數(shù)據(jù)分布式設(shè)備和方法。然而,只要需要,在此說(shuō)明的數(shù)據(jù)分布式設(shè)備和方法可被方便地應(yīng)用于比圖1所示的示例企業(yè)10更復(fù)雜或更簡(jiǎn)單的其他系統(tǒng)和/或與過(guò)程控制行為、企業(yè)管理行為、通信行為等關(guān)聯(lián)使用的系統(tǒng)中。
在此說(shuō)明的數(shù)據(jù)分布式設(shè)備和方法使用分層結(jié)構(gòu)的面向?qū)ο髷?shù)據(jù)庫(kù)模式連同多個(gè)互連接或通信連接的中間數(shù)據(jù)服務(wù)器,以便最大化客戶端應(yīng)用程序訪問(wèn)存儲(chǔ)在公共數(shù)據(jù)庫(kù)中的數(shù)據(jù)和/或規(guī)則的效率。特別是,中間數(shù)據(jù)服務(wù)器可以使用與客戶端應(yīng)用程序所期望的或預(yù)定的信息或數(shù)據(jù)要求相關(guān)的信息,來(lái)選擇性地從數(shù)據(jù)庫(kù)檢索信息或數(shù)據(jù),并本地存儲(chǔ)這樣選擇性地檢索到的信息或數(shù)據(jù),以使客戶端應(yīng)用程序能更快且更有效率地訪問(wèn)數(shù)據(jù)或信息。
除了中間數(shù)據(jù)服務(wù)器的本地存儲(chǔ)數(shù)據(jù)之外,它們還可以本地存儲(chǔ)和運(yùn)行所需的業(yè)務(wù)或數(shù)據(jù)庫(kù)規(guī)則。在這種方式下,已裝載本地客戶端應(yīng)用程序所需的信息和數(shù)據(jù)的中間數(shù)據(jù)服務(wù)器,可以實(shí)質(zhì)上減少執(zhí)行客戶端應(yīng)用程序的行為所要求的往返(round trip)通信(和時(shí)間)量。換句話說(shuō),中間數(shù)據(jù)服務(wù)器本地存儲(chǔ)(例如,緩沖)足量的信息和相關(guān)規(guī)則。這樣的信息和規(guī)則一般是從企業(yè)數(shù)據(jù)庫(kù)所檢索的信息和規(guī)則的子集,從而使本地客戶端應(yīng)用程序能快速地訪問(wèn)所需的信息和規(guī)則,并且在將更改提交到數(shù)據(jù)庫(kù)之前執(zhí)行多個(gè)連續(xù)操作。結(jié)果,客戶端應(yīng)用程序可以最小化被引入客戶端應(yīng)用程序的運(yùn)行的數(shù)據(jù)延遲量(由于通信信道延遲造成的),該客戶端應(yīng)用程序要求訪問(wèn)來(lái)源于中心或公共數(shù)據(jù)庫(kù)(例如,工廠級(jí)或企業(yè)級(jí)數(shù)據(jù)庫(kù))的信息、數(shù)據(jù)和/或規(guī)則。通過(guò)這樣的數(shù)據(jù)和相關(guān)規(guī)則的分布而獲得的處理速度效率是實(shí)質(zhì)性的,特別是由分布在整個(gè)企業(yè)中的大量系統(tǒng)訪問(wèn)中心數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)庫(kù)的情況下,以及在客戶端應(yīng)用程序和數(shù)據(jù)庫(kù)之間的通信鏈路超負(fù)荷(即接近或超過(guò)它們提供連接至該鏈路的系統(tǒng)所要求的信息的固有容量)的情況中。
圖2是示例數(shù)據(jù)庫(kù)模式(database schema)的原理圖,該數(shù)據(jù)庫(kù)模式基于眾所周知的對(duì)象分層結(jié)構(gòu)且用于執(zhí)行在此描述的數(shù)據(jù)分布式設(shè)備和方法。一般地,圖2所示的示例數(shù)據(jù)庫(kù)模式被構(gòu)造成與分層結(jié)構(gòu)相關(guān)的對(duì)象的網(wǎng)絡(luò)。換句話說(shuō),圖2中的數(shù)據(jù)庫(kù)模式被構(gòu)造成以基本方式表示信息,以便每一條信息被虛擬地表示為分層結(jié)構(gòu)中的單獨(dú)的對(duì)象。圖2中所示的特定示例是一種典型模式,可用于表示如圖1中所描述的企業(yè)10和控制系統(tǒng)12這樣的過(guò)程控制系統(tǒng)或企業(yè)的控制系統(tǒng)特征。當(dāng)然,圖2的數(shù)據(jù)庫(kù)模式僅僅是一個(gè)示例,可以使用多種其他的模式來(lái)替代。例如,模式實(shí)現(xiàn)可根據(jù)運(yùn)行期間是否使用特定模式進(jìn)行離線編輯或配置行為或其他目的而改變。
如圖2的示例分層結(jié)構(gòu)所示,表示物理工廠的地點(diǎn)對(duì)象50(SITE)由多個(gè)區(qū)域?qū)ο?2和54(AREA A和AREA B)組成,其中,該物理工廠是例如圖1中所示的企業(yè)10這樣的企業(yè)的一部分或全部。區(qū)域?qū)ο?2和54與由地點(diǎn)對(duì)象50所表示的工廠內(nèi)的特定物理區(qū)域相關(guān)聯(lián)。例如,區(qū)域?qū)ο?2可以與工廠的特定物理位置中的生產(chǎn)過(guò)程的特定部分相關(guān)聯(lián),而區(qū)域?qū)ο?4可以與位于由地點(diǎn)對(duì)象50所表示的工廠的另一物理位置中的該生產(chǎn)過(guò)程(或另一生產(chǎn)過(guò)程)的另一部分相關(guān)聯(lián)。
區(qū)域?qū)ο?2和54由各自的控制模塊56(MOD A)、58(MOD B)、60(MODB)和62(MOD C)組成??刂颇K包含可以被實(shí)例化并且被運(yùn)行以執(zhí)行與它們各自的與工廠區(qū)域相關(guān)的控制功能或行為的控制例程。特別是,每一控制模塊56-62可以與一個(gè)或多個(gè)物理設(shè)備或裝置相關(guān)聯(lián),并且因而可用于監(jiān)視和/或控制這些設(shè)備或裝置。雖然圖2的示例層次結(jié)構(gòu)將區(qū)域52和54的每一個(gè)都描述成具有兩個(gè)控制模塊,但是,區(qū)域52和54的每一個(gè)都可以與一個(gè)或多于兩個(gè)控制模塊相關(guān)聯(lián)。
每個(gè)模塊56-62均由深一層對(duì)象和子對(duì)象組成。然而,為了討論的目的,下面僅結(jié)合模塊58(MOD B)來(lái)說(shuō)明這樣的對(duì)象和子對(duì)象。如圖2所示,模塊58可以與一個(gè)或多個(gè)屬性64和66(ATTR 2和ATTR 1)以及一個(gè)或多個(gè)功能塊68和70(BLOCK 1和BLOCK 2)相關(guān)聯(lián)。屬性64和66可以是諸如輸入變量、輸出變量等與企業(yè)或工廠內(nèi)的物理和/或控制狀態(tài)相關(guān)的參數(shù)。功能塊68和70均可包含一個(gè)或多個(gè)數(shù)學(xué)功能(例如求和運(yùn)算、乘法運(yùn)算、除法運(yùn)算等)、邏輯功能或表達(dá)式(例如邏輯或、與等)或者其他期望的功能。功能塊68和70的每一個(gè)也可以與一個(gè)或多個(gè)屬性72和74相關(guān)聯(lián)。
除了屬性和功能塊之外,模塊58也可以與算法78(ALGORITHM)相關(guān)聯(lián),該算法可以由一個(gè)或多個(gè)執(zhí)行數(shù)學(xué)和/或邏輯運(yùn)算的序列的軟件例程組成。此外,圖2中的示例分層結(jié)構(gòu)可以包含一個(gè)或多個(gè)線對(duì)象80(WIRE),該對(duì)象與由圖2的示例表示的整個(gè)控制分層結(jié)構(gòu)的圖形顯示關(guān)聯(lián)使用的線路的圖形表示相對(duì)應(yīng)。
諸如圖2的示例中所示的對(duì)象分層結(jié)構(gòu)和數(shù)據(jù)庫(kù)模式,使用戶或系統(tǒng)操作者能通過(guò)圖形用戶界面等揭示與由對(duì)象層次結(jié)構(gòu)所表示的工廠及其控制系統(tǒng)的結(jié)構(gòu)有關(guān)的任意期望級(jí)別的細(xì)節(jié)或信息。換句話說(shuō),用戶或系統(tǒng)操作者可以從一個(gè)對(duì)象至一個(gè)或多個(gè)相關(guān)的子對(duì)象來(lái)遍歷該層次結(jié)構(gòu)(即在整個(gè)分層結(jié)構(gòu)中移動(dòng)),以揭示任意級(jí)別的所需細(xì)節(jié)。例如,在已揭示與區(qū)域?qū)ο?2(AREA A)相關(guān)聯(lián)的信息或數(shù)據(jù)之后,用戶可以遍歷分層結(jié)構(gòu)以揭示與模塊58(MOD B)相關(guān)聯(lián)的信息或數(shù)據(jù),然后,依次是與模塊58相關(guān)聯(lián)的對(duì)象64-80中的任意一個(gè)。
圖3是在此說(shuō)明的設(shè)備和方法可使用的示例對(duì)象結(jié)構(gòu)100的更詳細(xì)的示意圖。圖3所示的示例對(duì)象結(jié)構(gòu)100可以被推廣并且用作構(gòu)成圖2所示的每一對(duì)象和子對(duì)象的基本結(jié)構(gòu)或模板。如圖3所示,對(duì)象結(jié)構(gòu)100包含主對(duì)象部分102和相關(guān)對(duì)象部分104。主對(duì)象部分102包含相關(guān)對(duì)象106、屬性108和角色110。在其他信息或數(shù)據(jù)中,相關(guān)對(duì)象106可包含由主對(duì)象部分102表示的對(duì)象的名稱以及唯一標(biāo)識(shí)符。屬性108可包含相關(guān)對(duì)象106的類型特性,例如當(dāng)主對(duì)象部分102是模塊時(shí)的描述和掃描速率等。
角色110表征相關(guān)對(duì)象106與相關(guān)對(duì)象部分104中的一個(gè)或多個(gè)相關(guān)對(duì)象112和114之間的相關(guān)性的特征。角色110表征相關(guān)對(duì)象106與在正和反方向上的相關(guān)對(duì)象112和114之間的相關(guān)性(即跨接(straddle)或接口)的特征。這樣的特征可以例如包含與相關(guān)對(duì)象106與相關(guān)對(duì)象112和114之間的操作的可允許多重性(permissible multiplicity)和可允許傳播性(permissiblepropagation)相關(guān)的信息。例如,模塊類型對(duì)象可以具有特定塊對(duì)象的多個(gè)實(shí)例。然而,這些應(yīng)用中的任意一個(gè)只能與單個(gè)模塊相關(guān)聯(lián)。而且,如果刪除塊對(duì)象的應(yīng)用(例如通過(guò)用戶接口),在該塊對(duì)象中的所有屬性和塊(即依賴于它的屬性和塊)也被刪除。然而,如果這種節(jié)點(diǎn)當(dāng)前已分配模塊時(shí),就希望防止刪除節(jié)點(diǎn)(例如區(qū)域或地點(diǎn))。
在特定示例中,主對(duì)象部分102可以例如相應(yīng)于模塊58(即MOD B),于是,屬性108可以相應(yīng)于描述和掃描速率。角色110可以將模塊58(即相關(guān)對(duì)象106)與屬性64和66(即相關(guān)對(duì)象112和114)相關(guān)聯(lián),并且可以進(jìn)一步規(guī)定該屬性將在正方向上(即從相關(guān)對(duì)象112和114)傳播給相關(guān)對(duì)象106,以及刪除將從相關(guān)對(duì)象106傳播到相關(guān)對(duì)象112和114(即從模塊58至屬性64和66)。
圖2和3所示以及上述的示例對(duì)象分層結(jié)構(gòu)和對(duì)象結(jié)構(gòu),使用戶或系統(tǒng)操作者能創(chuàng)建包含過(guò)程控制系統(tǒng)、工廠或企業(yè)的配置信息(例如控制配置信息、物理配置信息等)的數(shù)據(jù)庫(kù)。這樣的分層數(shù)據(jù)庫(kù)可以容易地被遍歷或操作,以揭示與由數(shù)據(jù)庫(kù)所表示的系統(tǒng)的特征相關(guān)的任意期望類型和數(shù)量的細(xì)節(jié)。
以前或已知系統(tǒng)一般在中心倉(cāng)庫(kù)或服務(wù)器中維護(hù)如圖2和3所示的對(duì)象結(jié)構(gòu),該中心倉(cāng)庫(kù)服務(wù)器維護(hù)可被一個(gè)或多個(gè)客戶端應(yīng)用程序或其他實(shí)體經(jīng)由通信網(wǎng)絡(luò)訪問(wèn)的數(shù)據(jù)庫(kù)。而且,數(shù)據(jù)庫(kù)中關(guān)于信息的規(guī)則一般已被存儲(chǔ)在數(shù)據(jù)庫(kù)中,并且已由服務(wù)器為客戶端應(yīng)用程序而運(yùn)行。因此,關(guān)于它們的數(shù)據(jù)需要、規(guī)則處理需要等,已知系統(tǒng)中的客戶端應(yīng)用程序依賴于中心服務(wù)器。結(jié)果,由于企業(yè)或其他系統(tǒng)的復(fù)雜程度增加,經(jīng)由連接客戶端和服務(wù)器的通信網(wǎng)絡(luò)傳送的通信量也大大增加,從而顯著地降低了客戶端應(yīng)用程序的運(yùn)行速度和處理效率。
下面說(shuō)明的示例分布式數(shù)據(jù)訪問(wèn)方法和設(shè)備利用一個(gè)或多個(gè)中間數(shù)據(jù)服務(wù)器,來(lái)分布用于由客戶端應(yīng)用程序進(jìn)行本地訪問(wèn)和運(yùn)行的信息和規(guī)則信息。換句話說(shuō),基于對(duì)象的分層結(jié)構(gòu)數(shù)據(jù)庫(kù),例如以與圖2的示例相同或類似方式構(gòu)成的數(shù)據(jù)庫(kù),可以位于中心數(shù)據(jù)倉(cāng)庫(kù)(例如服務(wù)器)中,并且中間數(shù)據(jù)服務(wù)器可以要求裝載客戶端應(yīng)用程序所需的部分?jǐn)?shù)據(jù)庫(kù)和相關(guān)規(guī)則,這些對(duì)于中間數(shù)據(jù)服務(wù)器來(lái)說(shuō)是本地的。雖然可以要求裝載客戶端應(yīng)用程序所需的數(shù)據(jù)和規(guī)則,但是在運(yùn)行時(shí)間之前也可在本地存儲(chǔ)器中裝載一些或全部數(shù)據(jù)和/或規(guī)則。例如,可使用每一客戶端位置的.net組件(例如DLL)的公共集合來(lái)本地裝載相同集合或規(guī)則。在這種情況下,當(dāng)運(yùn)行期間所要求的數(shù)據(jù)到達(dá)特定客戶端過(guò)程(client process)時(shí),使用本地存儲(chǔ)的規(guī)則集合自動(dòng)將數(shù)據(jù)轉(zhuǎn)換成合適的分層數(shù)據(jù)結(jié)構(gòu)。
在任何情況下,在此說(shuō)明的示例數(shù)據(jù)訪問(wèn)方法和設(shè)備可以將數(shù)據(jù)庫(kù)信息和相關(guān)規(guī)則分布到中間數(shù)據(jù)服務(wù)器,該服務(wù)器對(duì)于客戶端應(yīng)用程序來(lái)說(shuō)是本地的或最接近的,而不是要求所有客戶端應(yīng)用程序?yàn)榱怂鼈兊男畔⑿枰鸵?guī)則處理需要,而與服務(wù)器中的單個(gè)中心數(shù)據(jù)庫(kù)連接。因而,可采用在此說(shuō)明的數(shù)據(jù)分布式設(shè)備和方法,來(lái)減少或最小化使客戶端應(yīng)用程序能訪問(wèn)所需數(shù)據(jù)以及實(shí)現(xiàn)它們的功能所需的網(wǎng)絡(luò)通信(例如往返通信)量,結(jié)果加快了客戶端應(yīng)用程序的運(yùn)行時(shí)間,并且改善了應(yīng)用程序的當(dāng)前狀態(tài)。
圖4是描述具有多個(gè)通信連接的數(shù)據(jù)服務(wù)器過(guò)程(data server process)122和124的示例系統(tǒng)120的方框圖,該數(shù)據(jù)服務(wù)器過(guò)程互操作以訪問(wèn)數(shù)據(jù)庫(kù)126。數(shù)據(jù)服務(wù)器過(guò)程122是可以在工作站或處理器系統(tǒng)(例如,圖1的工作站18、20和42中的一個(gè))中執(zhí)行的中間數(shù)據(jù)服務(wù)器過(guò)程,并且該過(guò)程可以接近和通信連接到一個(gè)或多個(gè)客戶端應(yīng)用程序128和130??蛻舳藨?yīng)用程序128和130可以在相同工作站或處理器系統(tǒng)中被實(shí)例化為中間數(shù)據(jù)服務(wù)器過(guò)程122,并且/或者在通信連接到客戶端應(yīng)用程序128和130的另一工作站或處理器系統(tǒng)中被實(shí)例化。
中間數(shù)據(jù)服務(wù)器過(guò)程122包含中間數(shù)據(jù)服務(wù)器132和可以在本地?cái)?shù)據(jù)源136與數(shù)據(jù)庫(kù)連接138之間協(xié)調(diào)信息或數(shù)據(jù)交換的會(huì)話(session)134。一般地,當(dāng)中間數(shù)據(jù)服務(wù)器132從一個(gè)或多個(gè)客戶端應(yīng)用程序128和130接收到數(shù)據(jù)請(qǐng)求時(shí),中間數(shù)據(jù)服務(wù)器132通過(guò)會(huì)話134來(lái)遍歷數(shù)據(jù)源136,以確定所請(qǐng)求的信息或數(shù)據(jù)是否是本地可用的(即在中間數(shù)據(jù)服務(wù)器過(guò)程122的數(shù)據(jù)源136中可用)。后面將結(jié)合圖5對(duì)會(huì)話134遍歷數(shù)據(jù)源136的方式進(jìn)行更詳細(xì)的說(shuō)明。
雖然在圖4中未示出,客戶端應(yīng)用程序128和130均包含與結(jié)合中間數(shù)據(jù)服務(wù)器過(guò)程122示出的會(huì)話134、數(shù)據(jù)源136和數(shù)據(jù)庫(kù)連接138類似或相同的會(huì)話、數(shù)據(jù)源和數(shù)據(jù)庫(kù)連接。在該方式中,客戶端應(yīng)用程序128和130可以直接與數(shù)據(jù)服務(wù)器過(guò)程124通信(即客戶端應(yīng)用程序128和130不必通過(guò)中間數(shù)據(jù)服務(wù)器過(guò)程122與數(shù)據(jù)服務(wù)器過(guò)程124通信)。
如果客戶端應(yīng)用程序128或130所請(qǐng)求的信息不能從數(shù)據(jù)源136本地可用,會(huì)話134使得數(shù)據(jù)庫(kù)連接138經(jīng)由通信鏈路140向中間數(shù)據(jù)服務(wù)器124發(fā)送信息請(qǐng)求。另外或可替代地,在客戶端應(yīng)用程序130已請(qǐng)求處于數(shù)據(jù)庫(kù)126中的數(shù)據(jù)的情況下,客戶端應(yīng)用程序130可以經(jīng)由通信鏈路141向數(shù)據(jù)服務(wù)器過(guò)程124請(qǐng)求這樣的數(shù)據(jù)或信息。當(dāng)然,客戶端應(yīng)用程序128也可以經(jīng)由它自己的鏈路(未示出)直接向數(shù)據(jù)服務(wù)器過(guò)程124請(qǐng)求信息。在任何情況下,可以采用無(wú)線或硬布介質(zhì)的任意期望的組合,并且可以采用通信協(xié)議或技術(shù)的任意期望的組合,來(lái)實(shí)現(xiàn)通信鏈路140和141。例如,通信鏈路140和141可以包含電話線和/或分組交換通信網(wǎng)絡(luò)(例如因特網(wǎng))。經(jīng)由通信鏈路140傳送的數(shù)據(jù)或信息最好是,但不是必須的,使用可擴(kuò)展置標(biāo)語(yǔ)言(XML)來(lái)格式化的,并采用基于例如已知的傳輸控制協(xié)議(TCP)或超文本傳輸控制協(xié)議(HTTP)的傳輸機(jī)制來(lái)傳送。而且,例如簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)這樣的消息編碼協(xié)議可以與采用HTTP發(fā)送的信息一起使用。
數(shù)據(jù)服務(wù)器過(guò)程124包含中間數(shù)據(jù)服務(wù)器142、會(huì)話過(guò)程144、數(shù)據(jù)源146和用于訪問(wèn)數(shù)據(jù)庫(kù)126的數(shù)據(jù)庫(kù)訪問(wèn)器148。中間數(shù)據(jù)服務(wù)器142經(jīng)由通信鏈路140從中間數(shù)據(jù)服務(wù)器122,和/或經(jīng)由通信鏈路141從一個(gè)或多個(gè)客戶端應(yīng)用程序128和130,接收信息或數(shù)據(jù)請(qǐng)求。如上所述,當(dāng)會(huì)話過(guò)程遍歷數(shù)據(jù)源并確定所請(qǐng)求的信息或數(shù)據(jù)非本地可用(例如,在本地中間數(shù)據(jù)服務(wù)器過(guò)程中緩沖)時(shí),由會(huì)話過(guò)程協(xié)調(diào)并經(jīng)由數(shù)據(jù)庫(kù)連接傳送這樣的信息或數(shù)據(jù)請(qǐng)求。中間數(shù)據(jù)服務(wù)器142使用它的會(huì)話過(guò)程144來(lái)遍歷其本地?cái)?shù)據(jù)源146,以確定所請(qǐng)求的信息(即,由一個(gè)或多個(gè)客戶端應(yīng)用程序128和130最初請(qǐng)求的信息)是否是本地可用的(例如,在本地中間數(shù)據(jù)服務(wù)器過(guò)程中緩沖)。如果會(huì)話過(guò)程144確定所請(qǐng)求的信息或數(shù)據(jù)不在數(shù)據(jù)源146中可用,則會(huì)話過(guò)程144通過(guò)數(shù)據(jù)庫(kù)訪問(wèn)器148從數(shù)據(jù)庫(kù)126檢索所請(qǐng)求的信息或數(shù)據(jù)。數(shù)據(jù)庫(kù)訪問(wèn)器148可以是任意期望的數(shù)據(jù)庫(kù)或服務(wù)器過(guò)程,以使信息或數(shù)據(jù)能被存儲(chǔ)在例如圖2所示的示例數(shù)據(jù)庫(kù)結(jié)構(gòu)這樣的分層結(jié)構(gòu)的面向?qū)ο髷?shù)據(jù)庫(kù)中。
當(dāng)從數(shù)據(jù)庫(kù)126檢索到所請(qǐng)求的信息或數(shù)據(jù)時(shí),則由中間數(shù)據(jù)服務(wù)器過(guò)程124經(jīng)由通信鏈路140向中間數(shù)據(jù)服務(wù)器過(guò)程122傳送信息或數(shù)據(jù),并且/或者經(jīng)由例如鏈路141直接向一個(gè)或多個(gè)客戶端應(yīng)用程序128和130傳送信息或數(shù)據(jù)。當(dāng)中間數(shù)據(jù)服務(wù)器過(guò)程122經(jīng)由數(shù)據(jù)庫(kù)連接138接收到所檢索的信息或數(shù)據(jù)時(shí),它將所檢索的信息或數(shù)據(jù)傳送至最初經(jīng)由會(huì)話過(guò)程134以及中間數(shù)據(jù)服務(wù)器132來(lái)請(qǐng)求信息或數(shù)據(jù)的客戶端應(yīng)用程序128和130。
因此,中間數(shù)據(jù)服務(wù)器過(guò)程122使用它的本地?cái)?shù)據(jù)源136(例如本地緩沖)來(lái)存儲(chǔ)客戶端應(yīng)用程序128和130所需的信息或數(shù)據(jù),由于這種信息是客戶端應(yīng)用程序128和130所需的(即要求的)。當(dāng)對(duì)于請(qǐng)求信息或數(shù)據(jù)的客戶端應(yīng)用程序(例如,客戶端應(yīng)用程序128和130中的一個(gè))來(lái)說(shuō)是最接近的或本地的中間數(shù)據(jù)服務(wù)器過(guò)程和本地?cái)?shù)據(jù)服務(wù)器過(guò)程122當(dāng)前不使所請(qǐng)求的信息在它其本地?cái)?shù)據(jù)源(例如數(shù)據(jù)源136)中可用時(shí),可以通過(guò)一個(gè)或多個(gè)其他中間數(shù)據(jù)服務(wù)器過(guò)程(例如中間數(shù)據(jù)服務(wù)器過(guò)程124)向服務(wù)器或其他過(guò)程傳播對(duì)該信息或數(shù)據(jù)的請(qǐng)求,該服務(wù)器或其他過(guò)程最終訪問(wèn)包含與企業(yè)(例如企業(yè)10)或其中運(yùn)行客戶端應(yīng)用程序的其他系統(tǒng)相關(guān)的整個(gè)配置數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)(例如數(shù)據(jù)庫(kù)126)。
雖然圖4所示的示例描述了兩個(gè)鏈接在一起的中間數(shù)據(jù)服務(wù)器過(guò)程,但是,如果需要,也可以鏈接多于兩個(gè)中間數(shù)據(jù)服務(wù)器過(guò)程。在這種情況下,數(shù)據(jù)庫(kù)訪問(wèn)器148可以替代是另一個(gè)數(shù)據(jù)庫(kù)連接(即與數(shù)據(jù)庫(kù)連接138類似或相同的),該數(shù)據(jù)庫(kù)連接與另一個(gè)中間數(shù)據(jù)服務(wù)器過(guò)程通信連接,并且最終通信連接到如數(shù)據(jù)庫(kù)126等數(shù)據(jù)庫(kù)。當(dāng)然,由于客戶端應(yīng)用程序128和130也可以具有它們自己各自的會(huì)話、數(shù)據(jù)源和數(shù)據(jù)庫(kù)連接,如果需要,這些應(yīng)用程序128和130可以直接訪問(wèn)數(shù)據(jù)服務(wù)器過(guò)程124或任何其他與上述數(shù)據(jù)服務(wù)器過(guò)程相同或類似的數(shù)據(jù)服務(wù)器過(guò)程。然而,在這些情況中,如果可能(即如果在例如中間數(shù)據(jù)服務(wù)器過(guò)程122中,所請(qǐng)求的數(shù)據(jù)是本地可用的),可以避免由客戶端應(yīng)用程序128和130對(duì)數(shù)據(jù)服務(wù)器過(guò)程124進(jìn)行直接訪問(wèn),以最小化對(duì)中心數(shù)據(jù)庫(kù)126的通信需求。
存儲(chǔ)在數(shù)據(jù)庫(kù)126中且經(jīng)由中間數(shù)據(jù)服務(wù)器過(guò)程122和124傳送以便由客戶端應(yīng)用程序128和130所使用的信息或數(shù)據(jù),包含組成用于企業(yè)的面向?qū)ο蟮慕Y(jié)構(gòu)模型的所有信息或數(shù)據(jù)。例如,可以按需要(或根據(jù)規(guī)則,如果需要,在運(yùn)行時(shí)間之前),將所有與包含屬性值、數(shù)據(jù)庫(kù)規(guī)則或相關(guān)性等的分層結(jié)構(gòu)對(duì)象相關(guān)的信息從數(shù)據(jù)庫(kù)126傳送到客戶端應(yīng)用程序128和130中的一個(gè),并且被本地存儲(chǔ)(例如在數(shù)據(jù)源136中),并且,根據(jù)規(guī)則等,被本地運(yùn)行。當(dāng)客戶端應(yīng)用程序128和130所需的信息或數(shù)據(jù)被本地存儲(chǔ)在數(shù)據(jù)源136時(shí),客戶端應(yīng)用程序128和130對(duì)于相同信息的后續(xù)請(qǐng)求將不會(huì)導(dǎo)致經(jīng)由通信鏈路140和141的通信。結(jié)果,在需要的地方并且按照需要,圖4所示的示例系統(tǒng)120使企業(yè)或其他系統(tǒng)的復(fù)雜分層的面向?qū)ο蠼Y(jié)構(gòu)的數(shù)據(jù)庫(kù)中所包含的信息能被本地分布和存儲(chǔ),從而減少了支持構(gòu)成企業(yè)或其他系統(tǒng)的客戶端應(yīng)用程序的信息需要所需的總網(wǎng)絡(luò)通信量。
中間數(shù)據(jù)服務(wù)器過(guò)程122和124可以在經(jīng)由通信鏈路140通信連接的物理上分離的工作站或處理系統(tǒng)中被實(shí)例化,該通信鏈路可以是通信網(wǎng)絡(luò)的一部分。然而,可替換地,中間數(shù)據(jù)服務(wù)器過(guò)程122和124可以在相同工作站或處理系統(tǒng)中被實(shí)例化。
可以采用軟件、固件和硬件的任意期望的組合,來(lái)將圖4的示例系統(tǒng)120中所示的功能塊構(gòu)造成對(duì)象、過(guò)程等。例如,一個(gè)或多個(gè)微處理器、微控制器、特定用途集成電路(ASIC)等,可訪問(wèn)存儲(chǔ)在機(jī)器或處理器可訪問(wèn)存儲(chǔ)介質(zhì)上的指令或數(shù)據(jù),以便實(shí)現(xiàn)在此說(shuō)明的設(shè)備和方法。存儲(chǔ)介質(zhì)可以包含例如固態(tài)存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、磁存儲(chǔ)介質(zhì)等這樣的器件和/或介質(zhì)的任意組合,其中,固態(tài)存儲(chǔ)介質(zhì)包含隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)等。而且,任何用于實(shí)現(xiàn)如圖4所示的功能塊的軟件或固件,可以經(jīng)由因特網(wǎng)、電話線、衛(wèi)星通信等附加地或可替換地被傳遞至處理器或其他設(shè)備或運(yùn)行軟件的設(shè)備,并且被上述設(shè)備訪問(wèn)。
圖5是描述客戶端應(yīng)用程序訪問(wèn)存儲(chǔ)在中間數(shù)據(jù)服務(wù)器過(guò)程數(shù)據(jù)源中的信息或數(shù)據(jù)的一種方式示例的詳細(xì)圖。特別是,客戶端應(yīng)用程序的狀態(tài)由一個(gè)或多個(gè)客戶根(client root)200和202維護(hù)??蛻舾?00和202是數(shù)據(jù)源204上的窗口。會(huì)話206管理客戶根200和202與數(shù)據(jù)源204之間的交互。例如,客戶根200和202可以保持各自的客戶端應(yīng)用程序128和130的狀態(tài)(圖4),數(shù)據(jù)源204可以相應(yīng)于數(shù)據(jù)源136,而會(huì)話206可以相應(yīng)于會(huì)話134。在這種方式下,客戶端應(yīng)用程序128和130不必直接訪問(wèn)數(shù)據(jù)源136,而是替代地,可維護(hù)各自的應(yīng)用程序狀態(tài)(相應(yīng)于客戶根200和202),該應(yīng)用程序狀態(tài)可以被快速地和重復(fù)地訪問(wèn)以獲取當(dāng)前本地存儲(chǔ)在中間數(shù)據(jù)服務(wù)器過(guò)程122中的數(shù)據(jù)。例如,如果相關(guān)于客戶根200的客戶端應(yīng)用程序請(qǐng)求相關(guān)于模塊對(duì)象208(MOD A)的信息,會(huì)話206可以遍歷客戶根200和地點(diǎn)對(duì)象210(SITE)以從模塊對(duì)象208檢索所需的信息。另一方面,如果相關(guān)于客戶根200的客戶端應(yīng)用程序請(qǐng)求相關(guān)于屬性212(ATTR 1)的信息,則會(huì)話過(guò)程206遍歷數(shù)據(jù)源204以檢索相關(guān)于屬性212的信息,并發(fā)送該信息以便被添加到相關(guān)于客戶根200的客戶端應(yīng)用程序中。此外,如果相關(guān)于客戶根200的客戶端應(yīng)用程序請(qǐng)求非本地存儲(chǔ)的信息(即該信息尚未被存儲(chǔ)或裝載到本地?cái)?shù)據(jù)源204中),則會(huì)話過(guò)程206可以從中間數(shù)據(jù)服務(wù)器過(guò)程214檢索這樣的信息。中間數(shù)據(jù)服務(wù)器過(guò)程214可以相應(yīng)于,例如圖4所示的中間數(shù)據(jù)服務(wù)器過(guò)程214。雖然,在圖5中示出兩個(gè)客戶根,但是可以替代使用一個(gè)或多于兩個(gè)客戶根。
如結(jié)合圖4和5所述,可以請(qǐng)求裝載(即按需從數(shù)據(jù)庫(kù)檢索并且本地緩沖)客戶端應(yīng)用程序所需信息(例如,包含屬性值、規(guī)則等的對(duì)象數(shù)據(jù))。當(dāng)在此說(shuō)明的設(shè)備和方法使信息能被請(qǐng)求基于基本單元(即一次一個(gè)對(duì)象)裝載時(shí),通過(guò)識(shí)別數(shù)據(jù)庫(kù)訪問(wèn)模式以及要求裝載稍微比應(yīng)用程序具體請(qǐng)求的信息多一些的信息,可以獲得更高的通信效率。換句話說(shuō),可以使用數(shù)據(jù)庫(kù)訪問(wèn)模式來(lái)預(yù)測(cè)在緊跟一條特定信息的應(yīng)用程序請(qǐng)求之后,什么信息最可能是所需要的。例如,當(dāng)客戶端應(yīng)用程序從模塊對(duì)象遍歷至屬性角色(即客戶端應(yīng)用程序向另一數(shù)據(jù)服務(wù)器請(qǐng)求屬性角色信息)時(shí),由于這樣的信息通常與屬性名稱和類型一起被顯示,所以接下來(lái)通常是對(duì)于屬性值的后續(xù)請(qǐng)求。因此,為了增加通信效率(即減少通信網(wǎng)絡(luò)的總通信量),一般將屬性值與屬性角色信息一起發(fā)送。更一般地,通過(guò)預(yù)測(cè)特定于應(yīng)用程序的特征信息請(qǐng)求模式,并隨后以與這些訪問(wèn)模式一致的方式捆綁信息,來(lái)最小化網(wǎng)絡(luò)通信(即為了獲得客戶端應(yīng)用程序需要的信息所需的往返通信次數(shù)),從而可以獲得通信效率。
當(dāng)客戶端應(yīng)用程序請(qǐng)求對(duì)系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行離線訪問(wèn)時(shí)(例如,當(dāng)需要離線編輯會(huì)話時(shí)),可以請(qǐng)求并本地緩沖數(shù)據(jù)庫(kù)的整個(gè)內(nèi)容(即所有規(guī)則和數(shù)據(jù))。在這種方式下,客戶端應(yīng)用程序可以使系統(tǒng)用戶能參與完整的離線編輯會(huì)話。由于所有的規(guī)則都本地可用,所以在這樣的離線編輯會(huì)話期間可以使用本地規(guī)則檢查以便于當(dāng)將客戶端應(yīng)用程序重連接至中心數(shù)據(jù)庫(kù)時(shí)(即結(jié)束離線編輯會(huì)話)的后續(xù)的數(shù)據(jù)同步和協(xié)調(diào)(reconciliation)行為??梢允褂孟旅嬲f(shuō)明的示例對(duì)象更改處理技術(shù)來(lái)實(shí)現(xiàn)這種數(shù)據(jù)同步和調(diào)節(jié)行為。
客戶端應(yīng)用程序(例如客戶端應(yīng)用程序128和130)可以訪問(wèn)存儲(chǔ)在本地存儲(chǔ)或緩沖的數(shù)據(jù)源(即數(shù)據(jù)源136)中的信息,并可以修改或更改該信息。例如,客戶端應(yīng)用程序128(圖4)可以相應(yīng)于客戶根200(圖5),并可以遍歷客戶根200以訪問(wèn)相關(guān)于模塊208的信息。當(dāng)客戶端應(yīng)用程序128試圖修改在事務(wù)的上下文內(nèi)的模塊208中的信息(例如角色和/或?qū)傩?時(shí),根據(jù)數(shù)據(jù)庫(kù)規(guī)則(即規(guī)則檢查),產(chǎn)生一個(gè)“臟(dirty)”對(duì)象以存儲(chǔ)所嘗試的修改。如果事務(wù)被嵌套,然后出現(xiàn)進(jìn)一步嘗試以更改或修改相關(guān)于模塊208的信息,其他的臟對(duì)象被創(chuàng)建以存儲(chǔ)這些進(jìn)一步的更改。當(dāng)運(yùn)行附加的內(nèi)部嵌套的事務(wù)時(shí),可以產(chǎn)生附加的臟對(duì)象。當(dāng)最內(nèi)層嵌套的事務(wù)被提交時(shí),在最內(nèi)層臟對(duì)象中反映的更改被傳遞到相關(guān)于下一外層事務(wù)的臟對(duì)象。當(dāng)內(nèi)層對(duì)象被提交時(shí),從內(nèi)層事務(wù)到下一外層事務(wù)的臟對(duì)象更改信息的傳遞繼續(xù)進(jìn)行,直到所有的更改已被傳遞至相關(guān)于最外層事務(wù)的臟對(duì)象。最外層事務(wù)的提交導(dǎo)致更改變成永久性的,從而防止更改的任何退回重來(lái)(即更改返回到事務(wù)開(kāi)始之前的應(yīng)用程序的狀態(tài))。
如上所述,事務(wù)(和嵌套事務(wù))使應(yīng)用程序能實(shí)現(xiàn)或記錄對(duì)它們各自客戶根內(nèi)的對(duì)象信息的更改。然而,客戶端應(yīng)用程序可以額外地向數(shù)據(jù)庫(kù)(例如數(shù)據(jù)庫(kù)126)寫(xiě)入或記錄對(duì)象更改,從而使所有連接至該數(shù)據(jù)庫(kù)的中間數(shù)據(jù)服務(wù)器能給它們各自的客戶端應(yīng)用程序提供更改的信息。最好是,但不是必需的,響應(yīng)于來(lái)自客戶端應(yīng)用程序的自動(dòng)指示,并且/或者響應(yīng)于來(lái)自系統(tǒng)用戶或操作者的自動(dòng)指示,由客戶端應(yīng)用程序?qū)?duì)象信息進(jìn)行的永久更改可以被寫(xiě)回?cái)?shù)據(jù)庫(kù)(例如圖4的數(shù)據(jù)庫(kù)126)。
最初,向客戶根(例如客戶根200)提交的更改(即永久更改)通過(guò)會(huì)話過(guò)程(例如會(huì)話過(guò)程206)被寫(xiě)入到相關(guān)于客戶根的數(shù)據(jù)源(例如數(shù)據(jù)源204)中。會(huì)話過(guò)程隨后將對(duì)客戶根所作的任意更改傳播至數(shù)據(jù)源(例如包含它所連接到的任意對(duì)象的數(shù)據(jù)源204)。會(huì)話過(guò)程206接著將更改的數(shù)據(jù)源信息發(fā)送至被連接到數(shù)據(jù)庫(kù)的中間數(shù)據(jù)服務(wù)器。當(dāng)在發(fā)送更改信息的數(shù)據(jù)源與中心數(shù)據(jù)庫(kù)之間存在兩個(gè)或更多個(gè)居中的中間數(shù)據(jù)服務(wù)器時(shí),更改被從數(shù)據(jù)服務(wù)器發(fā)送至數(shù)據(jù)服務(wù)器直到它們到達(dá)該數(shù)據(jù)庫(kù)。為了促進(jìn)平臺(tái)的獨(dú)立性和增加整個(gè)系統(tǒng)的靈活性,信息最好是,但不是必需的,以XML文檔形式在中間數(shù)據(jù)服務(wù)器之間傳送。數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)庫(kù)規(guī)則,并且如果提供給數(shù)據(jù)庫(kù)的任意信息(例如在所接收的XML文檔中)不符合這樣的規(guī)則,則數(shù)據(jù)庫(kù)拒絕(即不記錄)這些更改。
接著,由數(shù)據(jù)庫(kù)所接收并接受的更改可以接著通過(guò)一個(gè)或多個(gè)中間數(shù)據(jù)服務(wù)器被傳遞至相關(guān)于企業(yè)的所有數(shù)據(jù)源。例如,包含由數(shù)據(jù)庫(kù)所接收并存在的所有更改的完整列表的XML文檔,可以被異步傳回到發(fā)起該修改的客戶端和/或企業(yè)或系統(tǒng)中的一些或所有中間數(shù)據(jù)服務(wù)器。類似地,發(fā)生在數(shù)據(jù)庫(kù)內(nèi)的且不是由一個(gè)或多個(gè)客戶端應(yīng)用程序向上傳播至中心數(shù)據(jù)庫(kù)的更改信息的結(jié)果的更改,可以作為更改通知機(jī)制被異步地向下傳播至組成企業(yè)的數(shù)據(jù)服務(wù)器,然后是數(shù)據(jù)源??梢允褂美鏧ML文檔來(lái)實(shí)現(xiàn)這樣的更改通知,該XML文檔包含按照分層方式排列以使數(shù)據(jù)被數(shù)據(jù)源有效地使用的數(shù)據(jù)。接收這樣的XML文檔的數(shù)據(jù)源可以跳過(guò)在先前未被裝載的文檔中的對(duì)象,并產(chǎn)生新的簡(jiǎn)化的XML文檔,該文檔僅包含那些與連接至數(shù)據(jù)源的客戶相關(guān)的更改。
圖6是具有多個(gè)處理系統(tǒng)302、304、306和307的示例系統(tǒng)300的方框圖。處理系統(tǒng)302、304和306使用各自的中間數(shù)據(jù)服務(wù)器308、310和312以訪問(wèn)數(shù)據(jù)庫(kù)314。此外,處理系統(tǒng)304和307使用各自的中間數(shù)據(jù)服務(wù)器315和316以訪問(wèn)實(shí)時(shí)服務(wù)器317。系統(tǒng)302可以是例如應(yīng)用程序站(例如圖1的工作站18、20和42中的一個(gè)站),該應(yīng)用程序站運(yùn)行一個(gè)或多個(gè)基于Windows的客戶端應(yīng)用程序318。應(yīng)用程序318可以包含連接至數(shù)據(jù)源322的客戶根319和320。數(shù)據(jù)源322可以經(jīng)由中間數(shù)據(jù)服務(wù)器312、經(jīng)由數(shù)據(jù)庫(kù)服務(wù)器324,連接至數(shù)據(jù)庫(kù)314。系統(tǒng)302也可以包含通信連接至下面將詳細(xì)說(shuō)明的系統(tǒng)304的Web客戶326。
系統(tǒng)304可以是例如,運(yùn)行具有一個(gè)或多個(gè)會(huì)話狀態(tài)330(該狀態(tài)與應(yīng)用程序狀態(tài)類似)的互聯(lián)網(wǎng)服務(wù)器過(guò)程328的web服務(wù)器(該服務(wù)器可以使用工作站或任何其他處理系統(tǒng)來(lái)實(shí)現(xiàn))。會(huì)話狀態(tài)330包含客戶根332和334以及通信連接至中間數(shù)據(jù)服務(wù)器310和315的相應(yīng)數(shù)據(jù)源336和338。因此,會(huì)話狀態(tài)330可以訪問(wèn)存儲(chǔ)在數(shù)據(jù)庫(kù)314和/或?qū)崟r(shí)服務(wù)器317中的信息(例如數(shù)據(jù)、規(guī)則等)。系統(tǒng)304也可以包含通信連接至互聯(lián)網(wǎng)服務(wù)器過(guò)程328的web客戶340。因此,web客戶326和340均可以相應(yīng)于一個(gè)會(huì)話狀態(tài)330(即客戶根332和334中的一個(gè)),并可以與中間數(shù)據(jù)服務(wù)器310、312、315和316互操作,以使用采用上述方法的數(shù)據(jù)庫(kù)314和/或?qū)崟r(shí)服務(wù)器317來(lái)交換信息。
因此,雖然已參照特定示例說(shuō)明了本發(fā)明,但是這僅用于說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限定。對(duì)本技術(shù)領(lǐng)域人員來(lái)說(shuō),在不脫離本發(fā)明的實(shí)質(zhì)和范圍的情況下,可以對(duì)所公開(kāi)的實(shí)施例進(jìn)行更改、增加或刪除。
權(quán)利要求
1.一種訪問(wèn)與過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)的方法,包括在中間數(shù)據(jù)服務(wù)器過(guò)程中從客戶端應(yīng)用程序接收信息請(qǐng)求;確定所述信息是否被存儲(chǔ)在與所述中間數(shù)據(jù)服務(wù)器過(guò)程相關(guān)的數(shù)據(jù)源中;如果所述信息未被存儲(chǔ)在所述數(shù)據(jù)源中,則將對(duì)所述信息的請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器過(guò)程發(fā)送至另一個(gè)過(guò)程;和在所述另一個(gè)過(guò)程接收所述信息請(qǐng)求之后,訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索所述信息。
2.如權(quán)利要求1所述的方法,其中,在所述中間數(shù)據(jù)服務(wù)器過(guò)程中從所述客戶端應(yīng)用程序接收所述信息請(qǐng)求包含接收對(duì)數(shù)據(jù)和至少一個(gè)與所述數(shù)據(jù)相關(guān)的規(guī)則的請(qǐng)求。
3.如權(quán)利要求1所述的方法,其中,在所述中間數(shù)據(jù)服務(wù)器過(guò)程中從所述客戶端應(yīng)用程序接收所述信息請(qǐng)求包含接收對(duì)至少一個(gè)對(duì)象信息和規(guī)則的請(qǐng)求。
4.如權(quán)利要求1所述的方法,其中,確定所述信息是否被存儲(chǔ)在所述數(shù)據(jù)源中包含遍歷與分層相關(guān)的第一組對(duì)象,所述第一組對(duì)象相應(yīng)于存儲(chǔ)在所述數(shù)據(jù)庫(kù)中的第二組對(duì)象的子集。
5.如權(quán)利要求4所述的方法,其中,遍歷與分層結(jié)構(gòu)相關(guān)的所述第一組對(duì)象包含遍歷相應(yīng)于所述客戶端應(yīng)用程序的狀態(tài)的客戶根。
6.如權(quán)利要求1所述的方法,其中,將所述信息請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器過(guò)程發(fā)送至所述另一個(gè)過(guò)程包含經(jīng)由數(shù)據(jù)庫(kù)連接和通信鏈路發(fā)送所述信息請(qǐng)求。
7.如權(quán)利要求1所述的方法,其中,所述另一個(gè)過(guò)程是另一個(gè)中間數(shù)據(jù)服務(wù)器過(guò)程。
8.如權(quán)利要求1所述的方法,其中,在所述另一個(gè)過(guò)程接收所述信息請(qǐng)求之后訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索所述信息包含向通信連接至所述數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)訪問(wèn)器發(fā)送對(duì)所述信息的請(qǐng)求。
9.如權(quán)利要求1所述的方法,包含通過(guò)通信連接至所述數(shù)據(jù)源和所述數(shù)據(jù)庫(kù)連接的會(huì)話來(lái)處理所述信息請(qǐng)求。
10.如權(quán)利要求1所述的方法,包含訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索附加信息,其中所述附加信息與所述客戶端應(yīng)用程序的數(shù)據(jù)訪問(wèn)模式特征相關(guān)。
11.如權(quán)利要求1所述的方法,其中,將所述信息請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器過(guò)程發(fā)送至另一過(guò)程的步驟包括使用可擴(kuò)展置標(biāo)語(yǔ)言、傳輸協(xié)議和消息編碼中的至少一種以發(fā)送所述信息的請(qǐng)求。
12.一種訪問(wèn)與過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)的系統(tǒng),包括中間數(shù)據(jù)服務(wù)器,被通信連接至所述數(shù)據(jù)庫(kù),并且被編程以從客戶端應(yīng)用程序接收信息請(qǐng)求;確定所述信息是否被存儲(chǔ)在與所述中間數(shù)據(jù)服務(wù)器相關(guān)的數(shù)據(jù)源中;和如果所述信息未被存儲(chǔ)在所述數(shù)據(jù)源中,則將對(duì)所述信息的請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器發(fā)送至另一個(gè)中間數(shù)據(jù)服務(wù)器。
13.如權(quán)利要求12所述的系統(tǒng),其中,所述中間數(shù)據(jù)服務(wù)器被編程以建立會(huì)話,所述會(huì)話協(xié)調(diào)與所述數(shù)據(jù)源和數(shù)據(jù)庫(kù)連接的通信。
14.如權(quán)利要求11所述的系統(tǒng),其中,所述信息請(qǐng)求包含對(duì)數(shù)據(jù)和至少一個(gè)與所述數(shù)據(jù)相關(guān)的規(guī)則的請(qǐng)求。
15.如權(quán)利要求12所述的系統(tǒng),其中,所述信息請(qǐng)求包含對(duì)至少一個(gè)對(duì)象信息和規(guī)則的請(qǐng)求。
16.如權(quán)利要求12所述的系統(tǒng),其中,所述數(shù)據(jù)源包含與分層結(jié)構(gòu)相關(guān)的第一組對(duì)象,所述第一組對(duì)象相應(yīng)于存儲(chǔ)在所述數(shù)據(jù)庫(kù)中的第二組對(duì)象的子集。
17.如權(quán)利要求12所述的系統(tǒng),其中,所述中間數(shù)據(jù)服務(wù)器被編程以經(jīng)由數(shù)據(jù)庫(kù)連接和通信鏈路向所述另一個(gè)中間數(shù)據(jù)服務(wù)器發(fā)送所述信息請(qǐng)求。
18.如權(quán)利要求12所述的系統(tǒng),其中,所述另一個(gè)中間數(shù)據(jù)服務(wù)器經(jīng)由數(shù)據(jù)庫(kù)訪問(wèn)器訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索所述信息。
19.如權(quán)利要求12所述的系統(tǒng),其中,所述中間數(shù)據(jù)服務(wù)器被編程以通過(guò)使用可擴(kuò)展標(biāo)記語(yǔ)言、傳輸協(xié)議和消息編碼中的至少一種來(lái)向所述另一個(gè)中間數(shù)據(jù)服務(wù)器發(fā)送所述信息請(qǐng)求。
20.一種其上存儲(chǔ)指令的機(jī)器可讀介質(zhì),當(dāng)被運(yùn)行時(shí)使機(jī)器在中間數(shù)據(jù)服務(wù)器過(guò)程中從客戶端應(yīng)用程序接收與過(guò)程控制系統(tǒng)相關(guān)的信息請(qǐng)求;確定所述信息是否被存儲(chǔ)在與所述中間數(shù)據(jù)服務(wù)器過(guò)程相關(guān)的數(shù)據(jù)源中;如果所述信息未被存儲(chǔ)在所述數(shù)據(jù)源中,則將對(duì)所述信息的請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器過(guò)程發(fā)送至另一個(gè)過(guò)程;和在所述另一個(gè)過(guò)程接收所述信息請(qǐng)求之后,訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索所述信息。
21.如權(quán)利要求18所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)指令,以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器通過(guò)接收對(duì)數(shù)據(jù)和至少一個(gè)與所述數(shù)據(jù)相關(guān)的規(guī)則的請(qǐng)求,在所述中間數(shù)據(jù)服務(wù)器過(guò)程中從所述客戶端應(yīng)用程序接收所述信息請(qǐng)求。
22.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)指令,以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器通過(guò)接收對(duì)中間數(shù)據(jù)服務(wù)器對(duì)象中的至少一個(gè)對(duì)象信息和規(guī)則的請(qǐng)求,在所述中間數(shù)據(jù)服務(wù)器過(guò)程中從所述客戶端應(yīng)用程序接收所述信息請(qǐng)求。
23.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)指令,以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器通過(guò)遍歷與分層結(jié)構(gòu)相關(guān)的第一組對(duì)象,來(lái)確定所述信息是否被存儲(chǔ)在所述數(shù)據(jù)源中,所述第一組對(duì)象相應(yīng)于存儲(chǔ)在所述數(shù)據(jù)庫(kù)中的第二組對(duì)象的子集。
24.如權(quán)利要求23所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)指令,以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器通過(guò)遍歷相應(yīng)于所述客戶端應(yīng)用程序的狀態(tài)的客戶根對(duì)象,來(lái)遍歷與分層結(jié)構(gòu)相關(guān)的所述第一組對(duì)象。
25.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)指令,以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器通過(guò)經(jīng)由數(shù)據(jù)庫(kù)連接和通信鏈路發(fā)送所述信息請(qǐng)求,來(lái)將所述信息請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器過(guò)程發(fā)送至所述另一個(gè)過(guò)程。
26.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)指令,以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器通過(guò)被通信連接到所述數(shù)據(jù)源和數(shù)據(jù)庫(kù)連接的會(huì)話來(lái)處理所述信息請(qǐng)求。
27.如權(quán)利要求20所述的機(jī)器可讀介質(zhì),其上存儲(chǔ)數(shù)據(jù),以便當(dāng)被運(yùn)行時(shí)使所述機(jī)器訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索附加信息,其中,所述附加信息與所述客戶端應(yīng)用程序的數(shù)據(jù)訪問(wèn)模式特征相關(guān)。
28.一種過(guò)程控制系統(tǒng),包括多個(gè)通信連接的中間數(shù)據(jù)服務(wù)器;多個(gè)與至少一個(gè)所述中間數(shù)據(jù)服務(wù)器通信的客戶端應(yīng)用程序;和包含信息的數(shù)據(jù)庫(kù),所述信息至少包含與所述過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)和規(guī)則,其中,所述中間數(shù)據(jù)服務(wù)器適合于互操作,以便基于至少一些所述客戶端應(yīng)用程序的信息需要檢索并且在相應(yīng)的本地?cái)?shù)據(jù)源中存儲(chǔ)所述信息的子集。
29.如權(quán)利要求28所述的過(guò)程控制系統(tǒng),其中,每一個(gè)所述中間數(shù)據(jù)服務(wù)器適合于提供中間數(shù)據(jù)服務(wù)器對(duì)象、數(shù)據(jù)源對(duì)象、數(shù)據(jù)庫(kù)連接對(duì)象和會(huì)話對(duì)象,所述會(huì)話對(duì)象協(xié)調(diào)所述中間數(shù)據(jù)服務(wù)器對(duì)象、所述數(shù)據(jù)源對(duì)象和所述數(shù)據(jù)庫(kù)連接對(duì)象的行為。
30.如權(quán)利要求28所述的過(guò)程控制系統(tǒng),其中,至少兩個(gè)所述中間數(shù)據(jù)服務(wù)器經(jīng)由與網(wǎng)絡(luò)相關(guān)的通信鏈路連接。
31.如權(quán)利要求30所述的過(guò)程控制系統(tǒng),其中,對(duì)象的分層結(jié)構(gòu)中的每一個(gè)所述對(duì)象包含相關(guān)對(duì)象、屬性和角色。
32.如權(quán)利要求28所述的過(guò)程控制系統(tǒng),其中,所述中間數(shù)據(jù)服務(wù)器適合于采用可擴(kuò)展標(biāo)記語(yǔ)言進(jìn)行通信。
33.如權(quán)利要求28所述的過(guò)程控制系統(tǒng),其中,所述客戶端應(yīng)用程序包含瀏覽器應(yīng)用程序。
34.如權(quán)利要求28所述的過(guò)程控制系統(tǒng),其中,所述中間數(shù)據(jù)服務(wù)器適合于運(yùn)行至少一些與所述過(guò)程控制系統(tǒng)相關(guān)的所述規(guī)則。
35.如權(quán)利要求28所述的過(guò)程控制系統(tǒng),其中,由每一個(gè)所述中間數(shù)據(jù)服務(wù)器接收的所述信息的子集包含與該中間數(shù)據(jù)服務(wù)器的數(shù)據(jù)訪問(wèn)特征一致的信息。
36.一種更改與過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)中的信息的方法,包括將一組信息從第一中間數(shù)據(jù)服務(wù)器發(fā)送至第二中間數(shù)據(jù)服務(wù)器;將所述一組信息從所述第二中間數(shù)據(jù)服務(wù)器發(fā)送至數(shù)據(jù)庫(kù)服務(wù)器;和將所述一組信息寫(xiě)入所述數(shù)據(jù)庫(kù)以更改所述數(shù)據(jù)庫(kù)中的所述信息。
37.如權(quán)利要求36所述的方法,其中,所述第一中間數(shù)據(jù)服務(wù)器和所述第二中間數(shù)據(jù)服務(wù)器的每一個(gè)包含數(shù)據(jù)源、會(huì)話和數(shù)據(jù)庫(kù)連接。
38.如權(quán)利要求36所述的方法,其中,所述一組信息包含可擴(kuò)展置標(biāo)語(yǔ)言文檔。
39.如權(quán)利要求36所述的方法,其中,將所述一組信息從所述第一中間數(shù)據(jù)服務(wù)器發(fā)送至所述第二中間數(shù)據(jù)服務(wù)器包含經(jīng)由通信鏈路發(fā)送所述一組信息。
40.如權(quán)利要求33所述的方法,其中,所述一組信息包含與所述過(guò)程控制系統(tǒng)和企業(yè)中的至少一個(gè)相關(guān)的信息。
41.一種在網(wǎng)絡(luò)化系統(tǒng)中傳播數(shù)據(jù)庫(kù)更改的方法,包括更改數(shù)據(jù)庫(kù)中的一組信息以形成第二組信息;將所述第二組信息發(fā)送至在所述網(wǎng)絡(luò)化系統(tǒng)中的第一中間數(shù)據(jù)服務(wù)器;將所述第二組信息從所述第一中間數(shù)據(jù)服務(wù)器發(fā)送至第二中間數(shù)據(jù)服務(wù)器;和在與客戶端應(yīng)用程序相關(guān)的數(shù)據(jù)源中存儲(chǔ)所述第二組信息的至少一部分。
42.如權(quán)利要求41所述的方法,其中,將所述第二組信息從所述第一中間數(shù)據(jù)服務(wù)器發(fā)送至所述第二中間數(shù)據(jù)服務(wù)器包含將可擴(kuò)展置標(biāo)語(yǔ)言文檔從所述第一中間數(shù)據(jù)服務(wù)器發(fā)送至所述第二中間數(shù)據(jù)服務(wù)器。
43.如權(quán)利要求41所述的方法,其中,在與所述客戶端應(yīng)用程序相關(guān)的所述數(shù)據(jù)源中存儲(chǔ)所述第二組信息的至少一部分包含存儲(chǔ)與所述數(shù)據(jù)源先前所請(qǐng)求的信息相關(guān)的信息。
44.一種訪問(wèn)與過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)的方法,包括在中間數(shù)據(jù)服務(wù)器過(guò)程中從客戶端應(yīng)用程序接收對(duì)數(shù)據(jù)和至少一個(gè)與所述數(shù)據(jù)相關(guān)的規(guī)則的請(qǐng)求;和訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索所述數(shù)據(jù)和所述至少一個(gè)與所述數(shù)據(jù)相關(guān)的規(guī)則。
45.如權(quán)利要求44所述的方法,還包括響應(yīng)于更改所述數(shù)據(jù)的至少一部分的請(qǐng)求,執(zhí)行所述至少一個(gè)規(guī)則。
46.如權(quán)利要求44所述的方法,其中,訪問(wèn)所述數(shù)據(jù)庫(kù)包含被與連接至所述數(shù)據(jù)庫(kù)的另一個(gè)中間數(shù)據(jù)服務(wù)器過(guò)程進(jìn)行通信。
47.一種編輯過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)的方法,包括請(qǐng)求幾乎所有與所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)相關(guān)的數(shù)據(jù);在客戶端應(yīng)用程序中接收所請(qǐng)求的幾乎所有與所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)相關(guān)的數(shù)據(jù);當(dāng)所述客戶端應(yīng)用程序相對(duì)于所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)離線時(shí),在所述客戶端應(yīng)用程序中編輯幾乎所有與所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)相關(guān)的數(shù)據(jù)的至少一部分;和當(dāng)所述客戶端應(yīng)用程序相對(duì)于所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)離線時(shí),運(yùn)行與所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)相關(guān)的并且可被所述客戶端應(yīng)用程序訪問(wèn)的至少一個(gè)規(guī)則。
48.如權(quán)利要求47所述的方法,還包括在編輯之后,協(xié)調(diào)幾乎所有與所述過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)的至少一部分。
49.如權(quán)利要求47所述的方法,其中,幾乎所有與所述過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)包含所述過(guò)程控制系統(tǒng)數(shù)據(jù)庫(kù)的拷貝。
全文摘要
訪問(wèn)與過(guò)程控制系統(tǒng)相關(guān)的數(shù)據(jù)庫(kù)的系統(tǒng)和方法,將信息請(qǐng)求從客戶端應(yīng)用程序發(fā)送至中間數(shù)據(jù)服務(wù)器,并確定所述信息是否被存儲(chǔ)在與所述中間數(shù)據(jù)服務(wù)器過(guò)程相關(guān)的數(shù)據(jù)源中。如果所述信息未被存儲(chǔ)在所述數(shù)據(jù)源中,則該系統(tǒng)和方法還將所述信息請(qǐng)求從所述中間數(shù)據(jù)服務(wù)器過(guò)程發(fā)送至另一過(guò)程,并且在其他過(guò)程接收所述信息請(qǐng)求之后,訪問(wèn)所述數(shù)據(jù)庫(kù)以檢索所述信息。
文檔編號(hào)G06F13/00GK1527227SQ20041000787
公開(kāi)日2004年9月8日 申請(qǐng)日期2004年3月3日 優(yōu)先權(quán)日2003年3月3日
發(fā)明者馬克·J·尼克松, 斯蒂芬·吉爾伯特, 邁克爾·盧卡斯, 特里薩·查特科夫, 盧卡斯, 吉爾伯特, 查特科夫, 馬克 J 尼克松 申請(qǐng)人:費(fèi)舍-柔斯芒特系統(tǒng)股份有限公司