亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

可擴展的制造/過程控制信息入口服務(wù)器的制作方法

文檔序號:6474536閱讀:214來源:國知局
專利名稱:可擴展的制造/過程控制信息入口服務(wù)器的制作方法
本申請要求2000年9月15日提交的名稱為“ExtensibleManufacturing Portal Server”的Forney et al.U.S.臨時申請SerialNo.60/232,733的優(yōu)先權(quán),其內(nèi)容包含在這里作為參考,包括其中包含的任何對比文件的內(nèi)容和教導(dǎo)。
本發(fā)明的領(lǐng)域 本發(fā)明一般涉及計算機化的制造/過程控制網(wǎng)絡(luò),更具體來說,本發(fā)明涉及用于提供由管理級應(yīng)用和用戶對制造/過程控制信息訪問的系統(tǒng)。本發(fā)明涉及從具有相異數(shù)據(jù)類型的多個潛在不同信息源提供這種信息。
本發(fā)明的背景 工業(yè)過程控制技術(shù)中的顯著進展已經(jīng)極大改進了制造廠和工廠操作的所有方面。在引入今天現(xiàn)代的工業(yè)過程控制系統(tǒng)之前,工業(yè)過程由人和初級的機器控制操作/控制。其結(jié)果是,對過程的控制的復(fù)雜性和程度受到速度的限制,一個或多個人員只能憑借這樣的速度判斷故障過程狀態(tài)變量的狀態(tài),比較當前狀態(tài)與所需操作水平,計算矯正的動作(如果需要),并實現(xiàn)對控制點的改變以影響狀態(tài)變量的變化。
過程控制技術(shù)的改進已使非常大和更復(fù)雜的工業(yè)過程,能夠通過編程控制處理器控制。控制處理器執(zhí)行控制程序,這種程序讀取過程狀態(tài)變量,并基于狀態(tài)變量數(shù)據(jù)與所需的設(shè)置點信息執(zhí)行控制算法,以便對工業(yè)過程中的控制點提交輸出值。這種控制處理器和程序支持本質(zhì)上自運行的工業(yè)過程(一旦建立了設(shè)置點)。
盡管工業(yè)過程能夠在編程過程控制器下在先前建立的設(shè)置點處不加干預(yù)地操作,但還是希望對控制處理器及它們相關(guān)的過程進行管理控制和監(jiān)視。這種監(jiān)督是由人和較高級控制程序兩者在多級過程控制網(wǎng)絡(luò)的應(yīng)用程序/人界面層提供的。一般希望這種監(jiān)控能在較低級過程控制器下檢驗被控制的過程的正確執(zhí)行,并配置被控制過程的設(shè)置點。
各種數(shù)據(jù)輸入/輸出服務(wù)器,例如包括數(shù)據(jù)訪問服務(wù)器,便于在各種較高-級別監(jiān)視器/控制客戶應(yīng)用程序的范圍布置過程控制數(shù)據(jù)(既讀又寫)。在操作過程中,過程控制器產(chǎn)生與相關(guān)過程有關(guān)的狀態(tài)和控制信息??刂破鞯倪^程狀態(tài)和控制信息存儲在過程控制數(shù)據(jù)庫內(nèi)和/或分布到過程控制網(wǎng)絡(luò)內(nèi)數(shù)個位置。其它過程信息在具有數(shù)字數(shù)據(jù)通信能力的現(xiàn)場裝置(例如智能發(fā)送器)內(nèi)產(chǎn)生/存儲。通過數(shù)據(jù)訪問服務(wù)器從過程控制數(shù)據(jù)庫和現(xiàn)場裝置檢索過程信息,供過程控制系統(tǒng)進一步處理/使用。例如,數(shù)據(jù)訪問服務(wù)器向提供高級控制和監(jiān)視(既有人又有計算機化的)服務(wù)的各種客戶應(yīng)用程序,提供所檢索的信息。
在包含數(shù)據(jù)輸入/輸出服務(wù)器的系統(tǒng)中,高級控制和監(jiān)視應(yīng)用程序依賴于服務(wù)器適當?shù)牟僮饕蕴峁┻@種應(yīng)用程序賴以進行決策的數(shù)據(jù)。這種信息包括實時過程變量值、警告等。數(shù)據(jù)輸入/輸出服務(wù)器是以若干形式實現(xiàn)的。某些系統(tǒng)中,單個的數(shù)據(jù)訪問服務(wù)器工作在計算機網(wǎng)絡(luò)上從其實現(xiàn)高級管理控制的結(jié)點上。在另一些系統(tǒng)中,多個數(shù)據(jù)訪問服務(wù)器位于本地局域網(wǎng),并通過在本地控制網(wǎng)絡(luò)上的其它結(jié)點上運行的管理層應(yīng)用程序訪問這多個數(shù)據(jù)服務(wù)器。又在另一些系統(tǒng)中,訪問過程控制信息/資源是通過經(jīng)廣域網(wǎng)鏈路建立的臨時會話實現(xiàn)的。一個具體的例子是通過因特網(wǎng)/內(nèi)聯(lián)網(wǎng)入口服務(wù)器提供的數(shù)據(jù)訪問。
入口站點是提供對來自許多潛在信息源的各種信息訪問的因特網(wǎng)/內(nèi)聯(lián)網(wǎng)站點。被稱為垂直入口的入口站點有時被設(shè)計為提供對特定類型信息的訪問。入口服務(wù)器在入口站點處理用戶通信量,并向用戶提供通過因特網(wǎng)/內(nèi)聯(lián)網(wǎng)對各種由入口站點暴露的數(shù)據(jù)源的訪問。用戶通常通過執(zhí)行一般瀏覽器軟件諸如著名的MICROSOFT INTERNETEXPLORER的遠程計算機訪問入口站點。通過瀏覽器用戶訪問由入口站點/服務(wù)器暴露的數(shù)據(jù)源。
入口服務(wù)器提供廣泛的各種服務(wù)。這種服務(wù)的一個例子是便于到信息源和內(nèi)容提供者的連接性。這種內(nèi)容可能位于地理上廣泛的區(qū)域,但通過網(wǎng)絡(luò)結(jié)構(gòu)(例如因特網(wǎng))連接。入口服務(wù)的另一例子是搜索引擎,這種引擎使用戶能夠在大量的可用內(nèi)容內(nèi)定位于特定的信息。入口服務(wù)器常常維護一個索引以便提高搜索的性能。另一種入口服務(wù)可用服務(wù)的可視化(例如顯示用戶可用的各種特征)??梢暬牡诙绞绞秋@示在用戶請求下檢索的文擋和信息。又另一種入口服務(wù)功能是通過萬維網(wǎng)提供從世界各地對用戶的訪問。這種訪問既包括國內(nèi)的又包括國外的用戶。入口功能最后的一個例子是對個人化的支持。入口是由許多不同的人為各種目的被使用的。入口服務(wù)器存儲用戶配置文件信息以便提高用戶的經(jīng)驗。
入口服務(wù)器訪問過程控制信息/資源方法的優(yōu)點在于,用戶能夠效能地從世界任何位置進行訪問。這種訪問使專家(人和編程的)能夠在無需物理出現(xiàn)在制造/工業(yè)工廠的情形下,獲得對管理服務(wù)的訪問并提供這種服務(wù)。這種可訪問性能夠節(jié)省企業(yè)相當多的時間。
部署并維護制造/過程控制信息入口服務(wù)器的另一障礙是存在廣泛的各種信息類型。當需要新的數(shù)據(jù)傳輸協(xié)議或格式時安裝新的入口服務(wù)器,可能極大地干擾服務(wù)器對其提供服務(wù)的制造/過程控制系統(tǒng)的操作。
典型的入口站點/服務(wù)器設(shè)計為虛擬地向非常大量的來訪問者提供相同的資源。在過程控制環(huán)境中,信息源和類型被修整為許多不同的相當小的單機組。各種信息源需要不同的處理機。即使在一個企業(yè)內(nèi)部,具有不同角色的人員也將有興趣查看不同信息源的不同類型的數(shù)據(jù)。
本發(fā)明的概述 本發(fā)明提供了一種靈活的制造/過程控制信息提供者體系結(jié)構(gòu)。這種靈活性是通過用戶可配置的制造/過程控制信息入口服務(wù)器實現(xiàn)的,該服務(wù)器包括多個可選的數(shù)據(jù)類型(處理機)和具體選擇的數(shù)據(jù)處理機適合的數(shù)據(jù)源。用戶配置入口服務(wù)器,以便通過瀏覽器客戶機經(jīng)過因特網(wǎng)或公司內(nèi)部網(wǎng)向用戶投送與被控制的過程環(huán)境,諸如食品加工廠工作面或油料精煉反應(yīng)器,相關(guān)聯(lián)的制造/過程控制信息。
此外,提供了一種可擴展的體系結(jié)構(gòu),該結(jié)構(gòu)使新的組件能夠向入口服務(wù)器添加。這種擴展包括新的數(shù)據(jù)源,新的數(shù)據(jù)類型,和新的類屬的數(shù)據(jù)處理機。這種新的體系結(jié)構(gòu)使用戶能夠選擇具體可用的數(shù)據(jù)處理機,以及然后是它們相關(guān)的數(shù)據(jù)源,從而便于把入口服務(wù)器的配置定制到用戶具體的需要。
附圖的簡要說明 所附權(quán)利要求具體陳述了本發(fā)明的特征。從以下參照附圖詳細的說明可最好理解本發(fā)明及其目的和先進性,其中

圖1是描述本發(fā)明一示例性過程控制環(huán)境的示意圖,其中制造/過程控制網(wǎng)絡(luò)包括向瀏覽器客戶提供各種入口服務(wù)的入口服務(wù)器; 圖2是構(gòu)成示例性制造/過程控制入口服務(wù)器系統(tǒng)的一般組件的示意圖; 圖3是一列出了包含在配置數(shù)據(jù)庫內(nèi)提供者表記錄的字段的框圖; 圖4是用于定義作為新的表的項被存儲在配置數(shù)據(jù)庫中新的數(shù)據(jù)源(提供者)的示例性圖形用戶界面(GUI)的屏幕畫面; 圖5是示例性運行時間數(shù)據(jù)庫(RDB)的細節(jié)的示意圖; 圖6是列出了由RDB透露供通過數(shù)據(jù)交換(DE)使用的示例性IruneTimeDB接口的方法的框圖; 圖7是列出了由RDB透露的供通過DE使用的示例性IOItime接口方法的框圖; 圖8是列出了由DE透露的通過RDB供使用的示例性IOItimeListener接口方法的框圖; 圖9是列出了由HTTP客戶接口(HCI)透露的通過RDB供使用的示例性IOutpost接口方法的框圖; 圖10是列出了由RDB透露的通過HCI供使用的示例性IOutpostSessionListener接口方法的框圖; 圖11是描繪在所建立的HTTP連接上的客戶(入口服務(wù)器HCI)與工廠服務(wù)器之間呼叫和行動順序的數(shù)據(jù)流框圖; 圖12入口服務(wù)器框架示例性實施例的示意圖; 圖13是在數(shù)據(jù)提供者登記內(nèi)列出數(shù)據(jù)源與它們相關(guān)處理機的XML概要的框圖; 圖14和15用于登記數(shù)據(jù)提供者的示例性GUI的屏幕畫面; 圖16是列出示例性連接對象方法的框圖; 圖17是列出示例性命令對象方法的框圖; 圖18是列出由框架Web服務(wù)處理機支持的方法的框圖; 圖19是描繪在用戶會話過程期間客戶與框架Web服務(wù)處理機之間執(zhí)行的示例性步驟集的順序圖; 圖20是描繪在框架Web服務(wù)處理機內(nèi)三個對象類之間的示例性關(guān)系的框圖; 圖21是列出在數(shù)據(jù)提供者處理機內(nèi)實現(xiàn)的示例性方法的框圖;以及 圖22是表示示例性SQL提供者處理機類結(jié)構(gòu)和COM組件中類之間的關(guān)系的框圖。
示例性實施例的詳細說明 本發(fā)明涉及可擴展制造/過程控制信息入口服務(wù)器,這種服務(wù)器通過因特網(wǎng)或內(nèi)部網(wǎng)經(jīng)過瀏覽器(例如IE5),使用戶能夠可視化來自各種系統(tǒng)和數(shù)據(jù)庫(例如Wonderware`s InTouch 系統(tǒng),InTouch/AlarmSuite警告數(shù)據(jù)庫,I/O服務(wù)器,以及工業(yè)SQL)的工廠工作面信息??蓴U展制造/過程控制入口服務(wù)器支持XML的交互式HTML頁面,施加XSL變換,以及在客戶機上動態(tài)提交VML(以及提供來自實況過程數(shù)據(jù)源的畫動更新)。入口服務(wù)器允許用戶產(chǎn)生實時過程控制SQL數(shù)據(jù)庫的特別查詢,以生成使用瀏覽器客戶諸如MICROSOFT INTERNET EXPLORER可查看的趨勢和報表。此外,入口服務(wù)器支持因特網(wǎng)可實現(xiàn)的ActiveX控制及SQL服務(wù)器報表工具。可擴展制造/過程控制入口服務(wù)器瀏覽器客戶與同被觀察的制造/過程控制系統(tǒng)相關(guān)的數(shù)據(jù)提供者之間的雙向通信。
以下這里所述的一示例性可擴展制造/過程控制信息入口服務(wù)器對用戶提供了可配置的數(shù)據(jù)處理機與數(shù)據(jù)源指定接口。首先,用戶指定信息類型(與具體的數(shù)據(jù)處理機相關(guān))。其次,用戶指定所選信息類型的信息源。例如,用戶可以選擇“警告”數(shù)據(jù)類型/處理機。然后,用戶選擇對其提供數(shù)據(jù)的工廠的部分(即信息源)。然后,入口服務(wù)器通過適當對象的例示被配置為向請求的瀏覽器客戶投送配置的數(shù)據(jù)。用戶可以是向入口服務(wù)器配置設(shè)備提交適當命令的人或機器。
結(jié)合本發(fā)明的一示例性制造/過程控制信息入口服務(wù)器提供了一種可擴展入口服務(wù)器體系結(jié)構(gòu),使得開發(fā)者/用戶能夠擴展系統(tǒng)的能力。這種擴展的第一形式包括使用戶能夠重新配置入口服務(wù)器以便從指定的資源提供信息。擴展入口服務(wù)器能力的第二種形式是添加新的數(shù)據(jù)處理機以便支持用來從連接信息源提供信息的數(shù)據(jù)新的形式/格式。
本發(fā)明的可擴展制造/過程控制入口服務(wù)器提供了很高的靈活性基礎(chǔ)結(jié)構(gòu),用于聚集工廠工作面信息(用于客戶應(yīng)用程序)以及例如向制造廠工作面散布回數(shù)據(jù)。訪問通過因特網(wǎng)和內(nèi)部網(wǎng)提供給客戶用戶。可擴展的體系結(jié)構(gòu)和技術(shù)允許用戶向主入口服務(wù)器添加新的數(shù)據(jù)源。可擴展體系結(jié)構(gòu)還便于添加新的數(shù)據(jù)處理機。
一般來說,可擴展體系結(jié)構(gòu)是通過設(shè)置便于生成信息源專用和處理機專用對象組件的一般接口定義促成的。每一添加的組件(處理機和信息源)由根據(jù)一般接口定義的集合所定義的對象類(或子類)實現(xiàn)。在本發(fā)明的一個實施例中,服務(wù)器開發(fā)者由簡化用于開發(fā)添加到可擴展入口服務(wù)器的新的處理機和信息源過程的工具包協(xié)助。工具包還保證了添加的組件符合一般接口定義的要求。
轉(zhuǎn)向圖1,其中簡化示出一示例性入口服務(wù)器結(jié)構(gòu)。入口服務(wù)器10向制造/過程控制環(huán)境提供了入口服務(wù)。這種環(huán)境由數(shù)據(jù)庫服務(wù)器20和數(shù)據(jù)訪問服務(wù)器30組成。數(shù)據(jù)訪問服務(wù)器30轉(zhuǎn)而連接到處理控制設(shè)備40。入口服務(wù)器10向在本地連接的工作站50,并通過因特網(wǎng)60或?qū)S芯W(wǎng)絡(luò)向在遠程的工作站的瀏覽器客戶提供其服務(wù)。連接的工作站50和遠程工作站70通過瀏覽器客戶,例如MICROSOFTINTERNET EXPLORER連接到入口服務(wù)器10的資源。以上的網(wǎng)絡(luò)只是本發(fā)明應(yīng)用的一個簡單的例子。業(yè)內(nèi)專業(yè)人員易于認識到有范圍廣泛的網(wǎng)絡(luò)結(jié)構(gòu)和環(huán)境,其中實施本發(fā)明的制造/過程控制信息入口服務(wù)器能夠操作。
轉(zhuǎn)向圖2,其中圖示出第一示例性可擴展入口服務(wù)器體系結(jié)構(gòu)的組件。入口服務(wù)器100插入在各種信息類型110的制造和過程控制信息源與瀏覽器客戶集120之間。這種客戶120可以是運行小的或無應(yīng)用程序?qū)S密浖氖菘蛻魴C。執(zhí)行瀏覽器和一般瀏覽器支持軟件的客戶機120,依賴于入口服務(wù)器的處理能力以瀏覽器就緒的格式提供制造和過程控制信息。瀏覽器客戶機120產(chǎn)生對應(yīng)的的顯示信息,并向入口服務(wù)器100發(fā)送回用戶的選擇。入口服務(wù)器100還提供這里以下參照圖4所描述的一配置接口,該接口使用戶能夠向數(shù)據(jù)源集合添加新的數(shù)據(jù)源,入口服務(wù)器100從這些數(shù)據(jù)源代表瀏覽器客戶機120獲得數(shù)據(jù)。這種配置信息以諸如這里以下參照圖3所描繪的示例性記錄的方式,存儲在配置數(shù)據(jù)庫150內(nèi)。
各種類型的信息源(一般是服務(wù)器—但圖中未示出)110以各種格式向入口服務(wù)器100提供信息。如圖2中指出的,這些類型包括歷史(歸檔過程控制信息),警告,圖形應(yīng)用程序(例如趨勢圖),支持系統(tǒng)遠程監(jiān)視的實時制造/過程控制系統(tǒng)數(shù)據(jù),以及商業(yè)信息(一般存儲在數(shù)據(jù)庫內(nèi))。入口服務(wù)器包括數(shù)據(jù)訪問子系統(tǒng)125,該子系統(tǒng)負責在入口服務(wù)器100的瀏覽器客戶接口框架與信息的企業(yè)源(例如工廠工作面過程控制狀態(tài)和控制信息)檢索并發(fā)送數(shù)據(jù)(實時)。數(shù)據(jù)訪問子系統(tǒng)125(參見圖3)包括數(shù)據(jù)處理機130的一個可擴展集合,處理由信息源110以規(guī)定格式提交的信息。例如數(shù)據(jù)處理機包括歷史和警告處理機。其它的數(shù)據(jù)處理機與特定的客戶數(shù)據(jù)交換協(xié)議的格式,諸如OPC,SuiteLink,及DDE相關(guān)聯(lián)。另一種標識的處理機處理XML。一個定制的塊140是要描繪數(shù)據(jù)處理機130集合的可擴展性,這支持在起初安裝之后添加數(shù)據(jù)處理機新的(定制)配置。這是由一種開放式的體系結(jié)構(gòu)和一種在數(shù)據(jù)處理機與入口框架—客戶接口之間通用的接口定義實現(xiàn)的,這種接口基于由特定數(shù)據(jù)源經(jīng)過對應(yīng)的的一些數(shù)據(jù)處理機130提供的對應(yīng)的信息向請求的客戶提交web頁面。
入口服務(wù)器100包括數(shù)個子系統(tǒng)。包括這里所述的用戶配置的入口服務(wù)器的配置,由配置數(shù)據(jù)50支持。配置數(shù)據(jù)庫包含數(shù)據(jù)提供者表,這種表存儲鏈接數(shù)據(jù)提供者(外部數(shù)據(jù)源)與入口服務(wù)器100而該服務(wù)器又連接到請求客戶的連接信息。數(shù)據(jù)_提供者表由呈現(xiàn)給入口服務(wù)器100的用戶的“數(shù)據(jù)源配置”web頁面訪問(參見圖3及4)。在本發(fā)明一種提高的實施例中,一個第二配置接口使用戶能夠向入口服務(wù)器系統(tǒng)添加新的數(shù)據(jù)處理機(用于處理新的數(shù)據(jù)類型)。當新的數(shù)據(jù)處理機添加到入口服務(wù)器100時,注冊信息集(參見以下這里所討論的圖13)存儲在數(shù)據(jù)處理機注冊表中,該注冊表與在配置數(shù)據(jù)庫150內(nèi)維護的數(shù)據(jù)_提供者表分開的且不同。
在某些情形下,客戶瀏覽器需要插入的組件以便查看入口信息。例如,如果過程圖形包含ActiveX組件,則ActiveX組件需要被下載。這個任務(wù)由調(diào)度管理器151實現(xiàn)。調(diào)度管理器151組合所有必須被下載的的文件,把這些組件注冊到客戶機上并將它們初始化。
子系統(tǒng)152的安全管理實現(xiàn)了對特定資源的限制性訪問。安全系統(tǒng)152實施關(guān)于特定資源由標識用戶訪問的訪問權(quán)限。其它潛在的子系統(tǒng)包括多語音支持和多用戶并發(fā)用戶許可管理。
以上描述了一示例性制造/過程控制入口服務(wù)器系統(tǒng),現(xiàn)在轉(zhuǎn)向入口服務(wù)器系統(tǒng)的可擴展/可配置方面。如這里前面所提及的,入口服務(wù)器的可擴展在于,用戶能夠配置新的數(shù)據(jù)提供者(數(shù)據(jù)源)以便添加到配置數(shù)據(jù)庫150中所列的信息源可用集合?,F(xiàn)在轉(zhuǎn)到圖3,識別出包含在配置數(shù)據(jù)庫150內(nèi)的提供者表記錄中的一字段集。ID字段154存儲了標識提供者記錄表內(nèi)記錄的唯一的值。存儲在ID字段154中的該值是在記錄生成時由系統(tǒng)產(chǎn)生的。類型字段155描述了這一數(shù)據(jù)源與之相關(guān)的數(shù)據(jù)處理機的類型(例如警告,歷史,統(tǒng)計,實時數(shù)據(jù))。這樣,當用戶選擇特定的信息類型(例如警告)時,所有提供這一數(shù)據(jù)類型的數(shù)據(jù)提供者被檢索并列出供用戶選擇。
別名字段156存儲用于這一數(shù)據(jù)處理機的別名。對于因特網(wǎng)連接并為了安全,建議提供使用別名而隱藏原來的名稱。服務(wù)器字段157保存擔當數(shù)據(jù)提供者的服務(wù)器的名稱。DB字段158保存用于數(shù)據(jù)提供者數(shù)據(jù)庫名稱。用戶字段159和口令字段160保存用于數(shù)據(jù)提供者的系統(tǒng)用戶名和口令(如果需要訪問服務(wù)器)。適當數(shù)據(jù)處理機使用名和口令登錄到數(shù)據(jù)庫服務(wù)器??诹钤谄浔淮鎯χ笆羌用艿?。說明字段161保存關(guān)于數(shù)據(jù)處理機說明的信息。聯(lián)系字段162保存關(guān)于對這一提供者的系統(tǒng)管理員的說明。最后,默認服務(wù)器字段163存儲默認服務(wù)器標識。如果用戶已經(jīng)配置了許多數(shù)據(jù)提供者,則用戶取特定的服務(wù)器作為供用戶查詢的默認服務(wù)器。
以上說明了用于數(shù)據(jù)提供者記錄的示例性字段,現(xiàn)在轉(zhuǎn)向圖4,其中提供了一示例性的圖形用戶界面(GUI),供用戶定義作為配置數(shù)據(jù)庫150中新的表項被存儲的新的數(shù)據(jù)源(提供者)。圖形用戶界面包括標有Alarm,InSQL,Admin,及Create New的一組選項卡166。Alarm,和InSQL選項卡對應(yīng)于當前安裝在可擴展入口服務(wù)器上的特定數(shù)據(jù)處理機。當用戶學(xué)選擇這兩個數(shù)據(jù)處理機選項卡之一時,產(chǎn)生包含提供所選擇的數(shù)據(jù)類型的所有數(shù)據(jù)源的一用戶接口。Admin選項卡提供了對各種管理數(shù)據(jù)包括用戶在入口服務(wù)器上的活動的訪問。
最后,Create New選項卡對應(yīng)于實施本發(fā)明的入口服務(wù)器的數(shù)據(jù)源的可擴展性特性。當用戶選擇Create New選項卡時,該用戶接口在圖4中描繪的模板,且用戶輸入對應(yīng)于圖3中所描繪的數(shù)據(jù)提供者記錄的各字段的數(shù)據(jù),用戶選擇“提交”按鈕以引起所定義的數(shù)據(jù)源結(jié)合到可擴展數(shù)據(jù)提供者列表中。在本發(fā)明一加強的實施例中,入口服務(wù)器100的可擴展性包括提交新的數(shù)據(jù)處理機(這里以下進一步討論)。
現(xiàn)在轉(zhuǎn)向圖5,其中進一步詳細描繪了數(shù)據(jù)訪問子系統(tǒng)125。圖5描繪了信息通過邏輯連接對象集的流程,從數(shù)據(jù)交換182到RDB內(nèi)部類對象,然后到HCI組件170,該組件連接到工廠工作面供客戶會話的服務(wù)器178。數(shù)據(jù)訪問子系統(tǒng)125包括兩個COM組件。第一個COM組件HCI(HTTP客戶接口)170建立HTTP連接,用于在入口服務(wù)器和工廠工作面web服務(wù)器178之間發(fā)送和接收原始數(shù)據(jù)。HCI 170實現(xiàn)了Ioupost接口172用于接收來自CrdbSession對象174的請求。CrdbSession對象174實現(xiàn)了一種IoupostSessionListener接口176。
HCI170是數(shù)據(jù)訪問子系統(tǒng)125上負責建立到服務(wù)器178的連接的最低層的組件。HCI 170使用http因特網(wǎng)API打開與服務(wù)器178的連接,然后使用郵政請求與服務(wù)器178上的一ASAPI擴展組件fsoutpst.dll通信。然后fsoutpst.dll把該請求路由到服務(wù)器178上的一服務(wù)組件rdhandler。HCI170在內(nèi)部生成一線程以便向服務(wù)器178每200ms發(fā)送一節(jié)拍以保持連接有效并檢驗任何可用的數(shù)據(jù)從服務(wù)器178發(fā)送。
數(shù)據(jù)訪問子系統(tǒng)125的第二COM組件,是運行時間數(shù)據(jù)庫(RDB)180,編排(marshal)或解編(unmarshal)數(shù)據(jù)(允許向意向目標傳送)并與數(shù)據(jù)交換182相互作用。數(shù)據(jù)交換182執(zhí)行在連接的客戶瀏覽器會話與RDB180之間,通過在運行數(shù)據(jù)數(shù)據(jù)庫組件中建立的指定的項目標簽傳送數(shù)據(jù)的任務(wù)。
當用戶完成指定數(shù)據(jù)源時,數(shù)據(jù)交換(DE)組件182首先通過IruntimeDB接口186生成CruntimeDB184的實例。然后DE組件182調(diào)用在CruntimeDB184上的AddItem方法通知RDB180對新的項目向數(shù)據(jù)訪問子系統(tǒng)添加標簽。AddItem方法返回IOItem接口190,這允許DE組件182通過RDB180向web服務(wù)器回寫數(shù)據(jù)。為了DE使能夠接收標簽上的數(shù)據(jù),必須通過IOItem接口190調(diào)用setItemListener方法把RDB180交給DE182的IOItemListener接口192。
當DE182向數(shù)據(jù)訪問子系統(tǒng)125添加一標簽時,RDB180生成并在內(nèi)部對消息排隊,直到Run方法通過IruntimeDB接口186被調(diào)用才將它們發(fā)送到web服務(wù)器178,以便開始數(shù)據(jù)—寫線程。CrdbSession174的每一實例具有接口指針及連接點,這允許其向HCI170發(fā)送并從其接收。
DE 182與選擇的數(shù)據(jù)源之間的連接與會話相關(guān)聯(lián)。這樣,當數(shù)據(jù)交換182調(diào)用CruntimeDB184上的AddItem方法添加一標簽項時,RDB 180在內(nèi)部生成關(guān)于Web服務(wù)器地址、用戶ID及口令的CrdbSession分類對象基址174。然后CrdbSession對象174生成CIOConnection分類對象基址185在標簽名上生成CIOItem對象基址187。使用這種設(shè)計,CrdbSession對象174映射到服務(wù)器上客戶會話,CIOConnection對象映射到結(jié)點和應(yīng)用程序,且CIOItem對象187映射到應(yīng)用程序上的標簽。服務(wù)器上的每一會話能夠有到不同結(jié)點和應(yīng)用程序的多個連接,且每一應(yīng)用程序可用有許多標簽項。
已經(jīng)描述了一般的連接體系結(jié)構(gòu),以下說明從工廠工作面數(shù)據(jù)源web服務(wù)器178到數(shù)據(jù)交換182的數(shù)據(jù)流。HCI組件170包含向服務(wù)器周期地發(fā)送出節(jié)拍的內(nèi)部線程,以保持連接有效并確定任何數(shù)據(jù)是否可得。當HCI 170接收例子服務(wù)器178的數(shù)據(jù)時,它把該數(shù)據(jù)通過CrdbSession對象174的IoutpostSessionListener 176接口(連接點)傳送給RDB 180組件。RDB 180把這一數(shù)據(jù)傳送給其內(nèi)部類對象CliRdbUnMarshallListener 191以便解編數(shù)據(jù)。一旦數(shù)據(jù)被解編,它就被傳送到(適當)的CIOConnection對象185并然后到CIOItem對象187。然后CIOItem對象187通過IOItemListener接口192調(diào)用DE182,以便向DE 182提供新的標簽值。
關(guān)于從DE 182到工廠工作面的數(shù)據(jù)流,DE 182調(diào)用在IOItem接口190中的方法向服務(wù)器178回寫數(shù)據(jù)。數(shù)據(jù)經(jīng)過內(nèi)部類被編排并然后到CrdbSession對象174。該CrdbSession通過Ioutpost接口172向HCI 170發(fā)送數(shù)據(jù)值。
已經(jīng)說明了實施本發(fā)明的入口服務(wù)器的數(shù)據(jù)訪問組件125內(nèi)的連接框架的一般體系結(jié)構(gòu),現(xiàn)不注意力轉(zhuǎn)向圖6,7,8和9,它們標識出結(jié)合到與數(shù)據(jù)訪問組件125相關(guān)的上述接口的每一方法。
IruntimeDB接口186包括參照以下圖6這里下述的方法。對AddItem200的調(diào)用將向會話添加另一數(shù)據(jù)項,引起RDB180跟蹤來自與該會話相關(guān)的特定數(shù)據(jù)源的這一項。
HRESULT AddItem([in]BSTR bstrOutpost,[in]BSTR bstrNode,[in]BSTR bstrApp,[in]BSTR bstrTopic,[in]BSTR bstrConnType,[in]BSTR bstrItem,[out,retval]IDispatch**ppIOItem)ParametersBstrOutpost-destination server addressbstrUserName-user name for authenticationbstrPassword--password for authenticationbstrNode-node namebstr App-Application namebstrTopic- Topic namebstrConnType-Connection typebstrItem-Item nameppIOItem-Pointer to IOItem interface RmoveItem 202方法被調(diào)用以便從會話去除一項。
HRESULT RemoveItem([in]BSTR bstrOutpost,[in]BSTR bstrNode,[in]BSTR bstrApp,[in]BSTR bstrTopic,[in]BSTR bstrConnType,[in]BSTR bstrItem)ParametersBstrOutpost-destination server addressbstrUserName-user name for authenticationbstrPassword-password fbr authenticationbstrNode- node namebstr App- Application namebstrTopic- Topic namebstrConnType- Connection typebstrItem- Item name Start 204方法被調(diào)用以便開始處理數(shù)據(jù)。
HRESUL Start() Stop 206方法被調(diào)用以便停止處理數(shù)據(jù)。
HRESUL Stop() RmoveAllItems 208方法被調(diào)用以便去除與該會話相關(guān)的所有項。
HRESULT RmoveAllItems() 現(xiàn)在轉(zhuǎn)向圖7,其中參照它們的參數(shù)總結(jié)了與IOItem接口190相關(guān)的方法集。首先,getName 210方法接收項名稱。
HRESULT getName([out]BSTR*bstrName) Return Value BstrName-Item name getID 212方法被調(diào)用以獲得項目ID。
HRESULT getId([out]int*pId) Return Value pId-Item ID 其余的方法由它們的名稱和相關(guān)的參數(shù)定義大體上可不言自明。
GetItem ValueType 214HRESULT getitem ValueType([out]int*piValue)Return ValuePiValue-item value typeGetIntValue 216HRESULT getIntValue([out]int*pValue)Return ValuepValue-Item integer valueGetRealValue 218HRESULT getRealValue([out]float*pfValue)Return ValuepfValue-Item float valueGetStringValue 220HRESULT getStringValue([out]BSTR*pbstrValue)Return ValuepbstrValue-Item string valueIsValueReady 222HRESULT isValueReady([out]BOOL*pbValue)Return ValuepbValue-TRUE(data ready),F(xiàn)ALSE(data not ready)SetItemListener 224HRESULT setItemListener([in]IDispatch*newItemListener)Return ValuenewItemListener-Pointer to the listener interfacePokeStringValue 226HRESULT PokeStringValue([in]BSTR*newValue)Return ValueNewValue-string value to poke<!-- SIPO <DP n="13"> --><dp n="d13"/>PokeIntValue 228HRESULT PokeIntValue([in]int newValue)Return ValuenewValue-Integer value to pokePokeFloatValue 230HRESULT PokeFloatValue([in]float newValue)Return ValuenewValue-float value to poke 參照圖8,IOItemListener接口192包括ItemStatus232方法調(diào)用,它返回指示的項的狀態(tài)。
HRESULT itemStatus([in]int ItemId,[in]int ItemStatus);ParametersItemId-Specify a specific item id#ItemStatus-giving status of itemAn itemData 234 method is a call for an identified data item.HRESULT itemData([in]int ItemId,[in]VARIANT*pvarData);ItemId-Specify a specific item idpvarData-different type of data 參照圖9,對于RDB 180的HCI總結(jié)接口Ioutpost 172包括以下方法。
Open 240HRESULT Open([in]int Scheme,[in]BSTR bstrUsername,[in]BSTRbstrPassword,[in]BSTR bstrOutpost,[in]BSTR bstrPort,[in]BSTR bstrHandler,[in]int iPollstate,[out]SCODE*pError)Close 242HRESULT Close([out]SCODE*pError)Return ValuepError-(S_OK-successful)Send 244HRESULT Send([in]VARIANT*pvarBuff,[in]int iSize,[in]int iRequestID,[in]int iSenderID,[out]SCODE*pError)ParameterspvarBuff-pointer to dataiSize-length of dataiRequestID-a unique request IDiSenderID-a unique sender IDReturn ValuepError-(S_OK-successful)<!-- SIPO <DP n="14"> --><dp n="d14"/>GetSessionID 246HRESULT GetSessionID([out]int*piID,[out]SCODE*pError)Return ValuepiID-return the session IDpError-(S_OK-successful)SetPollState 248HRESULT SetPollState([in]int iState,[out]SCODE*pError)ParametersiStateReturn ValuepError-(S_OK-successful)GetPollState 250HRESULT GetPollstate([out]int*piState,[out]SCODE*pError)Return ValuepiStatepError-(S_OK-successful) 返回圖10,以下方法是在CrdbSession對象174的IoupostSessionListener接口176中實現(xiàn)的。
SessionCreated 260HRESULT sessionCreated([in]int sessionID)ParameterssessionID-created session IDSessionCreateFail 262HRESULT sessionCreateFail([in]int errorCode)ParametersErrorCode-SessionClosed 264HRESULT sessionClosed([in]int sessionID)ParameterssessionID-ID of the closed sessionReceive 266HRESULT receive([in]int sessionID,[in]VARIANT*buffer,[in]int bufferSize,[in]int requestID,[in]int senderID)ParameterssessionID-session IDbuffer-pointer to databuffersize-length of datarequestID-request IDsenderID-sender ID<!-- SIPO <DP n="15"> --><dp n="d15"/>SendFail 268HRESULT sendFail([in]int sessionID,[in]int reason,[in]int requestID,[in]intsenderID)ParameterssessionID-ID of failed sessionreason-reason for failingrequestID-request IDsenderID-sender IDSendSucceed 270HRESULT sendSucceed([in]int sessionID,[in]int requestID,[in]int senderID)ParameterssessionID-ID of succeed sessionrequestID-request IDsenderID-sender IDSessionError 272HRESULT sessionError([in]int errorCode,[in]BSTR errorMessage) 已經(jīng)描述了DE 182與對應(yīng)的數(shù)據(jù)源之間的連接接口的生成,現(xiàn)在注意圖11,該圖描繪了客戶(入口服務(wù)器HCI 170)與工廠服務(wù)器178之間在所建立的http連接上調(diào)用和動作的順序。這種連接是為HCI170與web服務(wù)器178之間傳輸?shù)臄?shù)據(jù)生成的,并對在客戶瀏覽器顯示的每一窗口集維護。在階段300期間,HCI 170傳送服務(wù)器信息請求,該請求獲得服務(wù)器能夠處理的每一包的大小和協(xié)議的版本。服務(wù)器信息請求遵循以下描述的一般格式。
ServerInfoRequestTYPE_HEADER+SERVER_REQUESTTYPE_HEADER{DWORD Length;DWORD Type;(SERVER_REQ=1)DWORD RequestID;(0)DWORD SendderID;(0)DWORD ErrorCode;DWORD Reserved[4];}SERVER_REQUEST{char clientInfo[128];(“OutpostConnObject”)} 相應(yīng)地,在步驟302服務(wù)器178發(fā)出服務(wù)器信息相應(yīng)。服務(wù)器178的相應(yīng)遵循以下格式。
Server Info ReplyTYPE_HEADER+SERVER_RPLYTYPE_HEADER{DWORD Length;DWORD Type;(SERVER_REPLY=1)DWORD RequestID;(0)DWORD SendderID;(0)DWORD ErrorCode;DWORD Reserved[4];}SERVER_RPLY{DWORD MaxRequestSize;DWORD MaxReplySize;DWORD ProtocolVersion;} 然后,在步驟304客戶HCI 170向服務(wù)器178發(fā)出生成會話請求,該請求遵循以下格式。
CreateSessionRequestTYPE_HEADER+CREATE_SESSION_REQUESTTYPE_HEADER{DWORD Length;DWORD Type;(CREATE_SESSION=2)DWORD RequestID;(0)DWORD SendderID;(0)DWORD ErrorCode;DWORD Reserved[4];}CREATE_SESSION_REQUEST{char DstHandlerName[128];(“WWRdbHandler”)DWORD ProtocolVersion;(1)} 相應(yīng)地,在步驟306服務(wù)器178發(fā)出以下回復(fù)。
CreateSessionReplyTYPE_HEADER+CREATE_SESSION_REPLYTYPE_HEADER{DWORD Length;DWORD Type;(CREATE_SESSION_RPLY=3)DWORD RequestID;(0)DWORD SendderID;(0)DWORD ErrorCode;DWORD Reserved[4];}<!-- SIPO <DP n="17"> --><dp n="d17"/>CREATE_SESSION_REPLY{DWORD HandlerId;DWORD SessionId;} 在步驟308客戶HCI170向服務(wù)器178發(fā)出一般如下的連接請求。
WW_HEADER_INFO+WW_CONNECT_INFOWW_HEADER_INFO{DWORD type;(WW_CONNECT_INFO_TYPE=1)DWORD len;}WW_CONNECT_INFO{DWORD ConnType;DWORD ConnId;Char Node[128];//client actually sends 128 bytes to server regardless ofthe actual data sizeChar App[128];Char Topic[128];} 以下在步驟310期間,客戶HCI 170對服務(wù)器178注冊。注冊建立特定的數(shù)據(jù)項,客戶HCI 170希望為其接收更新值。
WW_HEADER_INFO+WW_REGISTER_INFOWW_HEADER_INFO{DWORD type;(WW_REGISTER_INFO_TYPE=3)DWORD len;}WW_REGISTER_INFO{DWORD ConnId;char Item[64];DWORD ItemId;}; 然后,在步驟312客戶HCI170向服務(wù)器178發(fā)出周期性請求以便對特定的注冊項進行更新。這種請求的一個例子如下。
WW_HEADER_INFO+WW_ADVISE_INFOWW_HEADER_INFO{DWORD type;(WW_ADVISE_INFO_TYPE=5)DWORD len;}WW_ADVISE_INFO{DWORD ConnId;DWORD ItemId;}WW_HEADER_INFO+WW_REQUEST_INFOWW_HEADER_INFO{DWORD type;(WW_REQUEST_INFO_TYPE=7)DWORD len;}WW_REQUEST_INFO{DWORD ConnId;DWORD ItemId;};WW_HEADER_INFO+WW_POKE_INFOWW_HEADER_INFO{DWORD type;(WW_POKE_INFO_TYPE=8)DWORD len;}WW_POKE_INFO{DWORD ConnId;DWORD ItemId;WORD PokeId;WORD PointType;PTVALUE PointValue;} 注意到以上的調(diào)用序列只是示例。業(yè)內(nèi)專業(yè)人員易于理解,有很多執(zhí)行建立和更新請求序列的方法。此外,本例表示的是拉動策略。然而,在另一種實施例中,服務(wù)器178向客戶HCI170推動改變的數(shù)據(jù)。
在實施本發(fā)明的基本系統(tǒng)中,用戶從一可擴展數(shù)據(jù)源集合選擇,但是限制為從當前的數(shù)據(jù)類型集選擇。然而在本發(fā)明一強化的實施例中,結(jié)合到工具包(提供開發(fā)模板)中的標準化數(shù)據(jù)輸入接口使第三方數(shù)據(jù)提供者能夠?qū)τ谛碌?專有的數(shù)據(jù)類型開發(fā)定制的數(shù)據(jù)處理機。這些定制的數(shù)據(jù)處理機向數(shù)據(jù)交換組件182標準化的數(shù)據(jù)。在本發(fā)明這種可擴展的實施例中,其中拓展了一種開放的體系結(jié)構(gòu)概念以包括添加的新的數(shù)據(jù)處理機,數(shù)據(jù)處理機存儲在入口服務(wù)器系統(tǒng)上,并在可由用戶選擇的可用處理機的列表內(nèi)注冊。這樣,入口服務(wù)器100的功能性在這種情形下是可擴展的,以便處理新的數(shù)據(jù)格式,這種數(shù)據(jù)格式并不包含在入口服務(wù)器100系統(tǒng)的初始發(fā)布內(nèi)。
現(xiàn)在轉(zhuǎn)到圖12,在本發(fā)明的一特定的示例性實施例中,以一種框架web服務(wù)處理機的形式提供了一種新的入口服務(wù)器框架,該框架透露了一組方法,允許客戶應(yīng)用程序410從數(shù)據(jù)提供者注冊表420獲得可用數(shù)據(jù)源和/或數(shù)據(jù)類型的一個列表,該注冊表存儲一組既對應(yīng)于外部/第三方數(shù)據(jù)提供者Web服務(wù)處理機425(從開發(fā)工具包生成)的項,又對應(yīng)于內(nèi)部開發(fā)的數(shù)據(jù)提供者Web處理機427的項。每一數(shù)據(jù)提供者web服務(wù)處理機(425和427)轉(zhuǎn)而連接到與該數(shù)據(jù)類型相關(guān)的數(shù)據(jù)源。當新的處理機或源借助于類似于圖4描繪的配置接口被添加時,新的項就被添加到對應(yīng)于新的數(shù)據(jù)提供者的數(shù)據(jù)提供者注冊表420。
要注意,可能存在實現(xiàn)相同的數(shù)據(jù)類型的多個web服務(wù)處理機。這樣,具體web服務(wù)處理機的選擇是通過由用戶按諸如圖4先前描繪且這里以上所討論的方式配置的數(shù)據(jù)源驅(qū)動的。然而,就本體系結(jié)構(gòu)所支持的潛在的大量數(shù)據(jù)處理機而言,可能希望避免太多的選項卡(如圖4所示)。一種數(shù)據(jù)源配置數(shù)據(jù)庫430提供了一組ASP頁面432,便于具體數(shù)據(jù)源/處理機的選擇。此后,客戶410通過框架web服務(wù)處理機連接到具體的數(shù)據(jù)提供者,并檢索由選擇的提供者所支持的一組方法。第三方作為web服務(wù)實現(xiàn)它們自己的數(shù)據(jù)提供者處理機,并對框架web服務(wù)處理機400注冊,以使客戶410能夠服務(wù)第三方數(shù)據(jù)提供者??蚣躻eb服務(wù)處理機400迫使每一數(shù)據(jù)提供者web服務(wù)處理機(例如425和427)所實現(xiàn)的一組公共接口,把特定類型的數(shù)據(jù)提供者插入到框架web服務(wù)處理機400。
所有客戶應(yīng)用程序410通過框架web服務(wù)處理機400,在一組標準的接口(方法)上與數(shù)據(jù)源/提供者(例如數(shù)據(jù)提供者435和437)通信,這些標準接口又通過標準的通信協(xié)議被傳送。著名的SOAP(簡單大小訪問協(xié)議)標準即為用于客戶410與框架web服務(wù)處理機400之間的標準通信協(xié)議一示例性選擇。SOAP還可以用于框架web服務(wù)處理機400到數(shù)據(jù)通過者Web訪問處理機的通信。有影響力的(leverage)SOAP技術(shù),可用的MICROSOFT COM組件原來解析SOAP消息。在服務(wù)器側(cè)ISAPI dll是在框架web服務(wù)處理機400上實現(xiàn)的,以便處理所有來自客戶410的SOAP請求,處理并向數(shù)據(jù)處理機web服務(wù)分派請求。在框架web服務(wù)處理機400內(nèi)實現(xiàn)的會話項和分派器類,以及客戶410的連接和命令類,進而在以下討論。
在以上參照圖12所討論的本發(fā)明的另一實施例中,數(shù)據(jù)源和它們相關(guān)的處理機是根據(jù)在圖13中感慨的XML方案在數(shù)據(jù)提供者注冊表420內(nèi)被標識的。一ID字段450為每一數(shù)據(jù)提供者/處理機存儲了唯一的號碼。這是當數(shù)據(jù)提供者/處理機記錄生成并存儲在數(shù)據(jù)提供者注冊表420內(nèi)時系統(tǒng)產(chǎn)生的號碼。名稱字段452保存數(shù)據(jù)提供者的名稱,并在由新的數(shù)據(jù)提供者記錄(例如SQL提供者,警告提供者)的提交配置期間指定。說明字段454保存數(shù)據(jù)提供者的說明,并也是由數(shù)據(jù)提供者記錄的生成者指定。WSDL字段456保存一個值,指定Web服務(wù)定義語言文件的位置,該文件描述用于與這一特定數(shù)據(jù)源相關(guān)的數(shù)據(jù)處理機的接口/方法。擴展的WSDL字段458保存對于在WSDL字段456被參照的WSDL的支持信息。連接串字段460保存特定的信息,以便于形成到數(shù)據(jù)提供者的連接,被標識的數(shù)據(jù)提供者通過該連接通過信息。連接串字段460例如保存初始的參數(shù),用戶名,口令等。
以上說明了對于數(shù)據(jù)提供者記錄的示例性字段,現(xiàn)在注意圖14和15,其中提供了示例性的GUI顯示,供數(shù)據(jù)提供者向框架web服務(wù)處理機400注冊。當數(shù)據(jù)提供者被實現(xiàn)(潛在地由第三方)時,則采取步驟以便通過框架web服務(wù)處理機400向客戶410透露數(shù)據(jù)通過者。這是通過數(shù)據(jù)通過者對框架web服務(wù)處理機400的注冊實現(xiàn)的。基本上,框架web服務(wù)處理機400提供一支持注冊的頁面,以便填充圖13中概括的方案的字段。舉例來說,“新的提供者”輸入數(shù)據(jù)提供者的名稱,標識提供者類型的說明,到提供者Web服務(wù)描述語言的URL,連接串等?,F(xiàn)轉(zhuǎn)向圖15,強化的系統(tǒng)注冊過程與以上參照圖3和4所述的過程之間一個主要差別,是在數(shù)據(jù)提供者注冊期間提供者指定一個新的數(shù)據(jù)類型處理機的能力。這是通過在圖15提出的開放的數(shù)據(jù)注冊GUI顯示器上選擇“My Provider”選項而實現(xiàn)的。一旦對框架web服務(wù)處理機400(入口服務(wù)器)注冊,當客戶激活檢索并顯示數(shù)據(jù)源的BrowserDS方法時,數(shù)據(jù)提供者的信息就提供給客戶410。
現(xiàn)轉(zhuǎn)向圖16和17,其中一組方法調(diào)用被結(jié)合到連接對象500和命令對象520。在本發(fā)明的實施例中,瀏覽器客戶410提供了從SOAP實現(xiàn)抽取應(yīng)用程序的COM包裝。該包裝透露簡單的接口,允許客戶應(yīng)用程序410與框架web服務(wù)處理機400及數(shù)據(jù)提供者通過數(shù)據(jù)提供者web服務(wù)處機通信。連接對象500和命令對象520就是這種包裝。以下參照由框架web服務(wù)處理機400支持的瀏覽器客戶接口,進一步討論對每一標識的方法調(diào)用。
現(xiàn)在轉(zhuǎn)向圖18,其中標識出一組由框架web服務(wù)處理機400支持的方法。BrowseDS方法550由請求當前被框架web服務(wù)處理機400支持的數(shù)據(jù)源的枚舉的客戶410調(diào)用。一個列表被返回,包含一組可用的提供者信息。這組提供者信息包括以上參照圖13描述的提供者記錄的內(nèi)容。ConnectDS方法552由客戶410調(diào)用并對文件(wwdbintf.wsdl)返回一URL,該文件描述數(shù)據(jù)提供者支持的命令對象520的所有方法。CloseDS方法554由客戶410調(diào)用以便關(guān)閉調(diào)用客戶與框架處理機400之間的連接。
現(xiàn)轉(zhuǎn)向圖19,一順序圖描繪了在客戶410與框架web服務(wù)處理機400之間在用戶會話期間所執(zhí)行的一組示例性步驟。在步驟600,客戶應(yīng)用程序發(fā)出“CoCreate”請求例示連接對象500。此后,在步驟602客戶應(yīng)用程序發(fā)出一初始化命令以便初始化連接對象500。具體來說,客戶對象生成并初始化MICROSOFT SOAP對象以處理SOAP請求。在步驟604,客戶向連接對象500發(fā)出GetDataProviderList命令。該連接對象在步驟605期間激活框架web服務(wù)處理機400的wwservicehandler接口上的broweDS方法550??蚣芴幚頇C400對在客戶應(yīng)用程序用戶接口上的顯示返回一可用的數(shù)據(jù)提供者列表。
在用戶已經(jīng)選擇了一個具體的可用數(shù)據(jù)提供者之后,在步驟606期間客戶應(yīng)用程序向連接對象500發(fā)出ConnectToDataSource命令。然后在步驟607期間連接對象500向wwservicehandler接口發(fā)出連接請求。該連接請求包括標識客戶應(yīng)用程序希望與其建立連接的數(shù)據(jù)源的參數(shù)。
在建立連接之后,客戶應(yīng)用程序在步驟608期間發(fā)出CoCreate命令以便例示命令對象520。此后,在步驟610客戶應(yīng)用程序向命令對象520發(fā)出cSelect調(diào)用以便從先前選擇的數(shù)據(jù)提供者(源)檢索一記錄激集。在該示例性實施例中,請求的接受者是SQL提供者。
在步驟612,命令對象520激活連接對象500上的get_DataSrcWSDL方法,以便獲得用于與選擇的數(shù)據(jù)源通信的語言定義。然后,在步驟614命令對象520激活在連接對象上的get_ConnectionID方法(其再調(diào)用ConnectDS),以便獲得連接ID,用來當形成對框架web服務(wù)處理機400調(diào)用時填充ID參數(shù)。然后在步驟615期間,命令對象520代表客戶應(yīng)用程序在建立的連接上向選擇性的數(shù)據(jù)提供者發(fā)出請求。
在完成會話之后,在步驟616客戶應(yīng)用程序向連接對象500發(fā)出CloseConnection命令。以上的步驟序列只是為提供由連接對象500和命令對象520支持的方法的示例性使用。業(yè)內(nèi)專業(yè)人員將易于領(lǐng)會,圖16,17,18和19中描繪的支持的方法和步驟序列只是示例性的,并預(yù)期在結(jié)合本發(fā)明的可擴展制造/過程控制入口服務(wù)器系統(tǒng)的其它實施例中,會有各種可替代的方式。
以上根據(jù)實施本發(fā)明的制造/過程控制入口服務(wù)器的一種替代的版本,說明了客戶應(yīng)用程序側(cè)連接的體系結(jié)構(gòu),現(xiàn)在把注意轉(zhuǎn)到入口服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)提供者接口。轉(zhuǎn)向圖20,一組接口使用由接口支持的相關(guān)的方法標識。本發(fā)明的實施例中框架web服務(wù)處理機400,是監(jiān)聽并處理來自客戶410所有請求的ISAPI動態(tài)連接庫。對由ccDataMarshaller類620監(jiān)聽的每一請求,由客戶處理機400實現(xiàn)的分派程序類622和sessionItem類624處理并然后向特定的數(shù)據(jù)提供者處理機分派請求。
圖20描繪了框架web服務(wù)處理機400內(nèi)這三個對象之間的一示例性關(guān)系??蚣躻eb服務(wù)處理機400包括一組處理來自客戶請求的工作者(worker)線程。CCDataMarshaller類620取得來自客戶的消息,并使用著名的MICROSOFT SOAP READER組件解析該消息并調(diào)用分派程序類622中適當?shù)姆椒?。每一到?shù)據(jù)源的連接將使SessionItem類624加工并處理對特定數(shù)據(jù)提供者的調(diào)用。SessionItem類624轉(zhuǎn)而調(diào)用到指定的數(shù)據(jù)提供者的一接口。
圖21標識出在實現(xiàn)本發(fā)明的數(shù)據(jù)提供者處理機內(nèi)所實現(xiàn)的一組方法。這一接口定義表示示例性的一組方法,它們是在數(shù)據(jù)提供者處理機上實現(xiàn)的,以便與框架web服務(wù)處理機400通信,并響應(yīng)由框架web服務(wù)處理機400向提供者處理機傳送的請求。只要能夠處理SQL語句,則數(shù)據(jù)提供者公開pSelect方法632。否則數(shù)據(jù)提供者處理機公開每次與單個表起作用的pOpenRowSet方法634。一般需要其余的方法實現(xiàn)任何類型的處理機。這里以下提供接口方法規(guī)范。
Pconnect630是該框架初始化的第一調(diào)用,以便建立與提供者的連接。
PConnect([in]BSTR UserID,[in]BSTR Password,[in]BSTR ConfigParmxml,[out,rtval]int*ConnID) 參數(shù) UserID-提供者需要用于驗證的用戶ID Password-需要用于驗證的口令 ConfigParmxml-連接串。提供者將提供一種機制以便從用戶獲得 ConnID-這一ID將用于與這一連接有關(guān)的所有后繼的調(diào)用 Pselect 632是由框架400調(diào)用以檢索記錄集的。如果支持SQL命令提供者只應(yīng)公開這一方法。
PSelect([in]int ConnID,[in] BSTR Statement,[in] intMaxRecord,[out,retval]BSTR*xmlRowSet) 參數(shù) ConnID-規(guī)定哪個連接執(zhí)行這一操作 Statement-SQL語句 MaxRecord-0框架只希望方案返回;-1希望獲得所有行>0希望一定數(shù)目的記錄 XmlRowSet-以xml格式返回的記錄集 pOpenRowSet 634由該框架調(diào)用以便檢索一記錄集。如果它支持對單個的表作用提供者公開這一方法。
pOpenRowSet([in]int ConnID,[in]BSTR,[in]int MaxRecord,[out,retval]BSTR*xmlRowSet) 參數(shù) ConnID-規(guī)定哪個連接 xmlCondition-條件規(guī)定如何以xml格式返回數(shù)據(jù) MaxRecord-0框架只希望方案返回;-1希望獲得所有行>0希望一定數(shù)目的記錄 XmlRowSet-以xml格式返回的記錄集 PClose 636關(guān)閉當前的行集 Pclose([in]int ConnID) pDelet 638刪除當前記錄集中的一記錄。
PDelet([in]int ConnID,[in]BSTR xmlCondition) 參數(shù) ConnID-規(guī)定哪個連接 xmlCondition-規(guī)定如何刪除當前記錄集中的一個記錄。數(shù)據(jù)按xml格式。
PInsert 640把一個記錄插入到當前開放的記錄集中。
pInsert([in]int ConnID,[in]BSTR xmlCodition) 參數(shù) ConnID-規(guī)定哪個連接 xmlCondition-規(guī)定如何按xml格式更新一個記錄。
PNextRecordSet 642檢索記錄的下一個集合。
pNextRecordSet([in] int ConnID,[in]int MaxRecord,[out,retval]BSTR*xmlRowSet) 參數(shù) ConnID-規(guī)定哪個連接 MaxRecord-框架將接受的最大數(shù)目記錄 xmlRowSet-以xml格式返回的記錄集 PUpdate 644更新當前開放的記錄集合中的一個記錄。
pUpdate([in]int ConnID,[in]BSTR xmlCondition) 參數(shù) ConnID-規(guī)定哪個連接 xmlCondition-規(guī)定如何按xml格式更新一個記錄。
PPreviousRecordSet 646檢索一先前的記錄集合。
pPreviousRecordSet([in]int ConnID,[in]int MaxRecord,[out,retval]BSTR*xmlRowSet) 參數(shù) ConnID-規(guī)定哪個連接 MaxRecord-框架將接受的最大數(shù)目記錄 XmlRowSet-以xml格式返回的記錄集 PFirstRecordSet 648檢索第一個記錄集合。
pFirstRecordSet([in]int ConnID,[in] int MaxRecord,[out,retval]BSTR*xmlRowSet) 參數(shù) ConnID-規(guī)定哪個連接 MaxRecord-框架將接受的最大數(shù)目記錄 XmlRowSet-以xml格式返回的記錄集 PLastRecordSet 650檢索最后的記錄集合。
pFLastRecordSet([in]int ConnID,[in] int MaxRecord,[out,retval] BSTR*xmlRowSet) 參數(shù) ConnID-規(guī)定哪個連接 MaxRecord-框架將接受的最大數(shù)目記錄 XmlRowSet-以xml格式返回的記錄集 PDisconnect 652釋放一個連接。
pDisconnect([in]int ConnID) 在以上示例性接口方法集合中,注意到預(yù)期pSelect,pNextRecordSet,pOpenRowSet,pFirstRecordSet,pLastRecordSet以及pPreviousRecordSet方法將以XML格式返回一行集合。以下表示用于返回XML行集合數(shù)據(jù)的一示例性XML方案。
<xml xmlnss=″ww-dataprovider-schema″  xmlnsdt=″ww-datatype-definition″  xmlnsrs=″urnschemas-wonderware-comrowset″  xmlnsz=″#RowsetSchema″>   <sSchema id=″RowsetSchema″>   <sElementType name=″row″content=″eltOnly″> ?。約AttributeType name=″AppID″rsnumber=″1″>   <sdatatype dttype=″int″dtmaxLength=″4″/><!-- SIPO <DP n="27"> --><dp n="d27"/>   </sAttributeType>   <sAttributeType name=″Title″rsnumber=″2″> ?。約datatype dttype=″string″dtmaxLength=″40″/>   </sAttributeType>   </sElementType> ?。?sSchema>  <rsdata>   <zrow AppID=″1″Title=″Charting″/>   <zrow AppID=″2″Title=″Reporting″/>   <zrow AppID=″3″Title=″Data Grid″/>   </rsdata> ?。?xml> 返回的XML有兩個部分。頂部是描述數(shù)據(jù)如何被返回的方案。每一屬性元素表示一列并描述列名和號碼。子元素描述數(shù)據(jù)類型和字段的最大長度。底部是按由方案定義的格式的實際數(shù)據(jù)。行元素的屬性規(guī)定行的名稱,行號碼,數(shù)據(jù)類型,及是字段的最大長度。方案只需在pSelect或pOpenRowSet調(diào)用中被返回。后繼的調(diào)用諸如pNextRecordSet只需返回數(shù)據(jù)。當沒有更多的數(shù)據(jù)返回時,提供者返回以下的xml消息。
<xml> <no-more-row/> </xml> 現(xiàn)轉(zhuǎn)向圖22,其中圖示出一示例性SQL提供者處理機類結(jié)構(gòu)。在本發(fā)明的一實施例中,SQL提供者處理機使用ADO訪問數(shù)據(jù)庫。SQL提供者支持pSelect3及大部分以上標識出的提供者接口方法。然而SQL提供者并不支持pOpenRowSet方法。SQL提供者處理機以一個ASP頁面作為其進入COM組件調(diào)用的服務(wù)處理機。圖22描繪了COM組件中類之間的關(guān)系。
本發(fā)明的示例性實施例及其一定的變形,已經(jīng)在附圖中及伴隨的書面說明中提供。但并不是要把本發(fā)明限于這些實施例。本發(fā)明是要在以下這里所附權(quán)利要求定義的這一公開和發(fā)明所允許的最充分的程度上,函蓋公開的各實施例以及其它屬于本發(fā)明的范圍和精神的實施例。
權(quán)利要求
1.一種客戶可配置的工廠過程觀察入口服務(wù)器,用于通過網(wǎng)絡(luò)連接根據(jù)用戶指定的信息源集合收集工廠過程信息,并用于向用戶分發(fā)信息,該入口服務(wù)器包括
可擴展信息源注冊表,用于至少存儲對應(yīng)于工廠信息源一可擴展集合的標識信息;
入口服務(wù)器數(shù)據(jù)接口,通過遠程聯(lián)網(wǎng)站可訪問,向用戶提供對與指定的工廠信息源集合相關(guān)的工廠信息的訪問;以及
入口配置實用程序,使用戶通過配置界面至少能夠指定新的工廠信息源,然后新的工廠信息源被添加到工廠信息源的可擴展集合。
2.權(quán)利要求1的入口服務(wù)器,其中入口配置實用程序還使用戶能夠指定來自信息源的數(shù)據(jù),在由入口服務(wù)器為特定入口站點提交的用戶界面上,被可視描繪的方式。
3.權(quán)利要求1的入口服務(wù)器,其中入口服務(wù)器包括至少一個與因特網(wǎng)入口站點的關(guān)聯(lián),用戶可從該站點訪問從工廠信息源接收的數(shù)據(jù)。
4.權(quán)利要求1的入口服務(wù)器,其中入口服務(wù)器包括至少一個與內(nèi)聯(lián)網(wǎng)入口站點的關(guān)聯(lián),用戶可從該站點訪問從工廠信息源接收的數(shù)據(jù)。
5.權(quán)利要求1的入口服務(wù)器,其中入口配置實用程序還使用戶能夠指定新的數(shù)據(jù)處理機,被添加到數(shù)據(jù)處理機的一可擴展集,這些處理機處理由工廠信息源可擴展集提供的特定類型的信息。
6.權(quán)利要求1的入口服務(wù)器,其中入口配置實用程序包含計算機程序指令,用于提交提示用戶提供與新的工廠信息源相關(guān)的信息的配置模板。
7.權(quán)利要求6的入口服務(wù)器,其中配置模板包括一Web頁面,且入口配置實用程序通過測覽器可訪問。
8.一種客戶可配置的工廠過程觀察入口服務(wù)器,用于通過網(wǎng)絡(luò)連接根據(jù)信息源的指定收集工廠過程信息,并用于向用戶分發(fā)信息,該入口服務(wù)器包括
數(shù)據(jù)處理機的一可擴展集合,用于處理來自工廠信息源集合的不同類型的數(shù)據(jù);
入口服務(wù)器數(shù)據(jù)接口,通過遠程聯(lián)網(wǎng)站可訪問,向用戶提供對與工廠信息源集合相關(guān)的工廠信息的訪問;以及
入口配置實用程序,使用戶通過配置界面能夠指定新的數(shù)據(jù)處理機,然后新的數(shù)據(jù)處理機被添加到數(shù)據(jù)處理機的可擴展集合。
9.一種客戶可配置的工廠過程觀察入口服務(wù)器,用于通過網(wǎng)絡(luò)連接根據(jù)用戶規(guī)定的信息源收集工廠過程信息,并用于向用戶分發(fā)信息,該入口服務(wù)器包括
可擴展信息源注冊表,用于至少存儲對應(yīng)于工廠信息源的一可擴展集合的標識信息;
用戶可配置的入口服務(wù)器數(shù)據(jù)接口,可通過遠程聯(lián)網(wǎng)站訪問,向用戶提供對以工廠信息源的可擴展集合表示的工廠信息的訪問;以及
入口數(shù)據(jù)接口配置實用程序,使用戶能夠通過一配置界面至少指定用于呈現(xiàn)工廠過程信息的一新的用戶界面顯示元素,然后該新的用戶界面顯示元素被添加到工廠信息源的可擴展集合。
10.便于配置客戶可配置的工廠過程觀察入口服務(wù)器的一種方法,以便根據(jù)用戶規(guī)定的信息源收集工廠過程信息,該方法包括以下步驟
生成可擴展信息源注冊表,用于至少存儲對應(yīng)于工廠信息源可擴展集合的標識信息;
產(chǎn)生入口服務(wù)器數(shù)據(jù)接口,通過遠程聯(lián)網(wǎng)站可訪問,向用戶提供對以工廠信息源可擴展集合表示的工廠信息的訪問;以及
提供入口配置實用程序,使用戶通過配置界面至少能夠指定一新的工廠信息源,然后新的工廠信息源被添加到工廠信息源的可擴展集合。
11.用于配置由入口服務(wù)器支持的工廠過程觀察入口站點的一種方法,以便擴展與該入口站點相關(guān)的信息源的一集合,該方法包括以下步驟
通過測覽器訪問與入口站點相關(guān)聯(lián)的一配置頁面;
首先通過一圖形用戶界面規(guī)定一新的工廠信息源;以及
其次通過該圖形用戶界面規(guī)定與該新的工廠信息源相關(guān)聯(lián)的信息,如何在與工廠過程觀察入口站點相關(guān)聯(lián)的可視顯示器上被可視提交。
全文摘要
公開了一種制造/過程控制系統(tǒng)信息訪問供應(yīng)者體系結(jié)構(gòu)。通過用戶可配置的制造/過程控制信息入口服務(wù)器實現(xiàn)了制造/過程控制系統(tǒng)實際供應(yīng)者的靈活性,該服務(wù)器包括多個可選擇的特定數(shù)據(jù)供應(yīng)者容納的數(shù)據(jù)供應(yīng)(信息源)和/或數(shù)據(jù)類型。用戶配置入口服務(wù)器,以便通過因特網(wǎng)或公司內(nèi)部網(wǎng)經(jīng)瀏覽器客戶向用戶遞送與被控制的過程環(huán)境,諸如食品加工廠工作面或油料精煉反應(yīng)器相關(guān)的制造/過程控制信息。此外,提供了一種能夠向入口服務(wù)器添加新的組件的可擴展的體系結(jié)構(gòu)。這種擴展包括新的數(shù)據(jù)源和數(shù)據(jù)類型/處理機。該新的體系結(jié)構(gòu)使用戶能夠選擇一些特定的可用的數(shù)據(jù)處理機,并然后選擇它們相關(guān)數(shù)據(jù)源,從而便于針對用戶的具體的需要/興趣定制入口服務(wù)器的配置。
文檔編號G06F15/16GK1596409SQ01818969
公開日2005年3月16日 申請日期2001年9月17日 優(yōu)先權(quán)日2000年9月15日
發(fā)明者保羅·W·福尼, 拉什斯·莫蒂, 戴夫·特蘭, 普拉蒙德·塔茲查伊爾, 維佳·艾南德, 基穆森·Q·努也 申請人:旺德維爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1