国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web服務(wù)的跨校選課系統(tǒng)的設(shè)計

2009-06-02 06:32李文宏
現(xiàn)代教育技術(shù) 2009年12期
關(guān)鍵詞:工作流協(xié)同

李文宏

【摘要】分析合并高校和“大學(xué)城”校區(qū)、校際間信息共享的需求和特點(diǎn),針對現(xiàn)有解決方案和建設(shè)模式存在的問題,結(jié)合面向服務(wù)的思想和工作流集成技術(shù),提出基于Web服務(wù)的跨校選課應(yīng)用系統(tǒng)集成方案,給出一種松耦合且可擴(kuò)展的架構(gòu)。文章闡述基于Web服務(wù)的跨校選課系統(tǒng)運(yùn)行的環(huán)境和機(jī)制,借助BEA Web Logic Platform8.1集成平臺實現(xiàn)系統(tǒng)的主要功能,論證其可行性及優(yōu)越性。

【關(guān)鍵詞】跨校選課系統(tǒng);Web服務(wù);工作流;協(xié)同

【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識碼】A【論文編號】1009—8097(2009)12—0054—04

一 研究背景

伴隨高校合并和“大學(xué)城”的出現(xiàn),高校間資源整合、優(yōu)勢互補(bǔ)的發(fā)展趨勢,促使學(xué)生選課范圍向分布式、異構(gòu)環(huán)境延伸,傳統(tǒng)教務(wù)信息管理平臺已無法滿足跨校選課過程動態(tài)、并發(fā)和協(xié)同的需要。因此,我們有必要設(shè)計有效的跨校信息共享系統(tǒng)。

對于數(shù)字化校園信息共享模式的研究,目前有相同實體對象公共存儲的方法;基于對象規(guī)范化的共享方式;基于系統(tǒng)互操作框架的信息共享機(jī)制[1]。這些方法主要關(guān)注于解決底層數(shù)據(jù)標(biāo)準(zhǔn)化的問題,或者是局部信息共享的問題,這種自底向上的方法難以適應(yīng)跨校業(yè)務(wù)從全局出發(fā)的思路;盡管像COM/DCOM、COBRA和Java RMI等分布式對象中間件較好地解決了校區(qū)局域網(wǎng)內(nèi)的互操作問題,但這種緊耦合模式并不能滿足跨校區(qū)異構(gòu)系統(tǒng)之間動態(tài)協(xié)同的需求;隨著Web Services和工作流技術(shù)的發(fā)展,人們考慮利用Web服務(wù)解決跨域系統(tǒng)的互操作問題,但服務(wù)與工作流技術(shù)相結(jié)合的研究,主要集中于語義Web服務(wù)的研究,有的是在傳統(tǒng)工作流系統(tǒng)的基礎(chǔ)上提供對Web服務(wù)建模和執(zhí)行的支持,并沒有解決面向服務(wù)工作流的分布式服務(wù)如何進(jìn)行事務(wù)性協(xié)作的問題[2]。

我們基于SOA架構(gòu)思想,利用Web Services技術(shù),將異構(gòu)的應(yīng)用程序以Web服務(wù)的方式組織起來,通過靈活可變的流程建模和設(shè)計,將這些服務(wù)串接起來,從而實現(xiàn)一個完整的業(yè)務(wù)處理流程,滿足工作流的柔性需求;我們可以將這些已經(jīng)定義好的流程,繼續(xù)組織包裝成一個Web服務(wù),通過服務(wù)注冊和服務(wù)發(fā)現(xiàn),動態(tài)地作為子流程元素,進(jìn)一步作為上一層系統(tǒng)流程的服務(wù)單元,通過建立有效得協(xié)同機(jī)制和協(xié)同接口,實現(xiàn)業(yè)務(wù)流程的事務(wù)性協(xié)同;利用邏輯實體業(yè)務(wù)流程管理器(Business Process Management,BPM)負(fù)責(zé)高層服務(wù)的組合、發(fā)布和提供,滿足跨域業(yè)務(wù)間的動態(tài)協(xié)同。

二 基于Web服務(wù)的跨校選課系統(tǒng)框架結(jié)構(gòu)

在SOA架構(gòu)下,我們設(shè)計了跨校選課系統(tǒng),如圖1所示??缧_x課業(yè)務(wù)流程的建立是分布進(jìn)行的,每個參與者(分校區(qū)或?qū)W校)可以建立自己的流程,完成特定的業(yè)務(wù)目標(biāo)。在更高的層次上,通過業(yè)務(wù)流程管理器BPM將這些流程組合在一起,實現(xiàn)更復(fù)雜的業(yè)務(wù)流程。為了組合這些流程,考慮到環(huán)境的異構(gòu)和分布特性,將分校區(qū)流程發(fā)布為Web服務(wù),就可以在XML、HTTP、SOAP和WSDL等標(biāo)準(zhǔn)協(xié)議的基礎(chǔ)上實現(xiàn)流程的集成。流程可以封裝為Web服務(wù),Web服務(wù)又可以被調(diào)用來實現(xiàn)復(fù)雜業(yè)務(wù)流程中的一個步驟。流程的執(zhí)行與流程的監(jiān)控和管理都建立在這個基本思想之上。

圖1 跨校選課系統(tǒng)框架結(jié)構(gòu)

業(yè)務(wù)流程管理器(BPM)是一個邏輯實體,負(fù)責(zé)高層服務(wù)的組合、發(fā)布和提供。在物理實現(xiàn)時它可以是一個獨(dú)立的系統(tǒng),也可以作為其他校區(qū)應(yīng)用管理系統(tǒng)中的一個功能模塊而存在[3]。當(dāng)有跨校區(qū)業(yè)務(wù)需求時,業(yè)務(wù)流程管理器進(jìn)行組合服務(wù)的設(shè)計,通過注冊中心查找到所需的服務(wù),然后對現(xiàn)有校區(qū)服務(wù)進(jìn)行流程組合,形成新的流程服務(wù)并將其發(fā)布到注冊中心,在此過程中,業(yè)務(wù)流程管理器作為服務(wù)請求者查找服務(wù),但是并沒有與真正的服務(wù)綁定。從而形成一種松耦合和可擴(kuò)展的架構(gòu)。

此體系結(jié)構(gòu)業(yè)務(wù)流程協(xié)同具有動態(tài)的特性,一方面是協(xié)同活動間依賴關(guān)系的動態(tài)性,即相互協(xié)同的活動間往往具有輸入輸出依賴、因果依賴或時序依賴等,預(yù)定的依賴關(guān)系在協(xié)同過程中可能會因為一些意外因素而做出修改,但由于在頂層業(yè)務(wù)流程設(shè)計過程中并沒有綁定真正的服務(wù),因此流程的更改不會影響校區(qū)應(yīng)用實體,也不涉及與其他校區(qū)實體的接口關(guān)系;而在流程執(zhí)行過程中,時序關(guān)系發(fā)生的變更只是由業(yè)務(wù)流程管理器的流程執(zhí)行管理器來執(zhí)行,服務(wù)請求者和被調(diào)用校區(qū)應(yīng)用系統(tǒng)都不會感知到任何變化,即協(xié)作活動間的依賴關(guān)系可以在被調(diào)用方未知的情況下動態(tài)更改。協(xié)同動態(tài)性的另一方面是協(xié)同參與者可能動態(tài)加入或退出,比如跨校選課系統(tǒng),在規(guī)定學(xué)分的選課規(guī)則下,學(xué)生可以按照任意順序任選、退選A校或B校的課程,協(xié)同的活動劃分也可隨著協(xié)同的進(jìn)展而動態(tài)調(diào)整。同樣的,也只需在業(yè)務(wù)流程管理器的頂層流程設(shè)計中進(jìn)行修改,動態(tài)增加或刪除的校區(qū)應(yīng)用實體對服務(wù)請求者和其他被調(diào)用實體都不受影響,從而實現(xiàn)參與者的動態(tài)增加、刪除和調(diào)整。

三 基于Web服務(wù)跨校選課系統(tǒng)的實現(xiàn)

在面向SOA架構(gòu)下,我們將應(yīng)用邏輯與業(yè)務(wù)流程邏輯分離,具體協(xié)同過程如圖2所示。在不修改校區(qū)內(nèi)業(yè)務(wù)流程具體功能實現(xiàn)的前提下,只修改集成業(yè)務(wù)的流程模型來改變系統(tǒng)功能,從而快速應(yīng)對跨校區(qū)業(yè)務(wù)動態(tài)協(xié)同的需求。

圖2 跨校區(qū)選課業(yè)務(wù)流程協(xié)同

假設(shè)A校某學(xué)生實例化了一個跨校選課流程,需要B校和C校的業(yè)務(wù)協(xié)同。按照用戶(A校)實例化的流程,該流程執(zhí)行到第2個活動需要B校的業(yè)務(wù)協(xié)同,用戶調(diào)用了Internet上B校教務(wù)管理系統(tǒng)的Web選課服務(wù)A接口。B校教務(wù)管理系統(tǒng)接收到選課服務(wù)A的執(zhí)行請求后,向消息管理器中寫入學(xué)生跨校區(qū)選課實例化請求,如果用戶合法,消息協(xié)調(diào)器獲取該消息后驅(qū)動工作流機(jī)執(zhí)行該流程實例,并將執(zhí)行結(jié)果寫入注冊中心中,此時B校教務(wù)管理系統(tǒng)的該流程實例處于等待狀態(tài),需要用戶再次通知才可以完成業(yè)務(wù)提交。選課服務(wù)A獲取結(jié)果并返回給用戶,當(dāng)用戶確認(rèn)選課服務(wù)B執(zhí)行成功時才繼續(xù)實例化需要C校的第3個活動,該活動的執(zhí)行過程與第2個活動類似。這些協(xié)同活動的執(zhí)行成功與否直接決定了用戶跨校選課的流程是否可以繼續(xù)流轉(zhuǎn),只有在所有活動全部執(zhí)行成功時,用戶才向B校和C校的所有相關(guān)協(xié)作服務(wù)發(fā)出業(yè)務(wù)提交請求,B校和C校相應(yīng)完成提交操作。如果此時B校和C校的提交過程出現(xiàn)任何錯誤,用戶均將不能完成業(yè)務(wù)提交,并將通知B校和C校進(jìn)行相應(yīng)的補(bǔ)償操作。此外超時機(jī)制[5]確保了在出現(xiàn)各種故障時,用戶、B校和C??梢悦撾x等待狀態(tài)并釋放相關(guān)資源。

1 分校區(qū)選課流程的發(fā)布及重用

基于Web服務(wù)技術(shù),校區(qū)原有業(yè)務(wù)流程無需改變原有的應(yīng)用系統(tǒng),只有在原有系統(tǒng)的前提下,加上一個SOAP接口就可以將現(xiàn)有、用不同技術(shù)開發(fā)的系統(tǒng)互連起來,提供相應(yīng)的數(shù)據(jù)交互和訪問操作,從而實現(xiàn)遠(yuǎn)程、大范圍的業(yè)務(wù)流程集成。圖3提供了業(yè)務(wù)流程發(fā)布的模型。

圖3 業(yè)務(wù)流程發(fā)布過程

對于原有的系統(tǒng),使用適配器將它們表示為Web服務(wù)形式,提供SOAP等標(biāo)準(zhǔn)接口,注冊到UDDI,對外提供業(yè)務(wù)流程服務(wù)。流程定義和流程管理工具均通過SOAP接口同原有的業(yè)務(wù)流程進(jìn)行交互,流程定義工具將負(fù)責(zé)UDDI和注冊服務(wù)資源之間的交互。我們以基于服務(wù)的WSDL定義構(gòu)建Web的靜態(tài)服務(wù)客戶端,使用EJB和Java Bean接口以及類構(gòu)建Web服務(wù),Web Logic Workshop通過“Overview”自動提供WSDL定義,任何給出WSDL文件的Web服務(wù)都可以被Web Logic Workshop方便地調(diào)用[4]。

2跨校選課流程的執(zhí)行過程

(1) 流程定義

● 跨校選課事務(wù)處理

分校區(qū)選課流程是被跨校選課流程調(diào)用的子流程,它以服務(wù)的形式發(fā)布到服務(wù)注冊中心,當(dāng)用戶建模需要選取這個服務(wù)時,業(yè)務(wù)流程管理器就把該子流程作為控件添加進(jìn)主流程。通過初始化與用戶交互的任務(wù)控件,集成跨校選課Web應(yīng)用與業(yè)務(wù)流程管理器中的業(yè)務(wù)流程。

業(yè)務(wù)流程管理器接收帶有選課信息的標(biāo)準(zhǔn)Java對象作為參數(shù),然后把Java對象中的數(shù)據(jù)轉(zhuǎn)換為導(dǎo)入的XSD Schema所代表的通用選課對象。作為處理跨校選課請求的主流程,因為涉及人工交互,因此它的響應(yīng)時間是不確定的,該流程被認(rèn)為是一個長時間運(yùn)行的流程。長時間運(yùn)行的流程可能會因為響應(yīng)問題發(fā)生無法預(yù)計的阻塞,因此針對重大失敗需要有故障恢復(fù)的能力。

有狀態(tài)流程支持那些包括復(fù)雜、長時間運(yùn)行邏輯的場景,為了滿足跨校選課一定的可靠性和可恢復(fù)需求,通過添加有狀態(tài)節(jié)點(diǎn)、或者強(qiáng)制事務(wù)邊界的邏輯,可以把一個流程變成有狀態(tài)的。例如,一個流程首先接受消息,轉(zhuǎn)換消息,發(fā)送消息給協(xié)同校區(qū),然后等待一個有狀態(tài)異步響應(yīng)。為了使Web服務(wù)在于客戶端的異步通信過程中能夠有效地跟蹤數(shù)據(jù),我們采用Web Logic Workshop中的隱式會話惟一標(biāo)識某個客戶端和web服務(wù)之間的通信,并維護(hù)操作之間的狀態(tài)。業(yè)務(wù)流程管理器與Web服務(wù)之間的異步會話代碼如下:

/**

* @common: operation

* @common: message-buffer enable="true"

* @jws: conversation phase="start"

*/

Public void createOrderAsync (int custID, OrderEntryServiceFolder.OrderInfo order)

{

orderEntryService.createOrderAsync (custID, order);

}

● 定制審核邏輯

經(jīng)過業(yè)務(wù)流程管理器與Web服務(wù)之間的交互,建立了一個業(yè)務(wù)流程邏輯。在映射到執(zhí)行操作之前,只有滿足了學(xué)分制選課規(guī)則的要求,比如專業(yè)課和選修課的配比,總學(xué)分的要求等,才能執(zhí)行具體選課業(yè)務(wù)。我們在業(yè)務(wù)流程邏輯和應(yīng)用邏輯之間加入審核邏輯。審批邏輯需要在具體綁定服務(wù)之前執(zhí)行,我們使用建模環(huán)境的“前置”處理功能添加定制邏輯,并使用XMLBeans接口來設(shè)置數(shù)值。添加定制邏輯之后的Java源代碼如下:

// Set the judge priority in the order document

MyJudgepriority = MyJudgepriority.toUpperCase ();

MyJudge.getJudge ().setJudgePriority (MyJudgepriority);

(2) 流程執(zhí)行

滿足了選課學(xué)分的規(guī)則之后,進(jìn)入應(yīng)用邏輯物理實現(xiàn)階段,業(yè)務(wù)流程執(zhí)行管理器運(yùn)行,向分校區(qū)的所有相關(guān)協(xié)作服務(wù)發(fā)出業(yè)務(wù)提交請求,具體校區(qū)相應(yīng)完成提交操作。因為子流程的執(zhí)行是并發(fā)的,我們在主流程中要實現(xiàn)并發(fā)子流程的環(huán)節(jié)放置Task Node,設(shè)置create-tasks="false"、signal="last-wait" 。在Task Node的Node-Enter action中,我們手動為每一個Task創(chuàng)建一個任務(wù)實例,同時我們?nèi)〉肨ask的名字也就是要并發(fā)的子流程的名字,創(chuàng)建流程實例。為每個新創(chuàng)建的流程實例設(shè)置流程變量:TaskInstanceID表示創(chuàng)建當(dāng)前子流程的那個主流程任務(wù)實例ID,并使子流程開始流轉(zhuǎn)。子流程結(jié)束,取得流程變量TaskInstanceID,該流程變量TaskInstanceID是創(chuàng)建他的那個主流程的任務(wù)實例,得到該Task Instance,并TaskInstance.end().這個時候因為我們設(shè)置了Task Node的Signal為"last-wait",所以當(dāng)所有的子流程均結(jié)束的時候,主流程才會繼續(xù),這樣我們也就實現(xiàn)了子流程的并發(fā)效果。首先讓我們看一下主流程的流程定義:

我們要利用這個Task Node實現(xiàn)并發(fā)子流程,create-tasks="true"是為了可以手動控制任務(wù)實例的創(chuàng)建,同時創(chuàng)建子流程,signal="last-wait"是為了實現(xiàn)當(dāng)所有子流程均已完成,主流程才能繼續(xù)運(yùn)行的效果

要并發(fā)的子流程之一

要并發(fā)的子流程之二

3 跨校區(qū)選課流程的監(jiān)控和管理

流程實例監(jiān)控可以提供完整的信息,并允許管理員終止、修改或掛起有問題的流程,可以前瞻性地監(jiān)控業(yè)務(wù)事件并獲得自動異常通知,從而提高業(yè)務(wù)效率。關(guān)于業(yè)務(wù)流程的監(jiān)控和管理,研究的焦點(diǎn)在于如何將數(shù)據(jù)或活動狀態(tài)傳給監(jiān)控者,以及監(jiān)控信息的圖形化顯示。而已有的監(jiān)控方法,只關(guān)注個體的可靠執(zhí)行,對個體間協(xié)調(diào)引發(fā)的不一致狀態(tài)的監(jiān)控處理未能提出有效的解決方案。

我們采用層次型協(xié)同監(jiān)控模型[6],根據(jù)執(zhí)行跨校選課流程的不同實例之間的組織層次關(guān)系,派遣不同的監(jiān)控者實施監(jiān)控。一個業(yè)務(wù)流程的多個層次關(guān)系如圖4所示。通過監(jiān)控者之間的協(xié)調(diào)機(jī)制實現(xiàn)對異常狀態(tài)在不同層次的診斷與處理,以保持全局狀態(tài)的一致。

圖4 跨校選課業(yè)務(wù)流程分解實例

圖4為一個跨校選課流程實例,它分解為5個子業(yè)務(wù)流程:BP0,BP1,BP2,BP3,BP4。當(dāng)遷移業(yè)務(wù)流實例化時,在跨校區(qū)層,系統(tǒng)相繼派遣5個不同的子流程實例分別負(fù)責(zé)相應(yīng)業(yè)務(wù)流程的執(zhí)行。當(dāng)某個任務(wù)(如T3)的激活條件滿足時,相應(yīng)的子流程實例執(zhí)行。為執(zhí)行一個任務(wù),可同時或依次激活一個或多個子流程實例。如果某個遷移實例的任務(wù)全部執(zhí)行完畢,它將結(jié)果返回給其父遷移實例后可先行退出。每個子遷移流程都有相應(yīng)的監(jiān)控者,監(jiān)控者記錄所有交互的狀態(tài)信息,如果某個遷移實例退出,則其監(jiān)控者將其從持有的協(xié)同監(jiān)控任務(wù)中刪除,同時更新其上層監(jiān)控者的協(xié)同監(jiān)控任務(wù)視圖。下圖是流程的實例和實例狀態(tài)監(jiān)控截圖。

四 總結(jié)

該系統(tǒng)考慮到校園網(wǎng)各應(yīng)用系統(tǒng)運(yùn)行情況良好,為了不影響學(xué)校各關(guān)鍵業(yè)務(wù)應(yīng)用的正常運(yùn)行,充分地利用和發(fā)現(xiàn)現(xiàn)有資源,采用面向服務(wù)的SOA架構(gòu),應(yīng)用間是松耦合的,全校各業(yè)務(wù)處理和業(yè)務(wù)信息存儲不會集中在單一的服務(wù)器和數(shù)據(jù)庫上,而是采用分布式層次型的處理和信息結(jié)構(gòu),各應(yīng)用系統(tǒng)擁有其獨(dú)立的業(yè)務(wù)數(shù)據(jù)(資源)庫和業(yè)務(wù)處理,通過信息采集交換平臺和信息共享、互操作平臺,實現(xiàn)跨校區(qū)、跨部門、跨應(yīng)用的共享互聯(lián)互通,既能保證信息的全校共享,又符合各業(yè)務(wù)系統(tǒng)處理分布、信息分布的特性。

跨校選課系統(tǒng)的安全管理,目前我們實現(xiàn)了基于角色的安全。另外,考慮Web服務(wù)的安全性,如何在Web服務(wù)之間傳遞的SOAP消息之上設(shè)計安全機(jī)制,保證消息在傳輸過程中以及到達(dá)接收方計算機(jī)的安全性,是我們下一步的主要工作。另外,系統(tǒng)中存在對靜態(tài)WSDL文件僅僅提供靜態(tài)綁定,以及使用資源局限性的問題,如何實現(xiàn)實時業(yè)務(wù)流程及時發(fā)現(xiàn)資

源,使服務(wù)提供者提供的Web服務(wù)在異構(gòu)環(huán)境中能夠動態(tài)加入業(yè)務(wù)流程。

——————————

參考文獻(xiàn)

[1] 許鑫,金瑩.高校遺留系統(tǒng)信息整合研究[J].中國教育信息化,2009,1:14-17.

[2] 李建華,馬華,劉星沙.面向服務(wù)工作流的分布式業(yè)務(wù)管理研究[J].計算機(jī)工程,2007,33(4):58-63.

[3] 李文璟,邱雪松.基于SOA的IP網(wǎng)管系統(tǒng)間動態(tài)協(xié)作體系結(jié)構(gòu)[J].通信學(xué)報,2008,29(12):81-85.

[4][EB/OL].

[5] 李慧芳,范玉順.工作流系統(tǒng)時間管理[J].軟件學(xué)報,2002,13(8):1552-1557.

[6] 盧朝霞,曾廣周.面向遷移工作流可靠執(zhí)行地協(xié)同監(jiān)控模型[J].計算機(jī)研究與發(fā)展,2009,46(3):398-406.

猜你喜歡
工作流協(xié)同
家校社協(xié)同育人 共贏美好未來
融合創(chuàng)新 協(xié)同發(fā)展
“家校社”一體化的德育協(xié)同長效機(jī)制探究
京津冀協(xié)同發(fā)展
空海協(xié)同的立體防線
基于工作流2.0的智慧教室設(shè)計與研究
工作流在電力生產(chǎn)管理信息系統(tǒng)中的設(shè)計和應(yīng)用
“奔向共贏、做到最好”行業(yè)信息化研究方法論
工作流技術(shù)在醫(yī)療信息整合工程中的應(yīng)用分析
基于工作流的水運(yùn)應(yīng)急信息管理平臺設(shè)計 