專利名稱:網(wǎng)格作業(yè)管理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)格技術(shù),具體地說(shuō),涉及一種監(jiān)控管理網(wǎng)格作業(yè)的網(wǎng)格作業(yè)管理器。
背景技術(shù):
網(wǎng)格技術(shù)是近幾年新興起的技術(shù),它是把整個(gè)互聯(lián)網(wǎng)整合成一臺(tái)巨大的超級(jí)計(jì)算機(jī),實(shí)現(xiàn)計(jì)算資源、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源的全面共享。人們可以構(gòu)造地區(qū)性的網(wǎng)格、企業(yè)內(nèi)部網(wǎng)格、局域網(wǎng)網(wǎng)格、甚至家庭網(wǎng)格和個(gè)人網(wǎng)格,所以,網(wǎng)格的根本特征是整合資源、實(shí)現(xiàn)資源共享、消除資源孤島。
傳統(tǒng)的網(wǎng)格作業(yè)只關(guān)注單一任務(wù)的提交和執(zhí)行過(guò)程,其描述語(yǔ)言如RSL、ClassAD主要描述任務(wù)執(zhí)行過(guò)程中相關(guān)資源的配置情況,如執(zhí)行程序的名稱、相關(guān)的調(diào)用參數(shù)、對(duì)任務(wù)執(zhí)行的環(huán)境要求等。在相應(yīng)的網(wǎng)格服務(wù)運(yùn)行平臺(tái)如Globus Toolkit和Conder中提供了對(duì)RSL和ClassAD語(yǔ)言的支持。
上述這種傳統(tǒng)的網(wǎng)格服務(wù)運(yùn)行平臺(tái)如Globus Toolkit的缺點(diǎn)是沒(méi)有提供對(duì)工作流機(jī)制的支持,不能在其上構(gòu)造復(fù)雜的流程類應(yīng)用。
隨著網(wǎng)格技術(shù)和Web服務(wù)技術(shù)的融合發(fā)展,在OGSA(開(kāi)放網(wǎng)格服務(wù)體系結(jié)構(gòu))網(wǎng)格體系結(jié)構(gòu)中提供服務(wù)已經(jīng)成為一個(gè)核心的概念。
在OGSA網(wǎng)格體系結(jié)構(gòu)中,所有的事務(wù)都已經(jīng)表示成一個(gè)服務(wù),即一個(gè)遵循一系列規(guī)范的動(dòng)態(tài)、暫時(shí)的服務(wù),這些規(guī)范用于實(shí)現(xiàn)服務(wù)的生命周期管理、發(fā)現(xiàn)、通知等目標(biāo)。OGSI(開(kāi)放網(wǎng)格服務(wù)基礎(chǔ)架構(gòu))定義的網(wǎng)格服務(wù)在本質(zhì)上是一種Web服務(wù),為了支持動(dòng)態(tài)的、有狀態(tài)的交互,網(wǎng)格服務(wù)在Web服務(wù)的基礎(chǔ)上定義了一系列的接口集合。這些接口集合是所有的網(wǎng)格服務(wù)實(shí)現(xiàn)的基礎(chǔ),便于高級(jí)服務(wù)的構(gòu)造,使得高級(jí)服務(wù)能夠跨多個(gè)抽象層以一種統(tǒng)一的方式進(jìn)行處理。
上述基于Web服務(wù)的網(wǎng)格體系結(jié)構(gòu)已經(jīng)初步形成,并在一系列的系統(tǒng)中得到了實(shí)現(xiàn),如Globus ToolkitV3.0、北航WebSASE4G網(wǎng)格服務(wù)運(yùn)行平臺(tái)。圖1為WebSASE4G網(wǎng)格服務(wù)運(yùn)行平臺(tái)的系統(tǒng)結(jié)構(gòu)示意圖,它是一個(gè)基于Web服務(wù)技術(shù)實(shí)現(xiàn)網(wǎng)格服務(wù)的運(yùn)行平臺(tái)。它由面向網(wǎng)格服務(wù)的體系結(jié)構(gòu)層SOA、資源層、網(wǎng)格應(yīng)用層和面向服務(wù)的工具層構(gòu)成。
隨著網(wǎng)格作業(yè)越來(lái)越復(fù)雜化,作業(yè)的形式逐漸從支持單個(gè)應(yīng)用的作業(yè),向批作業(yè)、流程性作業(yè)的方向發(fā)展。在以服務(wù)為基本構(gòu)成元素的網(wǎng)格中,網(wǎng)格作業(yè)是對(duì)多個(gè)服務(wù)的復(fù)合,同時(shí)作業(yè)的形式也表現(xiàn)為一個(gè)服務(wù)。而在目前主流的網(wǎng)格平臺(tái)中如Globus Toolkit,尚沒(méi)有提供對(duì)于流程性作業(yè)的支持。
發(fā)明內(nèi)容
鑒于上述情況,本發(fā)明的目的是提供一種應(yīng)用于北航WebSASE4G網(wǎng)格服務(wù)運(yùn)行平臺(tái)中的新型網(wǎng)格作業(yè)管理器,該網(wǎng)格作業(yè)管理器負(fù)責(zé)網(wǎng)格作業(yè)定義的解釋執(zhí)行,提供運(yùn)行時(shí)的監(jiān)控管理功能,并且,支持復(fù)雜的流程性網(wǎng)格作業(yè)。
為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案一種網(wǎng)格作業(yè)管理器,它包括請(qǐng)求消息處理部分和活動(dòng)實(shí)現(xiàn)調(diào)用部分;請(qǐng)求消息處理部分接收網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)服務(wù)容器預(yù)處理后的網(wǎng)格作業(yè)請(qǐng)求消息,并對(duì)其進(jìn)行解析、編譯、調(diào)度和執(zhí)行;活動(dòng)實(shí)現(xiàn)調(diào)用部分具有統(tǒng)一的調(diào)用接口,負(fù)責(zé)調(diào)用不同的外界服務(wù)模塊,保證在請(qǐng)求消息處理部分調(diào)度、執(zhí)行網(wǎng)格作業(yè)時(shí)提供不同的外部服務(wù),以及對(duì)新的服務(wù)實(shí)現(xiàn)體的擴(kuò)充和支持。
所述請(qǐng)求消息處理部分包括作業(yè)管理器入口、會(huì)話管理器、實(shí)例管理器、定義解析器和編譯器;作業(yè)管理器入口與網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)的服務(wù)容器相連,接收服務(wù)容器預(yù)處理后的網(wǎng)格作業(yè)請(qǐng)求消息,并將接收的請(qǐng)求消息傳遞給與之相連的會(huì)話管理器;另外,作業(yè)管理器入口還接收來(lái)自會(huì)話管理器的響應(yīng)消息,并把響應(yīng)消息轉(zhuǎn)交給網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)的服務(wù)容器;會(huì)話管理器的主要功能是保持作業(yè)實(shí)例與其他有狀態(tài)的服務(wù)實(shí)例之間的會(huì)話;在作業(yè)實(shí)例處理的上下文到達(dá)時(shí),會(huì)話管理器負(fù)責(zé)把上下文交給正確的作業(yè)實(shí)例進(jìn)行處理;在處理結(jié)束時(shí),會(huì)話管理器負(fù)責(zé)在響應(yīng)結(jié)果中標(biāo)識(shí)上正確的實(shí)例標(biāo)識(shí),并把結(jié)果轉(zhuǎn)交給作業(yè)管理器入口;實(shí)例管理器主要完成創(chuàng)建作業(yè)實(shí)例、掛起作業(yè)實(shí)例、恢復(fù)作業(yè)實(shí)例和終止作業(yè)實(shí)例,對(duì)作業(yè)實(shí)例進(jìn)行調(diào)度管理,按照調(diào)度策略對(duì)請(qǐng)求消息進(jìn)行排隊(duì),對(duì)作業(yè)實(shí)例進(jìn)行生命期狀態(tài)的管理,對(duì)外提供管理操作接口;定義解析器主要功能是解析作業(yè)定義文件,把作業(yè)定義從文件中讀入,它由實(shí)例管理器發(fā)起調(diào)用,最終生成作業(yè)的靜態(tài)模型;編譯器的主要功能是根據(jù)作業(yè)的靜態(tài)模型,生成作業(yè)實(shí)例,依次生成作業(yè)實(shí)例中各個(gè)屬性,它由實(shí)例管理器發(fā)起調(diào)用,最終生成可以自主執(zhí)行的作業(yè)實(shí)例和活動(dòng)實(shí)例集合;作業(yè)實(shí)例是由實(shí)例管理器創(chuàng)建的包含實(shí)例數(shù)據(jù)和運(yùn)行控制于一體的運(yùn)行時(shí)對(duì)象,它自主地完成實(shí)例的解釋執(zhí)行功能;活動(dòng)實(shí)例是服務(wù)實(shí)例的一部分,在實(shí)例管理器創(chuàng)建作業(yè)實(shí)例時(shí)一并創(chuàng)建,由作業(yè)實(shí)例統(tǒng)一管理。
所述活動(dòng)實(shí)現(xiàn)調(diào)用部分主要包括活動(dòng)調(diào)用管理器;該活動(dòng)調(diào)用管理器完成對(duì)外界服務(wù)的調(diào)用管理功能,包括對(duì)外界服務(wù)的綁定以及請(qǐng)求消息的裝配和預(yù)處理。
一種網(wǎng)格作業(yè)管理方法,它利用由作業(yè)管理器入口、會(huì)話管理器、實(shí)例管理器、定義解析器、編譯器和活動(dòng)調(diào)用管理器構(gòu)成的網(wǎng)格作業(yè)管理器對(duì)網(wǎng)格作業(yè)進(jìn)行解釋執(zhí)行、監(jiān)控和管理,具體方法如下(1)作業(yè)管理器入口接收外界發(fā)起的網(wǎng)格作業(yè)請(qǐng)求;(2)作業(yè)管理器入口阻塞本次調(diào)用,把請(qǐng)求消息轉(zhuǎn)交給會(huì)話管理器;(3)會(huì)話管理器分離出會(huì)話標(biāo)識(shí)信息,根據(jù)會(huì)話標(biāo)識(shí)信息確定正確的作業(yè)實(shí)例;(4)會(huì)話管理器在作業(yè)實(shí)例池中查找上述作業(yè)實(shí)例,判斷是否能夠找到正確的作業(yè)實(shí)例,如果能找到正確的作業(yè)實(shí)例,則跳轉(zhuǎn)到步驟(8’);(5)若會(huì)話管理器沒(méi)有找到正確的作業(yè)實(shí)例,進(jìn)一步判斷該作業(yè)實(shí)例是否是正確的請(qǐng)求,如果不是,會(huì)話管理器進(jìn)行出錯(cuò)處理;如果是正確的請(qǐng)求,繼續(xù)執(zhí)行以下步驟;(6)會(huì)話管理器把請(qǐng)求消息經(jīng)過(guò)處理后轉(zhuǎn)發(fā)給實(shí)例管理器;(7)實(shí)例管理器根據(jù)請(qǐng)求消息中攜帶的請(qǐng)求作業(yè)的類型、作業(yè)定義的地址等信息,調(diào)用定義解析器,創(chuàng)建靜態(tài)模型對(duì)象;(8)實(shí)例管理器根據(jù)創(chuàng)建的靜態(tài)模型對(duì)象調(diào)用編譯器生成運(yùn)行時(shí)作業(yè)實(shí)例,并把請(qǐng)求消息轉(zhuǎn)交給新創(chuàng)建的作業(yè)實(shí)例進(jìn)行處理;(8’)會(huì)話管理器把請(qǐng)求消息轉(zhuǎn)交給正確的作業(yè)實(shí)例進(jìn)行處理;(9)作業(yè)實(shí)例開(kāi)始自主執(zhí)行,在執(zhí)行的過(guò)程中,如果有調(diào)用外界服務(wù)類型的活動(dòng)實(shí)例需要執(zhí)行,則把相應(yīng)的參數(shù)傳遞給正確的活動(dòng)實(shí)例;(10)該活動(dòng)實(shí)例經(jīng)過(guò)適當(dāng)?shù)臄?shù)據(jù)處理,把請(qǐng)求參數(shù)交給活動(dòng)調(diào)用管理器;(11)活動(dòng)調(diào)用管理器接收來(lái)自活動(dòng)實(shí)例的請(qǐng)求參數(shù),根據(jù)服務(wù)實(shí)現(xiàn)的綁定策略綁定到合適的服務(wù)實(shí)現(xiàn),把請(qǐng)求參數(shù)經(jīng)過(guò)裝配和預(yù)處理之后發(fā)給外界服務(wù)模塊;(12)外界服務(wù)把響應(yīng)消息返回給活動(dòng)調(diào)用管理器;活動(dòng)調(diào)用管理器把返回的響應(yīng)消息經(jīng)過(guò)解析和適當(dāng)?shù)奶幚砗?,交給對(duì)應(yīng)的活動(dòng)實(shí)例;活動(dòng)實(shí)例進(jìn)行適當(dāng)?shù)臄?shù)據(jù)處理,并通知服務(wù)實(shí)例更新實(shí)例執(zhí)行的上下文信息;作業(yè)實(shí)例在執(zhí)行過(guò)程中,對(duì)服務(wù)的請(qǐng)求做出響應(yīng),把響應(yīng)消息傳到會(huì)話管理器;(13)會(huì)話管理器接收來(lái)自作業(yè)實(shí)例的響應(yīng)消息,標(biāo)記上適當(dāng)?shù)臅?huì)話標(biāo)識(shí)信息,并對(duì)響應(yīng)消息進(jìn)行適當(dāng)?shù)奶幚?,交給作業(yè)管理器入口;(14)作業(yè)管理器入口終止阻塞過(guò)程,把響應(yīng)消息交給服務(wù)容器;(15)服務(wù)容器對(duì)響應(yīng)消息經(jīng)過(guò)適當(dāng)?shù)暮筇幚?如日志、加密等),返回給作業(yè)請(qǐng)求者;至此,整個(gè)請(qǐng)求的處理過(guò)程結(jié)束。
圖1為北航WebSASE4G網(wǎng)格服務(wù)運(yùn)行平臺(tái)體系結(jié)構(gòu)示意2為本發(fā)明網(wǎng)格作業(yè)管理器的結(jié)構(gòu)示意3為本發(fā)明網(wǎng)格作業(yè)管理器工作流程4為本發(fā)明作業(yè)管理器入口工作流程5為本發(fā)明會(huì)話管理器工作流程6為本發(fā)明實(shí)例管理器創(chuàng)建作業(yè)實(shí)例工作流程7為本發(fā)明實(shí)例管理器掛起作業(yè)實(shí)例工作流程8為本發(fā)明實(shí)例管理器恢復(fù)作業(yè)實(shí)例工作流程9為本發(fā)明實(shí)例管理器終止作業(yè)實(shí)例工作流程10為本發(fā)明編譯器編譯處理工作流程11為本發(fā)明作業(yè)實(shí)例處理流程12為本發(fā)明活動(dòng)調(diào)用管理器工作流程13為本發(fā)明活動(dòng)調(diào)用管理器調(diào)用外界服務(wù)的調(diào)用處理流程14為本發(fā)明累加作業(yè)流程圖具體實(shí)施方式
圖2為本發(fā)明網(wǎng)格作業(yè)管理器的結(jié)構(gòu)示意圖。如圖所示,本發(fā)明網(wǎng)格作業(yè)管理器分為請(qǐng)求消息處理部分1和活動(dòng)實(shí)現(xiàn)調(diào)用部分2兩部分。外界發(fā)起的網(wǎng)格服務(wù)作業(yè)請(qǐng)求首先被網(wǎng)格服務(wù)運(yùn)行平臺(tái)的服務(wù)容器接收,經(jīng)服務(wù)容器的解析、加密、日志等預(yù)處理,包裝成統(tǒng)一的消息上下文格式后傳遞給請(qǐng)求消息處理部分1;請(qǐng)求消息處理部分1接收到預(yù)處理的網(wǎng)格作業(yè)請(qǐng)求信息后,對(duì)外界請(qǐng)求作業(yè)消息進(jìn)行進(jìn)一步地解析、編譯、調(diào)度和執(zhí)行。在請(qǐng)求消息處理部分1執(zhí)行網(wǎng)格作業(yè)的過(guò)程中,活動(dòng)實(shí)現(xiàn)調(diào)用部分2根據(jù)需要調(diào)用不同的外界服務(wù)模塊,完成網(wǎng)格作業(yè)?;顒?dòng)實(shí)現(xiàn)調(diào)用部分2具有統(tǒng)一的調(diào)用接口,用于調(diào)用不同的外界服務(wù)模塊。由于在作業(yè)的執(zhí)行過(guò)程中需要其他成員服務(wù)的執(zhí)行來(lái)完成其業(yè)務(wù)功能,活動(dòng)實(shí)現(xiàn)調(diào)用部分主要完成屏蔽不同服務(wù)調(diào)用細(xì)節(jié),在服務(wù)調(diào)用中通過(guò)提供不同的調(diào)用模塊來(lái)對(duì)不同活動(dòng)的實(shí)現(xiàn)體進(jìn)行調(diào)用,這些不同的調(diào)用模塊具有統(tǒng)一的調(diào)用接口,保證了在運(yùn)行時(shí)提供對(duì)新的服務(wù)實(shí)現(xiàn)體的擴(kuò)充和支持。
請(qǐng)求消息處理部分1包括作業(yè)管理器入口、會(huì)話管理器、實(shí)例管理器、定義解析器和編譯器。
作業(yè)管理器入口與網(wǎng)格服務(wù)運(yùn)行平臺(tái)的服務(wù)容器相連,接收服務(wù)容器預(yù)處理后的請(qǐng)求作業(yè)消息。會(huì)話管理器的主要功能是實(shí)現(xiàn)會(huì)話管理,使得請(qǐng)求消息能夠定位到正確的作業(yè)實(shí)例,并在響應(yīng)消息和外出請(qǐng)求消息中標(biāo)識(shí)上會(huì)話信息,使交互另一方的作業(yè)管理器能夠識(shí)別出正確的作業(yè)實(shí)例。實(shí)例管理器的主要功能是完成作業(yè)實(shí)例的調(diào)度管理,按照調(diào)度策略對(duì)請(qǐng)求消息進(jìn)行排隊(duì),對(duì)作業(yè)實(shí)例進(jìn)行生命期狀態(tài)的管理,對(duì)外提供管理操作接口。定義解析器完成對(duì)作業(yè)定義的解析功能,它由實(shí)例管理器發(fā)起調(diào)用,生成靜態(tài)的模型對(duì)象;編譯器完成作業(yè)實(shí)例的生成,它由實(shí)例管理器發(fā)起調(diào)用,最終生成可以自主執(zhí)行的作業(yè)實(shí)例。作業(yè)實(shí)例是由實(shí)例管理器創(chuàng)建的包含實(shí)例數(shù)據(jù)和運(yùn)行控制于一體的運(yùn)行時(shí)對(duì)象,它自主地完成實(shí)例的解釋執(zhí)行功能;所有的作業(yè)實(shí)例組成實(shí)例池?;顒?dòng)實(shí)例是作業(yè)實(shí)例的一部分,在實(shí)例管理器創(chuàng)建作業(yè)實(shí)例時(shí)一并創(chuàng)建,由作業(yè)實(shí)例統(tǒng)一管理,所有活動(dòng)實(shí)例構(gòu)成活動(dòng)實(shí)例集合。
活動(dòng)實(shí)現(xiàn)調(diào)用部分2主要包括活動(dòng)調(diào)用管理器。
活動(dòng)調(diào)用管理器完成對(duì)外界服務(wù)模塊的調(diào)用管理功能,包括對(duì)外界服務(wù)的綁定以及請(qǐng)求消息的裝配和預(yù)處理。
此外,配置解析器完成作業(yè)管理器的配置功能,它在系統(tǒng)初始化的時(shí)候由實(shí)例管理器調(diào)用;SOAP消息處理器完成SOAP消息的解析和裝配功能,它在運(yùn)行時(shí)由會(huì)話管理器和活動(dòng)調(diào)用管理器調(diào)用;日志管理器完成系統(tǒng)的日志功能,它在系統(tǒng)初始化的時(shí)候啟動(dòng)運(yùn)行,在系統(tǒng)運(yùn)行時(shí)由實(shí)例管理器、作業(yè)實(shí)例和活動(dòng)實(shí)例調(diào)用。
上述網(wǎng)格作業(yè)管理器對(duì)于外界請(qǐng)求處理的作業(yè)進(jìn)行解釋執(zhí)行、監(jiān)控管理的過(guò)程如圖3所示,過(guò)程如下(1)作業(yè)管理器入口接收外界的網(wǎng)格作業(yè)請(qǐng)求外界網(wǎng)格作業(yè)請(qǐng)求通常是以SOAP報(bào)文形式傳遞給網(wǎng)格服務(wù)運(yùn)行平臺(tái)的服務(wù)容器;經(jīng)服務(wù)容器的預(yù)處理后轉(zhuǎn)發(fā)給作業(yè)管理器入口;作業(yè)管理器入口主要完成接收經(jīng)服務(wù)容器預(yù)處理后的外界網(wǎng)格作業(yè)請(qǐng)求。
(2)作業(yè)管理器入口阻塞本次調(diào)用,把請(qǐng)求消息轉(zhuǎn)交給會(huì)話管理器;(3)會(huì)話管理器分離出會(huì)話標(biāo)識(shí)信息,根據(jù)會(huì)話標(biāo)識(shí)信息確定正確的作業(yè)實(shí)例;(4)會(huì)話管理器在作業(yè)實(shí)例池中查找上述作業(yè)實(shí)例,判斷是否能夠找到正確的作業(yè)實(shí)例,如果能找到正確的作業(yè)實(shí)例,則跳轉(zhuǎn)到步驟(8’);(5)若會(huì)話管理器沒(méi)有找到正確的作業(yè)實(shí)例,進(jìn)一步判斷該作業(yè)實(shí)例是否是正確的請(qǐng)求,如果不是,會(huì)話管理器進(jìn)行出錯(cuò)處理;如果是正確的請(qǐng)求,繼續(xù)執(zhí)行以下步驟;(6)會(huì)話管理器把請(qǐng)求消息經(jīng)過(guò)處理后轉(zhuǎn)發(fā)給實(shí)例管理器;(7)實(shí)例管理器根據(jù)請(qǐng)求消息中攜帶的請(qǐng)求作業(yè)的類型、作業(yè)定義的地址等信息,調(diào)用定義解析器,創(chuàng)建靜態(tài)模型對(duì)象;(8)實(shí)例管理器根據(jù)創(chuàng)建的靜態(tài)模型對(duì)象調(diào)用編譯器生成運(yùn)行時(shí)作業(yè)實(shí)例,并把請(qǐng)求消息轉(zhuǎn)交給新創(chuàng)建的作業(yè)實(shí)例進(jìn)行處理;(8’)會(huì)話管理器把請(qǐng)求消息轉(zhuǎn)交給正確的作業(yè)實(shí)例進(jìn)行處理;(9)作業(yè)實(shí)例開(kāi)始自主執(zhí)行,在執(zhí)行的過(guò)程中,如果有調(diào)用外界服務(wù)類型的活動(dòng)實(shí)例需要執(zhí)行,則把相應(yīng)的參數(shù)傳遞給正確的活動(dòng)實(shí)例;(10)該活動(dòng)實(shí)例經(jīng)過(guò)適當(dāng)?shù)臄?shù)據(jù)處理,把請(qǐng)求參數(shù)交給活動(dòng)調(diào)用管理器;(11)活動(dòng)調(diào)用管理器接收來(lái)自活動(dòng)實(shí)例的請(qǐng)求參數(shù),根據(jù)服務(wù)實(shí)現(xiàn)的綁定策略綁定到合適的服務(wù)實(shí)現(xiàn),把請(qǐng)求參數(shù)經(jīng)過(guò)裝配和預(yù)處理之后發(fā)給外界服務(wù)模塊;(12)外界服務(wù)把響應(yīng)消息返回給活動(dòng)調(diào)用管理器;活動(dòng)調(diào)用管理器把返回的響應(yīng)消息經(jīng)過(guò)解析和適當(dāng)?shù)奶幚砗?,交給對(duì)應(yīng)的活動(dòng)實(shí)例;活動(dòng)實(shí)例進(jìn)行適當(dāng)?shù)臄?shù)據(jù)處理,并通知服務(wù)實(shí)例更新實(shí)例執(zhí)行的上下文信息;作業(yè)實(shí)例在執(zhí)行過(guò)程中,對(duì)服務(wù)的請(qǐng)求做出響應(yīng),把響應(yīng)消息傳到會(huì)話管理器;(13)會(huì)話管理器接收來(lái)自作業(yè)實(shí)例的響應(yīng)消息,標(biāo)記上適當(dāng)?shù)臅?huì)話標(biāo)識(shí)信息,并對(duì)響應(yīng)消息進(jìn)行適當(dāng)?shù)奶幚恚唤o作業(yè)管理器入口;(14)作業(yè)管理器入口終止阻塞過(guò)程,把響應(yīng)消息交給服務(wù)容器;(15)服務(wù)容器對(duì)響應(yīng)消息經(jīng)過(guò)適當(dāng)?shù)暮筇幚?如日志、加密等),返回給作業(yè)請(qǐng)求者;至此,整個(gè)請(qǐng)求的處理過(guò)程結(jié)束。
下面詳細(xì)說(shuō)明作業(yè)管理器中主要部件的詳細(xì)功能和實(shí)現(xiàn)流程。
1、作業(yè)管理器入口作業(yè)管理器入口作為本發(fā)明網(wǎng)格作業(yè)管理器的入口,主要功能是在網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)的服務(wù)容器和網(wǎng)格作業(yè)管理器之間傳遞處理參數(shù),即接收來(lái)自服務(wù)容器預(yù)處理后的網(wǎng)格作業(yè)請(qǐng)求消息,并把請(qǐng)求消息經(jīng)封裝以后傳遞給會(huì)話管理器;以及,接收來(lái)自會(huì)話管理器的響應(yīng)消息,并把響應(yīng)消息轉(zhuǎn)交給服務(wù)容器。
作業(yè)管理器入口的處理主流程如圖4所示,包括以下步驟1)從網(wǎng)格服務(wù)運(yùn)行平臺(tái)服務(wù)容器處接收請(qǐng)求消息,并把請(qǐng)求消息封裝為作業(yè)管理器內(nèi)部使用的作業(yè)處理上下文;2)把作業(yè)處理上下文交給會(huì)話管理器進(jìn)行處理;3)阻塞處理過(guò)程,會(huì)話管理器和其他的部件對(duì)作業(yè)上下文進(jìn)行進(jìn)一步處理,直到本次請(qǐng)求響應(yīng)產(chǎn)生;4)把響應(yīng)結(jié)果封裝成符合格式要求的響應(yīng)消息;5)把響應(yīng)消息返回給服務(wù)容器。
2、會(huì)話管理器會(huì)話管理器的主要功能是保持作業(yè)實(shí)例與其他有狀態(tài)的作業(yè)實(shí)例之間的會(huì)話。在作業(yè)處理的上下文到達(dá)時(shí),會(huì)話管理器負(fù)責(zé)把上下文交給正確的作業(yè)實(shí)例進(jìn)行處理;在處理結(jié)束時(shí),會(huì)話管理器負(fù)責(zé)在響應(yīng)結(jié)果中標(biāo)識(shí)上正確的實(shí)例標(biāo)識(shí),并把結(jié)果轉(zhuǎn)交給作業(yè)管理器入口。
會(huì)話管理器的處理主流程如圖5所示,包括以下步驟1)會(huì)話管理器從作業(yè)管理器入口處獲得作業(yè)處理上下文;2)從作業(yè)處理上下文中分離出會(huì)話標(biāo)識(shí)信息;3)會(huì)話管理器根據(jù)獲得的會(huì)話標(biāo)識(shí)信息從作業(yè)實(shí)例集合中查找正確的作業(yè)實(shí)例,如果找到正確的作業(yè)實(shí)例,則跳轉(zhuǎn)到步驟6);4)如果沒(méi)有找到,根據(jù)作業(yè)處理上下文中攜帶的信息定位作業(yè)定義的位置,調(diào)用解析器解析作業(yè)定義,創(chuàng)建靜態(tài)模型;5)調(diào)用編譯器,創(chuàng)建新的作業(yè)實(shí)例;6)會(huì)話管理器把作業(yè)處理上下文交給正確的作業(yè)實(shí)例進(jìn)行處理;7)阻塞處理過(guò)程,直到產(chǎn)生處理結(jié)果產(chǎn)生;8)在產(chǎn)生的結(jié)果中標(biāo)識(shí)會(huì)話標(biāo)識(shí)信息;
9)把處理后的結(jié)果返回給作業(yè)管理器入口。
3、實(shí)例管理器實(shí)例管理器的主要功能是創(chuàng)建作業(yè)實(shí)例、掛起作業(yè)實(shí)例、恢復(fù)作業(yè)實(shí)例和終止作業(yè)實(shí)例,對(duì)作業(yè)實(shí)例進(jìn)行管理。
實(shí)例管理器創(chuàng)建作業(yè)實(shí)例的處理主流程如圖6所示,包括以下步驟1)首先獲得作業(yè)的定義文件位置;2)然后調(diào)用解析器生成作業(yè)的靜態(tài)模型對(duì)象;3)再調(diào)用編譯器生成作業(yè)實(shí)例;4)創(chuàng)建作業(yè)處理上下文信息;5)返回作業(yè)實(shí)例的標(biāo)識(shí)ID,注冊(cè)新生成的作業(yè)實(shí)例。
實(shí)例管理器掛起作業(yè)實(shí)例的處理主流程如圖7所示,包括以下步驟1)把作業(yè)實(shí)例的狀態(tài)改變?yōu)閽炱馉顟B(tài),并通知作業(yè)實(shí)例掛起執(zhí)行;2)作業(yè)實(shí)例依次通知其中的活動(dòng)和正在運(yùn)行的遠(yuǎn)端服務(wù),通知它們掛起執(zhí)行,在這里需要調(diào)用遠(yuǎn)端服務(wù)或者服務(wù)容器的掛起執(zhí)行接口;3)返回操作結(jié)果。
實(shí)例管理器恢復(fù)作業(yè)實(shí)例的處理主流程如圖8所示,包括以下步驟1)把作業(yè)實(shí)例的狀態(tài)改變?yōu)檫\(yùn)行狀態(tài),并通知作業(yè)實(shí)例開(kāi)始執(zhí)行;2)作業(yè)實(shí)例依次通知處于掛起狀態(tài)的活動(dòng)和遠(yuǎn)端的掛起服務(wù),通知它們恢復(fù)執(zhí)行,在這里需要調(diào)用遠(yuǎn)端服務(wù)或者服務(wù)容器提供的恢復(fù)執(zhí)行服務(wù)接口;3)返回操作結(jié)果。
實(shí)例管理器終止作業(yè)實(shí)例的處理主流程如圖9所示,包括以下步驟1)把作業(yè)實(shí)例的狀態(tài)改變?yōu)榻K止?fàn)顟B(tài),并通知作業(yè)實(shí)例終止運(yùn)行;2)作業(yè)實(shí)例依次通知處于運(yùn)行或者掛起狀態(tài)的活動(dòng)和遠(yuǎn)端的正在運(yùn)行或者掛起的服務(wù),通知它們終止運(yùn)行,在這里需要調(diào)用遠(yuǎn)端服務(wù)或者服務(wù)容器的終止運(yùn)行服務(wù)接口;3)返回操作結(jié)果。
4、定義解析器定義解析器的主要的功能是解析作業(yè)定義文件,把作業(yè)定義從文件中讀出,最終生成作業(yè)的靜態(tài)模型。
定義解析器的解析過(guò)程就是利用XML相關(guān)技術(shù)(DOM、SAX、XSL等)對(duì)XML文檔(作業(yè)定義文件)進(jìn)行解析,其處理流程為常用方法不再敘述。
5、編譯器編譯器的主要功能是根據(jù)作業(yè)的靜態(tài)模型,生成作業(yè)實(shí)例,并依次生成作業(yè)實(shí)例中各個(gè)屬性。
編譯器的處理主流程如圖10所示,其處理過(guò)程如下1)接受解析器生成的靜態(tài)模型;2)新建作業(yè)實(shí)例,并逐項(xiàng)編譯作業(yè)實(shí)例的靜態(tài)模型屬性,依次編譯的屬性有參與者信息、作業(yè)相關(guān)數(shù)據(jù)信息、錯(cuò)誤處理器信息、事件處理器信息、補(bǔ)償處理器信息和各種活動(dòng)的信息。
其中,作業(yè)實(shí)例是包含數(shù)據(jù)和控制邏輯于一體的對(duì)象,它保存了作業(yè)執(zhí)行的狀態(tài)等上下文信息,也封裝了作業(yè)的執(zhí)行邏輯,并對(duì)外提供操作作業(yè)實(shí)例的接口。
作業(yè)實(shí)例的處理主流程如圖11所示,說(shuō)明如下1)作業(yè)實(shí)例的初始化,作業(yè)實(shí)例把作業(yè)的狀態(tài)設(shè)置為就緒狀態(tài),并通知生命期事件的偵聽(tīng)者進(jìn)行初始化工作;2)作業(yè)實(shí)例開(kāi)始自主運(yùn)行,并把自身狀態(tài)設(shè)置為運(yùn)行狀態(tài),通知生命期事件的偵聽(tīng)者進(jìn)行其他準(zhǔn)備工作,例如向日志數(shù)據(jù)庫(kù)中記錄當(dāng)前的狀態(tài)改變;3)作業(yè)實(shí)例判斷作業(yè)是否已經(jīng)執(zhí)行完成,如果執(zhí)行完成,則跳轉(zhuǎn)到步驟6);4)從事件隊(duì)列中取出一個(gè)等待處理的事件,進(jìn)行處理;在作業(yè)管理器中定義的事件類型共有八種,這些不同的事件繼承自統(tǒng)一的基類,具有不同的事件偵聽(tīng)者和不同的事件處理語(yǔ)義;處理事件的主要步驟就是通知響應(yīng)的事件偵聽(tīng)者處理事件;5)跳轉(zhuǎn)到步驟3);6)作業(yè)實(shí)例執(zhí)行完畢,向?qū)嵗芾砥魃暾?qǐng)銷毀實(shí)例。
6、活動(dòng)調(diào)用管理器活動(dòng)調(diào)用管理器的主要功能是接收調(diào)用外界服務(wù)模塊的請(qǐng)求,對(duì)這些請(qǐng)求進(jìn)行排隊(duì),完成對(duì)于外界服務(wù)的調(diào)用并把結(jié)果返回。
活動(dòng)調(diào)用管理器處理的主流程如圖12所示,具體包括以下步驟1)活動(dòng)調(diào)用管理器接收活動(dòng)實(shí)例調(diào)用外界服務(wù)的請(qǐng)求參數(shù);2)把請(qǐng)求放入隊(duì)列中進(jìn)行排隊(duì)處理;
3)判斷作業(yè)執(zhí)行是否完畢,如果執(zhí)行完畢,則跳轉(zhuǎn)到步驟6);4)取出一個(gè)請(qǐng)求進(jìn)行處理,主要是按照請(qǐng)求參數(shù)里面的內(nèi)容,初始化調(diào)用對(duì)象,完成對(duì)外界服務(wù)的調(diào)用,并返回最終的調(diào)用結(jié)果;5)跳轉(zhuǎn)到步驟3)執(zhí)行;6)結(jié)束。
上述步驟4)進(jìn)一步包括以下步驟,如圖13所示,1)獲得調(diào)用外界服務(wù)類型活動(dòng)的靜態(tài)訪問(wèn)點(diǎn)屬性,查看該屬性值是否為空,如果為空,則跳轉(zhuǎn)到步驟4);否則,繼續(xù)執(zhí)行以下步驟;2)查詢信息中心,根據(jù)該活動(dòng)的超級(jí)服務(wù)標(biāo)識(shí)和服務(wù)選擇條件調(diào)用信息中心提供的查詢接口,獲得可用服務(wù)的列表;3)判斷可用服務(wù)的列表是否為空,如果為空,返回出錯(cuò)信息,并通知作業(yè)實(shí)例進(jìn)行后續(xù)處理;否則,繼續(xù)執(zhí)行以下步驟;4)按照指定的選擇策略(例如隨機(jī)選擇)選擇服務(wù)進(jìn)行調(diào)用;5)判斷輪詢方法屬性是否為空,如果為空,說(shuō)明是普通Web服務(wù),則跳轉(zhuǎn)到步驟7)6)如果不為空,說(shuō)明是WSRF標(biāo)準(zhǔn)的服務(wù),在服務(wù)的執(zhí)行過(guò)程中每隔一定時(shí)間間隔更新時(shí)間戳,并獲得服務(wù)的執(zhí)行狀態(tài);7)判斷服務(wù)的調(diào)用是否出錯(cuò),如果出錯(cuò),返回錯(cuò)誤結(jié)果,通知作業(yè)實(shí)例,并進(jìn)行重新的調(diào)度過(guò)程,跳轉(zhuǎn)到步驟2);8)如果執(zhí)行的過(guò)程中沒(méi)有出錯(cuò),獲得服務(wù)的返回結(jié)果,整個(gè)調(diào)度執(zhí)行過(guò)程結(jié)束。
下面結(jié)合一個(gè)具體的作業(yè),說(shuō)明作業(yè)管理器對(duì)外部請(qǐng)求處理的作業(yè)進(jìn)行解釋執(zhí)行、監(jiān)控管理的過(guò)程。
該作業(yè)是根據(jù)兩個(gè)給定數(shù)m和n(m<n),計(jì)算 作業(yè)定義的流程圖如圖14所示,說(shuō)明如下(1)接收對(duì)于累加作業(yè)的請(qǐng)求,也就是累加的初始值m和n;(2)始化循環(huán)控制變量初值;(3)判斷循環(huán)條件,如果循環(huán)變量值超出預(yù)定值,則跳轉(zhuǎn)到步驟(7),否則執(zhí)行步驟(4);(4)為調(diào)用Add服務(wù)的變量賦值;(5)調(diào)用Add服務(wù),完成加和功能,并保存結(jié)果;(6)更新循環(huán)變量,并更新最終結(jié)果,然后返回執(zhí)行步驟(3);
(7)返回最終的累加結(jié)果;(8)結(jié)束。
根據(jù)上述累加作業(yè)的流程,使用可視化建模工具或者手工書寫作業(yè)定義,它是由作業(yè)定義語(yǔ)言GJDL(網(wǎng)格作業(yè)描述語(yǔ)言)描述的;最終由作業(yè)定義生成作業(yè)的部署文件。
在作業(yè)得到運(yùn)行之前,需要在至少兩臺(tái)機(jī)器(CPU主頻1000MHZ以上,內(nèi)存512MB以上)上安裝網(wǎng)格服務(wù)容器和作業(yè)管理器,并在其中的一臺(tái)機(jī)器上部署實(shí)現(xiàn)開(kāi)發(fā)完成的Web服務(wù)Add,它的功能是完成兩個(gè)數(shù)的加和;在另外一臺(tái)機(jī)器上部署累加作業(yè)Totalup(把作業(yè)部署文件部署在作業(yè)管理器指定的位置)。
所有這些準(zhǔn)備工作完成以后,就可以通過(guò)客戶端訪問(wèn)作業(yè),并獲得最終的累加結(jié)果。
本專利所提出的網(wǎng)格作業(yè)管理器提供了對(duì)于流程性網(wǎng)格作業(yè)的支持,它通過(guò)服務(wù)容器完成作業(yè)請(qǐng)求消息的預(yù)處理、通過(guò)會(huì)話管理器完成作業(yè)之間的會(huì)話功能、通過(guò)實(shí)例管理器完成作業(yè)實(shí)例的管理、通過(guò)作業(yè)實(shí)例和調(diào)用管理器完成作業(yè)的解釋執(zhí)行,與同類的產(chǎn)品和軟件系統(tǒng)進(jìn)行比較具有以下的技術(shù)特點(diǎn)1)在網(wǎng)格作業(yè)中引進(jìn)工作流機(jī)制,可以構(gòu)造網(wǎng)格中復(fù)雜的業(yè)務(wù)流程,進(jìn)而支持流程性作業(yè)。
2)完全面向服務(wù)構(gòu)造。作業(yè)是由組合多個(gè)服務(wù)構(gòu)成的,同時(shí)作業(yè)本身也發(fā)布為一個(gè)服務(wù)供外界訪問(wèn)。
3)分層的消息處理結(jié)構(gòu)從消息的處理過(guò)程看,作業(yè)管理器可以分為三個(gè)處理層次請(qǐng)求消息的預(yù)處理層、請(qǐng)求消息的處理層和活動(dòng)實(shí)現(xiàn)的調(diào)用層。這樣的處理結(jié)構(gòu)使得處理過(guò)程變得清晰,簡(jiǎn)化了處理過(guò)程的復(fù)雜性。
4)靈活的會(huì)話機(jī)制作業(yè)的執(zhí)行過(guò)程可能需要涉及到多個(gè)作業(yè)實(shí)例之間的交互,為了保證實(shí)例之間的請(qǐng)求和異步響應(yīng)消息能夠正確地遞交,需要提供作業(yè)實(shí)例級(jí)別的會(huì)話管理功能。提供了三種不同的會(huì)話機(jī)制基于會(huì)話ID的機(jī)制、基于回調(diào)地址的會(huì)話機(jī)制和基于相關(guān)集的會(huì)話機(jī)制,并把這三種會(huì)話機(jī)制結(jié)合起來(lái),基本上可以滿足作業(yè)之間以及作業(yè)和成員服務(wù)之間的交互場(chǎng)景,并在一定程度上滿足會(huì)話靈活性的要求。
5)基于事件的消息傳遞機(jī)制作業(yè)實(shí)例和活動(dòng)實(shí)例之間通過(guò)各種不同的事件機(jī)制來(lái)進(jìn)行聯(lián)系,例如接受外界請(qǐng)求的活動(dòng)、調(diào)用外界服務(wù)實(shí)現(xiàn)的活動(dòng)在執(zhí)行結(jié)束的時(shí)候分別觸發(fā)相應(yīng)的事件,作業(yè)實(shí)例作為事件的接受者在接受到這些事件以后分別做出相應(yīng)的處理繼續(xù)作業(yè)的執(zhí)行。基于事件的消息傳遞機(jī)制使得作業(yè)管理器的內(nèi)部模塊分割更為清晰,符合面向?qū)ο蟮脑O(shè)計(jì)要求。
6)多種成員服務(wù)綁定方式在作業(yè)的執(zhí)行過(guò)程中,成員服務(wù)的定位、發(fā)現(xiàn)與綁定是涉及作業(yè)執(zhí)行動(dòng)態(tài)性和可靠性的一個(gè)重要的方面。在作業(yè)管理器的實(shí)現(xiàn)中,我們提供了多種成員服務(wù)綁定方式的支持(本地方式、靜態(tài)方式、信息服務(wù)方式、動(dòng)態(tài)方式),增加了作業(yè)執(zhí)行過(guò)程的動(dòng)態(tài)性和可靠性。
權(quán)利要求
1.一種網(wǎng)格作業(yè)管理器,其特征在于它包括請(qǐng)求消息處理部分和活動(dòng)實(shí)現(xiàn)調(diào)用部分;請(qǐng)求消息處理部分接收網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)服務(wù)容器預(yù)處理后的網(wǎng)格作業(yè)請(qǐng)求消息,并對(duì)其進(jìn)行解析、編譯、調(diào)度和執(zhí)行;活動(dòng)實(shí)現(xiàn)調(diào)用部分具有統(tǒng)一的調(diào)用接口,負(fù)責(zé)調(diào)用不同的外界服務(wù)模塊,保證在請(qǐng)求消息處理部分調(diào)度、執(zhí)行網(wǎng)格作業(yè)時(shí)提供不同的外部服務(wù),以及對(duì)新的服務(wù)實(shí)現(xiàn)體的擴(kuò)充和支持。
2.根據(jù)權(quán)利要求1所述的一種網(wǎng)格作業(yè)管理器,其特征在于所述請(qǐng)求消息處理部分包括作業(yè)管理器入口、會(huì)話管理器、實(shí)例管理器、定義解析器和編譯器;作業(yè)管理器入口與網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)的服務(wù)容器相連,接收服務(wù)容器預(yù)處理后的網(wǎng)格作業(yè)請(qǐng)求消息,并將接收的請(qǐng)求消息傳遞給與之相連的會(huì)話管理器;另外,作業(yè)管理器入口還接收來(lái)自會(huì)話管理器的響應(yīng)消息,并把響應(yīng)消息轉(zhuǎn)交給網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)的服務(wù)容器;會(huì)話管理器的主要功能是保持作業(yè)實(shí)例與其他有狀態(tài)的服務(wù)實(shí)例之間的會(huì)話;在作業(yè)實(shí)例處理的上下文到達(dá)時(shí),會(huì)話管理器負(fù)責(zé)把上下文交給正確的作業(yè)實(shí)例進(jìn)行處理;在處理結(jié)束時(shí),會(huì)話管理器負(fù)責(zé)在響應(yīng)結(jié)果中標(biāo)識(shí)上正確的實(shí)例標(biāo)識(shí),并把結(jié)果轉(zhuǎn)交給作業(yè)管理器入口;實(shí)例管理器主要完成創(chuàng)建作業(yè)實(shí)例、掛起作業(yè)實(shí)例、恢復(fù)作業(yè)實(shí)例和終止作業(yè)實(shí)例,對(duì)作業(yè)實(shí)例進(jìn)行調(diào)度管理,按照調(diào)度策略對(duì)請(qǐng)求消息進(jìn)行排隊(duì),對(duì)作業(yè)實(shí)例進(jìn)行生命期狀態(tài)的管理,對(duì)外提供管理操作接口;定義解析器主要功能是解析作業(yè)定義文件,把作業(yè)定義從文件中讀入,它由實(shí)例管理器發(fā)起調(diào)用,最終生成作業(yè)的靜態(tài)模型;編譯器的主要功能是根據(jù)作業(yè)的靜態(tài)模型,生成作業(yè)實(shí)例,依次生成作業(yè)實(shí)例中各個(gè)屬性,它由實(shí)例管理器發(fā)起調(diào)用,最終生成可以自主執(zhí)行的作業(yè)實(shí)例和活動(dòng)實(shí)例集合;作業(yè)實(shí)例是由實(shí)例管理器創(chuàng)建的包含實(shí)例數(shù)據(jù)和運(yùn)行控制于一體的運(yùn)行時(shí)對(duì)象,它自主地完成實(shí)例的解釋執(zhí)行功能;活動(dòng)實(shí)例是服務(wù)實(shí)例的一部分,在實(shí)例管理器創(chuàng)建作業(yè)實(shí)例時(shí)一并創(chuàng)建,由作業(yè)實(shí)例統(tǒng)一管理。
3.根據(jù)權(quán)利要求1或2所述的一種網(wǎng)格作業(yè)管理器,其特征在于所述活動(dòng)實(shí)現(xiàn)調(diào)用部分主要包括活動(dòng)調(diào)用管理器;該活動(dòng)調(diào)用管理器完成對(duì)外界服務(wù)的調(diào)用管理功能,包括對(duì)外界服務(wù)的綁定以及請(qǐng)求消息的裝配和預(yù)處理。
4.根據(jù)權(quán)利要求3所述的一種網(wǎng)格作業(yè)管理器,其特征在于該網(wǎng)格作業(yè)管理器還包括配置解析器、SOAP消息處理器和日志管理器;配置解析器完成作業(yè)管理器的配置功能,它在系統(tǒng)初始化的時(shí)候由實(shí)例管理器調(diào)用;SOAP消息處理器完成SOAP消息的解析和裝配功能,它在運(yùn)行時(shí)由會(huì)話管理器和活動(dòng)調(diào)用管理器調(diào)用;日志管理器完成系統(tǒng)的日志功能,它在系統(tǒng)初始化的時(shí)候啟動(dòng)運(yùn)行,在系統(tǒng)運(yùn)行時(shí)由實(shí)例管理器、作業(yè)實(shí)例和活動(dòng)實(shí)例調(diào)用。
5.一種網(wǎng)格作業(yè)管理方法,它利用由作業(yè)管理器入口、會(huì)話管理器、實(shí)例管理器、定義解析器、編譯器和活動(dòng)調(diào)用管理器構(gòu)成的網(wǎng)格作業(yè)管理器對(duì)網(wǎng)格作業(yè)進(jìn)行解釋執(zhí)行、監(jiān)控和管理,具體方法如下(1)作業(yè)管理器入口接收外界發(fā)起的網(wǎng)格作業(yè)請(qǐng)求;(2)作業(yè)管理器入口阻塞本次調(diào)用,把請(qǐng)求消息轉(zhuǎn)交給會(huì)話管理器;(3)會(huì)話管理器分離出會(huì)話標(biāo)識(shí)信息,根據(jù)會(huì)話標(biāo)識(shí)信息確定正確的作業(yè)實(shí)例;(4)會(huì)話管理器在作業(yè)實(shí)例池中查找上述作業(yè)實(shí)例,判斷是否能夠找到正確的作業(yè)實(shí)例,如果能找到正確的作業(yè)實(shí)例,則跳轉(zhuǎn)到步驟(8’);(5)若會(huì)話管理器沒(méi)有找到正確的作業(yè)實(shí)例,進(jìn)一步判斷該作業(yè)實(shí)例是否是正確的請(qǐng)求,如果不是,會(huì)話管理器進(jìn)行出錯(cuò)處理;如果是正確的請(qǐng)求,繼續(xù)執(zhí)行以下步驟;(6)會(huì)話管理器把請(qǐng)求消息經(jīng)過(guò)處理后轉(zhuǎn)發(fā)給實(shí)例管理器;(7)實(shí)例管理器根據(jù)請(qǐng)求消息中攜帶的請(qǐng)求作業(yè)的類型、作業(yè)定義的地址等信息,調(diào)用定義解析器,創(chuàng)建靜態(tài)模型對(duì)象;(8)實(shí)例管理器根據(jù)創(chuàng)建的靜態(tài)模型對(duì)象調(diào)用編譯器生成運(yùn)行時(shí)作業(yè)實(shí)例,并把請(qǐng)求消息轉(zhuǎn)交給新創(chuàng)建的作業(yè)實(shí)例進(jìn)行處理;(8’)會(huì)話管理器把請(qǐng)求消息轉(zhuǎn)交給正確的作業(yè)實(shí)例進(jìn)行處理;(9)作業(yè)實(shí)例開(kāi)始自主執(zhí)行,在執(zhí)行的過(guò)程中,如果有調(diào)用外界服務(wù)類型的活動(dòng)實(shí)例需要執(zhí)行,則把相應(yīng)的參數(shù)傳遞給正確的活動(dòng)實(shí)例;(10)該活動(dòng)實(shí)例經(jīng)過(guò)適當(dāng)?shù)臄?shù)據(jù)處理,把請(qǐng)求參數(shù)交給活動(dòng)調(diào)用管理器;(11)活動(dòng)調(diào)用管理器接收來(lái)自活動(dòng)實(shí)例的請(qǐng)求參數(shù),根據(jù)服務(wù)實(shí)現(xiàn)的綁定策略綁定到合適的服務(wù)實(shí)現(xiàn),把請(qǐng)求參數(shù)經(jīng)過(guò)裝配和預(yù)處理之后發(fā)給外界服務(wù)模塊;(12)外界服務(wù)把響應(yīng)消息返回給活動(dòng)調(diào)用管理器;活動(dòng)調(diào)用管理器把返回的響應(yīng)消息經(jīng)過(guò)解析和適當(dāng)?shù)奶幚砗?,交給對(duì)應(yīng)的活動(dòng)實(shí)例;活動(dòng)實(shí)例進(jìn)行適當(dāng)?shù)臄?shù)據(jù)處理,并通知服務(wù)實(shí)例更新實(shí)例執(zhí)行的上下文信息;作業(yè)實(shí)例在執(zhí)行過(guò)程中,對(duì)服務(wù)的請(qǐng)求做出響應(yīng),把響應(yīng)消息傳到會(huì)話管理器;(13)會(huì)話管理器接收來(lái)自作業(yè)實(shí)例的響應(yīng)消息,標(biāo)記上適當(dāng)?shù)臅?huì)話標(biāo)識(shí)信息,并對(duì)響應(yīng)消息進(jìn)行適當(dāng)?shù)奶幚?,交給作業(yè)管理器入口;(14)作業(yè)管理器入口終止阻塞過(guò)程,把響應(yīng)消息交給服務(wù)容器;(15)服務(wù)容器對(duì)響應(yīng)消息經(jīng)過(guò)適當(dāng)?shù)暮筇幚?如日志、加密等),返回給作業(yè)請(qǐng)求者;至此,整個(gè)請(qǐng)求的處理過(guò)程結(jié)束。
6.根據(jù)權(quán)利要求5所述的一種網(wǎng)格作業(yè)管理方法,其特征在于所述作業(yè)管理器入口的處理主流程包括以下步驟1)從網(wǎng)格服務(wù)運(yùn)行平臺(tái)服務(wù)容器處接收請(qǐng)求消息,并把請(qǐng)求消息封裝為作業(yè)管理器內(nèi)部使用的作業(yè)處理上下文;2)把作業(yè)處理上下文交給會(huì)話管理器進(jìn)行處理;3)阻塞處理過(guò)程,會(huì)話管理器和其他的部件對(duì)作業(yè)上下文進(jìn)行進(jìn)一步處理,直到本次請(qǐng)求響應(yīng)產(chǎn)生;4)把響應(yīng)結(jié)果封裝成符合格式要求的響應(yīng)消息;5)把響應(yīng)消息返回給服務(wù)容器。
7.根據(jù)權(quán)利要求5所述的一種網(wǎng)格作業(yè)管理方法,其特征在于所述會(huì)話管理器的處理主流程包括以下步驟1)會(huì)話管理器從作業(yè)管理器入口處獲得作業(yè)處理上下文;2)從作業(yè)處理上下文中分離出會(huì)話標(biāo)識(shí)信息;3)會(huì)話管理器根據(jù)獲得的會(huì)話標(biāo)識(shí)信息從作業(yè)實(shí)例集合中查找正確的作業(yè)實(shí)例,如果找到正確的作業(yè)實(shí)例,則跳轉(zhuǎn)到步驟6);4)如果沒(méi)有找到,根據(jù)作業(yè)處理上下文中攜帶的信息定位作業(yè)定義的位置,調(diào)用解析器解析作業(yè)定義,創(chuàng)建靜態(tài)模型;5)調(diào)用編譯器,創(chuàng)建新的作業(yè)實(shí)例;6)會(huì)話管理器把作業(yè)處理上下文交給正確的作業(yè)實(shí)例進(jìn)行處理;7)阻塞處理過(guò)程,直到產(chǎn)生處理結(jié)果;8)在產(chǎn)生的結(jié)果中標(biāo)識(shí)會(huì)話標(biāo)識(shí)信息;9)把處理后的結(jié)果返回給作業(yè)管理器入口。
8.根據(jù)權(quán)利要求5所述的一種網(wǎng)格作業(yè)管理方法,其特征在于所述實(shí)例管理器主要完成創(chuàng)建作業(yè)實(shí)例、掛起作業(yè)實(shí)例、恢復(fù)作業(yè)實(shí)例和終止作業(yè)實(shí)例,對(duì)作業(yè)實(shí)例進(jìn)行管理;實(shí)例管理器創(chuàng)建作業(yè)實(shí)例包括以下步驟1)、獲得作業(yè)的定義文件位置;2)、調(diào)用解析器生成作業(yè)的靜態(tài)模型對(duì)象;3)、再調(diào)用編譯器生成作業(yè)實(shí)例;4)、創(chuàng)建作業(yè)處理上下文信息;5)、返回作業(yè)實(shí)例的標(biāo)識(shí)ID,注冊(cè)新生成的作業(yè)實(shí)例;實(shí)例管理器掛起作業(yè)實(shí)例包括以下步驟1)、作業(yè)實(shí)例的狀態(tài)改變?yōu)閽炱馉顟B(tài),并通知作業(yè)實(shí)例掛起執(zhí)行;2)、作業(yè)實(shí)例依次通知其中的活動(dòng)和正在運(yùn)行的遠(yuǎn)端服務(wù),通知它們掛起執(zhí)行,在這里需要調(diào)用遠(yuǎn)端服務(wù)或者服務(wù)容器的掛起執(zhí)行接口;3)、返回操作結(jié)果;實(shí)例管理器恢復(fù)作業(yè)實(shí)例包括以下步驟1)、把作業(yè)實(shí)例的狀態(tài)改變?yōu)檫\(yùn)行狀態(tài),并通知作業(yè)實(shí)例開(kāi)始執(zhí)行;2)、作業(yè)實(shí)例依次通知處于掛起狀態(tài)的活動(dòng)和遠(yuǎn)端的掛起服務(wù),通知它們恢復(fù)執(zhí)行,在這里需要調(diào)用遠(yuǎn)端服務(wù)或者服務(wù)容器提供的恢復(fù)執(zhí)行服務(wù)接口;3)、返回操作結(jié)果;實(shí)例管理器終止作業(yè)實(shí)例的包括以下步驟1)把作業(yè)的狀態(tài)改變?yōu)榻K止?fàn)顟B(tài),并通知作業(yè)實(shí)例終止運(yùn)行;2)作業(yè)實(shí)例依次通知處于運(yùn)行或者掛起狀態(tài)的活動(dòng)和遠(yuǎn)端的正在運(yùn)行或者掛起的服務(wù),通知它們終止運(yùn)行,在這里需要調(diào)用遠(yuǎn)端服務(wù)或者服務(wù)容器的終止運(yùn)行服務(wù)接口;3)返回操作結(jié)果。
9.據(jù)權(quán)利要求5述的一種網(wǎng)格作業(yè)管理方法,其特征在于所述編譯器的處理主流程包括以下步驟1)接受解析器生成的靜態(tài)模型;2)新建作業(yè)實(shí)例,并逐項(xiàng)編譯作業(yè)實(shí)例的靜態(tài)模型屬性,依次編譯的屬性有參與者信息、作業(yè)相關(guān)數(shù)據(jù)信息、錯(cuò)誤處理器信息、事件處理器信息、補(bǔ)償處理器信息和各種活動(dòng)的信息。
10.根據(jù)權(quán)利要求5所述的一種網(wǎng)格作業(yè)管理方法,其特征在于所述活動(dòng)調(diào)用管理器的主流程包括以下步驟1)活動(dòng)調(diào)用管理器接收活動(dòng)實(shí)例調(diào)用外界服務(wù)的請(qǐng)求參數(shù);2)把請(qǐng)求放入隊(duì)列中進(jìn)行排隊(duì)處理;3)判斷作業(yè)執(zhí)行是否完畢,如果執(zhí)行完畢,則跳轉(zhuǎn)到步驟6);4)取出一個(gè)請(qǐng)求進(jìn)行處理,主要是按照請(qǐng)求參數(shù)里面的內(nèi)容,初始化調(diào)用對(duì)象,完成對(duì)外界服務(wù)的調(diào)用,并返回最終的調(diào)用結(jié)果;5)跳轉(zhuǎn)到步驟3)執(zhí)行;6)結(jié)束;上述步驟4)進(jìn)一步包括以下步驟,如圖13所示,1)獲得調(diào)用外界服務(wù)類型活動(dòng)的靜態(tài)訪問(wèn)點(diǎn)屬性,查看該屬性值是否為空,如果為空,則跳轉(zhuǎn)到步驟4);否則,繼續(xù)執(zhí)行以下步驟;2)查詢信息中心,根據(jù)該活動(dòng)的超級(jí)服務(wù)標(biāo)識(shí)和服務(wù)選擇條件調(diào)用信息中心提供的查詢接口,獲得可用服務(wù)的列表;3)判斷可用服務(wù)的列表是否為空,如果為空,返回出錯(cuò)信息,并通知作業(yè)實(shí)例進(jìn)行后續(xù)處理;否則,繼續(xù)執(zhí)行以下步驟;4)按照指定的選擇策略(例如隨機(jī)選擇)選擇服務(wù)進(jìn)行調(diào)用;5)判斷輪詢方法屬性是否為空,如果為空,說(shuō)明是普通Web服務(wù),則跳轉(zhuǎn)到步驟7)6)如果不為空,說(shuō)明是WSRF標(biāo)準(zhǔn)的服務(wù),在服務(wù)的執(zhí)行過(guò)程中每隔一定時(shí)間間隔更新時(shí)間戳,并獲得服務(wù)的執(zhí)行狀態(tài);7)判斷服務(wù)的調(diào)用是否出錯(cuò),如果出錯(cuò),返回錯(cuò)誤結(jié)果,通知作業(yè)實(shí)例,并進(jìn)行重新的調(diào)度過(guò)程,跳轉(zhuǎn)到步驟2);8)如果執(zhí)行的過(guò)程中沒(méi)有出錯(cuò),獲得服務(wù)的返回結(jié)果,整個(gè)調(diào)度執(zhí)行過(guò)程結(jié)束。
全文摘要
本發(fā)明公開(kāi)了一種網(wǎng)格作業(yè)管理器,它主要包括請(qǐng)求消息處理部分和活動(dòng)實(shí)現(xiàn)調(diào)用部分。請(qǐng)求消息處理部分接收網(wǎng)格服務(wù)運(yùn)行平臺(tái)內(nèi)服務(wù)容器預(yù)處理后的作業(yè)請(qǐng)求消息,并對(duì)其進(jìn)行解析、編譯、調(diào)度和執(zhí)行;活動(dòng)實(shí)現(xiàn)調(diào)用部分具有統(tǒng)一的調(diào)用接口,負(fù)責(zé)調(diào)用不同的服務(wù)模塊,保證在請(qǐng)求消息處理部分調(diào)度、執(zhí)行網(wǎng)格作業(yè)時(shí)提供不同的服務(wù),以及對(duì)新的服務(wù)實(shí)現(xiàn)體的擴(kuò)充和支持。本發(fā)明還公開(kāi)了一種利用上述網(wǎng)格作業(yè)管理器實(shí)現(xiàn)對(duì)網(wǎng)格作業(yè)的管理方法。
文檔編號(hào)H04L12/24GK1835450SQ200510055208
公開(kāi)日2006年9月20日 申請(qǐng)日期2005年3月15日 優(yōu)先權(quán)日2005年3月15日
發(fā)明者劉旭東, 林學(xué)練, 王勇, 胡春明 申請(qǐng)人:北京航空航天大學(xué)