專利名稱:工作流通用服務(wù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及工作流領(lǐng)域,特別是涉及工作流通用服務(wù)的方法和系統(tǒng)。
背景技術(shù):
SOA (Service-Oriented Architecture)即面向服務(wù)的體系結(jié)構(gòu),是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以使用一種統(tǒng)一和通用的方式進(jìn)行交互。工作流的概念起源于生產(chǎn)組織和辦公自動(dòng)化領(lǐng)域。它是針對(duì)企業(yè)日常工作中固定的程序活動(dòng)而提出,將企業(yè)的業(yè)務(wù)進(jìn)行自動(dòng)化處理的過程叫工作流,在業(yè)務(wù)處理的過程中,根據(jù)定義的一些規(guī)則將信息和文檔在過程的參與者中進(jìn)行傳遞,從而完成整個(gè)業(yè)務(wù)的處理。然而,在大規(guī)模企業(yè)或機(jī)構(gòu),其組織結(jié)構(gòu)、資源結(jié)構(gòu)和業(yè)務(wù)流程日趨復(fù)雜多變;同時(shí)信息化時(shí)代的企業(yè)不再可能孤立存在,企業(yè)間的交流必要而頻繁,跨組織的業(yè)務(wù)流程日益增多。傳統(tǒng)的工作流模型將業(yè)務(wù)過程與企業(yè)資源綁定,業(yè)務(wù)模型與組織和資源模型結(jié)合過于緊密,已不適應(yīng)企業(yè)的動(dòng)態(tài)變化和發(fā)展的要求。傳統(tǒng)方法中,在系統(tǒng)中固定存儲(chǔ)需要調(diào)用的業(yè)務(wù)流程,方便用戶調(diào)用。但當(dāng)業(yè)務(wù)流程發(fā)生變化,傳統(tǒng)方法需要無法提供系統(tǒng)中不存在的業(yè)務(wù)流程,或者需要重新設(shè)計(jì)才能實(shí)現(xiàn)。
發(fā)明內(nèi)容
基于此,有必要針對(duì)業(yè)務(wù)流程發(fā)生改變時(shí),仍能靈活提供業(yè)務(wù)流程供客戶端調(diào)用的問題,提供一種工作流通用服務(wù)的方法和系統(tǒng)。一種工作流通用服務(wù)的方法,包括步驟獲取業(yè)務(wù)流程需求;接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件組合,將組合后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程;將所述業(yè)務(wù)流程打包后進(jìn)行存儲(chǔ),將業(yè)務(wù)流程發(fā)布到Web服務(wù)接口。上述工作流通用服務(wù)的方法,通過預(yù)存操作組件,可根據(jù)需要將預(yù)存操作組件封裝成服務(wù),業(yè)務(wù)流程發(fā)生改變時(shí),仍能靈活提供業(yè)務(wù)流程供客戶端調(diào)用。一種可定制的工作流服務(wù)系統(tǒng),其特征在于,包括服務(wù)提供者,用于獲取業(yè)務(wù)流程需求,根據(jù)所述業(yè)務(wù)流程需求調(diào)用所述業(yè)務(wù)流程;注冊(cè)中心,用于存儲(chǔ)定義后的所述業(yè)務(wù)流程;過程定義模塊,用于接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件重組,將重組后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程。上述工作流通用服務(wù)系統(tǒng),通過過程定義模塊預(yù)存操作組件,可根據(jù)需要將預(yù)存操作組件封裝成服務(wù),業(yè)務(wù)流程發(fā)生改變時(shí),仍能靈活提供業(yè)務(wù)流程供客戶端調(diào)用。
圖1為本發(fā)明工作流通用服務(wù)的方法流程示意圖;圖2為本發(fā)明工作流通用服務(wù)系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施例方式以下結(jié)合其中的較佳實(shí)施方式對(duì)本發(fā)明方案進(jìn)行詳細(xì)闡述。圖1中示出了本發(fā)明工作流通用服務(wù)的方法流程示意圖;如圖1所示,本實(shí)施例中的工作流通用服務(wù)的方法,包括步驟步驟SlOl :獲取業(yè)務(wù)流程需求;步驟S102 :接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件組合,將組合后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程;步驟S103 :將所述業(yè)務(wù)流程打包后進(jìn)行存儲(chǔ),將業(yè)務(wù)流程發(fā)布到Web服務(wù)接口。以下在上述本實(shí)施例方法的步驟基礎(chǔ)上,對(duì)工作流通用服務(wù)的方法具體實(shí)施例進(jìn)行詳細(xì)說明。獲取客戶端發(fā)送的業(yè)務(wù)流程需求。查找注冊(cè)中心靜態(tài)存儲(chǔ)的業(yè)務(wù)流程,是否符合業(yè)務(wù)流程需求,若是,則直接調(diào)用業(yè)務(wù)流程。若注冊(cè)中心不存在滿足業(yè)務(wù)流程需求的業(yè)務(wù)流程,此時(shí),接收用戶發(fā)送的過程定義指令,根據(jù)業(yè)務(wù)流程需求分析業(yè)務(wù)流程需要哪些業(yè)務(wù)活動(dòng),各個(gè)業(yè)務(wù)活動(dòng)對(duì)應(yīng)由哪些服務(wù)組成,服務(wù)需要由哪些操作組件封裝而成。根據(jù)用戶發(fā)送的過程定義指令將相互聯(lián)系的預(yù)存的操作組件組合,將組合后的操作組件封裝為業(yè)務(wù)流程需求對(duì)應(yīng)的服務(wù),將得到的多個(gè)服務(wù)映射到各業(yè)務(wù)活動(dòng),將各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程。集成面向服務(wù)的封裝機(jī)制主要分為這四種封裝機(jī)制操作組件、服務(wù)、業(yè)務(wù)活動(dòng)、業(yè)務(wù)流程。操作組件具體實(shí)現(xiàn)相當(dāng)于面向?qū)ο蟪绦蛑械姆椒ǎ瑘?zhí)行操作通常會(huì)導(dǎo)致讀、寫或修改一個(gè)或多個(gè)持久性數(shù)據(jù)。操作可以用來實(shí)現(xiàn)系統(tǒng)中較簡單的應(yīng)用程序或組件。服務(wù)指操作的邏輯分組,主要用于封裝一些相互聯(lián)系的操作集合。如將流程中的活動(dòng)用相互獨(dú)立的服務(wù)實(shí)現(xiàn),這樣如果流程發(fā)生了變化就不必像以前那樣需要對(duì)流程某些部分的實(shí)現(xiàn)進(jìn)行重新開發(fā),而只要選擇相應(yīng)的服務(wù)根據(jù)新的業(yè)務(wù)邏輯進(jìn)行重組即可。業(yè)務(wù)活動(dòng)是由業(yè)務(wù)流程分解得到的。將業(yè)務(wù)流程發(fā)布為Web服務(wù)既可以使業(yè)務(wù)伙伴能夠通過訪問自己的業(yè)務(wù)流程以更好地實(shí)現(xiàn)相互合作,又可以作為子作流程嵌入到另一個(gè)大的工作流程以實(shí)現(xiàn)跨企業(yè)的業(yè)務(wù)流程集成。將所述業(yè)務(wù)流程打包后存入注冊(cè)中心,注冊(cè)中心將業(yè)務(wù)流程發(fā)布到Web服務(wù)接口。根據(jù)工作流程中任務(wù)的緊急和復(fù)雜程度,對(duì)服務(wù)的調(diào)用可分為同步和異步兩種類型。服務(wù)調(diào)用采用基于HTTP的請(qǐng)求一響應(yīng)模式。在同步調(diào)用方式下,服務(wù)請(qǐng)求者向服務(wù)提供者發(fā)送請(qǐng)求消息,處理完請(qǐng)求之后,提供者將響應(yīng)消息發(fā)送給請(qǐng)求者。在請(qǐng)求處理完畢之前,請(qǐng)求者將處于一直等待響應(yīng)的狀態(tài)。而在異步調(diào)用方式下,服務(wù)請(qǐng)求者在發(fā)出請(qǐng)求后不等待響應(yīng),而是繼續(xù)執(zhí)行自身的任務(wù),服務(wù)提供者可花費(fèi)較長時(shí)間處理請(qǐng)求,處理完畢后再向請(qǐng)求者返回響應(yīng)。由于Web服務(wù)的發(fā)布與實(shí)現(xiàn)機(jī)制有兩種靜態(tài)發(fā)現(xiàn)與使用UDDI注冊(cè)中心。根據(jù)發(fā)布機(jī)制的不同,服務(wù)請(qǐng)求者獲取Web服務(wù)的詳細(xì)信息主要有兩種途徑一是通過本地的Web服務(wù)描述語言(web service description language, WSDL)文件獲得相關(guān)的Web服務(wù)信息;二是通過UDDI注冊(cè)中心獲得已注冊(cè)的Web服務(wù)的詳細(xì)信息。在獲取了服務(wù)描述之后,服務(wù)請(qǐng)求者就可以通過它來訪問Web服務(wù)接口。服務(wù)請(qǐng)求者使用服務(wù)描述生成對(duì)Web服務(wù)的簡單對(duì)象訪問協(xié)議(simple object access protocol, SOAP)請(qǐng)求或特定于編程語言的代理。最后服務(wù)請(qǐng)求者通過Web服務(wù)接口成功調(diào)用服務(wù)所提供的操作。本方案通過將預(yù)存的操作組件作為最小單元,可以重復(fù)調(diào)用來封裝為需要的服務(wù)。由于可以將活動(dòng)需要調(diào)用的應(yīng)用程序(即操作組件)封裝成相互獨(dú)立的服務(wù),如果業(yè)務(wù)流程發(fā)生了變化可以選擇相應(yīng)的服務(wù)按照新的業(yè)務(wù)邏輯進(jìn)行重組,這樣就可以使工作流管理系統(tǒng)適應(yīng)經(jīng)常變化的業(yè)務(wù)需求。利用Web服務(wù)獨(dú)立于硬件和操作系統(tǒng)平臺(tái)的特性,將業(yè)務(wù)流程中的活動(dòng)用Web服務(wù)實(shí)現(xiàn),或者將整個(gè)工作流程封裝為Web服務(wù),就可以使工作流管理系統(tǒng)的運(yùn)行環(huán)境跳出局域網(wǎng)的范圍,這既滿足了大型企業(yè)實(shí)現(xiàn)跨地域業(yè)務(wù)流程的需求,又方便了企業(yè)合作伙伴之間的業(yè)務(wù)流程合作。在面向服務(wù)架構(gòu)中,服務(wù)的設(shè)計(jì)和封裝都是基于面向?qū)ο髾C(jī)制的,面向?qū)ο竽P偷淖畲髢r(jià)值就在于它的對(duì)象可重用性,因此將SOA引入工作流管理系統(tǒng)的設(shè)計(jì)可以大大提高可重用性。在一個(gè)具體實(shí)施例中,還包括步驟當(dāng)接收閾值設(shè)置指令時(shí),在所述業(yè)務(wù)活動(dòng)中設(shè)置第一閾值和第二閾值,若所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于第一閾值且小于第二閾值時(shí),則向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送提醒信息,若業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于或等于第二閾值時(shí),則保存所述參數(shù)并向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送預(yù)警信息,當(dāng)所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)小于或等于第一閾值時(shí),不做處理。一些業(yè)務(wù)流程需求中需要對(duì)某些業(yè)務(wù)參數(shù)進(jìn)行設(shè)定閾值,比如在設(shè)計(jì)或定制每一業(yè)務(wù)流程時(shí)根據(jù)后期維護(hù)、變更分析或決策的需要在流程配置界面為其設(shè)定若干個(gè)工作指標(biāo)或閥值,當(dāng)業(yè)務(wù)流程接近或等于閥值時(shí),系統(tǒng)會(huì)向責(zé)任人發(fā)送系統(tǒng)信息和郵件提醒,責(zé)任人收到信息后需要對(duì)該業(yè)務(wù)流程進(jìn)行即時(shí)有效地處理。若沒按規(guī)定或超計(jì)劃完成工作流程任務(wù),系統(tǒng)則會(huì)對(duì)其進(jìn)行記錄,為后期對(duì)員工的績效考核提供依據(jù)??蛻舳送ㄟ^Web服務(wù)接口開啟業(yè)務(wù)流程,運(yùn)行一段時(shí)間,積累了豐富的工作流程數(shù)據(jù),系統(tǒng)根據(jù)企業(yè)的業(yè)務(wù)需求和戰(zhàn)略目標(biāo),提供對(duì)工作流程數(shù)據(jù)的數(shù)據(jù)報(bào)表導(dǎo)出、數(shù)據(jù)分析圖表及數(shù)據(jù)挖掘。本方案采用基于MVC(Model — View — Controller,模型一視圖一控制器)設(shè)計(jì)模式的多層系統(tǒng)架構(gòu),該架構(gòu)克服了傳統(tǒng)的MVC設(shè)計(jì)模式中控制器部分在整個(gè)平臺(tái)中既控制模型組件的選擇和調(diào)用,又負(fù)責(zé)將模型組件提供的數(shù)據(jù)傳遞給特定的頁面處理的局限性。將控制器劃分為狀態(tài)層、路由控制層、擴(kuò)展業(yè)務(wù)層、業(yè)務(wù)層等。作為視圖實(shí)例的表現(xiàn)層由XML數(shù)據(jù)經(jīng)XSL解析生成,視圖與控制器之間只通過數(shù)據(jù)總線進(jìn)行XML數(shù)據(jù)傳送,徹底剝離了二者之間的耦合關(guān)系。分隔基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)、調(diào)度邏輯和所有視圖相關(guān)代碼。并創(chuàng)建用于所有頁面控制器的公用基類,避免代碼重復(fù)并提高一致性和可測(cè)試性。根據(jù)上述工作流通用服務(wù)的方法,本發(fā)明提供一種工作流通用服務(wù)系統(tǒng)。圖2中示出了本發(fā)明的工作流通用服務(wù)系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖。
如圖2所示,本實(shí)施例中工作流通用服務(wù)系統(tǒng),包括服務(wù)提供者201,用于獲取業(yè)務(wù)流程需求,根據(jù)所述業(yè)務(wù)流程需求調(diào)用所述業(yè)務(wù)流程;注冊(cè)中心202,用于存儲(chǔ)定義后的所述業(yè)務(wù)流程;過程定義模塊203,用于接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件重組,將重組后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程。以下在上述本實(shí)施例系統(tǒng)的步驟基礎(chǔ)上,對(duì)工作流通用服務(wù)系統(tǒng)具體實(shí)施例進(jìn)行詳細(xì)說明。服務(wù)提供者201獲取客戶端發(fā)送的業(yè)務(wù)流程需求。查找注冊(cè)中心靜態(tài)存儲(chǔ)的業(yè)務(wù)流程,是否符合業(yè)務(wù)流程需求,若是,則直接調(diào)用業(yè)務(wù)流程。若注冊(cè)中心不存在滿足業(yè)務(wù)流程需求的業(yè)務(wù)流程,此時(shí),用戶根據(jù)業(yè)務(wù)流程需求分析業(yè)務(wù)流程需要哪些業(yè)務(wù)活動(dòng),各個(gè)業(yè)務(wù)活動(dòng)對(duì)應(yīng)由哪些服務(wù)組成,服務(wù)需要由哪些操作組件封裝而成,并向過程定義模塊203發(fā)送過程定義指令。過程定義模塊203接收用戶發(fā)送的過程定義指令,根據(jù)用戶發(fā)送的過程定義指令將相互聯(lián)系的預(yù)存的操作組件組合,將組合后的操作組件封裝為業(yè)務(wù)流程需求對(duì)應(yīng)的服務(wù),將得到的多個(gè)服務(wù)映射到各業(yè)務(wù)活動(dòng),將各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程。集成面向服務(wù)的封裝機(jī)制主要分為這四種封裝機(jī)制操作組件、服務(wù)、業(yè)務(wù)活動(dòng)、業(yè)務(wù)流程。操作組件具體實(shí)現(xiàn)相當(dāng)于面向?qū)ο蟪绦蛑械姆椒?,?zhí)行操作通常會(huì)導(dǎo)致讀、寫或修改一個(gè)或多個(gè)持久性數(shù)據(jù)。操作可以用來實(shí)現(xiàn)系統(tǒng)中較簡單的應(yīng)用程序或組件。服務(wù)指操作的邏輯分組,主要用于封裝一些相互聯(lián)系的操作集合。如將流程中的活動(dòng)用相互獨(dú)立的服務(wù)實(shí)現(xiàn),這樣如果流程發(fā)生了變化就不必像以前那樣需要對(duì)流程某些部分的實(shí)現(xiàn)進(jìn)行重新開發(fā),而只要選擇相應(yīng)的服務(wù)根據(jù)新的業(yè)務(wù)邏輯進(jìn)行重組即可。業(yè)務(wù)活動(dòng)是由業(yè)務(wù)流程分解得到的。將業(yè)務(wù)流程發(fā)布為Web服務(wù)既可以使業(yè)務(wù)伙伴能夠通過訪問自己的業(yè)務(wù)流程以更好地實(shí)現(xiàn)相互合作,又可以作為子作流程嵌入到另一個(gè)大的工作流程以實(shí)現(xiàn)跨企業(yè)的業(yè)務(wù)流程集成。將所述業(yè)務(wù)流程打包后存入注冊(cè)中心202,注冊(cè)中心202將業(yè)務(wù)流程發(fā)布到Web服務(wù)接口。根據(jù)工作流程中任務(wù)的緊急和復(fù)雜程度,對(duì)服務(wù)的調(diào)用可分為同步和異步兩種類型。服務(wù)調(diào)用采用基于HTTP的請(qǐng)求一響應(yīng)模式。在同步調(diào)用方式下,服務(wù)請(qǐng)求者向服務(wù)提供者發(fā)送請(qǐng)求消息,處理完請(qǐng)求之后,提供者將響應(yīng)消息發(fā)送給請(qǐng)求者。在請(qǐng)求處理完畢之前,請(qǐng)求者將處于一直等待響應(yīng)的狀態(tài)。而在異步調(diào)用方式下,服務(wù)請(qǐng)求者在發(fā)出請(qǐng)求后不等待響應(yīng),而是繼續(xù)執(zhí)行自身的任務(wù),服務(wù)提供者可花費(fèi)較長時(shí)間處理請(qǐng)求,處理完畢后再向請(qǐng)求者返回響應(yīng)。由于Web服務(wù)的發(fā)布與實(shí)現(xiàn)機(jī)制有兩種靜態(tài)發(fā)現(xiàn)與使用UDDI注冊(cè)中心。根據(jù)發(fā)布機(jī)制的不同,服務(wù)請(qǐng)求者獲取Web服務(wù)的詳細(xì)信息主要有兩種途徑一是通過本地的Web服務(wù)描述語言(web service description language, WSDL)文件獲得相關(guān)的Web服務(wù)信息;二是通過UDDI注冊(cè)中心獲得已注冊(cè)的Web服務(wù)的詳細(xì)信息。在獲取了服務(wù)描述之后,服務(wù)請(qǐng)求者就可以通過它來訪問Web服務(wù)接口。服務(wù)請(qǐng)求者使用服務(wù)描述生成對(duì)Web服務(wù)的簡單對(duì)象訪問協(xié)議(simple object access protocol, SOAP)請(qǐng)求或特定于編程語言的代理。最后服務(wù)請(qǐng)求者通過Web服務(wù)接口成功調(diào)用服務(wù)所提供的操作。本方案通過將預(yù)存的操作組件作為最小單元,可以重復(fù)調(diào)用來封裝為需要的服務(wù)。由于可以將活動(dòng)需要調(diào)用的應(yīng)用程序(即操作組件)封裝成相互獨(dú)立的服務(wù),如果業(yè)務(wù)流程發(fā)生了變化可以選擇相應(yīng)的服務(wù)按照新的業(yè)務(wù)邏輯進(jìn)行重組,這樣就可以使工作流管理系統(tǒng)適應(yīng)經(jīng)常變化的業(yè)務(wù)需求。利用Web服務(wù)獨(dú)立于硬件和操作系統(tǒng)平臺(tái)的特性,將業(yè)務(wù)流程中的活動(dòng)用Web服務(wù)實(shí)現(xiàn),或者將整個(gè)工作流程封裝為Web服務(wù),就可以使工作流管理系統(tǒng)的運(yùn)行環(huán)境跳出局域網(wǎng)的范圍,這既滿足了大型企業(yè)實(shí)現(xiàn)跨地域業(yè)務(wù)流程的需求,又方便了企業(yè)合作伙伴之間的業(yè)務(wù)流程合作。在面向服務(wù)架構(gòu)中,服務(wù)的設(shè)計(jì)和封裝都是基于面向?qū)ο髾C(jī)制的,面向?qū)ο竽P偷淖畲髢r(jià)值就在于它的對(duì)象可重用性,因此將SOA引入工作流管理系統(tǒng)的設(shè)計(jì)可以大大提高可重用性。在一個(gè)具體實(shí)施例中,還包括工作流數(shù)據(jù)庫,用于存儲(chǔ)所述業(yè)務(wù)活動(dòng)的閾值,若所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于第一閾值且小于第二閾值時(shí),則向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送提醒信息,若業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于或等于第二閾值時(shí),則保存所述參數(shù)并向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送預(yù)警信息,當(dāng)所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)小于或等于第一閾值時(shí),不做處理。一些業(yè)務(wù)流程需求中需要對(duì)某些業(yè)務(wù)參數(shù)進(jìn)行設(shè)定閾值,比如在設(shè)計(jì)或定制每一業(yè)務(wù)流程時(shí)根據(jù)后期維護(hù)、變更分析或決策的需要在流程配置界面為其設(shè)定若干個(gè)工作指標(biāo)或閥值,當(dāng)業(yè)務(wù)流程接近或等于閥值時(shí),系統(tǒng)會(huì)向責(zé)任人發(fā)送系統(tǒng)信息和郵件提醒,責(zé)任人收到信息后需要對(duì)該業(yè)務(wù)流程進(jìn)行即時(shí)有效地處理。若沒按規(guī)定或超計(jì)劃完成工作流程任務(wù),系統(tǒng)則會(huì)對(duì)其進(jìn)行記錄,為后期對(duì)員工的績效考核提供依據(jù)??蛻舳送ㄟ^Web服務(wù)接口開啟業(yè)務(wù)流程,運(yùn)行一段時(shí)間,積累了豐富的工作流程數(shù)據(jù),系統(tǒng)根據(jù)企業(yè)的業(yè)務(wù)需求和戰(zhàn)略目標(biāo),提供對(duì)工作流程數(shù)據(jù)的數(shù)據(jù)報(bào)表導(dǎo)出、數(shù)據(jù)分析圖表及數(shù)據(jù)挖掘。本方案采用基于MVC(Model — View — Controller,模型一視圖一控制器)設(shè)計(jì)模式的多層系統(tǒng)架構(gòu),該架構(gòu)克服了傳統(tǒng)的MVC設(shè)計(jì)模式中控制器部分在整個(gè)平臺(tái)中既控制模型組件的選擇和調(diào)用,又負(fù)責(zé)將模型組件提供的數(shù)據(jù)傳遞給特定的頁面處理的局限性。將控制器劃分為狀態(tài)層、路由控制層、擴(kuò)展業(yè)務(wù)層、業(yè)務(wù)層等。作為視圖實(shí)例的表現(xiàn)層由XML數(shù)據(jù)經(jīng)XSL解析生成,視圖與控制器之間只通過數(shù)據(jù)總線進(jìn)行XML數(shù)據(jù)傳送,徹底剝離了二者之間的耦合關(guān)系。分隔基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)、調(diào)度邏輯和所有視圖相關(guān)代碼。并創(chuàng)建用于所有頁面控制器的公用基類,避免代碼重復(fù)并提高一致性和可測(cè)試性。系統(tǒng)實(shí)現(xiàn)主要分為3個(gè)步驟,即用標(biāo)記語言映射業(yè)務(wù)流程,對(duì)工作流的業(yè)務(wù)流程進(jìn)行建模和部署工作流引擎。映射業(yè)務(wù)流程業(yè)務(wù)流程的映射是系統(tǒng)實(shí)現(xiàn)的第一步,在獲取了目標(biāo)業(yè)務(wù)和已有組件應(yīng)用的信息之后,首要任務(wù)是確定并且文檔化組織內(nèi)全部現(xiàn)有的手工和自動(dòng)化的業(yè)務(wù)流程,從流程中抽取出原子級(jí)的企業(yè)業(yè)務(wù)活動(dòng),使用XML定義活動(dòng)。業(yè)務(wù)流程建模業(yè)務(wù)流程建模(BPM, Business Process Modeling)是對(duì)業(yè)務(wù)流程進(jìn)行表述的方式,它是過程分析與重組的重要基礎(chǔ)。在跨組織業(yè)務(wù)流程重組的前提下,流程建模的主要目的就是方便不同的伙伴企業(yè)間工作流的互訪,他們?cè)诟髯酝瓿善鋬?nèi)部流程模型的建立同時(shí),對(duì)外公開其交互的接口,以便實(shí)現(xiàn)不同企業(yè)間工作流模型的連接。在建模過程可以建立一個(gè)完整的工作流過程或者是工作流中一個(gè)單獨(dú)的活動(dòng),并將其發(fā)布到m)Di注冊(cè)中心以提供對(duì)外服務(wù),在流程建立過程中可以新建也可以調(diào)用企業(yè)UDDI中心已有的活動(dòng)定義,從而方便快捷地建立跨企業(yè)工作流集成,并能很容易地實(shí)現(xiàn)工作流的對(duì)外服務(wù)。
工作流引擎的實(shí)現(xiàn)工作流引擎負(fù)責(zé)解釋過程定義并且控制過程實(shí)例的運(yùn)行。本平臺(tái)工作流弓I擎的設(shè)計(jì)思想是各個(gè)工作流執(zhí)行弓I擎均被封裝成一個(gè)WebService,隱藏其內(nèi)部實(shí)現(xiàn),對(duì)外提供統(tǒng)一的接口,這些接口包括了與工作表、監(jiān)視工具、其它服務(wù)調(diào)用等接口。在工作流通用服務(wù)及分析平臺(tái)中,由多個(gè)工作流引擎協(xié)同工作來推進(jìn)工作流實(shí)例的執(zhí)行。每個(gè)工作流引擎負(fù)責(zé)控制和管理一個(gè)過程中的一部分活動(dòng),使用相關(guān)的資源和應(yīng)用工具來完成這些活動(dòng)的執(zhí)行。同時(shí),在這樣一個(gè)平臺(tái)中,企業(yè)運(yùn)行過程中所需要調(diào)用的異構(gòu)應(yīng)用程序可以首先封裝成WebService,供活動(dòng)直接調(diào)用。各個(gè)工作流引擎之間以及工作流引擎與用戶Web界面之間采用SOAP消息的方式進(jìn)行交互。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種工作流通用服務(wù)的方法,其特征在于,包括步驟 獲取業(yè)務(wù)流程需求; 接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件組合,將組合后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程; 將所述業(yè)務(wù)流程打包后進(jìn)行存儲(chǔ),將業(yè)務(wù)流程發(fā)布到Web服務(wù)接口。
2.根據(jù)權(quán)利要求1所述的工作流通用服務(wù)的方法,其特征在于,還包括步驟當(dāng)接收閾值設(shè)置指令時(shí),在所述業(yè)務(wù)活動(dòng)中設(shè)置第一閾值和第二閾值,若所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于第一閾值且小于第二閾值時(shí),則向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送提醒信息,若業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于或等于第二閾值時(shí),則保存所述參數(shù)并向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送預(yù)警信息,當(dāng)所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)小于或等于第一閾值時(shí),不做處理。
3.根據(jù)權(quán)利要求1所述的工作流通用服務(wù)的方法,其特征在于,還包括步驟當(dāng)接收統(tǒng)計(jì)指令時(shí),根據(jù)所述業(yè)務(wù)流程中的工作流程數(shù)據(jù)生成數(shù)據(jù)報(bào)表和數(shù)據(jù)分析圖表。
4.一種可定制的工作流服務(wù)系統(tǒng),其特征在于,包括 服務(wù)提供者,用于獲取業(yè)務(wù)流程需求,根據(jù)所述業(yè)務(wù)流程需求調(diào)用所述業(yè)務(wù)流程; 注冊(cè)中心,用于存儲(chǔ)定義后的所述業(yè)務(wù)流程; 過程定義模塊,用于接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件重組,將重組后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程。
5.根據(jù)權(quán)利要求4所述的工作流通用服務(wù)系統(tǒng),其特征在于,所述服務(wù)提供者包括Web服務(wù)接口。
6.根據(jù)權(quán)利要求4或5所述的工作流通用服務(wù)系統(tǒng),其特征在于,還包括工作流數(shù)據(jù)庫,用于存儲(chǔ)所述業(yè)務(wù)活動(dòng)的閾值,若所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于第一閾值且小于第二閾值時(shí),則向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送提醒信息,若業(yè)務(wù)活動(dòng)的輸入?yún)?shù)大于或等于第二閾值時(shí),則保存所述參數(shù)并向所述業(yè)務(wù)活動(dòng)的相應(yīng)聯(lián)系郵箱發(fā)送預(yù)警信息,當(dāng)所述業(yè)務(wù)活動(dòng)的輸入?yún)?shù)小于或等于第一閾值時(shí),不做處理。
7.根據(jù)權(quán)利要求5所述的工作流通用服務(wù)系統(tǒng),其特征在于,所述工作流數(shù)據(jù)庫還用于接收統(tǒng)計(jì)指令,根據(jù)所述業(yè)務(wù)流程中的工作流程數(shù)據(jù)生成數(shù)據(jù)報(bào)表和數(shù)據(jù)分析圖表。
全文摘要
一種工作流通用服務(wù)的方法,包括步驟獲取業(yè)務(wù)流程需求;接收過程定義指令,根據(jù)所述業(yè)務(wù)流程需求和所述過程定義指令將相互聯(lián)系的預(yù)存的操作組件組合,將組合后的所述操作組件封裝為所述業(yè)務(wù)流程需求對(duì)應(yīng)的各服務(wù),將所述各服務(wù)映射到各業(yè)務(wù)活動(dòng),將所述各業(yè)務(wù)活動(dòng)組裝成業(yè)務(wù)流程;將所述業(yè)務(wù)流程打包后進(jìn)行存儲(chǔ),將業(yè)務(wù)流程發(fā)布到Web服務(wù)接口。本發(fā)明還提供相應(yīng)的系統(tǒng)。通過預(yù)存操作組件,可根據(jù)需要將預(yù)存操作組件封裝成服務(wù),業(yè)務(wù)流程發(fā)生改變時(shí),仍能靈活提供業(yè)務(wù)流程供客戶端調(diào)用。
文檔編號(hào)G06F9/44GK103064688SQ201210593498
公開日2013年4月24日 申請(qǐng)日期2012年12月31日 優(yōu)先權(quán)日2012年12月31日
發(fā)明者黃如生, 李建培 申請(qǐng)人:廣州杰賽科技股份有限公司