工作流引擎內(nèi)核入門2008-05-30 來(lái)自:java060515
以WfMC,OASIS,OMG三大組織為代表的群體,圍繞BPM相關(guān)規(guī)范,持續(xù)的爭(zhēng)論。 真 是一流企業(yè)賣標(biāo)準(zhǔn),二流企業(yè)賣技術(shù)。當(dāng)新一輪技術(shù)浪潮圍繞著B(niǎo)PM展開(kāi)時(shí),國(guó)際上相關(guān)廠商首先把眼光放在了“規(guī)范”上。這個(gè)規(guī)范最早是以WfMC為代表的 “業(yè)務(wù)流程開(kāi)發(fā)商”,他們主要擁護(hù)以XPDL作為描述語(yǔ)言來(lái)描述業(yè)務(wù)流程;之后是以O(shè)ASIS組織為代表的,被IBM,MicroSoft,BEA所擁護(hù) 的BPEL/BPEL4WS規(guī)范;之后向來(lái)以規(guī)范著稱的OMG組織也不甘示弱,聯(lián)合BPMI組織,獨(dú)辟蹊徑以Notation Specification為入口,首先推出了BPMN規(guī)范,進(jìn)而推出了BPDM,也妄想分一杯業(yè)務(wù)流程描述規(guī)范。 今年6月份,在OMG聯(lián)合BPTrend、BPMI所發(fā)起的“BPM Think Tank Day”討論會(huì)中,三大陣營(yíng)代表及支持者是各不相讓,當(dāng)然作為主辦方也借此機(jī)會(huì)大肆鼓吹其BPDM的統(tǒng)一設(shè)想。 自從這個(gè)Think Tank Day之后,圍繞著B(niǎo)PMN,BPDM,BPEL,XPDL之間的討論在各大BPM相關(guān)站點(diǎn)上持續(xù)升溫。畢竟這幾個(gè)規(guī)范都相應(yīng)的重量級(jí)組織在支持,也有相應(yīng)的廠商在支持和實(shí)現(xiàn)。 可惜這場(chǎng)“規(guī)范”之戰(zhàn),對(duì)國(guó)內(nèi)來(lái)說(shuō),似乎遠(yuǎn)在天邊,沒(méi)有任何影響。 國(guó)內(nèi)的開(kāi)發(fā)商依然習(xí)慣了泰然處之,既來(lái)之則安之——好像哪家規(guī)范都對(duì),也都無(wú)所謂。早些年大家接受了XPDL;后來(lái)見(jiàn)IBM、BEA等大廠商大肆鼓吹BPEL,有些廠商也是蠢蠢欲動(dòng)了。 2. 什么是工作流管理系統(tǒng)(WFMS) 2.1. 概述 企 業(yè)在進(jìn)行業(yè)務(wù)處理時(shí),政府在進(jìn)行公文審批時(shí),都是以流程形式而進(jìn)行的,在信息化的過(guò)程中,企業(yè)、政府也將這些業(yè)務(wù)處理、公文審批的過(guò)程信息化了,早期通常 是通過(guò)程序硬編碼的方式來(lái)處理這些業(yè)務(wù)、公文的流轉(zhuǎn),隨著業(yè)務(wù)、公文的復(fù)雜的處理情況不斷出現(xiàn)以及需求的不斷變更,這種硬編碼的方式顯然已無(wú)法應(yīng)對(duì),這個(gè) 時(shí)候工作流管理系統(tǒng)應(yīng)運(yùn)而生,掀起了一股工作流管理系統(tǒng)的熱潮。 那么到底工作流管理系統(tǒng)能夠帶來(lái)什么好處?工作流管理系統(tǒng)通過(guò)對(duì)業(yè)務(wù)、公 文流轉(zhuǎn)進(jìn)行分析以及抽象,將不變和變化的部分進(jìn)行劃分,用戶可輕松的通過(guò)可視化的工具對(duì)事項(xiàng)的流程、流程環(huán)節(jié)涉及的人員(角色)、流程環(huán)節(jié)的表單、流程環(huán) 節(jié)的操作進(jìn)行修改,從而到達(dá)了應(yīng)對(duì)不斷變化的需求的目的,而工作流管理系統(tǒng)通常提供的流程監(jiān)控、查詢統(tǒng)計(jì)模塊更是極大程度的為用戶優(yōu)化流程提供支持,以提 高企業(yè)、政府的工作效率。 本文主要描述工作流管理系統(tǒng)通常的結(jié)構(gòu)、參考模型以及通常使用的調(diào)度算法。 2.2. 構(gòu)成 工 作流管理系統(tǒng),簡(jiǎn)稱WFMS,經(jīng)過(guò)對(duì)業(yè)務(wù)、公文流轉(zhuǎn)過(guò)程的分析以及抽象,工作流管理系統(tǒng)圍繞業(yè)務(wù)交互邏輯、業(yè)務(wù)處理邏輯以及參與者三個(gè)問(wèn)題進(jìn)行解決,業(yè)務(wù) 交互邏輯對(duì)應(yīng)的為業(yè)務(wù)的流轉(zhuǎn)過(guò)程,在工作流管理系統(tǒng)中對(duì)應(yīng)的提出了工作流引擎、工作流設(shè)計(jì)器、流程操作來(lái)解決業(yè)務(wù)交互邏輯的問(wèn)題,業(yè)務(wù)處理邏輯對(duì)應(yīng)業(yè)務(wù)流 轉(zhuǎn)過(guò)程中的表單、文檔等的處理,在工作流管理系統(tǒng)中對(duì)應(yīng)的提出了表單設(shè)計(jì)器、與表單的集成來(lái)解決業(yè)務(wù)處理邏輯的問(wèn)題,參與者對(duì)應(yīng)到的為流轉(zhuǎn)過(guò)程中環(huán)節(jié)對(duì)應(yīng) 的人或程序,在工作流管理系統(tǒng)中通過(guò)與應(yīng)用程序的集成來(lái)解決參與者的問(wèn)題。 工作流管理系統(tǒng)為方便業(yè)務(wù)交互邏輯、業(yè)務(wù)處理邏輯以及參與者的修改,多數(shù)通過(guò)提供可視化的流程設(shè)計(jì)器以及表單設(shè)計(jì)器來(lái)實(shí)現(xiàn),為實(shí)現(xiàn)工作流管理系統(tǒng)的擴(kuò)展性,多數(shù)提供了一系列的API。 一個(gè)完整的工作流管理系統(tǒng)通常由工作流引擎、工作流設(shè)計(jì)器、流程操作、工作流客戶端程序、流程監(jiān)控、表單設(shè)計(jì)器、與表單的集成以及與應(yīng)用程序的集成八個(gè)部分組成。 2.2.1. 工作流引擎 工 作流引擎作為工作流管理系統(tǒng)的核心部分,主要提供了對(duì)于工作流定義的解析以及流程流轉(zhuǎn)的支持。工作流定義文件描述了業(yè)務(wù)的交互邏輯,工作流引擎通過(guò)解析此 工作流定義文件按照業(yè)務(wù)的交互邏輯進(jìn)行業(yè)務(wù)的流轉(zhuǎn),工作流引擎通常通過(guò)參考某種模型來(lái)進(jìn)行設(shè)計(jì),通過(guò)調(diào)度算法來(lái)進(jìn)行流程的流轉(zhuǎn)(流程的啟動(dòng)、終止、掛起、 恢復(fù)等),通過(guò)各種環(huán)節(jié)調(diào)度算法(SPLIT、AND、OR等)來(lái)實(shí)現(xiàn)對(duì)于環(huán)節(jié)的流轉(zhuǎn)(環(huán)節(jié)的合并、分叉、選擇、條件性的選擇等)。 2.2.2. 工作流設(shè)計(jì)器 工作流設(shè)計(jì)器為可視化的流程設(shè)計(jì)工具,用戶通過(guò)拖放等方式來(lái)繪制流程,并通過(guò)對(duì)于環(huán)節(jié)的配置來(lái)實(shí)現(xiàn)環(huán)節(jié)操作、環(huán)節(jié)表單、環(huán)節(jié)參與者的配置。 工作流設(shè)計(jì)器為用戶以及開(kāi)發(fā)商提供了快速繪制、修改流程的方式,工作流設(shè)計(jì)器的好壞決定到工作流管理系統(tǒng)的易用性。 2.2.3. 流程操作 流 程操作指所支持的對(duì)于流程環(huán)節(jié)的操作,如啟動(dòng)流程、終止流程、掛起流程、直流、分流(單人辦理)、并流(多人同時(shí)辦理)、聯(lián)審等,象這些流程操作都是可直 接基于引擎所提供的環(huán)節(jié)調(diào)度算法來(lái)直接支持的,而在實(shí)際的需求中,通常需要自由的對(duì)于流程進(jìn)行干涉,如取回、回退、跳轉(zhuǎn)、追加、傳閱、傳閱辦理等,而這些 流程操作對(duì)于工作流引擎來(lái)說(shuō)是不合理的,因此必須單獨(dú)的去實(shí)現(xiàn)。 流程操作支持的好壞直接決定到一個(gè)工作流管理系統(tǒng)的實(shí)用性。 2.2.4. 工作流客戶端程序 工作流客戶端程序?yàn)楣ぷ髁飨到y(tǒng)的表現(xiàn)形式,通常使用Web方式進(jìn)行展現(xiàn),通過(guò)提供待辦列表、已辦列表、執(zhí)行流程操作、查看流程歷史信息等來(lái)展現(xiàn)工作流系統(tǒng)的功能。 2.2.5. 流程監(jiān)控 流程監(jiān)控通過(guò)提供圖形化的方式來(lái)對(duì)流程執(zhí)行過(guò)程進(jìn)行監(jiān)控,包括流程運(yùn)轉(zhuǎn)狀況,每個(gè)環(huán)節(jié)所耗費(fèi)的時(shí)間等等,而通過(guò)這些可相應(yīng)的進(jìn)行流程的優(yōu)化,以提高工作效率。 2.2.6. 表單設(shè)計(jì)器 表單設(shè)計(jì)器為可視化的表單設(shè)計(jì)工具,用戶通過(guò)拖放的方式來(lái)繪制業(yè)務(wù)所需的表單,并可相應(yīng)的進(jìn)行表單數(shù)據(jù)的綁定。 表單設(shè)計(jì)器為客戶以及開(kāi)發(fā)商提供了快速修改表單的方法,表單設(shè)計(jì)器的易用與否以及功能的完善與否影響到工作流管理系統(tǒng)的易用性。 2.2.7. 與表單的集成 通常業(yè)務(wù)流轉(zhuǎn)需要表單來(lái)表達(dá)實(shí)際的業(yè)務(wù),因此需要與表單進(jìn)行集成來(lái)實(shí)現(xiàn)業(yè)務(wù)意義,與表單的集成通常包括表單數(shù)據(jù)的自動(dòng)獲取、存儲(chǔ)、修改,表單域的權(quán)限控制、流程相關(guān)數(shù)據(jù)的維護(hù)以及流程環(huán)節(jié)表單的綁定。 與表單的集成的好壞影響到工作流管理系統(tǒng)是否能提高開(kāi)發(fā)效率。 2.2.8. 與應(yīng)用程序的集成 通過(guò)與應(yīng)用程序的集成來(lái)完善工作流管理系統(tǒng)的業(yè)務(wù)意義,主要涉及到的是與權(quán)限系統(tǒng)以及組織機(jī)構(gòu)的集成。流程環(huán)節(jié)需要相應(yīng)的綁定不同的執(zhí)行角色,而流程操作通常需要與權(quán)限系統(tǒng)、組織機(jī)構(gòu)進(jìn)行關(guān)聯(lián)。 2.3. 參考模型 工作流系統(tǒng)通常通過(guò)參考一些標(biāo)準(zhǔn)的模型來(lái)進(jìn)行設(shè)計(jì),主要的有WFMC和OMG,在這里主要介紹一下WFMC。 2.3.1. WFMC WFMC是國(guó)際工作流管理聯(lián)盟,它于1993年成立,發(fā)布了一系列的工作流定義、軟件接口的草案文本,是目前世界上公認(rèn)的最具權(quán)威性的工作流標(biāo)準(zhǔn)制定機(jī)構(gòu),得到了廣泛的支持和應(yīng)用。 2002 年10月25日,WFMC發(fā)布了基于XML的流程定義語(yǔ)言1.0版的最終文本(Workflow Process Definition Interface----XML Process Definition Language 文檔編號(hào):WFMC-TC-1025),以及此前發(fā)布的工作流應(yīng)用軟件接口規(guī)范WFMC-TC-1009, WFMC-TC-1013等系列文件,構(gòu)成了工作流定義及系統(tǒng)的設(shè)計(jì)標(biāo)準(zhǔn)。 為了實(shí)現(xiàn)不同工作流產(chǎn)品之間的互操作,WfMC在工作流管理系 統(tǒng)的相關(guān)術(shù)語(yǔ)、體系結(jié)構(gòu)及應(yīng)用編程接口等方面制定了一系列標(biāo)準(zhǔn)。工作流管理聯(lián)盟給出的工作流定義是:工作流是指整個(gè)或部分經(jīng)營(yíng)過(guò)程在計(jì)算機(jī)支持下的全自動(dòng) 或半自動(dòng)化。在實(shí)際情況中可以更廣泛地把凡是由計(jì)算機(jī)軟件系統(tǒng)(工作流管理系統(tǒng))控制其執(zhí)行的過(guò)程都稱為工作流。 一個(gè)工作流包括一組活動(dòng) 及它們的相互順序關(guān)系,還包括過(guò)程及活動(dòng)的啟動(dòng)和終止條件,以及對(duì)每個(gè)活動(dòng)的描述。工作流管理系統(tǒng)指運(yùn)行在一個(gè)或多個(gè)工作流引擎上用于定義、實(shí)現(xiàn)和管理工 作流運(yùn)行的一套軟件系統(tǒng),它與工作流執(zhí)行者(人、應(yīng)用)交互,推進(jìn)工作流實(shí)例的執(zhí)行,并監(jiān)控工作流的運(yùn)行狀態(tài)。 WFMC主要提出了五個(gè)接口與工作流執(zhí)行服務(wù)一起共同組成了工作流系統(tǒng): *接口一(工作流定義交換),用于在建模和定義工具與執(zhí)行服務(wù)之間交換工作流定義。主要是數(shù)據(jù)交換格式和API。數(shù)據(jù)交換通過(guò)XPDL,API通過(guò)WAPI。 *接口二(工作流客戶端應(yīng)用接口),用于工作流客戶端應(yīng)用訪問(wèn)工作流引擎和工作列表,通過(guò)WAPI完成。 *接口三(被調(diào)用的應(yīng)用接口),用于調(diào)用不同的應(yīng)用系統(tǒng)。 *接口四(工作流系統(tǒng)互操作接口),用于不同工作流系統(tǒng)之間的互操作。 接口五(系統(tǒng)管理和監(jiān)控),用于系統(tǒng)管理應(yīng)用訪問(wèn)工作流執(zhí)行服務(wù)。 2.4. 核心調(diào)度算法 通常流程引擎采用的核心調(diào)度算法主要有FSM以及PetriNet兩種,基于調(diào)度算法來(lái)完成流程的流轉(zhuǎn)。 2.4.1. FSM(有限狀態(tài)機(jī)) FSM 的定義為包含一組狀態(tài)集(states)、一個(gè)起始狀態(tài)(start state)、一組輸入符號(hào)集(alphabet)、一個(gè)映射輸入符號(hào)和當(dāng)前狀態(tài)到下一狀態(tài)的轉(zhuǎn)換函數(shù)(transition function)的計(jì)算模型。當(dāng)輸入符號(hào)串,模型隨即進(jìn)入起始狀態(tài)。它要改變到新的狀態(tài),依賴于轉(zhuǎn)換函數(shù)。在有限狀態(tài)機(jī)中,會(huì)有有許多變量,例如,狀態(tài) 機(jī)有很多與動(dòng)作(actions)轉(zhuǎn)換(Mealy機(jī))或狀態(tài)(摩爾機(jī))關(guān)聯(lián)的動(dòng)作,多重起始狀態(tài),基于沒(méi)有輸入符號(hào)的轉(zhuǎn)換,或者指定符號(hào)和狀態(tài)(非定有 限狀態(tài)機(jī))的多個(gè)轉(zhuǎn)換,指派給接收狀態(tài)(識(shí)別者)的一個(gè)或多個(gè)狀態(tài),等等。 遵循FSM流程引擎通過(guò)狀態(tài)的切換來(lái)完成流程的流轉(zhuǎn)。 2.4.2. PetriNet 信息流的一個(gè)抽象的、形式的模型。指出一系統(tǒng)的靜態(tài)和動(dòng)態(tài)性質(zhì)。petrinet通常表示成圖。遵循PetriNet流程引擎通過(guò)令牌來(lái)決定流程的流轉(zhuǎn)。 注1: 目前國(guó)外一些大規(guī)模、分布式的工作流系統(tǒng)的建模工具就采用的是基于Petri網(wǎng)的圖形化建模方式。 注2: Petri網(wǎng)工具 3. 透過(guò)XPDL來(lái)講解什么是工作流描述語(yǔ)言和基本元素 3.1. XPDL基本元素介紹 Package元素 DataField元素 WorkflowProcess元素 Activity元素 Implementation元素 Tool元素 TransitionRestricti 4. jPdl規(guī)范 5. bpel規(guī)范 5.1.1. 背景知識(shí) 面 向 Web 服務(wù)的業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL 或 BPEL4WS)是一種使用 Web 服務(wù)定義和執(zhí)行業(yè)務(wù)流程的語(yǔ)言。BPEL 使您可以通過(guò)組合、編排和協(xié)調(diào) Web 服務(wù)自上而下地實(shí)現(xiàn)面向服務(wù)的體系結(jié)構(gòu) (SOA)。BPEL 提供了一種相對(duì)簡(jiǎn)單易懂的方法,可將多個(gè) Web 服務(wù)組合到一個(gè)新的復(fù)合服務(wù)(稱作業(yè)務(wù)流程)中。 本文將介紹如何創(chuàng)建一個(gè)將一系列虛擬的、與旅行相關(guān)的 web 服務(wù)結(jié)合起來(lái)的示例業(yè)務(wù)流程,然后將其部署到 Oracle BPEL Process Manager 運(yùn)行時(shí)環(huán)境。 首先,介紹一些背景知識(shí)。BPEL 基于 XML 和 Web 服務(wù)構(gòu)建;它使用一種基于 Web 的語(yǔ)言,該語(yǔ)言支持 web 服務(wù)技術(shù)系列,包括 SOAP、WSDL、UDDI、Web 服務(wù)可靠性消息、Web 服務(wù)尋址、Web 服務(wù)協(xié)調(diào)以及 Web 服務(wù)事務(wù)。 BPEL 流程指定參與的 Web 服務(wù)的確切調(diào)用順序 - 順序地或并行地。使用 BPEL,您可以表述條件行為。例如,某個(gè) Web 服務(wù)的調(diào)用可以取決于上次調(diào)用的值。還可以構(gòu)造循環(huán)、聲明變量、復(fù)制和賦予值、定義故障處理程序等。通過(guò)組合所有這些構(gòu)造,您可以以算法的形式定義復(fù)雜業(yè) 務(wù)流程。實(shí)際上,由于業(yè)務(wù)流程本質(zhì)上屬于活動(dòng)圖,因此使用統(tǒng)一建模語(yǔ)言 (UML) 活動(dòng)圖表示它們可能很有用。 通常情況下,BPEL 業(yè)務(wù)流程接收請(qǐng)求。為了滿足請(qǐng)求,該流程調(diào)用相關(guān)的 Web 服務(wù),然后響應(yīng)原始調(diào)用方。由于 BPEL 流程與其他 Web 服務(wù)通信,因此它在很大程度上依賴于復(fù)合型 Web 服務(wù)調(diào)用的 Web 服務(wù) 的 WSDL 5.1.2. 如何構(gòu)建業(yè)務(wù)流程 BPEL 流程指定參與的 Web 服務(wù)的確切調(diào)用順序 - 順序地或并行地。使用 BPEL,您可以表述條件行為。例如,某個(gè) Web 服務(wù)的調(diào)用可以取決于上次調(diào)用的值。還可以構(gòu)造循環(huán)、聲明變量、復(fù)制和賦予值、定義故障處理程序等。通過(guò)組合所有這些構(gòu)造,您可以以算法的形式定義復(fù)雜業(yè) 務(wù)流程。實(shí)際上,由于業(yè)務(wù)流程本質(zhì)上屬于活動(dòng)圖,因此使用統(tǒng)一建模語(yǔ)言 (UML) 活動(dòng)圖表示它們可能很有用。 通常情況下,BPEL 業(yè)務(wù)流程接收請(qǐng)求。為了滿足請(qǐng)求,該流程調(diào)用相關(guān)的 Web 服務(wù),然后響應(yīng)原始調(diào)用方。由于 BPEL 流程與其他 Web 服務(wù)通信,因此它在很大程度上依賴于復(fù)合型 Web 服務(wù)調(diào)用的 Web 服務(wù) 的 WSDL 描述。 我們來(lái)看一個(gè)示例。一個(gè) BPEL 流程由多個(gè)步驟組成,每個(gè)步驟稱作“活動(dòng)”。BPEL 支持基元活動(dòng)和結(jié)構(gòu)活動(dòng)?;顒?dòng)表示基本構(gòu)造,用于如下所示的常見(jiàn)任務(wù): * 使用 調(diào)用其他 Web 服務(wù) * 使用 (接收請(qǐng)求)等待客戶端通過(guò)發(fā)送消息調(diào)用業(yè)務(wù)流程 * 使用 生成同步操作的響應(yīng) * 使用 操作數(shù)據(jù)變量 * 使用 指示故障和異常 * 使用 等待一段時(shí)間 * 使用 終止整個(gè)流程。 然后,我們可以組合這些基元活動(dòng)以及其他基元活動(dòng),以定義準(zhǔn)確指定業(yè)務(wù)流程步驟的復(fù)雜算法。為組合基元活動(dòng),BPEL 支持幾個(gè)結(jié)構(gòu)活動(dòng)。其中最重要的是: * 順序 (),它允許定義一組將按順序調(diào)用的活動(dòng)。 * 流 (),用于定義一組將并行調(diào)用的活動(dòng) * Case-switch 構(gòu)造 (),用于實(shí)現(xiàn)分支 * While (),用于定義循環(huán) * 使用 能夠選擇多個(gè)替換路徑之一。 每個(gè) BPEL 業(yè)務(wù)還將使用 定義合作伙伴鏈接,使用 聲明變量。 為 了理解 BPEL 是如何描述業(yè)務(wù)流程的,我們將定義雇員出差安排的簡(jiǎn)化業(yè)務(wù)流程:客戶端調(diào)用此業(yè)務(wù)流程,指定雇員姓名、目的地、出發(fā)日期以及返回日期。此 BPEL 業(yè)務(wù)流程首先檢查雇員出差狀態(tài)。我們將假設(shè)存在一個(gè)可用于進(jìn)行此類檢查的 Web 服務(wù)。然后,此 BPEL 流程將檢查以下兩家航空公司的機(jī)票價(jià)格:美國(guó)航空公司和達(dá)美航空公司。我們將再次假設(shè)這兩家航空公司均提供了可用于進(jìn)行此類檢查的 Web 服務(wù)。最后,此 BPEL 流程將選擇較低的價(jià)格并將出差計(jì)劃返回給客戶端。 然后,我們將構(gòu)建一個(gè)異步 BPEL 流程。我們將假設(shè)用于檢查雇員出差狀態(tài)的 Web 服務(wù)是同步的。由于可以立即獲取此數(shù)據(jù)并將其返回給調(diào)用方,因此這是一個(gè)合理的方法。為了獲取機(jī)票價(jià)格,我們使用異步調(diào)用。由于確認(rèn)飛機(jī)航班時(shí)刻表可能需 要稍長(zhǎng)的時(shí)間,因此這也是一個(gè)合理的方法。為簡(jiǎn)化示例,我們假設(shè)以上兩家航空公司均提供了 Web 服務(wù),且這兩個(gè) Web 服務(wù)完全相同(即提供相同的端口類型和操作)。 在實(shí)際情形下,您通常無(wú)法選擇 Web 服務(wù),而是必須使用您的合作伙伴提供的服務(wù)。如果您有幸能夠同時(shí)設(shè)計(jì) Web 服務(wù)和 BPEL 流程,則應(yīng)考慮用哪個(gè)接口更好。通常,您將對(duì)持續(xù)時(shí)間較長(zhǎng)的操作使用異步服務(wù),而對(duì)在相對(duì)較短的時(shí)間內(nèi)返回結(jié)果的操作使用同步服務(wù)。如果使用異步 Web 服務(wù),則 BPEL 流程通常也是異步的。 當(dāng)您用 BPEL 定義業(yè)務(wù)流程時(shí),您實(shí)際上定義了一個(gè)由現(xiàn)有服務(wù)組成的新 Web 服務(wù)。該新 BPEL 復(fù)合 Web 服務(wù)的接口使用一組端口類型來(lái)提供類似任何其他 Web 服務(wù)的操作。要調(diào)用用 BPEL 描述的業(yè)務(wù)流程,則必須調(diào)用生成的復(fù)合 Web 服務(wù)。 |
|
|
來(lái)自: 夜郎 > 《workflow》