本發(fā)明涉及用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法、服務(wù)器節(jié)點(diǎn)、客戶節(jié)點(diǎn)、計(jì)算機(jī)程序以及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
自動(dòng)化系統(tǒng)是用于控制例如用于煉油、石油化工產(chǎn)品、化學(xué)制品、肥料、藥物、食物以及飲料制造、發(fā)電、水泥生產(chǎn)、煉鋼以及造紙的工業(yè)設(shè)施中的工業(yè)制造過(guò)程的專用系統(tǒng)。
自動(dòng)化系統(tǒng)可以連接到傳感器和致動(dòng)器,并且使用順序邏輯和設(shè)定點(diǎn)控制來(lái)控制材料穿過(guò)工廠的流動(dòng)和處理。常見(jiàn)示例是包括壓力傳感器、控制器以及控制閥的設(shè)定點(diǎn)控制回路。壓力或流量測(cè)量結(jié)果通常借助信號(hào)調(diào)節(jié)輸入/輸出(i/o)單元傳輸?shù)较到y(tǒng)。當(dāng)所測(cè)量變量達(dá)到特定點(diǎn)時(shí),系統(tǒng)指示閥或致動(dòng)設(shè)備打開(kāi)或關(guān)閉,直到流體流動(dòng)過(guò)程達(dá)到期望的設(shè)定點(diǎn)為止。
過(guò)程廠房可以具有數(shù)千i/o單元。過(guò)程不限于穿過(guò)管道的流體流動(dòng),而且包括其他方面,諸如造紙裝置及其關(guān)聯(lián)質(zhì)量控制、變速驅(qū)動(dòng)器、馬達(dá)控制中心、水泥窯、采礦工作、礦石處理設(shè)施、各種離散制造機(jī)以及許多其他方面。
除了用于控制過(guò)程的操作之外,自動(dòng)化系統(tǒng)通常還包括監(jiān)測(cè)和監(jiān)督操作,監(jiān)測(cè)和監(jiān)督操作包括用于生成取決于與受控和受監(jiān)督過(guò)程有關(guān)的各種條件的事件的操作。其他事件源包括軟件應(yīng)用,諸如用于條件監(jiān)測(cè)、優(yōu)化、計(jì)算等的應(yīng)用。事件可以存儲(chǔ)在用于隨后檢索的一個(gè)或更多個(gè)事件日志中,以便作為事件列表向用戶呈現(xiàn),并且用于各種其他操作,諸如事件起因分析等。事件還可以用于生成警報(bào)。
自動(dòng)化系統(tǒng)通常還包括用于收集并存儲(chǔ)歷史數(shù)據(jù)的操作。歷史數(shù)據(jù)是表示過(guò)程變量(諸如測(cè)量結(jié)果)隨著時(shí)間的發(fā)展的系列值。其他歷史數(shù)據(jù)源包括諸如用于條件監(jiān)測(cè)、優(yōu)化、計(jì)算等的應(yīng)用的軟件應(yīng)用。歷史數(shù)據(jù)被存儲(chǔ)用于隨后檢索,以便作為趨勢(shì)圖或以其他形式呈現(xiàn)給用戶,并且用于由其他應(yīng)用進(jìn)行的另外處理,諸如用于受控過(guò)程的分析和調(diào)諧。
總之,現(xiàn)代先進(jìn)過(guò)程自動(dòng)化系統(tǒng)相當(dāng)復(fù)雜。為了使得開(kāi)發(fā)和維護(hù)可管理且使用容易直觀,需要高效軟件基礎(chǔ)設(shè)施,該軟件基礎(chǔ)設(shè)施提供用于有效集成許多不同軟件應(yīng)用的部件,并且允許用戶在這些應(yīng)用之間順利且無(wú)縫操縱。
國(guó)際標(biāo)準(zhǔn)iec81346-1“industrialsystems,installationsandequipmentandindustrialproducts-structuringprinciplesandreferencedesignations”提供了用于通過(guò)指定用于結(jié)構(gòu)化包括關(guān)聯(lián)信息的對(duì)象的原理來(lái)建立工業(yè)廠房、機(jī)器、建筑物等的模型的基礎(chǔ)。在該標(biāo)準(zhǔn)中,術(shù)語(yǔ)“對(duì)象”意指在開(kāi)發(fā)、實(shí)現(xiàn)、使用以及處置過(guò)程中處理的實(shí)體,并且可以引用物理或非物理“實(shí)體”,(即,可能存在、現(xiàn)在存在或過(guò)去存在的任何事物)。根據(jù)iec81346-1的“對(duì)象”具有關(guān)聯(lián)到它的信息。
根據(jù)iec81346-1的大多數(shù)對(duì)象因?yàn)樗鼈冇行味哂形锢泶嬖?例如,馬達(dá)、泵、閥、建筑物等)。然而,存在不實(shí)在但為了不同目的而存在的對(duì)象,例如,僅借助于其子對(duì)象的存在而存在的對(duì)象(即,該對(duì)象為了結(jié)構(gòu)化目的而存在)(諸如系統(tǒng));或?qū)τ谝唤M信息的識(shí)別而存在的對(duì)象。
iec81346-1不區(qū)分具有物理存在的對(duì)象與不具有物理存在的對(duì)象。兩種對(duì)象被相關(guān)為在系統(tǒng)的壽命周期中識(shí)別并處理。
當(dāng)描述對(duì)象內(nèi)部及其與其他對(duì)象的相互關(guān)系時(shí),從不同視角看對(duì)象是有用的。在iec81346-1中,對(duì)象的這些不同視角被稱為“屬性”(aspect)。iec81346-1中論及的屬性集中于:對(duì)象打算做什么或它實(shí)際上做什么—操作屬性;對(duì)象借助于哪種手段來(lái)做它打算做的事情-產(chǎn)品屬性;以及對(duì)象的預(yù)期或?qū)嶋H空間-位置屬性。
用于過(guò)程控制統(tǒng)一架構(gòu)的對(duì)象鏈接和嵌入(objectlinkingandembeddingforprocesscontrolunifiedarchitecture,opcua)是來(lái)自提供用于過(guò)程控制的跨平臺(tái)面向服務(wù)架構(gòu)的opc基金會(huì)的規(guī)范。與其前身(俗稱為經(jīng)典opc)相反,opcua是平臺(tái)獨(dú)立的。
然而,opcua未公開(kāi)以高效方式實(shí)現(xiàn)所述過(guò)程控制的客戶和服務(wù)器的內(nèi)部結(jié)構(gòu)。
技術(shù)實(shí)現(xiàn)要素:
一個(gè)目的是提供一種支持用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的客戶節(jié)點(diǎn)與服務(wù)器節(jié)點(diǎn)之間的通信的高效結(jié)構(gòu)。
根據(jù)第一實(shí)施例,提出了一種用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法。方法在服務(wù)器節(jié)點(diǎn)中執(zhí)行,并且包括以下步驟:在連接服務(wù)器模塊中接收包括用戶身份的連接建立請(qǐng)求;在連接服務(wù)器模塊中認(rèn)證用戶身份;僅在認(rèn)證成功時(shí),在連接服務(wù)器模塊中建立連接,并且使連接與用戶身份關(guān)聯(lián);在連接服務(wù)器模塊中,在所建立的連接上接收服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用,其中,屬性對(duì)象是表示現(xiàn)實(shí)世界對(duì)象中的一個(gè)的軟件對(duì)象,并且屬性定義與現(xiàn)實(shí)世界對(duì)象關(guān)聯(lián)的操作;在連接服務(wù)器模塊中向服務(wù)調(diào)度器模塊轉(zhuǎn)發(fā)服務(wù)請(qǐng)求和用戶身份;在服務(wù)調(diào)度器模塊中根據(jù)對(duì)屬性的引用確定目標(biāo)服務(wù)提供者;以及在服務(wù)調(diào)度器模塊中向目標(biāo)服務(wù)提供者發(fā)送服務(wù)請(qǐng)求和用戶身份。
根據(jù)第二實(shí)施例,提出了一種用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的服務(wù)器節(jié)點(diǎn)。服務(wù)器節(jié)點(diǎn)包括:處理器;和存儲(chǔ)器,該存儲(chǔ)器存儲(chǔ)連接服務(wù)器模塊和服務(wù)調(diào)度器模塊。連接服務(wù)器模塊存儲(chǔ)指令,該指令在由處理器執(zhí)行時(shí),使得服務(wù)器節(jié)點(diǎn):接收包括用戶身份的連接建立請(qǐng)求;認(rèn)證用戶身份;僅在認(rèn)證成功時(shí),建立連接,并且使連接與用戶身份關(guān)聯(lián);在所建立的連接上接收服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用,其中,屬性對(duì)象是表示現(xiàn)實(shí)世界對(duì)象中的一個(gè)的軟件對(duì)象,并且屬性定義與現(xiàn)實(shí)世界對(duì)象關(guān)聯(lián)的操作;并且向服務(wù)調(diào)度器模塊轉(zhuǎn)發(fā)服務(wù)請(qǐng)求和用戶身份。服務(wù)調(diào)度器模塊存儲(chǔ)指令,該指令在由處理器執(zhí)行時(shí),使得服務(wù)器節(jié)點(diǎn):根據(jù)對(duì)屬性的引用確定目標(biāo)服務(wù)提供者;并且向目標(biāo)服務(wù)提供者發(fā)送服務(wù)請(qǐng)求和用戶身份。
根據(jù)第三實(shí)施例,提出了一種用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的計(jì)算機(jī)程序。計(jì)算機(jī)程序包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼在運(yùn)行在服務(wù)器節(jié)點(diǎn)上時(shí),使得服務(wù)器節(jié)點(diǎn):在連接服務(wù)器模塊中接收包括用戶身份的連接建立請(qǐng)求;在連接服務(wù)器模塊中認(rèn)證用戶身份;僅在認(rèn)證成功時(shí),在連接服務(wù)器模塊中建立連接,并且使連接與用戶身份關(guān)聯(lián);在連接服務(wù)器模塊中,在所建立的連接上接收服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用,其中,屬性對(duì)象是表示現(xiàn)實(shí)世界對(duì)象中的一個(gè)的軟件對(duì)象,并且屬性定義與現(xiàn)實(shí)世界對(duì)象關(guān)聯(lián)的操作;在連接服務(wù)器模塊中向服務(wù)調(diào)度器模塊轉(zhuǎn)發(fā)服務(wù)請(qǐng)求和用戶身份;在服務(wù)調(diào)度器模塊中根據(jù)對(duì)屬性的引用確定目標(biāo)服務(wù)提供者;并且在服務(wù)調(diào)度器模塊中向目標(biāo)服務(wù)提供者發(fā)送服務(wù)請(qǐng)求和用戶身份。
根據(jù)第四實(shí)施例,提出了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括根據(jù)第三實(shí)施例的計(jì)算機(jī)程序和上面存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀部件。
根據(jù)第五實(shí)施例,提出了一種用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法。方法在客戶節(jié)點(diǎn)中執(zhí)行,并且包括以下步驟:在服務(wù)調(diào)度器模塊中接收來(lái)自客戶節(jié)點(diǎn)的應(yīng)用模塊的服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用,其中,屬性對(duì)象是表示現(xiàn)實(shí)世界對(duì)象中的一個(gè)的軟件對(duì)象,并且屬性定義與現(xiàn)實(shí)世界對(duì)象關(guān)聯(lián)的操作;基于對(duì)屬性對(duì)象的引用和對(duì)屬性的引用在服務(wù)調(diào)度器模塊中確定服務(wù)器節(jié)點(diǎn)的位置;在服務(wù)調(diào)度器模塊中向連接管理器模塊轉(zhuǎn)發(fā)服務(wù)請(qǐng)求、對(duì)服務(wù)器節(jié)點(diǎn)的位置的引用以及用戶身份;在連接管理器模塊中檢查是否與服務(wù)器節(jié)點(diǎn)建立連接;當(dāng)未與服務(wù)器節(jié)點(diǎn)建立連接時(shí),在連接管理器模塊中發(fā)送包括用戶身份的連接建立請(qǐng)求;以及當(dāng)建立與服務(wù)器節(jié)點(diǎn)的連接時(shí),在連接管理器模塊中向服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)請(qǐng)求。
根據(jù)第六實(shí)施例,提出了一種用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的客戶節(jié)點(diǎn)??蛻艄?jié)點(diǎn)包括:處理器;和存儲(chǔ)器,該存儲(chǔ)器存儲(chǔ)服務(wù)調(diào)度器模塊和連接管理器模塊。服務(wù)調(diào)度器模塊存儲(chǔ)指令,該指令在由處理器執(zhí)行時(shí),使得客戶節(jié)點(diǎn):接收來(lái)自客戶節(jié)點(diǎn)的應(yīng)用模塊的服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用,其中,屬性對(duì)象是表示現(xiàn)實(shí)世界對(duì)象中的一個(gè)的軟件對(duì)象,并且屬性定義與現(xiàn)實(shí)世界對(duì)象關(guān)聯(lián)的操作;基于對(duì)屬性對(duì)象的引用和對(duì)屬性的引用確定服務(wù)器節(jié)點(diǎn)的位置;并且向連接管理器模塊轉(zhuǎn)發(fā)服務(wù)請(qǐng)求、對(duì)服務(wù)器節(jié)點(diǎn)的位置的引用以及用戶身份。連接管理器模塊存儲(chǔ)指令,該指令在由處理器執(zhí)行時(shí),使得客戶節(jié)點(diǎn):檢查是否與服務(wù)器節(jié)點(diǎn)建立連接;當(dāng)未與服務(wù)器節(jié)點(diǎn)建立連接時(shí),發(fā)送包括用戶身份的連接建立請(qǐng)求;并且當(dāng)建立與服務(wù)器節(jié)點(diǎn)的連接時(shí),向服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)請(qǐng)求。
根據(jù)第七實(shí)施例,提出了一種用于控制工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的計(jì)算機(jī)程序。計(jì)算機(jī)程序包括計(jì)算機(jī)程序代碼,該計(jì)算機(jī)程序代碼在運(yùn)行在客戶節(jié)點(diǎn)上時(shí),使得客戶節(jié)點(diǎn):在服務(wù)調(diào)度器模塊中接收來(lái)自客戶節(jié)點(diǎn)的應(yīng)用模塊的服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用,其中,屬性對(duì)象是表示現(xiàn)實(shí)世界對(duì)象中的一個(gè)的軟件對(duì)象,并且屬性定義與現(xiàn)實(shí)世界對(duì)象關(guān)聯(lián)的操作;基于對(duì)屬性對(duì)象的引用和對(duì)屬性的引用在服務(wù)調(diào)度器模塊中確定服務(wù)器節(jié)點(diǎn)的位置;在服務(wù)調(diào)度器模塊中向連接管理器模塊轉(zhuǎn)發(fā)服務(wù)請(qǐng)求、對(duì)服務(wù)器節(jié)點(diǎn)的位置的引用以及用戶身份;在連接管理器模塊中檢查是否與服務(wù)器節(jié)點(diǎn)建立連接;當(dāng)未與服務(wù)器節(jié)點(diǎn)建立連接時(shí),在連接管理器模塊中發(fā)送包括用戶身份的連接建立請(qǐng)求;并且當(dāng)建立與服務(wù)器節(jié)點(diǎn)的連接時(shí),在連接管理器模塊中向服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)請(qǐng)求。
根據(jù)第八實(shí)施例,提出了一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括根據(jù)第七實(shí)施例的計(jì)算機(jī)程序和上面存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀部件。
通常,用于權(quán)利要求中的所有術(shù)語(yǔ)根據(jù)它們?cè)诩夹g(shù)領(lǐng)域中的普通含義來(lái)解釋,除非在這里另外明確定義。對(duì)“一個(gè)元件、裝置、組件、部件、步驟等”的所有引用要被開(kāi)放地解釋為引用元件、裝置、組件、部件、步驟等的至少一個(gè)實(shí)例,除非另外明確敘述。這里所公開(kāi)的任意方法的步驟不是必須以所公開(kāi)的確切順序來(lái)執(zhí)行,除非明確敘述。
附圖說(shuō)明
現(xiàn)在參照附圖用示例的方式來(lái)描述本發(fā)明,附圖中:
圖1是圖示了可以應(yīng)用這里所提出實(shí)施例的環(huán)境的示意圖;
圖2是圖示了用于opcua的通信結(jié)構(gòu)的示意圖;
圖3是圖示了表示現(xiàn)實(shí)世界對(duì)象的屬性對(duì)象的使用的示意圖;
圖4是圖示了圖1的系統(tǒng)的客戶-服務(wù)器視角的示意圖;
圖5是圖示了圖3的一些屬性如何映射到服務(wù)提供者的示意圖;
圖6是更詳細(xì)地圖示了圖1的客戶節(jié)點(diǎn)與服務(wù)器節(jié)點(diǎn)的模塊的示意圖;
圖7是客戶和服務(wù)器節(jié)點(diǎn)組合圖6的客戶節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)這兩者的功能的示意圖;
圖8是圖示了具有多處理實(shí)施方案的實(shí)施例中的、類似于圖7的客戶和服務(wù)器節(jié)點(diǎn)的客戶和服務(wù)器節(jié)點(diǎn)的示意圖;
圖9是圖示了用于控制諸如圖1所示的工業(yè)設(shè)施的工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法的流程圖;
圖10是圖示了用于控制諸如圖1所示的工業(yè)設(shè)施的工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法的流程圖;
圖11是顯示了圖1的服務(wù)器節(jié)點(diǎn)10的實(shí)施例的一些組件的示意圖;
圖12是顯示了圖1的客戶節(jié)點(diǎn)10的實(shí)施例的一些組件的示意圖;以及
圖13顯示了包括計(jì)算機(jī)可讀部件的計(jì)算機(jī)程序產(chǎn)品的一個(gè)示例。
具體實(shí)施方式
現(xiàn)在將在下文中參照顯示了本發(fā)明的特定實(shí)施例的附圖更完全地描述本發(fā)明。然而,本發(fā)明可以以許多不同的形式來(lái)具體實(shí)施,并且不應(yīng)被解釋為限于這里闡述的實(shí)施例;相反,這些實(shí)施例用示例的方式來(lái)提供,使得本公開(kāi)將全面且完整,并且將向本領(lǐng)域技術(shù)人員完全傳達(dá)本發(fā)明的范圍。同樣的附圖標(biāo)記貫穿說(shuō)明書(shū)引用同樣的元件。
圖1是圖示了可以應(yīng)用這里所提出實(shí)施例的環(huán)境的示意圖。
自動(dòng)化系統(tǒng)可能復(fù)雜,并且包括若干不同類型的計(jì)算機(jī)和其他設(shè)備。這種系統(tǒng)包括控制器4a-b、服務(wù)器10、10’以及連接到系統(tǒng)網(wǎng)絡(luò)14以便控制工業(yè)設(shè)施3的工作站12a-b。服務(wù)器是包括軟件的計(jì)算機(jī),該軟件提供各種形式的系統(tǒng)功能,諸如歷史日志、警報(bào)和事件處理、計(jì)算、過(guò)程優(yōu)化等。工作站是作為例如固定計(jì)算機(jī)、膝上型計(jì)算機(jī)甚至平板計(jì)算機(jī)或智能電話的客戶節(jié)點(diǎn),該客戶節(jié)點(diǎn)包括提供各種形式的用戶交互(諸如過(guò)程圖形、面板、警報(bào)和事件列表、趨勢(shì)曲線等)的軟件??刂破魇前ㄜ浖挠?jì)算機(jī),該軟件執(zhí)行實(shí)際控制操作,諸如比例、積分以及微分(pid)控制、邏輯和順序控制、各種計(jì)算以及在許多情況下還諸如高級(jí)過(guò)程控制(諸如基于模型的預(yù)測(cè)控制、模糊控制等)。經(jīng)由io單元5a-c或現(xiàn)場(chǎng)通信接口,諸如傳感器和致動(dòng)器的現(xiàn)實(shí)世界對(duì)象2a-f被連接為測(cè)量并影響各種形式的過(guò)程變量,諸如溫度、流量、壓力、水平、位置等。系統(tǒng)網(wǎng)絡(luò)14例如可以為諸如以太網(wǎng)的局域網(wǎng)。
圖1的結(jié)構(gòu)僅是示例,當(dāng)然變體是可以的。例如,服務(wù)器和客戶功能可以駐留在同一計(jì)算機(jī)中,和/或服務(wù)器和控制功能或任意其他組合。
自動(dòng)化系統(tǒng)通常憑借用于控制并監(jiān)測(cè)過(guò)程的一組通用可配置軟件操作來(lái)遞送。這使得可以將自動(dòng)化系統(tǒng)配置為在不需要下層編程的情況下控制具體過(guò)程。對(duì)于具體應(yīng)用配置自動(dòng)化系統(tǒng)軟件(即,以控制具體過(guò)程)的能力俗稱為工程(engineering),并且通常與工程服務(wù)器10’合作的在工程工作站1a-b上執(zhí)行。工程還包括定義包括io單元5a-c、控制器4a-b、服務(wù)器10、10’以及客戶節(jié)點(diǎn)12a-b的自動(dòng)化系統(tǒng)本身、以及這些部件如何通過(guò)系統(tǒng)網(wǎng)絡(luò)14或以其他方式連接到彼此。工程借助于用于創(chuàng)建并修改用于自動(dòng)化系統(tǒng)的配置數(shù)據(jù)的各種工程工具來(lái)進(jìn)行。配置數(shù)據(jù)的示例包括控制程序、用于操作員交互的圖形、用于歷史日志且用于收集并處理歷史數(shù)據(jù)的參數(shù)、用于輸入-輸出(io)模塊的設(shè)置等。一旦定義,則系統(tǒng)的配置如由工程服務(wù)器10’與運(yùn)行時(shí)間服務(wù)器10之間的箭頭指示的從工程服務(wù)器10’部署到運(yùn)行時(shí)間服務(wù)器10。
圖2是圖示了用于opcua的通信結(jié)構(gòu)的示意圖。
opcua指定以下內(nèi)容:表示信息交換的結(jié)構(gòu)、行為以及語(yǔ)義的信息模型;用于應(yīng)用之間的交互的消息模型;用于客戶、服務(wù)器以及用戶的認(rèn)證且用于它們的通信的完整性和機(jī)密性的安全模型;在端點(diǎn)之間傳遞數(shù)據(jù)的通信模型;以及保證系統(tǒng)之間的互操作性的一致性模型。
在最低層處,存在例如將例如以太網(wǎng)或ieee802.11標(biāo)準(zhǔn)中的任意一個(gè)用作載體通過(guò)ip(因特網(wǎng)協(xié)議)使用tcp(傳輸控制協(xié)議)來(lái)實(shí)現(xiàn)的傳輸層13。
opcua通信模型定義傳輸層13上方的兩層。第一層為由客戶節(jié)點(diǎn)12中的客戶通信層7實(shí)現(xiàn)的通信層和服務(wù)器節(jié)點(diǎn)10中實(shí)現(xiàn)的服務(wù)器通信層9。通信層提供滿足機(jī)密性和完整性要求的安全機(jī)制。這通過(guò)提供客戶節(jié)點(diǎn)12與服務(wù)器節(jié)點(diǎn)10之間的安全通道來(lái)完成。對(duì)在該安全通道上發(fā)送的消息加密并在該消息上簽名。
第二層是由客戶12中的應(yīng)用層6和服務(wù)器中的應(yīng)用層8實(shí)現(xiàn)的應(yīng)用層。應(yīng)用層提供服務(wù)請(qǐng)求和響應(yīng)的用戶認(rèn)證和通信。通過(guò)建立并激活識(shí)別客戶節(jié)點(diǎn)12的用戶的應(yīng)用會(huì)話來(lái)進(jìn)行這一點(diǎn)。在該應(yīng)用會(huì)話的情景中進(jìn)行由同一用戶進(jìn)行的所有隨后服務(wù)請(qǐng)求。服務(wù)在這里要被解釋為由服務(wù)器提供的操作或定義的功能,該操作或功能可以從另一個(gè)實(shí)體、客戶調(diào)用??蛻羰桥c服務(wù)器分離的模塊,并且可以位于遠(yuǎn)離收容服務(wù)器的不同的設(shè)備中,或在收容服務(wù)器的同一設(shè)備內(nèi)。
圖3是圖示了表示現(xiàn)實(shí)世界對(duì)象2的屬性對(duì)象15的使用的示意圖。由自動(dòng)化系統(tǒng)控制并管理的現(xiàn)實(shí)世界對(duì)象2為許多不同種類。它們可以為物理過(guò)程對(duì)象(像傳感器、閥或馬達(dá))或更復(fù)雜的實(shí)體(像生產(chǎn)單元或反應(yīng)器)。它們還可以為無(wú)形的,像控制回路或方案。它們可以為自動(dòng)化系統(tǒng)中的單元或操作,像i/o單元、服務(wù)器或操作員的工作場(chǎng)所等。這些現(xiàn)實(shí)世界對(duì)象2在自動(dòng)化系統(tǒng)中被表示為屬性對(duì)象15。
各現(xiàn)實(shí)世界對(duì)象2的“內(nèi)部”從若干不同視角來(lái)描述,各視角論及與對(duì)象有關(guān)的特定信息、行為以及功能。在自動(dòng)化系統(tǒng)中,這些不同視角被建模為屬性對(duì)象15的不同屬性16a-f。
一個(gè)示例是表示控制閥的屬性對(duì)象。閥的一個(gè)屬性16a可以為其關(guān)聯(lián)的控制操作。另一個(gè)屬性16b可以為用于操作員互動(dòng)的面板。第三屬性16c可以為控制物理閥的信號(hào)的歷史日志。第四屬性16d可以為含有與閥關(guān)聯(lián)的警報(bào)的警報(bào)列表。第五屬性16e可以為定義表示閥連接到的輸入和輸出的信號(hào)的信號(hào)屬性。第六屬性16e在被表示在計(jì)算機(jī)屏幕上時(shí)可以為現(xiàn)實(shí)世界對(duì)象的圖形。不同的屬性對(duì)象可以具有不同的關(guān)聯(lián)屬性。
不同屬性與其他屬性分離且獨(dú)立地建模,并且可以由不同的系統(tǒng)組件來(lái)實(shí)現(xiàn)。屬性對(duì)象15充當(dāng)包括這些獨(dú)立模型的容器-屬性對(duì)象15自身含有非常少的信息和功能。
由此,屬性定義與某種現(xiàn)實(shí)世界對(duì)象的特定視角有關(guān)的信息和功能。屬性還可以定義操作,由該操作,可以調(diào)用對(duì)象功能的部分。屬性可以定義的操作的示例包括讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)、應(yīng)答警報(bào)、提交事件等。表1中顯示了更多的示例。
表1:屬性對(duì)象的屬性的操作示例
屬性對(duì)象的概念在提供直觀且容易使用的高級(jí)復(fù)雜功能時(shí)允許許多不同應(yīng)用協(xié)作。以下示例場(chǎng)景圖示了這一點(diǎn):
操作員通過(guò)觀看過(guò)程圖形頁(yè)來(lái)監(jiān)督過(guò)程。在該示例中是閥的、受系統(tǒng)控制的現(xiàn)實(shí)世界對(duì)象2進(jìn)入警報(bào)狀態(tài)。閥在系統(tǒng)中被表示為復(fù)合對(duì)象。
該對(duì)象的屬性中的一個(gè)為提供被呈現(xiàn)在圖形頁(yè)上的圖形符號(hào)的圖形屬性16f。通過(guò)右擊該符號(hào),操作員可以選擇與對(duì)象的不同屬性關(guān)聯(lián)的操作。操作員選擇面板。這使得圖形包(在這種情況下為在客戶中)調(diào)用由面板屬性16b(在這種情況下提供操作的應(yīng)用)為操作員點(diǎn)擊的復(fù)合對(duì)象提供的操作“顯示”。
現(xiàn)在在屏幕上顯示用于閥的面板。面板為對(duì)象提供比通常被包括在過(guò)程圖形頁(yè)中的信息和交互可能性更詳細(xì)的信息和更多的交互可能性。
操作員右擊面板,并且選擇與對(duì)象關(guān)聯(lián)的趨勢(shì)曲線屬性。這使得面板框架調(diào)用由趨勢(shì)包提供的操作“顯示”。趨勢(shì)包在屏幕上呈現(xiàn)相關(guān)趨勢(shì)曲線,這允許操作員進(jìn)一步分析問(wèn)題。
操作員推斷閥出故障。操作員通過(guò)點(diǎn)擊閥面板的按鈕來(lái)將閥的控制模式改為“手動(dòng)”。這使得面板框架用參數(shù)“模式”和閥“手動(dòng)”調(diào)用由控制連接應(yīng)用提供的操作“寫(xiě)入數(shù)據(jù)”。
控制連接應(yīng)用向控制閥的過(guò)程控制器發(fā)送將控制模式改為“手動(dòng)”的消息。
操作員現(xiàn)在可以通過(guò)點(diǎn)擊面板上的“增大”和“減小”按鈕來(lái)手動(dòng)定位閥。這使得面板框架調(diào)用由控制連接應(yīng)用提供的操作“寫(xiě)入數(shù)據(jù)”,這時(shí)尋址當(dāng)前對(duì)象的參數(shù)“位置”。
在滿足時(shí),操作員這時(shí)例如在圖形頁(yè)上再次右擊對(duì)象,并且選擇警報(bào)應(yīng)答。這使得圖形包對(duì)于當(dāng)前對(duì)象調(diào)用由警報(bào)管理應(yīng)用提供的“應(yīng)答警報(bào)”操作。
最后,操作員右擊對(duì)象,并且選擇操作“維護(hù)”。這使得圖形包調(diào)用由資產(chǎn)管理應(yīng)用提供的操作“創(chuàng)建維護(hù)順序”。
資產(chǎn)管理應(yīng)用現(xiàn)在提出操作員可以添加描述問(wèn)題性質(zhì)的評(píng)論的對(duì)話。資產(chǎn)管理應(yīng)用然后通過(guò)向外部工作順序管理系統(tǒng)發(fā)送消息來(lái)創(chuàng)建當(dāng)前對(duì)象的維護(hù)順序。
操作員可以再次右擊對(duì)象并選擇操作指令,這使得面板框架調(diào)用諸如微軟word(microsoftword)或adobe閱讀器(adobereader)的文獻(xiàn)查看器的“顯示”操作。
每次這些應(yīng)用中的任意一個(gè)調(diào)用任意其他應(yīng)用的操作時(shí),這借助屬性對(duì)象的屬性來(lái)進(jìn)行,并且各調(diào)用處于該對(duì)象的情景中。一個(gè)應(yīng)用不知道任何其他應(yīng)用的身份或位置,僅知道由屬性對(duì)象的屬性定義的操作。下面更詳細(xì)地描述如何實(shí)現(xiàn)這一點(diǎn)。
通過(guò)集成屬性對(duì)象概念與用于在應(yīng)用之間相互作用的面向服務(wù)機(jī)制,不同的應(yīng)用一起執(zhí)行與所有屬性對(duì)象的所有屬性關(guān)聯(lián)的許多不同操作,由此執(zhí)行用于現(xiàn)實(shí)世界對(duì)象的控制和監(jiān)督的系統(tǒng)的集體操作。
配置數(shù)據(jù)還可以根據(jù)屬性對(duì)象的原理來(lái)組織。在我們的圖示示例中,屬性對(duì)象15表示控制閥,現(xiàn)在將對(duì)于該控制閥描述屬性情景中的配置。閥的一個(gè)屬性16a是其關(guān)聯(lián)的控制操作。由該屬性組織的配置數(shù)據(jù)包括執(zhí)行該控制操作的控制程序和一些設(shè)置。閥的另一個(gè)屬性16b是用于操作員互動(dòng)的面板。由該屬性組織的配置數(shù)據(jù)包括面板圖形的描述、以及面板的動(dòng)態(tài)場(chǎng)和控制操作與由控制操作顯露的對(duì)應(yīng)變量之間的關(guān)聯(lián)。第三屬性16c是控制物理閥的輸出信號(hào)的歷史日志。由該屬性保持的配置數(shù)據(jù)包括用于數(shù)據(jù)處理的采樣間隔和設(shè)置。第四屬性16d是含有與閥關(guān)聯(lián)的警報(bào)的警報(bào)列表。由該屬性保持的配置數(shù)據(jù)包括定義警報(bào)列表的外觀和行為的參數(shù)。第五屬性16e是定義表示閥連接到的輸入和輸出的信號(hào)的信號(hào)屬性等。
其他屬性對(duì)象可以表示自動(dòng)化系統(tǒng)本身的部分,諸如服務(wù)器和工作站、控制器和i/o單元。這種對(duì)象上的屬性組織配置數(shù)據(jù),諸如網(wǎng)絡(luò)地址和各種其他設(shè)置。
配置數(shù)據(jù)還包括關(guān)于屬性對(duì)象彼此如何相關(guān)的信息,諸如功能或位置關(guān)系。進(jìn)一步地,配置數(shù)據(jù)包括關(guān)于用戶授權(quán)(即,關(guān)于各屬性對(duì)象或?qū)傩詫?duì)象組,哪些許可被授予用戶或用戶組)和關(guān)于用于由各屬性類型定義的操作的所需許可的信息。注意,該情景中的用戶可以包括軟件過(guò)程(程序)以及人類用戶。
工程段中進(jìn)行的、對(duì)配置數(shù)據(jù)的更改可以直接應(yīng)用于運(yùn)行時(shí)間段。另選地,配置數(shù)據(jù)在更改已經(jīng)完成并滿意地驗(yàn)證之后在不同的步驟中從工程段部署到運(yùn)行時(shí)間部分的組件。
圖4是圖示了圖1的系統(tǒng)的客戶-服務(wù)器視角的示意圖??蛻艄?jié)點(diǎn)12使用系統(tǒng)服務(wù)協(xié)議25與服務(wù)器節(jié)點(diǎn)10通信。這樣,為了使應(yīng)用模塊31訪問(wèn)服務(wù)提供者26,應(yīng)用模塊31經(jīng)由客戶端系統(tǒng)服務(wù)基礎(chǔ)設(shè)施33、系統(tǒng)服務(wù)協(xié)議25以及服務(wù)器系統(tǒng)服務(wù)基礎(chǔ)設(shè)施21連接到討論中的服務(wù)提供者26。
應(yīng)用模塊31是使用系統(tǒng)服務(wù)來(lái)調(diào)用一個(gè)或更多個(gè)服務(wù)提供者26的操作以實(shí)現(xiàn)各種系統(tǒng)功能的軟件模塊。示例包括hmi(人機(jī)接口)呈現(xiàn)組件和工程配置工具。
軟件模塊可以充當(dāng)客戶和服務(wù)提供者這兩者。示例包括過(guò)程優(yōu)化應(yīng)用和資產(chǎn)管理應(yīng)用。
由此,應(yīng)用模塊31與服務(wù)提供者26之間的交互借助客戶節(jié)點(diǎn)的系統(tǒng)服務(wù)基礎(chǔ)設(shè)施33來(lái)處理,通過(guò)該交互,應(yīng)用模塊31可以通過(guò)發(fā)送系統(tǒng)服務(wù)請(qǐng)求并接收響應(yīng)來(lái)調(diào)用由服務(wù)提供者26提供的、對(duì)屬性對(duì)象的操作。系統(tǒng)服務(wù)協(xié)議25為在客戶節(jié)點(diǎn)12與服務(wù)器節(jié)點(diǎn)10之間傳輸系統(tǒng)服務(wù)請(qǐng)求和響應(yīng)提供異步消息傳遞。
要注意,物理設(shè)備(工作站、服務(wù)器等)可以實(shí)現(xiàn)客戶節(jié)點(diǎn)12和服務(wù)器節(jié)點(diǎn)10中二者之一或這兩者。
下文中描述的不同組件之間的功能分配出于若干原因而是特別有利的。
首先,客戶節(jié)點(diǎn)能夠在沒(méi)有提供由屬性對(duì)象的屬性定義的操作的服務(wù)提供者的身份和位置的先驗(yàn)知識(shí)或不需要首先確定該服務(wù)提供者的身份和位置的情況下調(diào)用這些操作。
其次,通過(guò)避免進(jìn)行許多串行處理的瓶頸提供消息的高效流動(dòng)。
第三,用于不同模塊的并行執(zhí)行是可以的,由此允許現(xiàn)代多核處理器架構(gòu)的最佳使用。
第四,可以在不需要修改現(xiàn)有應(yīng)用的情況下添加與現(xiàn)有應(yīng)用相互作用的新應(yīng)用。
這里且貫穿該文獻(xiàn)使用的術(shù)語(yǔ)模塊要被解釋為與其他模塊不同且可與其他模塊區(qū)分的軟件模塊。模塊內(nèi)部的功能在語(yǔ)義上相關(guān)且由模塊封裝;由此,模塊是模塊化且緊密結(jié)合的。不同模塊通??梢栽趩为?dú)的執(zhí)行情景中執(zhí)行。各模塊可以在不同的處理器核心和/或甚至不同的處理器中執(zhí)行。因此,可用于各模塊的容量可獨(dú)立配置。模塊經(jīng)由接口相互作用,并且可替換(即,只要新模塊經(jīng)由相同接口提供初始模塊的語(yǔ)義,就可以替換現(xiàn)有模塊)。
圖5是圖示了圖3的一些屬性如何映射到服務(wù)提供者的示意圖。
服務(wù)提供者是在系統(tǒng)中提供特定服務(wù)組(提供操作)的軟件模塊。如上面說(shuō)明的,服務(wù)允許客戶12中的應(yīng)用模塊調(diào)用操作。服務(wù)提供者的示例包括目錄服務(wù)器、hmi(人機(jī)接口)服務(wù)器26a、數(shù)據(jù)服務(wù)器、警報(bào)和事件服務(wù)器26c以及歷史服務(wù)器26b。因?yàn)榉?wù)提供者提供由一個(gè)或更多個(gè)屬性定義的操作,所以服務(wù)提供者與這些屬性關(guān)聯(lián)。比如,過(guò)程圖形屬性16f和面板屬性16b都被映射到hmi服務(wù)器26a,歷史日志屬性16c被映射到歷史服務(wù)器26b,并且警報(bào)列表屬性16d被映射到警報(bào)和事件服務(wù)器26c。hmi服務(wù)器26a、歷史服務(wù)器26b以及警報(bào)和事件服務(wù)器26c中的每一個(gè)是在一個(gè)或更多個(gè)物理服務(wù)器節(jié)點(diǎn)中提供的服務(wù)提供者。
如前面說(shuō)明的,表1顯示了可以借助這里所述的系統(tǒng)服務(wù)而被使得可用的可能操作的一些示例。
圖6是更詳細(xì)地圖示了與圖1相同類型的客戶節(jié)點(diǎn)12與服務(wù)器節(jié)點(diǎn)10a-b的模塊的示意圖。
這里,客戶節(jié)點(diǎn)12包括一個(gè)或更多個(gè)應(yīng)用模塊31、服務(wù)調(diào)度器模塊30、連接管理器模塊32以及協(xié)議棧39。調(diào)度器模塊30、連接管理器模塊32以及協(xié)議棧39對(duì)應(yīng)于圖4的客戶系統(tǒng)服務(wù)基礎(chǔ)設(shè)施23。
第一服務(wù)器節(jié)點(diǎn)10a包括協(xié)議棧29、連接服務(wù)器模塊20、服務(wù)調(diào)度器模塊22以及一個(gè)或更多個(gè)服務(wù)提供者26。而且,第一服務(wù)器節(jié)點(diǎn)10a包括目錄服務(wù)器模塊24。協(xié)議棧29、連接服務(wù)器模塊20以及服務(wù)調(diào)度器模塊22對(duì)應(yīng)于圖4的服務(wù)器系統(tǒng)服務(wù)基礎(chǔ)設(shè)施21。
第二服務(wù)器節(jié)點(diǎn)10b為與第一服務(wù)器節(jié)點(diǎn)10a相同的類型,除了第二服務(wù)器節(jié)點(diǎn)10b不具有目錄服務(wù)器模塊24。
必要時(shí)可以添加更多個(gè)服務(wù)器節(jié)點(diǎn)和/或客戶節(jié)點(diǎn)。
系統(tǒng)中的至少一個(gè)服務(wù)器節(jié)點(diǎn)含有目錄服務(wù)器模塊24。目錄服務(wù)器模塊24是提供目錄服務(wù)的服務(wù)提供者。目錄服務(wù)器模塊將(可配置的)信息存儲(chǔ)在關(guān)于屬性對(duì)象和屬性、它們?nèi)绾伪舜讼嚓P(guān)以及它們?cè)谙到y(tǒng)中的位置(即,例如由網(wǎng)絡(luò)地址識(shí)別什么服務(wù)器節(jié)點(diǎn))的對(duì)象目錄中。目錄服務(wù)器模塊24還存儲(chǔ)關(guān)于用戶授權(quán)(即,關(guān)于各屬性對(duì)象或?qū)傩詫?duì)象組,哪些許可被授予用戶或用戶組)和關(guān)于用于由各屬性類型定義的操作的所需許可的信息。目錄服務(wù)器模塊24向系統(tǒng)中的其他模塊提供各種查詢服務(wù)(諸如對(duì)象和屬性位置查找、瀏覽對(duì)象目錄以及對(duì)屬性對(duì)象的操作的授權(quán))。目錄服務(wù)器模塊24可以被提供在物理上單獨(dú)的目錄服務(wù)器中,或者目錄服務(wù)器模塊可以被提供在也收容其他服務(wù)的服務(wù)器節(jié)點(diǎn)中。
對(duì)象目錄中的信息是如上所述通過(guò)工程師使用工程工作站創(chuàng)建的配置數(shù)據(jù)。當(dāng)準(zhǔn)備激活該信息時(shí),該信息借助于系統(tǒng)服務(wù)請(qǐng)求傳送(部署)到運(yùn)行時(shí)間目錄服務(wù)器模塊。當(dāng)工程師稍后對(duì)屬性對(duì)象和屬性進(jìn)行更改或添加時(shí),更新后的信息被傳送到目錄服務(wù)器模塊。
系統(tǒng)中熟知關(guān)于各目錄服務(wù)器的位置的信息,并且在系統(tǒng)安裝和設(shè)定期間例如可以使得該信息可用于所有節(jié)點(diǎn)。存在為本領(lǐng)域技術(shù)人員所熟悉的、可以建立該信息的若干其他方式,例如,借助配置或由服務(wù)發(fā)現(xiàn)機(jī)制。
服務(wù)器節(jié)點(diǎn)10a-b(即,含有服務(wù)提供者26的節(jié)點(diǎn))也包括對(duì)允許服務(wù)提供者認(rèn)證用戶的信息的訪問(wèn)。存在從集中管理的目錄向服務(wù)器提供該信息的若干方式。示例是ldap(輕量級(jí)目錄訪問(wèn)協(xié)議)。
服務(wù)器節(jié)點(diǎn)可以可選地被布置為冗余操作,兩個(gè)或更多個(gè)計(jì)算機(jī)執(zhí)行用于相同屬性對(duì)象的相同服務(wù),一個(gè)計(jì)算機(jī)充當(dāng)有效服務(wù)器,并且其他計(jì)算機(jī)充當(dāng)備用服務(wù)器。只要有效服務(wù)器操作,則所有服務(wù)請(qǐng)求都指向它。如果有效服務(wù)器出故障,則備用服務(wù)器接管并變成有效服務(wù)器。
同樣,通信網(wǎng)絡(luò)可以被布置為冗余操作,一個(gè)網(wǎng)絡(luò)作為主網(wǎng)絡(luò),并且其他網(wǎng)絡(luò)作為次網(wǎng)絡(luò)。
如上所述,目的是在沒(méi)有另一個(gè)應(yīng)用(服務(wù)器節(jié)點(diǎn)的服務(wù)提供者)的身份或位置的先驗(yàn)知識(shí)或不需要首先確定另一個(gè)應(yīng)用的身份或位置的情況下,允許(客戶節(jié)點(diǎn)的)應(yīng)用模塊調(diào)用另一個(gè)應(yīng)用的操作。根據(jù)這里所提出的實(shí)施例,該透明性借助于服務(wù)調(diào)度器操作來(lái)實(shí)現(xiàn),服務(wù)調(diào)度器操作使用客戶端服務(wù)調(diào)度器模塊30和服務(wù)器端服務(wù)調(diào)度器模塊22這兩者來(lái)實(shí)現(xiàn)。
現(xiàn)在將對(duì)應(yīng)于本文獻(xiàn)中稍后說(shuō)明的圖9和圖10的流程圖的方法描述該過(guò)程。
為了調(diào)用與屬性對(duì)象的特定屬性關(guān)聯(lián)的操作,應(yīng)用模塊31向客戶端服務(wù)調(diào)度器模塊30傳遞服務(wù)請(qǐng)求。請(qǐng)求包括對(duì)所請(qǐng)求操作的引用、對(duì)屬性對(duì)象的引用以及對(duì)請(qǐng)求操作的屬性的引用,該請(qǐng)求例如為形式<屬性對(duì)象身份;屬性身份>,其中,“屬性對(duì)象身份”和“屬性身份”是分別唯一識(shí)別屬性對(duì)象和屬性的引用。
當(dāng)接收來(lái)自應(yīng)用模塊31的請(qǐng)求時(shí),客戶端服務(wù)調(diào)度器模塊30首先向系統(tǒng)中的任意目錄服務(wù)器模塊24發(fā)送對(duì)于屬性對(duì)象和屬性的位置查找請(qǐng)求。
目錄服務(wù)器模塊24以負(fù)責(zé)位置查找請(qǐng)求中所述的屬性對(duì)象和屬性的服務(wù)提供者26的位置和身份來(lái)響應(yīng)。客戶端服務(wù)調(diào)度器24然后使用該信息來(lái)將客戶的服務(wù)請(qǐng)求引導(dǎo)至相關(guān)服務(wù)器節(jié)點(diǎn)和服務(wù)提供者。
可選地,客戶端服務(wù)調(diào)度器30緩存關(guān)于它從目錄服務(wù)器作為響應(yīng)接收的屬性對(duì)象和屬性的位置的信息,由此節(jié)省到目錄服務(wù)器的往返和用于引用相同對(duì)象和屬性的將來(lái)請(qǐng)求的處理。為了確保緩存中的信息總是正確的,例如可以在如上所述的用來(lái)自工程工作站的新配置數(shù)據(jù)更新目錄服務(wù)器模塊24時(shí)使緩存失效。
在收容討論中的服務(wù)提供者26的服務(wù)器節(jié)點(diǎn)中(例如,在該示例中為第一服務(wù)器節(jié)點(diǎn)10a),服務(wù)器端服務(wù)調(diào)度器模塊22接收服務(wù)請(qǐng)求,檢查屬性對(duì)象引用和屬性引用,確定合適的服務(wù)提供者26,并且向該服務(wù)提供者26轉(zhuǎn)發(fā)請(qǐng)求。關(guān)于哪個(gè)服務(wù)提供者26與哪個(gè)屬性關(guān)聯(lián)的信息在開(kāi)發(fā)服務(wù)提供者26時(shí)確定,并且例如可以由服務(wù)器端服務(wù)調(diào)度器模塊22直接保持,或者由目錄服務(wù)器模塊24提供。
當(dāng)服務(wù)提供者26接收請(qǐng)求時(shí),它對(duì)指定的屬性對(duì)象和屬性執(zhí)行所請(qǐng)求的操作。通常,服務(wù)提供者26還向服務(wù)器端服務(wù)調(diào)度器模塊22發(fā)回響應(yīng),該服務(wù)器端服務(wù)調(diào)度器模塊向客戶端服務(wù)調(diào)度器30轉(zhuǎn)發(fā)響應(yīng),客戶端服務(wù)調(diào)度器轉(zhuǎn)而向請(qǐng)求應(yīng)用模塊31轉(zhuǎn)發(fā)該響應(yīng)。
在一個(gè)實(shí)施例中,來(lái)自應(yīng)用模塊31的服務(wù)請(qǐng)求包括對(duì)可能位于不同服務(wù)器節(jié)點(diǎn)中的多個(gè)屬性對(duì)象和屬性的引用。客戶端服務(wù)調(diào)度器模塊30然后對(duì)于每個(gè)服務(wù)器節(jié)點(diǎn)將服務(wù)請(qǐng)求分成一個(gè),然后將來(lái)自不同服務(wù)器節(jié)點(diǎn)的響應(yīng)合并成被轉(zhuǎn)發(fā)到應(yīng)用模塊31的一個(gè)響應(yīng)。
類似地,由服務(wù)器端服務(wù)調(diào)度器模塊22從客戶節(jié)點(diǎn)12接收的請(qǐng)求可以包括由同一服務(wù)器節(jié)點(diǎn)中的不同服務(wù)提供者26服務(wù)的多個(gè)屬性對(duì)象和屬性的引用。服務(wù)器端服務(wù)調(diào)度器模塊22然后對(duì)于每個(gè)服務(wù)提供者26將服務(wù)請(qǐng)求分成一個(gè),然后將來(lái)自不同服務(wù)提供者26的響應(yīng)合并成被返回到客戶端服務(wù)調(diào)度器模塊30的一個(gè)響應(yīng)。
客戶中的連接管理器模塊32與服務(wù)器節(jié)點(diǎn)10a、b中的連接服務(wù)器20之間的連接可以是長(zhǎng)期的(即,它們?cè)趩蝹€(gè)請(qǐng)求-響應(yīng)周期之后不終止,而是對(duì)于隨后的請(qǐng)求保持有效)。連接可以與所有潛在服務(wù)器節(jié)點(diǎn)例如在系統(tǒng)啟動(dòng)之后直接建立。另選地,連接可以在需要時(shí)(即,在要向服務(wù)器節(jié)點(diǎn)發(fā)送第一服務(wù)請(qǐng)求時(shí))建立。連接管理器模塊32可以通過(guò)詢問(wèn)目錄服務(wù)器來(lái)找出哪些服務(wù)器節(jié)點(diǎn)在系統(tǒng)中可用、以及關(guān)于這些服務(wù)器節(jié)點(diǎn)的任意必要信息,諸如它們的網(wǎng)絡(luò)地址。如前所述,系統(tǒng)中周知目錄服務(wù)器的位置。
當(dāng)建立并激活應(yīng)用會(huì)話時(shí),創(chuàng)建用戶情景。對(duì)同一應(yīng)用會(huì)話的所有隨后服務(wù)請(qǐng)求與該用戶相關(guān)。通常,用戶為在客戶節(jié)點(diǎn)12處登陸的交互人類用戶(例如,操作員),由此直接或間接發(fā)起服務(wù)請(qǐng)求,但用戶還可以為在客戶節(jié)點(diǎn)12中執(zhí)行的系統(tǒng)功能(即,程序)。用戶在系統(tǒng)中使用用戶標(biāo)識(shí)符來(lái)引用。
opcua架構(gòu)中的通信和應(yīng)用層的操作由連接管理器模塊32和連接服務(wù)器模塊20如下實(shí)現(xiàn):
客戶端上的連接管理器模塊32發(fā)起與相關(guān)服務(wù)器節(jié)點(diǎn)中的連接服務(wù)器模塊20的連接(即,opcua安全通道和應(yīng)用會(huì)話)的建立,該連接傳遞連接請(qǐng)求中用戶的認(rèn)證證書(shū)。
服務(wù)器端上的連接服務(wù)器模塊20接收連接請(qǐng)求。如果用戶認(rèn)證成功,則接受請(qǐng)求,并且建立連接,否則拒絕請(qǐng)求。用戶認(rèn)證針對(duì)服務(wù)器中所存儲(chǔ)的用戶信息來(lái)進(jìn)行。存在可以進(jìn)行該認(rèn)證的、現(xiàn)有技術(shù)中已知的若干方式,例如,使用ldap。
客戶端上的連接管理器模塊32監(jiān)督它的所有連接,并且在主網(wǎng)絡(luò)出故障時(shí)向次網(wǎng)絡(luò)傳送連接,或者在有效服務(wù)器節(jié)點(diǎn)出故障時(shí)向備用服務(wù)器節(jié)點(diǎn)傳送連接。為了使故障處理時(shí)間最小化,可以利用有效服務(wù)器和備用服務(wù)器這兩者在主網(wǎng)絡(luò)和次網(wǎng)絡(luò)這兩者上建立安全通道。丟失連接的故障處理通過(guò)向另一個(gè)安全通道傳送應(yīng)用會(huì)話來(lái)進(jìn)行。
連接管理器模塊32在所建立的連接上發(fā)送服務(wù)器請(qǐng)求并接收響應(yīng)。
連接服務(wù)器模塊20接收請(qǐng)求并將請(qǐng)求傳遞到服務(wù)器端服務(wù)調(diào)度器模塊22上,該服務(wù)器端服務(wù)調(diào)度器模塊轉(zhuǎn)而將請(qǐng)求轉(zhuǎn)發(fā)到相關(guān)服務(wù)提供者26(或本地連接管理器模塊32,以便如圖7所示且下面說(shuō)明的向另一個(gè)服務(wù)器節(jié)點(diǎn)轉(zhuǎn)發(fā))。
在許多情況下,服務(wù)提供者26將向服務(wù)調(diào)度器模塊22返回響應(yīng),服務(wù)調(diào)度器模塊向連接服務(wù)器模塊22傳遞該響應(yīng),連接服務(wù)器模塊轉(zhuǎn)而向客戶的連接管理器模塊32傳遞響應(yīng),以便向應(yīng)用模塊31轉(zhuǎn)發(fā)。為了效率最佳,服務(wù)器端服務(wù)調(diào)度器模塊20可以將因同一請(qǐng)求而產(chǎn)生的所有響應(yīng)連結(jié)成一個(gè)響應(yīng)消息。
在執(zhí)行服務(wù)請(qǐng)求中所指定的操作之前,服務(wù)提供者26檢查發(fā)起服務(wù)請(qǐng)求的用戶具有對(duì)指定屬性對(duì)象和屬性執(zhí)行所請(qǐng)求操作的授權(quán)。服務(wù)提供者26通過(guò)將用戶的身份、屬性對(duì)象和屬性的身份以及用于所請(qǐng)求操作的標(biāo)識(shí)符傳遞到目錄服務(wù)器模塊24來(lái)進(jìn)行這一點(diǎn)。
對(duì)象目錄包括關(guān)于由各屬性類型定義的不同操作需要什么許可的信息。對(duì)象目錄還包括關(guān)于對(duì)于各屬性對(duì)象或?qū)傩詫?duì)象組授予各用戶或用戶組什么許可的信息。
目錄服務(wù)器將授予用戶的許可與對(duì)指定屬性對(duì)象和屬性的所請(qǐng)求操作需要的許可進(jìn)行比較。如果所授予許可與所需許可匹配,則目錄服務(wù)器向服務(wù)提供者26返回訪問(wèn)授予消息,否則它返回訪問(wèn)拒絕消息。
協(xié)議棧29、39可以為提供可靠傳輸連接的任意類型的協(xié)議棧。例如,協(xié)議棧可以支持以太網(wǎng)上的tcp/ip或任意ieee802.11標(biāo)準(zhǔn)。
可選地,配置數(shù)據(jù)包括列出了客戶對(duì)于冗余服務(wù)器節(jié)點(diǎn)的優(yōu)先順序的各客戶節(jié)點(diǎn)12的親密度配置??蛻舻倪B接管理器模塊32然后將嘗試將系統(tǒng)服務(wù)請(qǐng)求定址到親密度列表中的第一服務(wù)器節(jié)點(diǎn),該第一服務(wù)器節(jié)點(diǎn)是客戶優(yōu)選的服務(wù)器節(jié)點(diǎn)。親密度由此使得可以配置服務(wù)對(duì)于相同屬性對(duì)象的請(qǐng)求的不同服務(wù)器節(jié)點(diǎn)之間的負(fù)載均衡。如果客戶節(jié)點(diǎn)12沒(méi)有到其優(yōu)選的服務(wù)器節(jié)點(diǎn)的連接,則連接管理器模塊32將選擇親密度列表中的下一節(jié)點(diǎn)等。優(yōu)選服務(wù)器節(jié)點(diǎn)一被選擇就再次變得可用,使得重新建立預(yù)期的負(fù)載共享。
可選地,系統(tǒng)被配置為使得客戶節(jié)點(diǎn)12可以不具有到服務(wù)特定請(qǐng)求的服務(wù)器的直接連接。在這種情況下,客戶端服務(wù)調(diào)度器模塊30向具有連接的服務(wù)器引導(dǎo)請(qǐng)求,并且該服務(wù)器中的服務(wù)調(diào)度器模塊22可能經(jīng)由其他中間服務(wù)器節(jié)點(diǎn)向目的地服務(wù)器節(jié)點(diǎn)轉(zhuǎn)發(fā)請(qǐng)求。為了確定路徑上的第一服務(wù)器,客戶端服務(wù)調(diào)度器模塊30使用對(duì)象目錄中的系統(tǒng)拓?fù)湫畔ⅰQ刂窂降母鞣?wù)器中的服務(wù)調(diào)度器模塊22再次使用對(duì)象目錄中的系統(tǒng)拓?fù)湫畔⑾蛳乱环?wù)器重新引導(dǎo)請(qǐng)求,直到到達(dá)目的地服務(wù)器為止。沿著同一路線沿相反方向發(fā)送響應(yīng)。
圖7是客戶和服務(wù)器節(jié)點(diǎn)42組合圖6的客戶節(jié)點(diǎn)12和服務(wù)器節(jié)點(diǎn)10這兩者的功能的示意圖。這里,可選地組合客戶端服務(wù)調(diào)度器30和服務(wù)器端服務(wù)調(diào)度器22。
這允許服務(wù)器端服務(wù)調(diào)度器模塊22也用目錄服務(wù)器檢查被客戶節(jié)點(diǎn)12’的服務(wù)請(qǐng)求所引用的屬性對(duì)象和屬性實(shí)際上處于客戶和服務(wù)器節(jié)點(diǎn)42本地,不然的話,服務(wù)器端服務(wù)調(diào)度器模塊向合適的服務(wù)器節(jié)點(diǎn)10’轉(zhuǎn)發(fā)服務(wù)請(qǐng)求。
由此,客戶和服務(wù)器節(jié)點(diǎn)42中的本地應(yīng)用模塊31(該示例中僅示出一個(gè))可以經(jīng)由本地服務(wù)調(diào)度器模塊22、30與本地和/或遠(yuǎn)程服務(wù)提供者交互。
圖8是圖示了具有多過(guò)程實(shí)施方案的實(shí)施例中的、類似于圖7的客戶和服務(wù)器節(jié)點(diǎn)42的客戶和服務(wù)器節(jié)點(diǎn)42的示意圖。
這里,服務(wù)器端服務(wù)調(diào)度器模塊22在處理器中的一個(gè)進(jìn)程中執(zhí)行,并且客戶端服務(wù)調(diào)度器模塊30連同其相應(yīng)應(yīng)用模塊在處理器中的單獨(dú)進(jìn)程中執(zhí)行。不同的進(jìn)程使用例如由組合式客戶節(jié)點(diǎn)和服務(wù)器節(jié)點(diǎn)42的操作系統(tǒng)提供的進(jìn)程間通信框架40來(lái)通信。而且,各服務(wù)提供者26以及客戶端連接管理器模塊32和協(xié)議棧39可以在單獨(dú)的進(jìn)程(在目錄服務(wù)器模塊24存在時(shí)包括該目錄服務(wù)器模塊24)中執(zhí)行。
這提高并行度,并且減少由于進(jìn)程切換等待時(shí)間引起的請(qǐng)求和響應(yīng)流程中的延遲和瓶頸。
圖9是圖示了用于控制諸如圖1所示的工業(yè)設(shè)施的工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法的流程圖。該方法在服務(wù)器節(jié)點(diǎn)10中圖示。還對(duì)圖5至圖8的模塊進(jìn)行參照。
在接收連接建立請(qǐng)求步驟100中,接收包括用戶身份(可選地包括完整證書(shū))的連接建立請(qǐng)求。該步驟在連接服務(wù)器模塊20中執(zhí)行。
在有條件認(rèn)證通過(guò)步驟102中,認(rèn)證用戶身份。如果這導(dǎo)致授予的認(rèn)證,則方法進(jìn)行到建立連接步驟104。否則,方法結(jié)束。該步驟在連接服務(wù)器模塊20中執(zhí)行。
在建立連接步驟104中,建立連接。該連接處于應(yīng)用層水平上(參見(jiàn)客戶應(yīng)用層6與服務(wù)器應(yīng)用層8之間的圖2),并且與連接建立請(qǐng)求的用戶身份關(guān)聯(lián)。該步驟在連接服務(wù)器模塊20中執(zhí)行。
在接收服務(wù)請(qǐng)求步驟106中,在所建立的連接上接收服務(wù)請(qǐng)求,其中,服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和屬性對(duì)象的屬性的引用。該步驟在連接服務(wù)器模塊20中執(zhí)行。
在向調(diào)度器轉(zhuǎn)發(fā)步驟108中,向服務(wù)調(diào)度器模塊22轉(zhuǎn)發(fā)服務(wù)請(qǐng)求和用戶身份。該步驟在連接服務(wù)器模塊20中執(zhí)行。
在確定目標(biāo)服務(wù)提供者步驟110中,根據(jù)對(duì)屬性對(duì)象和/或?qū)傩缘囊么_定目標(biāo)服務(wù)提供者26。這通過(guò)查詢目錄服務(wù)器模塊24來(lái)執(zhí)行。該步驟在服務(wù)調(diào)度器模塊22中執(zhí)行。
在發(fā)送服務(wù)請(qǐng)求步驟112中,向目標(biāo)服務(wù)提供者發(fā)送服務(wù)請(qǐng)求和用戶身份。該步驟在服務(wù)調(diào)度器模塊22中執(zhí)行。
在有條件授權(quán)步驟116中,檢查使用戶身份調(diào)用由屬性定義的操作的授權(quán)。如果這引起授權(quán)用戶身份,則方法進(jìn)行到執(zhí)行操作步驟118。否則,方法結(jié)束。該步驟在服務(wù)提供者26中執(zhí)行。
在執(zhí)行操作步驟118中,執(zhí)行由屬性定義的操作。該步驟在服務(wù)提供者26中執(zhí)行,并且還可以包括向客戶節(jié)點(diǎn)12發(fā)回響應(yīng)。
圖10是圖示了用于控制諸如圖1所示的工業(yè)設(shè)施的工業(yè)設(shè)施中的現(xiàn)實(shí)世界對(duì)象的方法的流程圖。該方法在客戶節(jié)點(diǎn)12中圖示。還對(duì)圖5至圖8的模塊進(jìn)行參照。
在接收服務(wù)請(qǐng)求步驟120中,從客戶節(jié)點(diǎn)的應(yīng)用模塊31接收服務(wù)請(qǐng)求。服務(wù)請(qǐng)求包括對(duì)屬性對(duì)象的引用和對(duì)屬性對(duì)象的屬性的引用。該步驟在服務(wù)調(diào)度器模塊30中執(zhí)行。
在確定位置步驟122中,基于對(duì)屬性對(duì)象和/或?qū)傩缘囊么_定服務(wù)器節(jié)點(diǎn)10的位置。該步驟在服務(wù)調(diào)度器模塊30中執(zhí)行。
在向通信模塊轉(zhuǎn)發(fā)步驟124中,向連接管理器模塊32轉(zhuǎn)發(fā)服務(wù)請(qǐng)求、對(duì)服務(wù)器節(jié)點(diǎn)10的位置的引用以及用戶身份。該步驟在服務(wù)調(diào)度器模塊30中執(zhí)行。
在有條件連接步驟126中,檢查是否與服務(wù)器節(jié)點(diǎn)建立連接。如果建立該連接,則方法進(jìn)行到發(fā)送服務(wù)器請(qǐng)求步驟130。否則,方法進(jìn)行到建立連接步驟128。該步驟在連接管理器模塊32中執(zhí)行。
在建立連接步驟128中,向服務(wù)器節(jié)點(diǎn)10發(fā)送包括用戶身份的連接建立請(qǐng)求。該步驟在連接管理器模塊32中執(zhí)行。
在發(fā)送服務(wù)請(qǐng)求步驟130中,向服務(wù)器節(jié)點(diǎn)發(fā)送服務(wù)請(qǐng)求。該步驟在連接管理器模塊32中執(zhí)行。
在接收響應(yīng)步驟132中,從服務(wù)器接收響應(yīng)。該步驟在連接管理器模塊32中執(zhí)行。
圖11是顯示了圖1的服務(wù)器節(jié)點(diǎn)10的實(shí)施例的一些組件的示意圖。
處理器60使用合適中央處理單元(cpu)、微處理器、微控制器、數(shù)字信號(hào)處理器(dsp)等中的一個(gè)或更多個(gè)的任意組合來(lái)提供,這些部件能夠執(zhí)行存儲(chǔ)在存儲(chǔ)器64中的軟件指令66,由此可以是計(jì)算機(jī)程序產(chǎn)品。處理器60可以被配置為執(zhí)行上面參照?qǐng)D9描述的方法。
存儲(chǔ)器64可以為讀寫(xiě)存儲(chǔ)器(ram)和只讀存儲(chǔ)器(rom)的任意組合。存儲(chǔ)器64還包括永久儲(chǔ)存器,該永久儲(chǔ)存器例如可以為磁存儲(chǔ)器、光存儲(chǔ)器、固態(tài)存儲(chǔ)器或甚至遠(yuǎn)程安裝的存儲(chǔ)器的任意單個(gè)或組合。
數(shù)據(jù)存儲(chǔ)器65可以為讀寫(xiě)存儲(chǔ)器(ram)和只讀存儲(chǔ)器(rom)的任意組合。數(shù)據(jù)存儲(chǔ)器65還包括永久儲(chǔ)存器,該永久儲(chǔ)存器例如可以為磁存儲(chǔ)器、光存儲(chǔ)器、固態(tài)存儲(chǔ)器甚至遠(yuǎn)程安裝的存儲(chǔ)器的任意單個(gè)或組合。
服務(wù)器節(jié)點(diǎn)10還包括用于與其他實(shí)體(諸如客戶節(jié)點(diǎn)12或其他服務(wù)器節(jié)點(diǎn))通信的i/o接口62??蛇x地,i/o接口62還包括用于服務(wù)器節(jié)點(diǎn)10本身的操作員控制的用戶接口。
為了不使這里提出的概念模糊,這里省略服務(wù)器節(jié)點(diǎn)10的其他組件。
圖12是顯示了圖1的客戶節(jié)點(diǎn)10的實(shí)施例的一些組件的示意圖。
處理器70使用合適中央處理單元(cpu)、微處理器、微控制器、數(shù)字信號(hào)處理器(dsp)等中的一個(gè)或更多個(gè)的任意組合來(lái)提供,這些部件能夠執(zhí)行存儲(chǔ)在存儲(chǔ)器74中的軟件指令76,由此可以是計(jì)算機(jī)程序產(chǎn)品。處理器70可以被配置為執(zhí)行上面參照?qǐng)D9描述的方法。
存儲(chǔ)器74可以為讀寫(xiě)存儲(chǔ)器(ram)和只讀存儲(chǔ)器(rom)的任意組合。存儲(chǔ)器74還包括永久儲(chǔ)存器,該永久儲(chǔ)存器例如可以為磁存儲(chǔ)器、光存儲(chǔ)器、固態(tài)存儲(chǔ)器甚至遠(yuǎn)程安裝的存儲(chǔ)器的任意單個(gè)或組合。
數(shù)據(jù)存儲(chǔ)器75可以為讀寫(xiě)存儲(chǔ)器(ram)和只讀存儲(chǔ)器(rom)的任意組合。數(shù)據(jù)存儲(chǔ)器75還包括永久儲(chǔ)存器,該永久儲(chǔ)存器例如可以為磁存儲(chǔ)器、光存儲(chǔ)器、固態(tài)存儲(chǔ)器甚至遠(yuǎn)程安裝的存儲(chǔ)器的任意單個(gè)或組合。
客戶節(jié)點(diǎn)10還包括用于與其他實(shí)體(諸如服務(wù)器節(jié)點(diǎn)12)通信的i/o接口72。i/o接口72還包括用于客戶節(jié)點(diǎn)12本身的操作員控制的用戶接口。
為了不使這里提出的概念模糊,這里省略客戶節(jié)點(diǎn)12的其他組件。
圖13顯示了包括計(jì)算機(jī)可讀部件的計(jì)算機(jī)程序產(chǎn)品的一個(gè)示例。在該計(jì)算機(jī)可讀部件上,可以存儲(chǔ)計(jì)算機(jī)程序91,該計(jì)算機(jī)程序可以使得處理器執(zhí)行根據(jù)這里所述實(shí)施例的方法。在該示例中,計(jì)算機(jī)程序產(chǎn)品是光盤(pán),諸如cd(光碟)或dvd(數(shù)字化通用光盤(pán))或藍(lán)光盤(pán)。如上面說(shuō)明的,計(jì)算機(jī)程序產(chǎn)品還可以在設(shè)備的存儲(chǔ)器中具體實(shí)施,諸如圖11的計(jì)算機(jī)程序產(chǎn)品66或圖12的計(jì)算機(jī)程序產(chǎn)品76。雖然計(jì)算機(jī)程序91在這里被示意性顯示為所描繪光盤(pán)上的磁軌,但計(jì)算機(jī)程序可以以適于計(jì)算機(jī)程序產(chǎn)品的任意方式來(lái)存儲(chǔ),諸如可移動(dòng)固態(tài)存儲(chǔ)器(例如,通用串行總線(usb)驅(qū)動(dòng)器)。
上面已經(jīng)主要參照一些實(shí)施例描述了本發(fā)明。然而,如本領(lǐng)域技術(shù)人員容易理解的,除了上面公開(kāi)的實(shí)施例之外的其他實(shí)施例在如由所附專利權(quán)利要求限定的、本發(fā)明的范圍內(nèi)同樣是可以的。