(計算機軟件與理論專業(yè)論文)基于sca的輕量級bpel引擎的設計與實現(xiàn).pdf_第1頁
(計算機軟件與理論專業(yè)論文)基于sca的輕量級bpel引擎的設計與實現(xiàn).pdf_第2頁
(計算機軟件與理論專業(yè)論文)基于sca的輕量級bpel引擎的設計與實現(xiàn).pdf_第3頁
(計算機軟件與理論專業(yè)論文)基于sca的輕量級bpel引擎的設計與實現(xiàn).pdf_第4頁
(計算機軟件與理論專業(yè)論文)基于sca的輕量級bpel引擎的設計與實現(xiàn).pdf_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

摘要 摘要 s o a 作為當前軟件業(yè)內的重要思想,正在成為軟件行業(yè)構建系統(tǒng)和解決實 際問題的發(fā)展方向。但如何以規(guī)范的方式實現(xiàn)s o a 思想,長久以來一直是業(yè)內 爭論的焦點,在這期間出現(xiàn)了一些用于實現(xiàn)s o a 思想的方法和規(guī)范。b p e l 和 s c a 就是這些方法和規(guī)范的重要組成部分。 業(yè)務流程描述語言( b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e ,b p e l ) 作為近年 產生的業(yè)務流程描述語言,一經(jīng)出現(xiàn)便成為實現(xiàn)s o a 思想的重要途徑和方法。 b p e l 為解決基于不同架構和開發(fā)語言的遺留系統(tǒng)整合問題提供了新的思路。它 能夠實現(xiàn)對現(xiàn)有w e b 服務的編排,從而實現(xiàn)新的業(yè)務需求,有效提高遺留系統(tǒng) 的可重用性。 服務構件架構( s e r v i c ec o m p o n e n ta r c h i t e c t u r e ,s c a ) 貝 j 是在最近兩年剛剛產 生的新的編程模型。它的出現(xiàn)從根本上解決了遺留系統(tǒng)的集成問題。此外,s c a 還帶來了新的編程思想,使業(yè)務邏輯與傳輸協(xié)議實現(xiàn)了松散耦合。因此s c a 的 產生使s o a 思想的具體實現(xiàn)有了真正的標準和規(guī)范,成為s o a 思想“落地”的 重要里程碑。 本文在介紹b p e l 及s c a 相關知識的基礎上,結合這兩種方法的優(yōu)勢,設 計并實現(xiàn)了一種基于s c a 的輕量級b p e l 引擎。文中提出了輕量級引擎的設計 思路;并著重分析了輕量級b p e l 引擎的架構,闡述了“輕量級 概念的實質; 并在架構設計的基礎上,詳細地描述了輕量級引擎的各個功能模塊的設計。文中 還介紹了輕量級引擎在醫(yī)療系統(tǒng)背景下的具體實現(xiàn)方式。 本文嘗試將s c a 與b p e l 引擎相結合,即將s c a 的實現(xiàn)方式應用于b p e l 引擎的架構設計中,從而實現(xiàn)一種輕量級的b p e l 引擎。本文還提出了b p e l 分 層模型的概念,以及通過該模型實現(xiàn)b p e l 業(yè)務流程與數(shù)據(jù)庫的表結構的直接映 射方法。 關鍵詞b p el :b p e l 引擎;輕量級:s c a a b s t r a c t a b s t r a c t s o ai sb e c o m i n gam o r ea n dm o r ei m p o r t a n tc o n c e p to fs o f t w a r ee n g i n e e r i n g a r e a ,w h i c hw i l lb e c o m et h ed i r e c t i o na n dr e f e r e n c ef o rs o f t w a r e e n g i n e e r i n g p r o c e d u r e h o w e v e r , h o wt o u s et h ec o n c e p to fs o ai ns o f t w a r ee n g i n e e r i n gi na n o r m a t i v ew a yh a sb e e naf o c u s e dq u e s t i o nf o ral o n gt i m e t h e r ea r es o m ef u n c t i o n s c o m i n go u td u r i n gt h e s ey e a r st ou s es o a ,i n c l u d i n gb p e la n ds c a ,w h i c ha r et w o i m p o r t a n tf u n c t i o n si nt h i sa r e a b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g e ( b p e l ) i sa nx m l b a s e dl a n g u a g ef o r c r e a t i n gaw o r k f l o wp r o c e s s ,w h i c hb e c a m ea ni m p o r t a n tw a yt oi m p l e m e n tt h e c o n c e p to fs o a s i n c eb e i n gb r o u g h tf o r w a r d b p e lg i v e so u tan e wi d e at or e u s ea n d r e o r g a n i z et h ee x i s t i n gs y s t e m sw h i c hw e r ep r o d u c e db a s e do nd i f f e r e n ta r c h i t e c t u r e s a n dd i f f e r e n tl a n g u a g e s b p e lw a sc r e a t e ds p e c i a l l yt oa r r a n g ew e bs e r v i c e sf o ra n e ww o r k f l o w , w h i c hc o u l de f f e c t i v e l yi m p r o v et h er e u s a b i l i t yo ft h ee x i s t i n g s y s t e m s s e r v i c ec o m p o n e n ta r c h i t e c t u r e ( s c a ) i sap r o p o s e ds t a n d a r df o rc o m p o s i n g a n dd e p l o y i n gs o a w h e ns c a - c o m p l i a n tp r o d u c t sa r ei np l a c ea td e v e l o p m e n ta n d r u nt i m e ,o n ec o u l dw r i t ec o d ei nt h ei m p l e m e n t a t i o nl a n g u a g eo fa n yc h o i c e ,b u tw i t h a ni m p o r t a n td i f f e r e n c et h a nt h ef o c u si so nb u s i n e s sl o g i cb u tn o tl a n g u a g ea n ym o r e s c aa l l o w st oa v o i d i n gw r i t i n gm a n yo ft h et e c h n o l o g y s p e c i f i cd e t a i l s ,e s p e c i a l l y t h et r a n s f e rp r o t o c 0 1 b a s e do nt h ei n t r o d u c t i o n sa n da d v a n t a g e so fb p e la n ds c a ,t h i sa r t i c l eg i v e s o u tan e wd e s i g no fas c a b a s e dl i g h t w e i g h tb p e le n g i n e t h i sa r t i c l ef i r s t l y i n t r o d u c e st h er e l a t i o n s h i pb e t w e e nb p e la n db p e le n g i n e ,a n dt h ed e s i g nd i r e c t i o n o ft h el i g h t w e i g h te n g i n e a n dt h e ns p e c i a l l yd e s i g n sa n da n a l y s e st h ea r c h i t e c t u r eo f t h el i g h t w e i g h te n g i n e ,a l s oi n t r o d u c e st h ee s s e n t i a lo ft h ec o n c e p to fl i g h t w e i g h t b a s e do nt h ed e s i g no fa r c h i t e c t u r e ,t h i sa r t i c l ei n t r o d u c e st h ef u n c t i o nd e s i g nf o r e v e r ym o d u l eo ft h ee n g i n ei nd e t a i lw i t hs o m ed i a g r a m sa n dc o r ec o d e s a tl a s t ,t h i s a r t i c l ei n t r o d u c e so n ee x a m p l et ou s et h es c a - b a s e dl i g h t w e i g h tb p e le n g i n ei na h o s p i t a ls y s t e m t h i sa r t i c l eg i v e so u ta ni d e at ob i n db p e le n g i n et o g e t h e rw i t hs c ai nan e w w a y , w h i c hm e a n sa d o p t i n gt h ew a yt h a ts c ac o m p o s i n ga n dd e p l o y i n gs o aa s r e f e r e n c ei nt h ed e s i g no ft h el i g h t w e i g h tb p e le n g i n e b e s i d e st h a t ,t h i sa r t i c l ea l s o g i v e so u tad e l a m i n a t i o nm o d e lf o rb p e l ,w h i c hc o u l db eu s e df o rm a p p i n gt h e i i l 北京工業(yè)大學丁學碩十學位論文 e l e m e n t e so fb p e lt od a t a b a s et a b l e sd i r e c t l y k e y w o r d sb p e l ;b p e le n g i n e ;l i g h t w e i g h t ;s c a 獨創(chuàng)性聲明 本人聲明所呈交的論文是我個人在導師指導下進行的研究工作及取得的研 究成果。盡我所知,除了文中特別加以標注和致謝的地方外,論文中不包含其他 人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得北京工業(yè)大學或其它教育機構 的學位或證書而使用過的材料。與我一同工作的同志對本研究所做的任何貢獻均 已在論文中作了明確的說明并表示了謝意。 關于論文使用授權的說明 勿諺j 留 本人完全了解北京工業(yè)大學有關保留、使用學位論文的規(guī)定,即:學校有權 保留送交論文的復印件,允許論文被查閱和借閱;學??梢怨颊撐牡娜炕虿?分內容,可以采用影印、縮印或其他復制手段保存論文。 ( 保密的論文在解密后應遵守此規(guī)定) 簽名: 第l 意緒論 1 1 課題背景 第1 章緒論 1 1 1s o a 思想的起源和發(fā)展 s o a 作為當前軟件業(yè)內最為炙手可熱的概念,正在不斷獲得越來越多的業(yè)內 企業(yè)的關注。與此同時,在s o a 標準的完善過程中,也不斷出現(xiàn)了許多用以實 現(xiàn)s o a 思想的新技術。s o a 思想的起源并不久遠,但一經(jīng)出現(xiàn)便得到業(yè)內專業(yè) 人士的廣泛共識。s o a 思想是由g a r t n e r 在1 9 9 6 年提出的,短短幾年之內,在 廠商、研究人員和標準化組織的共同努力下,已經(jīng)制定出一大批s o a 標準和規(guī) 范,有力地推動了s o a 的發(fā)展【lj 。 伴隨著w e b 服務技術的不斷普及和發(fā)展,互聯(lián)網(wǎng)的應用范圍內迅速出現(xiàn)了 眾多基于不同平臺和語言開發(fā)的w e b 服務組件。為了能夠有效地對這些具有不 同特征的組件進行管理,技術人員迫切需要找到一種新的面向服務的分布式w e b 計算架構。該架構要能夠使這些由不同組織開發(fā)的w e b 服務能夠相互使用和交 互,保障安全,同時還要兼顧復用性和可管理性。面向服務的架構 ( s e r v i c e o r i e n t e d a r c h i t e c t u r e ,s o a ) 在此時顯示了其不可估量的優(yōu)越性,可以很 好地實現(xiàn)這種跨平臺交互的需求。需求推動技術的進步,正是這種強烈的市場需 求,使得s o a 成為人們關注的焦點。 從2 0 0 5 年開始,s o a 的推廣和普及工作開始加速。不僅專家學者,幾乎所 有關心軟件行業(yè)發(fā)展的人士都開始把目光投向s o a 。一時間,s o a 頻頻出現(xiàn)在 各種技術媒體、新產品發(fā)布會和技術交流會上。各大廠商也逐漸放棄成見,通過 建立廠商間的協(xié)作組織共同努力制定中立的s o a 標準。這一努力最重要的成果 體現(xiàn)在3 個重量級規(guī)范上:s c a 、s d o 和w s p o l i c y 2 1 。s c a 和s d o 共同構成 了s o a 編程模型的基礎,而w s p o l i c y 則建立了s o a 組件之間安全交互的規(guī)范。 這三個規(guī)范的發(fā)布,標志著s o a 進入了實施階段。 1 1 2s o a 思想的應用現(xiàn)狀 隨著s o a 思想的出現(xiàn)和發(fā)展,將s o a 思想應用于具體的軟件系統(tǒng)建模和構 建過程成為當前軟件業(yè)發(fā)展的重要方向。但如何將s o a 思想準確應用于實踐? 具體到如何將s o a 思想與實際的項目需求相結合,進而將其轉化為具體的編 碼? 這樣的問題很快成為了業(yè)內關注s o a 發(fā)展的有識之士的討論熱點。 北京下q k 大學i :掌頇十學位論文 ! 曼! 曼曼曼! 曼曼i i im_i i 在這種激烈的討論中,許多企業(yè)身先士卒,希望自身在s o a 方面所取得的 研究和試驗成果能夠成為業(yè)內共識。這其中包括許多知名企業(yè),如i b m 、s a p 、 o r a c l e 、b e a 、微軟等國際知名軟件研發(fā)廠商,她們在s o a 的應用研究方面確 實處在了世界領先的位置,她們將自身現(xiàn)有構件和中間件等成熟產品與s o a 思 想進行各種方式的整合,最終得到滿足s o a 思想的自主研發(fā)產品。與此同時, 國內軟件廠商也不甘落后,許多具有超前意識的軟件廠商看到了s o a 發(fā)展的廣 闊前景和重要競爭力,也紛紛組織技術人員研發(fā)具有自主知識產權的s o a 產品。 2 0 0 5 年1 1 月3 0 日,b e a 公司宣布將與i b m 、o r a c l e 、s a p 、i o n a 、s i e b e l 和s y b a s e 等熱衷于s o a 技術發(fā)展的公司一起,支持一種構建和包裝應用程序的 新規(guī)范,即服務構件架構( s e r v i c ec o m p o n e n t a r c h i t e c t u r e ,s c a ) ,使得企業(yè)在s o a 中創(chuàng)建和實施應用程序的方法得到簡化1 3 j 。這項規(guī)范的發(fā)布,標志著s o a 的實 施已經(jīng)進入了實質性階段。這項規(guī)范必將對s o a 的發(fā)展起到重要的規(guī)范化作用。 2 0 0 7 年3 月2 1 日,1 8 家熱衷于s o a 發(fā)展的公司又共同發(fā)布了服務構件架構( s c a ) 的新版本,即1 o 版,并將其提交給o s a i a ( 結構化信息標準促進組織) 組織進 行進一步的優(yōu)化。s c a 新版本的提出,進一步促進了s o a 思想從理論向實際規(guī) 范化應用的轉化,也必將加快s o a 相關規(guī)范應用項目的研究和應用進程。 1 1 3s c a 與b p e l 的出現(xiàn)及價值 服務構件架構( s e r v i c ec o m p o n e n ta r c h i t e c t ur e ,s c a ) 概念的提出受到了眾多 業(yè)內重要企業(yè)的追捧,與之相關的許多重要標準也相應出臺,業(yè)界公認s c a 將 成為使s o a 思想“落地”,并進入實際實施階段的里程碑式的發(fā)展契機。但s c a 概念在工程方面的具體應用現(xiàn)在還停留在最初級的階段p j 。個別的業(yè)內企業(yè)在一 些s o a 的相關產品中引入了s c a 的概念,而支持s c a 的編程容器更是在2 0 0 7 年末才出現(xiàn),因此到目前為止實際的s c a 相關應用開發(fā)案例仍難得一見。 b p e l 4 w s 是i b m 的w s f l 和微軟的x l a n g 的后續(xù)產品,并對兩者進行 了組合。b p e l 4 w s 是基于x m l 定義的流程描述語言,它位于幾個x m l 規(guī)范 之上:w s d l l 1 、x m l s c h e m a l 0 和x p a t h l 0 。其中w s d l 消息和x m ls c h e m a 類型定義提供了b p e l 流程所用的數(shù)據(jù)模型;x p a t h 為數(shù)據(jù)處理提供支持;所有 外部資源和伙伴被表示成w s d l 服務。在這些規(guī)范中,w s d l 對b p e l 4 w s 語 言的影響最大,b p e l 4 w s 流程模型位于由w s d l1 1 所定義的服務模型之上【4 1 。 從s o a 的觀點來看,不同的應用系統(tǒng)以w e b 服務的形式來發(fā)布它們的業(yè)務 功能。因此,可以通過使用統(tǒng)一的標準和規(guī)范方式( 通過w e b 服務) 來訪問遺 留系統(tǒng)和新開發(fā)的應用。如果僅僅是開發(fā)w e b 服務并把這些功能發(fā)布出來還不 夠。我們也需要一種把這些功能按正確的順序組合起來的方法,即采用一種能夠 第1 幣緒論 實現(xiàn)定義并使用這些w e b 服務的業(yè)務過程。當業(yè)務過程通常易于變化的情況下, 就更加需要一個簡單且直接的方式來定義這些業(yè)務過程,同時也應該能夠實現(xiàn)對 所定義的業(yè)務過程進行輕松的修改。 上述所需要的定義方式正是b p e l ( b u s i n e s sp r o c e s se x e c u t i o nl a n g u a g ef o r w e bs e r v i c e ,也稱作w s b p e l 或b p e l 4 w s ) 出現(xiàn)并受到越來越多關注的原因。 b p e l 用于組合這些w e b 服務,定義它們的相互關系和順序,并能夠根據(jù)需要進 行快速的修改,因此b p e l 被認為是s o a 的一種理想實現(xiàn)方式【5 】。 b p e l 作為業(yè)務流程執(zhí)行語言,已經(jīng)成為目前業(yè)界比較通用的業(yè)務流程描述 工具,為編排w e b 服務提供了通用的標準。b e p l 與s c a 相結合,將成為簡化 s o a 的相關應用程序開發(fā)的新模式。 1 1 4b p e l 引擎 b p e l 引擎的主要任務是為b p e l 所定義的業(yè)務流程提供可靠的執(zhí)行環(huán)境, 即實現(xiàn)對業(yè)務流程實例進行驅動和相關的管理,例如流程的實例化、跳轉判斷、 具體服務調用等。b p e l 引擎通過對業(yè)務流程實例的有效管理,使用戶可以將更 多精力關注于流程邏輯的實現(xiàn)【4 j 。 具體地說,b p e l 引擎是用如j a v a 、c h 等應用程序設計語言編寫的,能夠 實現(xiàn)對b p e l 定義的業(yè)務流程的解析,并按照業(yè)務流程的執(zhí)行條件和運行情況, 控制和判斷業(yè)務流程的跳轉。因此,b p e l 所描述的業(yè)務流程的具體實現(xiàn),是在 b p e l 引擎的管理和控制下進行的。b p e l 引擎負責控制和管理著所有業(yè)務流程 實例從初始化到結束的整個生命周期。 1 2 本文工作及意義 1 2 1 本文核心工作 本文的核心工作是設計一個基于s c a 的輕量級b p e l 引擎,并通過一個簡 單的醫(yī)療系統(tǒng)項目原型對其進行驗證。本文在分析了s c a 與b p e l 引擎相整合 的可行性及具體的整和方式的基礎上,給出了基于s c a 的輕量級b p e l 引擎的 設計方案。主要包括引擎架構的設計、引擎具體功能模塊的設計、基于s c a 的 對外接口的設計以及用戶交互界面的設計等。 1 2 2 基于s c a 的研究方向 當前的b p e l 引擎,無論是知名企業(yè)的較成熟產品,還是開源的b p e l 引擎, 北京t q p 大學 二掌碩卜學位論文 雖然都是遵循著s o a 的設計思想和理念,但卻都是按照本企業(yè)對s o a 的理解進 行的架構設計,并非按照業(yè)內規(guī)范,即s c a 的標準進行的設計和實現(xiàn)。而s c a 作為s o a 思想具體實現(xiàn)的一種編程模型,將必然成為業(yè)內s o a 應用的規(guī)范和標 準,但s c a 的具體應用現(xiàn)在還處于最初的狀態(tài),隨著s c a l 0 版本在2 0 0 7 年的 發(fā)布,基于s c a 規(guī)范的應用研發(fā)必將成為未來的主流。 本文將基于s c a 的b p e l 引擎作為研究重點,研究如何實現(xiàn)b p e l 引擎與 s c a 進行整合,以及b p e l 引擎在s c a 運行環(huán)境中的實際應用方式。 1 2 3 “輕量級”引擎的研究意義 當前b p e l 引擎的研究工作隨著b p e l 規(guī)范的推出正走向繁榮發(fā)展的階段, 許多致力于s o a 應用和研究的公司也都不約而同地關注著b p e l 的發(fā)展和具體 的應用。例如i b m 公司和o r a c l e 公司都推出了自己的b p e l 引擎產品,但這樣 的引擎產品都與這些公司的相關產品緊密耦合,相應的對b p e l 引擎的部署和配 置就需要高額的費用。許多中小型企業(yè)或特定領域的應用沒有足夠的財力使用這 類重量級b p e l 引擎。與此同時,一些公司和組織也推出了一些開源的b p e l 引 擎,但這類開源b p e l 引擎基本處于初始階段,一些比較成熟的b p e l 引擎( 如 a c t i v e b p e l 引擎) 也向著大型化、重量級的方向發(fā)展;另一些b p e l 引擎則主 要是國外一些大學實驗室的研究項目,他們的研究和發(fā)展方向也主要集中在具有 全面功能的重量級引擎1 6 j 。 因此可以說b p e l 引擎在受到廣泛關注的同時,始終是向著大型化和重量級 的方向發(fā)展,幾乎沒有任何的b p e l 引擎把輕量級作為研究和發(fā)展方向,使得當 前輕量級b p e l 引擎的發(fā)展處于幾乎空白的狀況。輕量級、專門化的b p e l 引擎 對于如醫(yī)院這樣的專業(yè)機構,或者需要業(yè)務管理軟件的中小型企業(yè)來說有著重要 的應用價值,這就將帶來對輕量級b p e l 引擎的眾多應用需求。因此,輕量級 b p e l 引擎將成為b p e l 引擎研究和應用的重要發(fā)展方向?;谏鲜龇治?,我認 為將輕量級b p e l 引擎作為研究方向將有助于推動b p e l 引擎在專門化領域的實 際應用。 1 3 論文結構 本文在第二章介紹了工作流引擎的概念及特點、b p e l 及s c a 的概念和組 成元素。在第三章和第四章,本文提出了基于s c a 的輕量級b p e l 引擎的架構 設計和功能模塊的詳細設計,并提出了b p e l 的分層模型及映射到數(shù)據(jù)庫表結構 的具體方式。本文的第五章介紹了將所設計的b p e l 引擎在實際應用背景下進行 具體實現(xiàn)的方式。 第2 章工作流管理系統(tǒng)、bp e l 與s c a 第2 章工作流管理系統(tǒng)、b p e l 與s c a 本章將較為詳細地介紹傳統(tǒng)的工作流管理系統(tǒng)的概念及缺陷,以及當前主流 的面向服務的工作流管理系統(tǒng)的概念。在此基礎上,本章介紹了b p e l 的基本思 想和基本組成,并介紹和分析了b p e l 與b p e l 引擎的相互關系。最后,本章 介紹了s c a 的概念及組成。 2 1 工作流管理系統(tǒng) 2 1 1 傳統(tǒng)工作流管理系統(tǒng)的概念及缺陷 我們可以將業(yè)務流程定義為:一個由具有不同功能的各種活動按照一定順序 和關系組成,以共同完成相關任務為目標的功能序列,它們依照一定的業(yè)務邏輯 和順序依次執(zhí)行【7 】。業(yè)務流程具有可重復的起點和終點,是企業(yè)用來實現(xiàn)商務目 標和完成商務運作的重要途徑。對于一家企業(yè)而言,業(yè)務流程是長期實踐經(jīng)驗的 積累,業(yè)務流程應該被看作是企業(yè)重要的知識資產,同時,完整的業(yè)務流程也是 企業(yè)核心競爭力的一種體現(xiàn),一個精心設計和執(zhí)行的業(yè)務流程體現(xiàn)了企業(yè)在相關 領域的執(zhí)行能力,因而能夠為企業(yè)創(chuàng)造價值并有效節(jié)約成本。 工作流管理系統(tǒng)定義了業(yè)務流程的參與者( w h o ) 、所執(zhí)行的工作( w h a t ) 以及何時具體執(zhí)行( w h e n ) 【8 j 。在企業(yè)l t 環(huán)境中,工作流管理軟件通常與企業(yè) 應用集成( e n t e r p r i s ea p p l i c a t i o ni n t e g r a t i o n ,e a l ) 系統(tǒng)結合在一起,指導企 業(yè)應用軟件根據(jù)業(yè)務流程的定義具體完成業(yè)務流程中的每一個功能,從而實現(xiàn)業(yè) 務流程的自動化和流水線化p j 。 然而傳統(tǒng)的工作流管理系統(tǒng)有著比較嚴重的缺陷,突出表現(xiàn)在:工作流管理 系統(tǒng)大多采用了不同的實現(xiàn)技術,這使得業(yè)務流程與企業(yè)應用系統(tǒng)的結合變得非 常復雜,通常需要很長時間進行部署和實施,甚至會由于過分的復雜而造成項目 的失敗,只能通過整體重建的方式重新設計和實施企業(yè)管理系統(tǒng),這一點也說明 了:傳統(tǒng)的結構化程序設計或面向對象程序設計在對現(xiàn)有系統(tǒng)進行擴展和整合的 時候會遇到非常大的困難。與此同時,企業(yè)工作流管理系統(tǒng)與企業(yè)外部系統(tǒng)進行 集成則更加困難,這也就造成了一個企業(yè)的內部管理系統(tǒng)無法適應全球化浪潮和 互聯(lián)網(wǎng)時代對企業(yè)靈活、無縫集成的需求【1 0 】。因此人們開始考慮利用w e b 服務 的開放性和標準化,利用封裝服務和構建以服務為元素的流程的方法,來解決業(yè) 務流程與企業(yè)具體應用之間的互操作性問題。 北京t 業(yè)大學工學碩一l 學位論文 2 1 2 面向服務的工作流管理系統(tǒng) 在面向服務的體系結構下,服務與流程有著緊密的聯(lián)系,流程由服務組合而 成,而流程本身又可以被封裝成為服務。而工作流管理系統(tǒng)的組織和管理對象正 是具有完整功能的、獨立的、可以被方便引用的服務。i b m 公司的一項調查發(fā) 現(xiàn):在面向服務的體系結構中,服務被復用的概率與面向對象體系結構中對于對 象的復用概率相比要高得多l(xiāng) l 。也就是說服務是在真正意義上促進了對現(xiàn)有系 統(tǒng)、功能、甚至業(yè)務流程的復用。 與傳統(tǒng)工作流管理系統(tǒng)相比,面向服務的工作流管理系統(tǒng)最突出的優(yōu)點就在 于:它對現(xiàn)有資源能夠實現(xiàn)輕松的復用,即面向服務的工作流管理系統(tǒng)通過將現(xiàn) 有系統(tǒng)、功能模塊或完整的業(yè)務流程封裝成服務并加以調用的方式,來實現(xiàn)新的 業(yè)務流程的定義和執(zhí)行。 面向服務的工作流管理系統(tǒng)的另一個優(yōu)點是可以輕松地實現(xiàn)對現(xiàn)有工作流 的修改。由于業(yè)務流程的每一個節(jié)點都是一個封裝良好的服務,因此只需對業(yè)務 流程的定義部分做出適當?shù)男薷木涂梢酝瓿蓪φ麄€業(yè)務流程實現(xiàn)功能的修改,而 不必關心被引用的新的服務是如何具體實現(xiàn)的。這個優(yōu)點即面向服務的工作流管 理系統(tǒng)所體現(xiàn)出的松耦合的特性。松耦合的特性使面向對象的工作流管理系統(tǒng)同 時具備了易于維護的優(yōu)點l l 引。 明確區(qū)分業(yè)務人員與工程技術人員的角色是面向服務的工作流管理系統(tǒng)的 另一重要優(yōu)點。傳統(tǒng)的工作流管理系統(tǒng)由于其不具備良好的松耦合性,使得業(yè)務 流程的定義往往與底層程序設計緊密相關,這就對業(yè)務人員和工程技術人員提出 了更高的要求,他們不得不學習和了解對方所具有的業(yè)務或編程知識,給業(yè)務流 程的正確制定帶來相當大的困難。業(yè)務人員希望從業(yè)務驅動的角度來定義所需要 的業(yè)務流程,即采用自上而下的方式,在設計業(yè)務流程時先不與i t 相關聯(lián),然 后進一步深化到更細粒度的細節(jié)內容【l3 1 。在面向服務的工作流管理系統(tǒng)中,業(yè) 務流程的定義與服務的具體實現(xiàn)完全脫離,使得業(yè)務人員可以專注于業(yè)務流程的 具體定義而不需要關注任何底層服務的實現(xiàn),這就為業(yè)務人員制定業(yè)務流程帶來 了極大的便利。 2 2b p e l 與b p e l 引擎 2 2 1b p e l 基本思想 b p e l 作為新的業(yè)務流程描述語言,為業(yè)務流程的定義提供了新的方式。 b p e l 所組織和編排的業(yè)務流程單元是定義良好的w e b 服務,因此可以說b p e l 第2 章工作流管理系統(tǒng)、bp e l 與s c a 是面向服務的業(yè)務流程定義語言。但從功能的角度分析,b p e l 并不能構成完整 的工作流管理系統(tǒng),因為b p e l 的優(yōu)勢就在于它的簡單和易用性,b p e l 自身并 不能實現(xiàn)任何的管理功能。簡單地說,b p e l 通過業(yè)務流程的編排將各種接口組 織在一起,其目的在于提供一個“集成了各種接口”的接口【1 4 1 ,具體的功能則 是由各種接口所封裝的服務來具體實現(xiàn)的。 2 2 2b p e l 業(yè)務流程的描述和定義方式 b p e l 是對業(yè)務流程進行描述和編排的語言,它具有描述和編排業(yè)務流程所 需要的規(guī)范和基本定義方式。 首先,一個用b p e l 所描述的業(yè)務流程一定具有一個起點和一個終點。它的 起點是“r e c e i v e ,也就是b p e l 所描述的業(yè)務流程的初始輸入?yún)?shù)。它的終點 是“r e p l y ”,是b p e l 所描述的業(yè)務流程在流程執(zhí)行完畢時返回給調用端的返回 值。 其次,作為業(yè)務流程描述語言,b p e l 所描述的一個完整的業(yè)務流程是由 b p e l 活動( a c t i v i t y ) 組成的,一個活動就是b p e l 所描述的業(yè)務流程中的一個 執(zhí)行步驟。b p e l 的規(guī)范中所包含的基本活動有: :賦值活動,實現(xiàn)流程中變量間的賦值操作; :調用活動,實現(xiàn)對流程描述中所使用的w e b 服務的調用: :條件,流程描述中的條件判斷操作,實現(xiàn)了流程的路徑的選擇 判斷操作: :順序執(zhí)行,該活動中所包含的子活動將嚴格按照一定的順序執(zhí) 行,即前面的活動執(zhí)行結束后,后面的活動才可以開始執(zhí)行; :并行執(zhí)行,與s e q u e n c e 相對應,該活動中所包含的子活動以并行 的方式執(zhí)行; 上述活動是實現(xiàn)b p e l 業(yè)務流程編排和描述的主要活動,此外b p e l 還包括 、 等用于實現(xiàn)一些特殊功能的活動。 最后,b p e l 還包含一些用于實現(xiàn)業(yè)務流程定義的過程組件。這些過程組件 是構成b p e l 活動的基礎,在活動執(zhí)行時,過程組件發(fā)揮著重要的作用。主要過 程組件包括: :合作伙伴鏈接,這是b p e l 中最重要的過程組件,它具體指 明了b p e l 業(yè)務流程中的服務提供者; :變量,變量在b p e l 業(yè)務流程編排和執(zhí)行過程中負責流程數(shù)據(jù) 的傳遞,例如前一個服務調用后的輸出變量將把數(shù)據(jù)傳遞給下一個服務調用的輸 入變量。 北京t 業(yè)大學t 學碩士學位論文 曼曼! ! 苧! 曼! ! 曼! 曼皇! 曼曼! 曼! ! 曼! ! ! ! ! 曼曼曼曼! 曼! 曼曼曼曼曼曼曼蔓曼曼! 皇曼曼曼皇! 皇! ! 曼! 曼! 曼! ! 曼i i ii 一一曼。 2 2 3b p e l 與b p e l 引擎的相互關系 b p e l 作為業(yè)務流程描述語言,它產生的意義就在于能夠方便地實現(xiàn)將已有 的w e b 服務按照新的順序連接起來,以此來實現(xiàn)新的業(yè)務需求,完成新的業(yè)務 過程。而b p e l 引擎則是用于支持b p e l 執(zhí)行的運行環(huán)境,也可以說b p e l 是在 其運行環(huán)境,即b p e l 引擎的支持下執(zhí)行的。t b p e l 語言本身并不能獨立地完成業(yè)務流程的實例化、具體的w e b 服務的調 用以及業(yè)務流程管理等功能,它所完成的只是業(yè)務流程的定義和描述。真正的執(zhí) 行者是b p e l 引擎。而b p e l 引擎也并不是使用b p e l 的語言規(guī)范進行編程來實 現(xiàn)其功能的。b p e l 引擎就同一個普通的應用程序一樣,可以使用j a v a 或c + + 等任意的編程語言,有其自身的架構、層次、輸入輸出,有具體的功能模塊, 甚至還需要數(shù)據(jù)的持久化操作。在這樣的基礎上完成b p e l 語言所描述的業(yè)務流 程的實例化、管理、驅動和跳轉等操作。 因此,b p e l 是業(yè)務流程的描述語言,具體決定了一個業(yè)務流程的執(zhí)行順序 和服務問的依賴關系;b p e l 引擎則負責將b p e l 所描述的業(yè)務流程按照應用程 序的執(zhí)行方式進行具體的操作和執(zhí)行。b p e l 是指揮官,完成具體的方案設計; b p e l 引擎是執(zhí)行者,根據(jù)設計的方案完成具體的任務;b p e l 的執(zhí)行依賴于 b p e l 引擎,b p e l 引擎則需要以b p e l 的流程定義作為執(zhí)行的路線指引。 2 3s c a 的概念及組成 2 3 1s c a 的概念 服務構件架構( s c a ) 的出現(xiàn)從根本上說是集成的需要【u j ,因此可以認為s c a 是完全基于軟件集成的需要而創(chuàng)建的架構。s c a 的產生“并非要替換任何現(xiàn)有 的編程模型或者與其抗衡,相反,s c a 向開發(fā)者提供一個用與技術無關的方式 定義接口、實現(xiàn)和引用的模型,從而使開發(fā)者能夠將這些元素綁定到所選擇的某 一技術的特定實現(xiàn)”l i6 。 s c a 最突出的特點在于它已經(jīng)把與業(yè)務無關的內容,如傳輸協(xié)議等,交給 s c a 的運行環(huán)境去處理了,因此s c a 所描述的接口是純粹的與業(yè)務相關的接口。 在開發(fā)s c a 的組件時,不僅客戶端不需要了解任何關于傳輸協(xié)議的技術細節(jié), 開發(fā)服務器端代碼也同樣不需要了解技術細節(jié)i 例如,用s c a 架構開發(fā)r m i 或 者e j b 的服務器端代碼,只需要用純粹的j a v a 代碼,然后由s c a 運行環(huán)境加入 r m i 綁定或者e j bs e s s i o nb e a n 綁定即可實現(xiàn)。 一 第2 章_ 作流管理系統(tǒng)、bp e i 。與s c a 曼。一i i 。一 。一i _ i i i - - 曼。苧 2 3 2s c a 的組成 在s c a v i 0 裝配規(guī)范中,相對較為獨立的組件只有三個,粒度由小到大分 別是服務組件( c o m p o n e n t ) 、服務模塊( c o m p o s i t e ) 和服務域( d o m a i n ) 【1 7 j 。其他如 服務( s e r v i c e ) 、參考( r e f e r e n c e ) 、連線( w i r e ) 等都是輔助性的元素。這些輔助性的 元素作為三個獨立的組件中的組成部分,為組件與外部數(shù)據(jù)傳輸、對外提供服務 和引用外部資源提供了實現(xiàn)途徑。三個不同粒度的組件,分別對應系統(tǒng)的三個不 同層面,即c o m p o n e n t 組件對應實現(xiàn)層,c o m p o s i t e 組件對應架構層,d o m a i n 對應業(yè)務層i l 引。 d o m a i n 是在具體的業(yè)務邏輯中調用s c a 所綁定的外部服務的唯一途徑,是 與具體的業(yè)務邏輯緊密結合在一起的,因此在圖2 1 所示的s c a 體系結構圖中 主要反映了c o m p o n e n t 和c o m p o s i t e 的相互關系。 s c a 綁定 w e bs e r v i c e r m i s c a 綁定 w e bs e r v i c e r m i 圖2 - 1 s c a 體系結構圖 f i g u r e2 - 1 s c aa r c h i t e c t u r e c o m p o n e n t 是s c a 的基本組成單元,c o m p o s i t e 是由c o m p o n e n t 組成的具 體應用模塊。在c o m p o s i t e 內部,每一個獨立的c o m p o n e n t 是通過連線( w i r e ) 進行消息通信的。而提升( p r o m o t e ) 本質上也是連線( w i r e ) u 9 1 ,當某個c o m p o n e n t 所提供或調用的服務需要提升為整個c o m p o s i t e 所提供或調用的服務時,就需要 使用p r o m o t e 具體實現(xiàn)。 c o m p o n e n t 可以是任何具體技術實現(xiàn)的應用程序,如j a v a 類、b p e l 方式等。 個c o m p o s i t e 是通過s c a 綁定的方式與外界進行通信的,而這也充分地體現(xiàn) 北京t _ q k 大學t 學碩士學位論文 了s c a 的優(yōu)勢,即具體業(yè)務邏輯與傳輸協(xié)議的松耦合。 2 4 本章小結 本章較為詳細地介紹了傳統(tǒng)的工作流管理系統(tǒng)的概念及缺陷,以及當前主流 的面向服務的工作流管理系統(tǒng)的概念。在此基礎上,本章介紹了b p e l 的基本思 想、組成元素、業(yè)務流程的描述和定義方式等基本內容,并介紹和分析了b p e l 與b p e l 引擎的相互關系。最后,本章介紹了s c a 的概念及組成,并分析了s c a 的特點和優(yōu)勢。 第3 章基于s c a 的輕量級b p e l 引警架構設計 皇! ! ! 曼! 皇! ! 曼! 曼! ! ! 曼! 曼! 曼! 曼! ! ! ! ! 曼! ! ! ! ! i _i!_ i 曼! ! ! 皇曼! ! 曼! ! 曼! ! ! 曼! ! ! 曼曼曼 第3 章基于s c a 的輕量級b p e l 引擎架構設計 本章將描述基于s c a 的輕量級b p e l 引擎的設計方案,包括引擎的架構設 計、引擎觸發(fā)和執(zhí)行流程設計等。本章還分析了業(yè)務流程實例的狀態(tài)轉換過程和 生命周期。 3 1 b p e l 引擎設計思想 3 1 1 輕量級b p e l 引擎的設計思路 當前業(yè)內主流的b p e l 引擎產品基本上都向著綜合性和全面性的角度發(fā)展, 因此“重量級”是他們的普遍特點。當前主流b p e l 引擎的體系結構如圖3 1 所 示。 p a n n e ra d r e s s i n gt i m es e r v i c e q b p e lp r o c e s s o r r 呈 o p r o c e s sc r e a t i o n & m a n a g e m e n t q u e u e s a 口 2 p m c e s sp r o c e s sp r o c e s s & a c t i v i t i e sa c t i v i t i e sa c t i v i t i e s ! 竺竺! 竺! ! 蘭! ! ! : 圖3 - 1當前主流b p e l 引擎體系結構圖 f i g u r e3 - 1 l e a d i n gb p e le n g i n ea r c h i t e c t u r e 從上圖中可以看出,當前主流b p e l 引擎的體系結構中,除引擎中必備的業(yè) 務流程管理功能模塊( p r o c e s sc r e a t i o n & m a n a g e m e n t ) 和隊列模塊( q u e u e ) 夕b , b p e l 引擎中還包含了事務及管控處理模塊( e v e n ta n da d m i nh a n d l e r ) 、時間服務 模塊( t i m es e r v i c e ) 以及協(xié)作定位模塊( p a r t n e r a d r e s s i n g ) ,以此來實現(xiàn)引擎功能的 全面化:此外,主要業(yè)內企業(yè)還將本公司的其他產品,如應用服務器、w e b 服務 控件等與引擎形成緊密耦合,成為引擎“重量級”的另一個重要因素。 針對當前主流引擎的架構,考慮如何設計一個“輕量級”的b p e l 引擎成為 本文的研究重點。輕量級引擎的特點主要應體現(xiàn)在以下幾個方面: 輕量級引擎首先應該具有輕便、易用的特點。主要體現(xiàn)在可以實現(xiàn)簡單的部 北京t 業(yè)大學r = 學碩一j :學位論文 署,只需要配備小型化和輕量級的輔助設備( 例如應用服務器和數(shù)據(jù)庫服務器 等) 。 輕量級引擎還應該在結構上體現(xiàn)“輕量級”的特點。結構的設計主要考慮結 合s c a 的編程模型,以基于s c a 作為研究方向,將s c a 的優(yōu)勢體現(xiàn)在引擎的 結構設計中,以此來實現(xiàn)引擎的“輕量級”。 最后,輕量級引擎還應該在具體功能上體現(xiàn)“輕量級”的特點。本課題的設 計思路是為專用領域( 如醫(yī)療系統(tǒng)) 設計b p e l 引擎。這樣的專門化b p e l 引擎 的具體功能設計將不同于重量級引擎,引擎功能設計將突出針對性和有效性,而 不追求全面性和豐富性。 3 1 2s c a 架構中的b p e l 引擎 在s c a 的整體架構中,c o m p o n e n t 是s c a 的基本組成單元,c o m p o s i t e 是 由c o m p o n e n t 組成的具體應用模塊。c o m p o n e n t 可以通過各種具體的編程技術實 現(xiàn),即它可以是j a v a 應用程序、c + + 應用程序,也可以是b p e l 方式的實現(xiàn)。 在s c a 架構中,以b p e l 方式實現(xiàn)其中一個c o m p o n e n t ,即把b p e l 引擎 作為s c a 整體結構中的一個c o m p o n e n t 而存在。該c o m p o n e n t 將提供給用戶業(yè) 務流程定義的功能,以及具體的業(yè)務流程驅動和執(zhí)行功能。這樣的體系結構充分 體現(xiàn)了s c a 的重要優(yōu)勢,即s c a 體系結構中的每一個元素都可以被看作是s c a 的一個c o m p o n e n t ,c o m p o n e m 之間是一種平行的層次關系。這種平行的層次關 系有利于實現(xiàn)組件的重用。b p e l 作為一個c o m p o n e n t 或者編排和調用同一個 c o m p o s i t e 內的服務組件,或者編排和調用c o m p o s i t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論