1 引言
隨著世界經(jīng)濟(jì)全球化的發(fā)展,現(xiàn)代企業(yè)需要不斷更新管理模式和采用新技術(shù)來(lái)增強(qiáng)自身競(jìng)爭(zhēng)力。工作流是針對(duì)企業(yè)日常工作中固定的程序活動(dòng)而提出,目的是為了提高辦公效率、降低生產(chǎn)成本、提高企業(yè)整體的生產(chǎn)管理水平和競(jìng)爭(zhēng)力。企業(yè)通過(guò)工作流相關(guān)過(guò)程建模體系的建立,可以與其它系統(tǒng)進(jìn)行有效的結(jié)合,使企業(yè)的業(yè)務(wù)流程更好的實(shí)現(xiàn)。由于經(jīng)濟(jì)的全球性發(fā)展,產(chǎn)品的研制開(kāi)發(fā)已不僅局限于某一單一企業(yè),而是眾多企業(yè)的協(xié)同運(yùn)作,這就促使企業(yè)的管理將建立在分布異構(gòu)的環(huán)境下。
隨著計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)的發(fā)展,現(xiàn)代企業(yè)已呈現(xiàn)出一種分布、異構(gòu)和松散耦合的特點(diǎn),工作流管理系統(tǒng)必須能夠支持異構(gòu)環(huán)境下的互操作性,對(duì)異構(gòu)環(huán)境下的軟件系統(tǒng)提供支持。傳統(tǒng)的工作流技術(shù)由于缺乏互操作性而無(wú)法滿(mǎn)足現(xiàn)代企業(yè)的需求,主要包括:可重用性不高,柔性差,分布環(huán)境支持性差等。Web 服務(wù)技術(shù)的發(fā)展以及SOA 面向架構(gòu)服務(wù)技術(shù)可以對(duì)這些問(wèn)題提供有效地解決方法。
2 傳統(tǒng)工作流管理系統(tǒng)的局限性
傳統(tǒng)的工作流技術(shù)起源于生產(chǎn)組織和辦公自動(dòng)化領(lǐng)域。它是針對(duì)企業(yè)日常工作中具有固定的程序活動(dòng)而提出。通過(guò)將工作分解成定義良好的任務(wù)、角色,按照一定的規(guī)則和過(guò)程來(lái)執(zhí)行這些任務(wù)并對(duì)其進(jìn)行監(jiān)控,達(dá)到提高效率,降低生產(chǎn)成本 ,提高企業(yè)競(jìng)爭(zhēng)力。傳統(tǒng)的工作流技術(shù)的確可以促進(jìn)企業(yè)各部門(mén)間的信息集成,但面向當(dāng)今跨區(qū)域、跨企業(yè)間的運(yùn)作形式,傳統(tǒng)的工作流技術(shù)無(wú)法滿(mǎn)足企業(yè)的需求,存在著一定的局限性:
1)分布異構(gòu)環(huán)境的支持性差
傳統(tǒng)工作流管理系統(tǒng)主要面向局域網(wǎng)進(jìn)行操作,隨著信息技術(shù)和網(wǎng)絡(luò)的發(fā)展,現(xiàn)在的企業(yè)運(yùn)作范圍是面向互聯(lián)網(wǎng)的,原來(lái)的工作流軟件只能支持單平臺(tái)操作,而每個(gè)企業(yè)都有自己的工作流管理系統(tǒng),各企業(yè)系統(tǒng)間的傳輸協(xié)議和數(shù)據(jù)結(jié)構(gòu)都存在差異,各企業(yè)無(wú)法在業(yè)務(wù)流程上進(jìn)行合作。
2)無(wú)法進(jìn)行動(dòng)態(tài)建模
工作流的過(guò)程建模技術(shù)讓過(guò)程定義和過(guò)程執(zhí)行的分離得到了實(shí)現(xiàn)?梢栽谶^(guò)程定義時(shí)靜態(tài)指定過(guò)程信息,對(duì)過(guò)程進(jìn)行實(shí)例化后按照定義依次執(zhí)行。但在流程的執(zhí)行過(guò)程中經(jīng)常會(huì)發(fā)現(xiàn)業(yè)務(wù)流程發(fā)生了變化,這就需要工作流管理能夠?qū)@些變化做出響應(yīng),動(dòng)態(tài)選擇對(duì)應(yīng)用程序的調(diào)用。
3)互操作性差
工作流管理聯(lián)盟定義的工作流間的互操作模型無(wú)法支持異構(gòu)企業(yè)間工作流引擎的復(fù)雜操作。
3 SOA 技術(shù)概述及SOA與工作流系統(tǒng)結(jié)合的可行性
3 .1 SOA相關(guān)技術(shù)
SOA(Service - Oriented Architecture)即面向服務(wù)體系結(jié)構(gòu),它是一種組件模型。SOA利用企業(yè)現(xiàn)有的各種軟件體系,重新整合并構(gòu)建起一套新的軟件架構(gòu)。這套架構(gòu)可以隨著業(yè)務(wù)的變化,隨時(shí)靈活地結(jié)合現(xiàn)有服務(wù)而組成新的軟件,共同為整個(gè)企業(yè)的業(yè)務(wù)流程而服務(wù)。
SOA 要求軟件開(kāi)發(fā)者在設(shè)計(jì)應(yīng)用軟件時(shí)要充分考慮到服務(wù)集成以及服務(wù)的重用性,SOA是面向服務(wù)模型的傳統(tǒng)緊耦合的替代者,同傳統(tǒng)的軟件架構(gòu)相比較,SOA 具有更多的優(yōu)點(diǎn):基于標(biāo)準(zhǔn)、松散耦合、共享服務(wù)等。SOA 使用獨(dú)立的接口,并以軟件組件的松散耦合性為設(shè)計(jì)的重點(diǎn)。
3 .2 SOA技術(shù)與工作流系統(tǒng)結(jié)合的可行性
SOA中的所有的功能都可以定義為獨(dú)立的服務(wù),獨(dú)立的服務(wù)之間又可以重新組合為新的業(yè)務(wù)流程,因此,SOA面向服務(wù)架構(gòu)和工作流的結(jié)合是可行的,可以改善傳統(tǒng)工作流中存在的系統(tǒng)局限性,具體的優(yōu)勢(shì)表示為以下幾點(diǎn):
1)支持異構(gòu)環(huán)境業(yè)務(wù)流程,將工作流程封裝為Web服務(wù)或者利用Web服務(wù)來(lái)實(shí)現(xiàn)業(yè)務(wù)流程中的服務(wù),滿(mǎn)足了跨地域的各大型企業(yè)之間的業(yè)務(wù)需求,加強(qiáng)了各企業(yè)業(yè)務(wù)流程之間的合作。
2)方便工作流程重組。SOA架構(gòu)可以隨著業(yè)務(wù)的變化,隨時(shí)靈活地結(jié)合現(xiàn)有服務(wù)而組成新的業(yè)務(wù),共同為整個(gè)企業(yè)的業(yè)務(wù)流程而服務(wù),可以使工作流系統(tǒng)適應(yīng)業(yè)務(wù)需求的變化。
3)可以加強(qiáng)各企業(yè)間的互操作性。工作流引擎封閉成Web服務(wù)可以使不同企業(yè)之間的不同流程通過(guò)請(qǐng)求而進(jìn)行遠(yuǎn)程協(xié)作流程。
4)可以提高軟件的可重用性。在SOA中,所有服務(wù)的封裝和設(shè)計(jì)是基于面向?qū)ο蟮,而基于面向(qū)ο蟮膬?yōu)勢(shì)在于對(duì)象的可重用性,因此面向服務(wù)的架構(gòu)可以提高軟件可重用性。
4 基于SOA 的工作流管理系統(tǒng)模型及整體架構(gòu)
4 .1 SOA架構(gòu)的工作流管理系統(tǒng)模型
針對(duì)于在工作流管理系統(tǒng)中引入SOA架構(gòu)的優(yōu)勢(shì)以及對(duì)傳統(tǒng)工作流管理系統(tǒng)的改進(jìn),我們提出了基于SOA 架構(gòu)的工作流管理系統(tǒng)的模型,見(jiàn)圖1所示:
圖1 基于SOA 架構(gòu)的工作流管理系統(tǒng)模型
與傳統(tǒng)的工作流管理系統(tǒng)相比,基于SOA架構(gòu)的工作流管理系統(tǒng)主要增加了面向服務(wù)特征,在企業(yè)的工作流程中,可將企業(yè)流程封裝成Web服務(wù),并通過(guò)調(diào)用Web 服務(wù)的形式來(lái)執(zhí)行工作流。
在工作流執(zhí)行的過(guò)程中通過(guò)提供過(guò)程定義接口,以此來(lái)獲取過(guò)程的定義,同時(shí)工作流的執(zhí)行服務(wù)由多個(gè)工作流引擎組成,通過(guò)Web服務(wù)接口的調(diào)用來(lái)執(zhí)行相關(guān)的應(yīng)用程序。為適應(yīng)分布異構(gòu)環(huán)境下的業(yè)務(wù)進(jìn)程,作為一種語(yǔ)言規(guī)范的提出,BPEL(Business process execution language)即業(yè)務(wù)流程執(zhí)行語(yǔ)言,為SOA 的工作流管理系統(tǒng)的建模提供了很好的工具,利用業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL) ,可以完成操縱數(shù)據(jù)、調(diào)用Web 服務(wù)等并可創(chuàng)建更為復(fù)雜的業(yè)務(wù)流程。
4 .2 基于SOA的工作流系統(tǒng)整體架構(gòu)。系統(tǒng)采用MVC 架構(gòu)的體系結(jié)構(gòu),由四個(gè)層次來(lái)實(shí)現(xiàn),基于SOA的工作流系統(tǒng)整體架構(gòu)如圖2所示:
圖2 基于SOA架構(gòu)工作流管理系統(tǒng)的整體架構(gòu)
數(shù)據(jù)層:主要用來(lái)對(duì)操作數(shù)據(jù)庫(kù)或者數(shù)據(jù)源,實(shí)現(xiàn)異構(gòu)構(gòu)數(shù)據(jù)庫(kù)的操作與配置。
業(yè)務(wù)層:主要用于訪問(wèn)數(shù)據(jù)層,從數(shù)據(jù)層取數(shù)據(jù)、修改數(shù)據(jù)以及刪除數(shù)據(jù),并將結(jié)果返回給表現(xiàn)層。
服務(wù)層:主要用于實(shí)現(xiàn)服務(wù)編排和軟件服務(wù)建模,將外部的功能進(jìn)行封裝成為粒度不等的服務(wù)。
表現(xiàn)層:主要用于用戶(hù)接口的展示,以及用業(yè)務(wù)層的類(lèi)和對(duì)象來(lái)驅(qū)動(dòng)這些接口,調(diào)用功能服務(wù)層提供的服務(wù)。
5 基于SOA的業(yè)務(wù)流程集成
5 .1 面向服務(wù)的封裝機(jī)制
基于SOA架構(gòu)的工作流管理系統(tǒng)具有的服務(wù)封裝機(jī)制包括:
1)服務(wù):該服務(wù)封裝機(jī)制主要用于封裝相互之間有聯(lián)系的操作的集合,即操作的邏輯分組。當(dāng)某些業(yè)務(wù)流程發(fā)生變化時(shí),不需要重新開(kāi)發(fā)業(yè)務(wù)流程,而是針對(duì)某些業(yè)務(wù)直接進(jìn)行重組。
2)流程:該封裝機(jī)制主要將工作流程以web服務(wù)的形式來(lái)發(fā)布,可以更好的保證企業(yè)之間的業(yè)務(wù)流程集成。
3)操作:該封裝機(jī)制用于實(shí)現(xiàn)系統(tǒng)中的一些簡(jiǎn)單組件和應(yīng)用程序。
5 .2 服務(wù)的調(diào)用機(jī)制
對(duì)于服務(wù)的調(diào)用方面可以分為同步調(diào)用和異步調(diào)用兩種,其分類(lèi)方法是根據(jù)工作流程的復(fù)雜和緊急程度來(lái)劃分的。
服務(wù)調(diào)用主要采取HTTP 請(qǐng)求——響應(yīng)的模式。分為同步和異步兩種方式進(jìn)行,同步調(diào)用下,服務(wù)請(qǐng)求者首先向服務(wù)的提供者發(fā)送請(qǐng)求消息,在請(qǐng)求消息未處理完之前,服務(wù)請(qǐng)求者會(huì)一直保持等待響應(yīng)的狀態(tài)。與同步調(diào)用方式不同,異步調(diào)用時(shí),服務(wù)的請(qǐng)求者發(fā)送請(qǐng)求后無(wú)需等待響應(yīng),服務(wù)提供者可利用較長(zhǎng)時(shí)間來(lái)處理相關(guān)的請(qǐng)求,處理結(jié)束后再將響應(yīng)的信息返回。
Web服務(wù)的發(fā)布分為兩種:UDDI注冊(cè)中心與靜態(tài)發(fā)布。UDDI 注冊(cè)中心獲取到服務(wù)描述后,服務(wù)的請(qǐng)求者可以通過(guò)獲取到的服務(wù)信息來(lái)對(duì)Web服務(wù)接口進(jìn)行訪問(wèn)并通過(guò)服務(wù)描述生成簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議SOAP(Simple Object Access Protocol) ,服務(wù)請(qǐng)求者可以通過(guò)Web 接口直接調(diào)用所需服務(wù)。另一種獲取Web 服務(wù)的途徑是通過(guò)本地的服務(wù)描述語(yǔ)言WSDL 即(Web Service DescriptionLanguage)來(lái)獲得相關(guān)Web 服務(wù)。
6 結(jié)束語(yǔ)
面向服務(wù)架構(gòu)(SOA)是近幾年被廣泛接受的軟件體系架構(gòu),利用SOA 框架將工作流技術(shù)與Web 服務(wù)技術(shù)相結(jié)合,用Web 服務(wù)來(lái)實(shí)現(xiàn)企業(yè)中的業(yè)務(wù)流程,使大型企業(yè)中業(yè)務(wù)流程的復(fù)雜性和地域分布性狀況得到了很好的適應(yīng)。本文設(shè)計(jì)的基于SOA 架構(gòu)的工作流管理系統(tǒng)的模型已在實(shí)際的項(xiàng)目中得到了應(yīng)用并取得了較好的評(píng)價(jià),本系統(tǒng)采取Web Services 技術(shù),屏蔽了軟件平臺(tái)之間的差異,使系統(tǒng)具備異構(gòu)系統(tǒng)之間的集成并適應(yīng)用于企業(yè)分布式的異構(gòu)環(huán)境。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴(lài)品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SOA架構(gòu)的工作流管理系統(tǒng)的研究與應(yīng)用
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/1401939812.html