免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
業(yè)務(wù)流程: 學(xué)習(xí) BPEL4WS,第 4 部分用 BPWS4J 編輯器創(chuàng)建流程

2002 年 11 月 01 日

BPWS4J 是 BPEL4WS 規(guī)范的一個實現(xiàn),它包括一個運行時引擎以及一個用于創(chuàng)建 BPEL4WS 流程的編輯器(它是一個 Eclipse 插件)。Nirmal 在本文中描述了創(chuàng)建 BPEL4WS 流程的設(shè)計方式,還描述了如何使用 BPWS4J 編輯器來創(chuàng)建、修改和驗證這些流程。

用于 Java 的 Web 服務(wù)中的業(yè)務(wù)流程(Business Processes in Web Services for Java,BPWS4J)軟件包提供了一個運行時引擎實現(xiàn),該實現(xiàn)支持 Web 服務(wù)的業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language for Web Services,BPEL4WS)規(guī)范,這個規(guī)范定義了 Web 服務(wù)的工作流和業(yè)務(wù)流程。這個軟件包于 8 月份在 alphaWorks 上發(fā)行,它提供了一個運行時引擎以及一個用于創(chuàng)建流的工作流編輯工具。本文著重討論一個簡單的回送流程的實現(xiàn)練習(xí),在該流程流中,一個流程接收消息,另一方將一份完全相同的消息副本反射回到發(fā)送方。

在本文中,我將假設(shè)您熟悉 Eclipse 項目并且熟悉基本 Eclipse 環(huán)境的使用。本文解釋了用于 Eclipse 的 BPWS4J 功能。

把粗略的概念流程轉(zhuǎn)變成其有效的 BPEL4WS 表達式,有兩種顯而易見的方式:

  • 自底向上(bottom-up)方式:采用這種方式,您從基本活動入手,然后發(fā)展成宏觀層次(macro-level)的流程,在進行過程中添加結(jié)構(gòu)、鏈接以及其他數(shù)據(jù)。回送流程將包括兩個基本任務(wù) ― 通過 receive 活動接收一條消息以及通過 reply 活動向發(fā)送方作出應(yīng)答。您需要添加某種結(jié)構(gòu),因為您必然要求應(yīng)答跟在響應(yīng)后面 ― 它們要按順序執(zhí)行,否則對流程是沒什么意義的。這意味著您需要進行排序,您可以使用 sequence 活動實施排序。在自底向上方式中,您先通過創(chuàng)建基本活動來定義流程,然后再將活動添加到 sequence 中。BPWS 編輯器為此提供了某種支持,使您能夠用結(jié)構(gòu)化活動包裝基本活動。因此,例如,您可以創(chuàng)建 receive 活動,然后將它包裝在一個 sequence 中。
  • 自頂向下(top-down)方式:另一種看待事物的方式是從外部入手,然后深入到基本任務(wù)。對于這個回送流程,您需要讓有些步驟按照一定的順序執(zhí)行,所以,您添加一個 sequence 作為頂層活動,然后再將 receivereply 植入 sequence 。BPWS4J 編輯器同樣允許您采用這種方式。

 

這里,很重要的一點是,完整的、可部署的 BPWS4J 運行時單元由以下部分組成:

  • 描述流程的 BPEL4WS 文件
  • 一個 WSDL 文件,它描述了流程定義(被稱作 流程 WSDL)所引用的消息、操作、端口類型以及其他信息(服務(wù)鏈接類型、相關(guān)性屬性等)
  • 流程中包含的每個伙伴的 WSDL 定義,除非流程不使用伙伴所提供的任何 WSDL 操作

 

在上述這些部分當(dāng)中,BPWS4J 編輯器允許您創(chuàng)建描述流程的 BPEL4WS 文件。要編輯部署 BPEL4WS 流程所需的 WSDL 文件,您可以使用其他工具。不過,這些工具將不支持 BPEL4WS 規(guī)范中已經(jīng)提議的非標(biāo)準(zhǔn)的 WSDL 擴展(如服務(wù)鏈接、相關(guān)性屬性等)。您將不得不手工添加那些定義;BPWS4J 中的樣本應(yīng)該足以指導(dǎo)您完成這一任務(wù)。

我將闡述 BPWS4J 編輯器是什么樣子,還將闡述在開發(fā)回送流程示例的過程中如何使用它。

安裝 BPWS4J 編輯器

要使用 BPWS4J 編輯器,您將既需要來自 alphaWorks 的 BPWS4J 編輯器軟件包,也需要來自 Eclipse.org Web 站點的 Eclipse 軟件包。如果您沒有 Eclipse 2.0,那么就應(yīng)該從 Eclipse 站點(請參閱 參考資料)下載它,然后安裝該軟件。

一旦您已經(jīng)從 alphaWorks(請參閱 參考資料)下載了 BPWS4J 編輯器軟件包 ― 一個與 BPWS4J 運行時引擎分開的軟件包,請將其內(nèi)容解壓縮(unzip)到 Eclipse 安裝目錄下。解壓縮之后,您應(yīng)該驗證您有了一個名為 eclipse/plugins/com.ibm.cs.bpws.tools.bpwsbuilder的目錄。然后,您應(yīng)該啟動 Eclipse 環(huán)境。





回頁首


創(chuàng)建 BPWS 項目

對于這個項目,您通過在 Eclipse 工作區(qū)中創(chuàng)建一個新項目著手。在 File菜單中單擊 New,選擇 BPWS作為文件類型。如果您在可用文件類型列表中沒有看到該類型,那么您可能不得不單擊 Other文件類型來查找它。一旦您這樣做了,您應(yīng)該參看 圖 1a中的抓屏來確定項目的文件名和位置;圖 1a 中的抓屏還提供了流程名稱(process name)的缺省值和名稱空間(namespace)的缺省值。這一屏?xí)D(zhuǎn)到如 圖 1b所示的下一個屏幕,它讓您設(shè)置流程的頂層屬性,如 Abstract processSuppress join faults、 Enable instance compensationSerializable container access;稍后我將解釋這些屬性。請確保您在選中了 Open this file for editing when done選項之后才單擊 Finish。這應(yīng)該會在您定義的位置中創(chuàng)建該文件并在 BPWS4J 編輯器中打開它。


圖 1a. 創(chuàng)建一個新的 BPWS 項目


圖 1b. 創(chuàng)建一個新的 BPWS 項目 II

接下來,您需要確保 Eclipse 的 BPWS 透視圖是打開的;這個透視圖將創(chuàng)建視圖,這個視圖和編輯器區(qū)域一起有助于您定義流程。在 Window菜單中選擇 Open Perspective,然后選擇 BPWS 透視圖;和前面一樣,您可能不得不單擊 Other,從而確定 BPWS 是其中一個選項。這應(yīng)該會在 Eclipse 中打開透視圖。BPWS 透視圖由 Editor、Navigator 視圖、Outline 視圖、Properties 視圖和 Tasks 視圖組成。接下來,我將對其中的每一個進行更詳細的研究。





回頁首


Process 編輯器和 Source 編輯器

BPWS4J 編輯器是一個多頁工具,其中一個頁名為 Source 編輯器,它使您能夠?qū)φ诙x的業(yè)務(wù)流程的原始 XML 進行編輯;另一個頁名為 Process 編輯器,它是所涉及的流程的樹視圖。在新創(chuàng)建的文件中顯示的是缺省流程編輯器樹視圖。單擊位于編輯區(qū)域左下角的 Source選項卡,以切換到 Source 編輯器中的 XML 代碼視圖。處于 Source 編輯器中之后,您同樣可以單擊 Process選項卡以返回到樹視圖。

Process 編輯器(請參見 圖 2)是流程的樹視圖,所有的活動和能夠包含活動的 BPEL4WS 元素在樹中都以節(jié)點的形式被顯示出來。例如, process 元素包含頂層活動,而 catchFault 元素包含另一個用來捕獲 SOAP Fault 消息的活動。

對于新創(chuàng)建的流程,樹將只有一個節(jié)點,即 process 元素。請注意,樹視圖不顯示有關(guān)流程屬性的信息,也不顯示流程中定義的容器和伙伴。試圖這么做將把樹視圖弄得一塌糊涂。相反,這些內(nèi)容是在流程的 Outline視圖和 Property視圖中定義的。當(dāng)您在樹中選擇一個流程節(jié)點時,您將看到它的屬性出現(xiàn)在右邊的 Property 視圖中。這個示例的 Outline 視圖當(dāng)前只顯示了流程;稍后,當(dāng)您定義容器和伙伴時,它們將出現(xiàn)在 Outline 視圖中的流程節(jié)點后。


圖 2. Process 視圖

Source 編輯器(請參見 圖 3)是一個簡單的文本編輯工具,它使您能夠編輯原始 XML。除非您熟諳 BPEL4WS 語法,否則手工編輯 XML 既易于出錯也難以進行,所以,我建議您大多數(shù)情況下還是使用 Process 編輯器,當(dāng)您需要填寫詳細的信息時,請切換到 Source 編輯器,這是因為在 Process 編輯器的屬性框中操作很麻煩。


圖 3. Source 視圖

當(dāng)您編輯信息時,Source 編輯器和 Process 編輯器是雙向同步的。要對此進行測試,請試著在 Source 編輯器中更改流程的名稱,然后單擊 Process 編輯器檢查它。您將看到樹中的名稱跟著改變了,當(dāng)您單擊流程節(jié)點時,已更新的名稱也反映在 Property 視圖中?,F(xiàn)在,請使用 Property 視圖修改流程的 Name 屬性。當(dāng)您返回到 Source 編輯器時,您將看到這個相同的屬性在原始 XML 中也已經(jīng)被修改了。

每當(dāng)在 Source 編輯器中進行編輯時,您都要格外小心,確保沒有引入任何語法錯誤。引入語法錯誤將會阻止有效的 BPWS 文件,還將 阻止您切換到 Process 編輯器。要進行演示,請刪除原始 XML 中的 <process> 元素結(jié)尾處的 > 字符。這顯然是無效的 XML。當(dāng)您單擊 Process 選項卡以切換編輯器時,您將獲得一個要求您更正錯誤的對話框,它給出了有關(guān)錯誤原因的一些詳細信息。一旦您將字符放回原處,就可以切換編輯器。





回頁首


構(gòu)建一個骨架(skeleton)流程

現(xiàn)在,您可以開始構(gòu)建回送流程了。該流程定義的根節(jié)點是 process 元素,這是 BPEL4WS 的語法所要求的。為此,請?zhí)砑右粋€ sequence 活動,它將成為回送流程所要求的最外層的結(jié)構(gòu)元素。您可以通過工具欄添加這個活動,也可以通過 BPWS菜單添加這個活動。工具欄和菜單基本上由兩組操作組成:

  1. 添加操作:這些操作向流程樹中已經(jīng)存在的一個節(jié)點添加一個節(jié)點;例如,您可以向一個 process 添加一個 scope 活動,或者向一個 flow 添加一個 while 活動。存在一些只能包含活動的活動節(jié)點和元素節(jié)點。因此,您不能通過工具欄或菜單向 process 元素添加 container 元素;將來,您可以在 process 元素的 Outline 視圖中完成這個操作。
  2. 包裝操作:這些操作使您能夠?qū)⒁粋€已經(jīng)存在的節(jié)點包裝在一個新節(jié)點中;例如,您可以將一個 sequence 包裝在一個 scope 中,或者將一個 reply 包含在一個 flow 中。

 

現(xiàn)在,您可以繼續(xù)前進,向 process 添加 sequence 元素。接下來,您應(yīng)該向 sequence 添加 receive ,然后添加 reply 。如果您在任何地方犯了錯誤,您可以刪除活動然后重新開始。您也可以通過工具欄或菜單訪問 delete操作,該操作能夠刪除以所選擇的節(jié)點為根節(jié)點的子樹。

對于某種特定情形,并不是所有操作都有意義;例如, process 元素可以包含正好一個活動。因此,一旦您已經(jīng)添加了 sequence ,那么菜單中的 add 操作對于該流程節(jié)點就被禁用了。然而,如果您選擇 sequence 元素,則這些操作就又被啟用了,這是因為一個 sequence 中可以包含無限個活動。BPWS4J 編輯器菜單因此是上下文敏感的且限制了可用的操作,這樣,用戶在創(chuàng)建流程時就可以少犯一些錯誤。





回頁首


在 Outline 視圖中添加容器和伙伴

BPWS4J 編輯器中的 Outline 視圖(請參見 圖 4)用于顯示流程樹中選擇的節(jié)點的結(jié)構(gòu)。這與 Eclipse 插件中的標(biāo)準(zhǔn) Outline 視圖形成了對比,后者中的 Outline 要求編輯器顯示所有輸入。將詳細信息轉(zhuǎn)到 Outline 視圖中將使主 Process 樹視圖的條理更清晰些,這樣設(shè)計師就可以將注意力集中在宏觀層面(活動以及它們彼此之間的結(jié)構(gòu)關(guān)系)上而不用擔(dān)心細節(jié)問題。


圖 4. Outline 視圖

針對回送流程,您有一個伙伴:發(fā)出回送消息的客戶機。由于這條消息一到達就要被存放在容器中,所以我們的流程還需要定義一個容器。因為這條消息保持不變且流程中不涉及其他消息,所以一個容器就足夠了。容器和伙伴都通過 outline 視圖在 process 元素中進行定義。請在樹中選擇流程節(jié)點,現(xiàn)在,您應(yīng)該能夠使用 Outline 視圖的工具欄在 Outline 視圖上添加容器和伙伴。當(dāng)您進行此操作時,您將看到 process 元素的 outline 隨每個操作而更新。





回頁首


在 Porperty 視圖中定義屬性

您已經(jīng)看到了如何使用主菜單和工具欄創(chuàng)建活動及其他結(jié)構(gòu)元素,還看到了如何使用 Outline 視圖定義額外的元素。剩下的就是針對每個元素填寫其各個屬性的詳細信息。您可以使用 Property 視圖(請參見 圖 5)來完成這一任務(wù)。


圖 5. Property 視圖

當(dāng)您在 Process 樹中或 Outline 視圖上選擇一個節(jié)點時,Property 視圖就被更新以反映該特定元素的屬性。這個視圖列出了屬性名稱和值,并且允許您編輯這些值。在有些情況下,視圖將向您提供可能的值的下拉列表;對于任何有可能減少由輸入過失引入的錯誤的情況,視圖都將向您提供這種下拉列表。當(dāng)無法提供這種下拉列表時,您將被允許直接輸入文本。

現(xiàn)在,請選擇新定義的容器;該容器具有下面兩個屬性:容器名稱和消息類型。您可以隨意填寫這些內(nèi)容。請注意,消息類型必須是一個全限定名,位于窗口底部的 BPWS4J 編輯器的狀態(tài)欄告訴您所要求的全限定名的格式;對于不符合所要求的格式的輸入,消息類型將不會接受。這個消息類型必須與流程 WSDL 中所定義的消息類型一致。最后,請在流程節(jié)點的 Outline 視圖中填寫伙伴元素的屬性,同樣要確保此處的信息與流程 WSDL 一致。





回頁首


在 Task 視圖中檢查流程有效性

BPWS4J 編輯器最有用的功能之一就是,它能夠在創(chuàng)建流程的過程中檢查流程的有效性。這是通過在 Task 視圖(請參見 圖 6)中顯示錯誤列表實現(xiàn)的。至此,在回送流程示例中,您已經(jīng)創(chuàng)建了必需的活動、流程的容器并且標(biāo)識了所涉及的伙伴。不過,您還沒有填寫 receive 活動和 reply 活動的屬性。如果您切換到 Source 編輯器,您將看到 Task 視圖已經(jīng)用我們的流程的錯誤列表進行了更新。所有這些錯誤都與不完整的 receive 活動和 reply 活動規(guī)范有關(guān)。如果您在 Task 視圖中單擊一個特定的錯誤,則 Source 編輯器將突出顯示存在錯誤的活動定義。每次您切換編輯器或者保存流程定義的時候,Task 視圖都將隨之更新。


圖 6. Task 視圖

盡管 Task 視圖能夠捕獲許多常見錯誤,但 BPWS4J 編輯器是獨立運行的,它并不知道流程 WSDL 文件的位置。因此,無法驗證對 WSDL 信息(諸如消息、操作、端口類型、相關(guān)性屬性或服務(wù)鏈接類型)的引用的有效性。





回頁首


完成示例

通過返回到流程編輯器并每次處理一個未完成的任務(wù),您就可以完成流程定義。當(dāng)您選擇任務(wù)時,存在錯誤的節(jié)點將被突出顯示。您可以單擊該節(jié)點來查看它的屬性,并更新屬性數(shù)據(jù)來消除錯誤。一旦您完成了 receive 活動和 reply 活動的屬性的輸入,您的流程定義就完整了。

現(xiàn)在,您應(yīng)該擁有了一個可以部署和運行的、有效的流程 WSDL 文件。在將來的一篇文章中,我們將對此作進一步的討論。





回頁首


參考資料





回頁首


關(guān)于作者

Nirmal K. Mukhi 是 IBM T J Watson Research Laboratory 的 Component Systems Group 的一名軟件工程師,從 2000 年 11 月起,他就一直在那里從事 Web 服務(wù)方面的研究。此前,Nirmal 是 Indiana University 的一名研究員和學(xué)生,1999 年 5 月他在該校獲得了碩士學(xué)位。Nirmal 從事過很多工作,其中包括下列 Web 服務(wù)軟件項目:WSDL4J、Web 服務(wù)調(diào)用框架(Web Services Invocation Framework,WSIF)、Web 服務(wù)網(wǎng)關(guān)(Web Services Gateway,WSGW)和 BPWS4J。您可以通過 nmukhi@us.ibm.com 與他聯(lián)系。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
從UML到BPEL
SOA 案例研究,第 4 部分:業(yè)務(wù)流程場景
Eclipse和MyEclipse的里程碑總結(jié)
Eclipse使用入門教程
Eclipse中透視圖和視圖簡析 java開發(fā)
面向SOA企業(yè)業(yè)務(wù)過程建模的利器 — IT技術(shù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服