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