當前位置:工程項目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
Web服務內幕,第6部分:承擔責任--實現(xiàn)WSFL中的角色
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è)流程的全局模型
為履行在 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 的定位
...
使用 UDDI 使 WSFL 變得更靈活、更強大,允許多個服務提供者通過競爭獲取在商業(yè)流程中履行一個角色的權利。然而,為 WSFL 添加最高級靈活性的是移動定位器機制,它允許 WSFL 工作流引擎完全根據調用流程時應用的一套規(guī)則來選擇服務提供者。例如,如果提交的購買訂單總額超過 $10,000,那么工作流引擎所選的 Web 服務實現(xiàn)就可能不同于為總額不足 $10,000 的購買訂單所選的 Web 服務實現(xiàn)。
用于調用 Web 服務的消息中包含選擇實際要調用的 Web 服務實現(xiàn)必須滿足的條件,移動定位器指定在該消息的什么地方可找到這些條件(請參閱清單 5)。
清單 5:服務的移動定位器
總結
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è)流程建模參考資料。
- 學習 SOAP、WSDL 和
UDDI。
- 學習 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部分
- 1Applying .Net to Web Services
- 2Web服務內幕,第7部分:WSFL和遞歸組合
- 3石家莊OA信息化的基本XML和RDF技術(二):將文件合并到RDF模型和基本的RDF查詢
- 4泛普OA軟件支持在線直接發(fā)送消息、傳送文件、音頻會話等
- 5Web Service Case Study: 認證考試申請服務
- 6非常漂亮的一個模型
- 7Web服務設計師,第1部分:動態(tài)電子商務介紹
- 82009金和協(xié)同管理“破冰之旅”助企業(yè)安然渡冬
- 9Web服務的“租用”本質
- 10泛普軟件石家莊OA信息化系統(tǒng)集成接口舉例
- 11企業(yè)核心能力的經濟學含義
- 12Web服務設計師,第4部分:基于付費Web服務:術語
- 13關于石家莊OA信息化的幾個問答(by AMT 夏敬華)
- 14如何幫助企業(yè)構建安全的協(xié)同辦公系統(tǒng)?
- 15搜索:非結構化信息管理的核心
- 16Web Service 的異步調用
- 17Web服務準備:理解和使用Web服務托管技術
- 18Web Services 及其技術(上)
- 19源天榮獲“2008中國信息產業(yè)年度高成長性企業(yè)”稱號
- 20分析家:安全仍是Web服務普及最大障礙
- 21Web服務設計師,第2部分:動態(tài)電子商務模式
- 22泛普協(xié)同OA辦公軟件的信息資源共享
- 23Ask the DotNetJunkies: Consuming Remote Web Services in ASP.
- 24石家莊OA信息化的基本XML和RDF技術(三):語義知識
- 25利用FrontPage來使用XML Web Service
- 26石家莊OA信息化方面的站點資源!
- 27Web服務內幕,第9部分:研究問題--安全性與保密性
- 28源天軟件獲2008年度中國IT服務創(chuàng)新獎
- 29破解OA項目實施難題:建立項目實施與交付體系
- 30Sun等公布Web服務協(xié)調語言“WSCI”
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓