監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關閉

Web服務內幕,第6部分:承擔責任--實現(xiàn)WSFL中的角色

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

Web服務內幕,第6部分:承擔責任

--實現(xiàn)WSFL中的角色


James Snell (jasnell@us.ibm.com)

軟件工程師,Emerging Technologies,IBM

2001 年 7 月

Web 服務提供了創(chuàng)建高度動態(tài)化的、多功能的分布式應用程序的可能,這種應用程序跨越了技術和商業(yè)之間的鴻溝,允許服務提供者和服務消費者共同改進商務方式。Web 服務流語言(WSFL)通過建立一個框架來擴展這種可能,在此框架內服務提供者和消費者可以共同合作實現(xiàn)標準商業(yè)流程;在這個流程中“所做的事”比“做事的人”更重要。該框架允許所有正確實現(xiàn)了合適的 Web 服務接口的人擔任商業(yè)流程中的各種角色。在 Web 服務內幕的這一部分,我們繼續(xù)討論 WSFL,并把重點放在如何成為一個服務提供者。

Web 服務內幕的前一部分(請參閱參考資料)介紹了商業(yè)流程建模和服務提供者類型的概念,它們在實現(xiàn)商業(yè)流程中承擔各種不同的責任。在這一部分,我準備更深入地探討如何成為一個 WSFL 服務提供者。一個好消息是,只要使用任意啟用 Web 服務的平臺(不管這個平臺是 WSFL 還是具有 WSDL 功能的),正確實現(xiàn)一個或幾個 WSDL 定義的 Web 服務接口即可成為一個服務提供者。換句話說,您不需要真正懂得任何關于 WSFL 的知識即可擔任 WSFL 服務提供者這一角色。您必須要了解的是如何獲取一個 Web 服務接口定義并真正把它轉化為 Web 服務實現(xiàn),這才是我要在這里闡述的過程。

流程概述

WSFL 流模型中的每個活動都以 Web 服務的形式(由 Web 服務提供者提供)實現(xiàn),并履行一個流程中所定義的角色。每個服務提供者自然都期望能適當?shù)貪M足實現(xiàn) Web 服務或實現(xiàn)實際執(zhí)行該活動的一套 Web 服務的要求。WSFL 流模型中的每個活動都使用 WSFL 全局模型中包含的信息鏈接到一個實際的 Web 服務實現(xiàn)中(請參閱圖 1)。每個 Web 服務實現(xiàn)都指向該實現(xiàn)的一個基于 WSDL 的描述,該描述接著又鏈接到基于 WSDL 的接口描述 — 描述了所有可發(fā)送到 Web 服務或從 Web 服務接收的實際消息和操作。

圖 1:旅游預訂商業(yè)流程的流模型


清單 1 所示是與上圖表現(xiàn)的商業(yè)流程的流模型相對應的全局模型。

清單 1:旅游預訂商業(yè)流程的全局模型





















operation="sendConfirmation"/>
operation="waitForConfirmation"/>


operation="requestTicketOrder"/>
operation="receiveTicketOrder"/>

為履行在 WSFL 定義的流程中的服務提供者這一角色,首先必須具有對 WSDL 文檔的訪問權,這些文檔定義了實現(xiàn) Web 服務必需的基本數(shù)據類型、消息和端口類型。然后您必須設計并創(chuàng)建應用程序代碼(這些代碼實現(xiàn)了要求的端口類型中定義的每個操作)并將這些代碼部署在 Web 服務平臺(如 IBM WebSphere Application Server 4.0、Apache SOAP 等)上。

成為流程中的一部分

一個好消息是,如果您想成為商業(yè)流程中的一部分,您真正要了解的只是如何創(chuàng)建一個 Web 服務。一旦這項工作已經完成,您只需將其插入到 WSFL 全局模型中,該模型將您的 Web 服務實現(xiàn)鏈接到一個流模型中定義的角色。該鏈接可以是靜態(tài)的(全局模型明確指定您的 Web 服務作為給定角色的服務提供者),也可以是動態(tài)的(全局模型指定一套用于選擇服務提供者的發(fā)現(xiàn)規(guī)則,您的有可能被選中)。

有大量的參考資料詳細介紹了如何創(chuàng)建 Web 服務 — 我偏向于推薦我寫的關于 Web 服務工具包方面的教程(請參考參考資料)— 所以關于這方面的細節(jié)我就不再贅述了。我在下面提供的是幾個演示如何將 Web 服務實現(xiàn)插入到全局模型中的示例。

現(xiàn)在讓我們開始吧,開發(fā)人員提供您已經實現(xiàn)的 Web 服務的 WSDL 描述。該描述提供了允許客戶端應用程序調用您的 Web 服務所必需的所有信息。在 WSFL 工作流中,“客戶端”指的是實現(xiàn)各種活動的其它 Web 服務。您的 Web 服務如何調用其它的服務取決于您的流模型定義數(shù)據和控制鏈接的方法。一旦創(chuàng)建了 WSDL,就需要將其部署到一些網絡可訪問的位置上,最好是部署到您的 Web 服務器上。然后即可任選地將 WSDL 定義的 Web 服務發(fā)布到 UDDI 注冊方。

現(xiàn)在,假設這一步已經完成。您有了一個名為 Agent.wsdl 的 WSDL 文檔,它位于 http://acme.com/services/agent.wsdl。此 WSDL 文檔的目標命名空間為 urn:Agent_Service_Implementation,Web 服務的名稱為 AgentService。該服務的目的是履行上面勾勒出的商業(yè)流程中旅游代理這一角色。

如 WSFL 規(guī)范定義的那樣,在執(zhí)行商業(yè)流程時,可用 4 種不同的方法來定位您的 Web 服務:靜態(tài)方法、本地方法、通過 UDDI 的方法或動態(tài)方法。

使用靜態(tài)定位非常簡單,只需向 WSFL 全局模型添加一個指向您的 WSDL 服務定義的直接鏈接即可。這樣就會告訴 WSFL 工作流引擎您的 Web 服務的確切位置,而無需作出任何判定(請參閱清單 2)。

清單 2:服務的靜態(tài)定位




“本地”服務是不必通過 Web 服務接口來提供的 Web 服務。更多情況下,它們是采用與處理請求的工作流引擎在同一臺機器上的應用程序或 Java 類的形式。這些應用程序仍可使用 WSDL 文檔進行描述,但描述的方法稍有不同。WSFL 規(guī)范可提供關于本地服務的更多詳細信息(請參閱清單 3)。

清單 3:服務的“本地”定位



第 3 種查找 Web 服務的方法是通過使用 UDDI 查詢。本來,全局模型定義 UDDI find_service 操作是為了搜索 UDDI 注冊方并檢索符合條件的一系列侯選 Web 服務。全局模型使用選擇策略,判定返回的搜索結果中哪個 Web 服務將被用于履行商業(yè)流程中的角色。合法的選擇策略包括選擇列表中的第一個服務、從列表中隨機選擇服務或使用一些用戶定義的算法。全局模型還可能指出何時執(zhí)行 UDDI 查詢??梢赃x擇在開發(fā)時運行查詢,這種情況下當 WSFL 模型部署到生產環(huán)境中時,UDDI 查詢將被靜態(tài)定位器取代,也可以選擇在運行時運行查詢,這種情況下就將在首次調用流模型時執(zhí)行 UDDI 查詢(請參閱清單 4)。

清單 4:服務的基于 UDDI 的定位


generic="1.0" xmlns:uddi-api="urn:uddi-org:api">
...

使用 UDDI 使 WSFL 變得更靈活、更強大,允許多個服務提供者通過競爭獲取在商業(yè)流程中履行一個角色的權利。然而,為 WSFL 添加最高級靈活性的是移動定位器機制,它允許 WSFL 工作流引擎完全根據調用流程時應用的一套規(guī)則來選擇服務提供者。例如,如果提交的購買訂單總額超過 $10,000,那么工作流引擎所選的 Web 服務實現(xiàn)就可能不同于為總額不足 $10,000 的購買訂單所選的 Web 服務實現(xiàn)。

用于調用 Web 服務的消息中包含選擇實際要調用的 Web 服務實現(xiàn)必須滿足的條件,移動定位器指定在該消息的什么地方可找到這些條件(請參閱清單 5)。

清單 5:服務的移動定位器

message="flightInfo" messagePart="airline" dataField="providerInfo">

總結

WSFL 最強大、最有用的功能之一是其能夠允許任何 Web 服務提供者實現(xiàn)商業(yè)流程中定義的任何活動。根據用戶定義的一套規(guī)則來動態(tài)定位并綁定到提供者的功能,為處理先前不存在的 Web 上的商務添加了一種新思維 — 動態(tài)聯(lián)合并集成松散結合的應用程序組件。在本欄目的下一部分,我將向您介紹 WSFL 另一個很酷的功能:在現(xiàn)有的商業(yè)流程中遞歸嵌套成新的商業(yè)流程。

參考資料

  • 請點擊文章頂部或底部的討論,加入關于本文的討論論壇。
  • 請務必查看過本欄目的前面三部分:第 3 部分第 4 部分第 5 部分。
  • 學習如何使用 Web 服務工具包來 實現(xiàn) Web 服務。
  • 請閱讀 WSFL 規(guī)范。
  • Google 處查看已列出的商業(yè)流程建模參考資料。
  • 學習 SOAPWSDLUDDI
  • 學習 IBM MQSeries 和它的工作流組件。



關于作者

James Snell 是一位撰稿人兼開發(fā)人員,他也是 IBM Web 服務開發(fā)小組的最新成員之一。他在進入 IBM 之前,已經具有關于定制企業(yè)應用開發(fā)和商家對商家集成這些方面的深厚背景,而且他對 Web 前沿技術有極大的熱情??赏ㄟ^
jasnell@us.ibm.com 與他聯(lián)系。

瀏覽:Web服務內幕,第1部分

Web服務內幕,第2部分

Web服務內幕,第3部分

Web服務內幕,第4部分

Web服務內幕,第5部分

Web服務內幕,第7部分

Web服務內幕,第8部分

Web服務內幕,第9部分

Web服務內幕,第10部分

發(fā)布:2007-03-25 13:27    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章:
石家莊OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢