當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
Web服務(wù)內(nèi)幕,第6部分:承擔(dān)責(zé)任--實現(xiàn)WSFL中的角色
Web服務(wù)內(nèi)幕,第6部分:承擔(dān)責(zé)任
--實現(xiàn)WSFL中的角色
James Snell (jasnell@us.ibm.com)
軟件工程師,Emerging Technologies,IBM
2001 年 7 月
Web
服務(wù)提供了創(chuàng)建高度動態(tài)化的、多功能的分布式應(yīng)用程序的可能,這種應(yīng)用程序跨越了技術(shù)和商業(yè)之間的鴻溝,允許服務(wù)提供者和服務(wù)消費者共同改進商務(wù)方式。Web
服務(wù)流語言(WSFL)通過建立一個框架來擴展這種可能,在此框架內(nèi)服務(wù)提供者和消費者可以共同合作實現(xiàn)標(biāo)準(zhǔn)商業(yè)流程;在這個流程中“所做的事”比“做事的人”更重要。該框架允許所有正確實現(xiàn)了合適的
Web 服務(wù)接口的人擔(dān)任商業(yè)流程中的各種角色。在 Web 服務(wù)內(nèi)幕的這一部分,我們繼續(xù)討論 WSFL,并把重點放在如何成為一個服務(wù)提供者。
Web
服務(wù)內(nèi)幕的前一部分(請參閱參考資料)介紹了商業(yè)流程建模和服務(wù)提供者類型的概念,它們在實現(xiàn)商業(yè)流程中承擔(dān)各種不同的責(zé)任。在這一部分,我準(zhǔn)備更深入地探討如何成為一個
WSFL 服務(wù)提供者。一個好消息是,只要使用任意啟用 Web 服務(wù)的平臺(不管這個平臺是 WSFL 還是具有 WSDL 功能的),正確實現(xiàn)一個或幾個 WSDL
定義的 Web 服務(wù)接口即可成為一個服務(wù)提供者。換句話說,您不需要真正懂得任何關(guān)于 WSFL 的知識即可擔(dān)任 WSFL
服務(wù)提供者這一角色。您必須要了解的是如何獲取一個 Web 服務(wù)接口定義并真正把它轉(zhuǎn)化為 Web 服務(wù)實現(xiàn),這才是我要在這里闡述的過程。
流程概述
WSFL 流模型中的每個活動都以 Web 服務(wù)的形式(由 Web
服務(wù)提供者提供)實現(xiàn),并履行一個流程中所定義的角色。每個服務(wù)提供者自然都期望能適當(dāng)?shù)貪M足實現(xiàn) Web 服務(wù)或?qū)崿F(xiàn)實際執(zhí)行該活動的一套 Web
服務(wù)的要求。WSFL 流模型中的每個活動都使用 WSFL 全局模型中包含的信息鏈接到一個實際的 Web 服務(wù)實現(xiàn)中(請參閱圖 1)。每個 Web
服務(wù)實現(xiàn)都指向該實現(xiàn)的一個基于 WSDL 的描述,該描述接著又鏈接到基于 WSDL 的接口描述 — 描述了所有可發(fā)送到 Web 服務(wù)或從 Web
服務(wù)接收的實際消息和操作。
圖 1:旅游預(yù)訂商業(yè)流程的流模型
清單 1 所示是與上圖表現(xiàn)的商業(yè)流程的流模型相對應(yīng)的全局模型。
清單 1:旅游預(yù)訂商業(yè)流程的全局模型
為履行在 WSFL 定義的流程中的服務(wù)提供者這一角色,首先必須具有對 WSDL 文檔的訪問權(quán),這些文檔定義了實現(xiàn) Web 服務(wù)必需的基本數(shù)據(jù)類型、消息和端口類型。然后您必須設(shè)計并創(chuàng)建應(yīng)用程序代碼(這些代碼實現(xiàn)了要求的端口類型中定義的每個操作)并將這些代碼部署在 Web 服務(wù)平臺(如 IBM WebSphere Application Server 4.0、Apache SOAP 等)上。
成為流程中的一部分
一個好消息是,如果您想成為商業(yè)流程中的一部分,您真正要了解的只是如何創(chuàng)建一個
Web 服務(wù)。一旦這項工作已經(jīng)完成,您只需將其插入到 WSFL 全局模型中,該模型將您的 Web
服務(wù)實現(xiàn)鏈接到一個流模型中定義的角色。該鏈接可以是靜態(tài)的(全局模型明確指定您的 Web
服務(wù)作為給定角色的服務(wù)提供者),也可以是動態(tài)的(全局模型指定一套用于選擇服務(wù)提供者的發(fā)現(xiàn)規(guī)則,您的有可能被選中)。
有大量的參考資料詳細介紹了如何創(chuàng)建 Web 服務(wù) — 我偏向于推薦我寫的關(guān)于 Web 服務(wù)工具包方面的教程(請參考參考資料)— 所以關(guān)于這方面的細節(jié)我就不再贅述了。我在下面提供的是幾個演示如何將 Web 服務(wù)實現(xiàn)插入到全局模型中的示例。
現(xiàn)在讓我們開始吧,開發(fā)人員提供您已經(jīng)實現(xiàn)的 Web 服務(wù)的 WSDL 描述。該描述提供了允許客戶端應(yīng)用程序調(diào)用您的 Web 服務(wù)所必需的所有信息。在 WSFL 工作流中,“客戶端”指的是實現(xiàn)各種活動的其它 Web 服務(wù)。您的 Web 服務(wù)如何調(diào)用其它的服務(wù)取決于您的流模型定義數(shù)據(jù)和控制鏈接的方法。一旦創(chuàng)建了 WSDL,就需要將其部署到一些網(wǎng)絡(luò)可訪問的位置上,最好是部署到您的 Web 服務(wù)器上。然后即可任選地將 WSDL 定義的 Web 服務(wù)發(fā)布到 UDDI 注冊方。
現(xiàn)在,假設(shè)這一步已經(jīng)完成。您有了一個名為 Agent.wsdl 的 WSDL 文檔,它位于 http://acme.com/services/agent.wsdl。此 WSDL 文檔的目標(biāo)命名空間為 urn:Agent_Service_Implementation,Web 服務(wù)的名稱為 AgentService。該服務(wù)的目的是履行上面勾勒出的商業(yè)流程中旅游代理這一角色。
如 WSFL 規(guī)范定義的那樣,在執(zhí)行商業(yè)流程時,可用 4 種不同的方法來定位您的 Web 服務(wù):靜態(tài)方法、本地方法、通過 UDDI 的方法或動態(tài)方法。
使用靜態(tài)定位非常簡單,只需向 WSFL 全局模型添加一個指向您的 WSDL 服務(wù)定義的直接鏈接即可。這樣就會告訴 WSFL 工作流引擎您的 Web 服務(wù)的確切位置,而無需作出任何判定(請參閱清單 2)。
清單 2:服務(wù)的靜態(tài)定位
“本地”服務(wù)是不必通過 Web 服務(wù)接口來提供的 Web 服務(wù)。更多情況下,它們是采用與處理請求的工作流引擎在同一臺機器上的應(yīng)用程序或 Java 類的形式。這些應(yīng)用程序仍可使用 WSDL 文檔進行描述,但描述的方法稍有不同。WSFL 規(guī)范可提供關(guān)于本地服務(wù)的更多詳細信息(請參閱清單 3)。
清單 3:服務(wù)的“本地”定位
第 3 種查找 Web 服務(wù)的方法是通過使用 UDDI 查詢。本來,全局模型定義 UDDI find_service 操作是為了搜索 UDDI 注冊方并檢索符合條件的一系列侯選 Web 服務(wù)。全局模型使用選擇策略,判定返回的搜索結(jié)果中哪個 Web 服務(wù)將被用于履行商業(yè)流程中的角色。合法的選擇策略包括選擇列表中的第一個服務(wù)、從列表中隨機選擇服務(wù)或使用一些用戶定義的算法。全局模型還可能指出何時執(zhí)行 UDDI 查詢??梢赃x擇在開發(fā)時運行查詢,這種情況下當(dāng) WSFL 模型部署到生產(chǎn)環(huán)境中時,UDDI 查詢將被靜態(tài)定位器取代,也可以選擇在運行時運行查詢,這種情況下就將在首次調(diào)用流模型時執(zhí)行 UDDI 查詢(請參閱清單 4)。
清單 4:服務(wù)的基于 UDDI 的定位
...
使用 UDDI 使 WSFL 變得更靈活、更強大,允許多個服務(wù)提供者通過競爭獲取在商業(yè)流程中履行一個角色的權(quán)利。然而,為 WSFL 添加最高級靈活性的是移動定位器機制,它允許 WSFL 工作流引擎完全根據(jù)調(diào)用流程時應(yīng)用的一套規(guī)則來選擇服務(wù)提供者。例如,如果提交的購買訂單總額超過 $10,000,那么工作流引擎所選的 Web 服務(wù)實現(xiàn)就可能不同于為總額不足 $10,000 的購買訂單所選的 Web 服務(wù)實現(xiàn)。
用于調(diào)用 Web 服務(wù)的消息中包含選擇實際要調(diào)用的 Web 服務(wù)實現(xiàn)必須滿足的條件,移動定位器指定在該消息的什么地方可找到這些條件(請參閱清單 5)。
清單 5:服務(wù)的移動定位器
總結(jié)
WSFL 最強大、最有用的功能之一是其能夠允許任何 Web
服務(wù)提供者實現(xiàn)商業(yè)流程中定義的任何活動。根據(jù)用戶定義的一套規(guī)則來動態(tài)定位并綁定到提供者的功能,為處理先前不存在的 Web 上的商務(wù)添加了一種新思維 —
動態(tài)聯(lián)合并集成松散結(jié)合的應(yīng)用程序組件。在本欄目的下一部分,我將向您介紹 WSFL 另一個很酷的功能:在現(xiàn)有的商業(yè)流程中遞歸嵌套成新的商業(yè)流程。
參考資料
- 請點擊文章頂部或底部的討論,加入關(guān)于本文的討論論壇。
- 請務(wù)必查看過本欄目的前面三部分:第 3 部分、第 4 部分和第 5 部分。
- 學(xué)習(xí)如何使用 Web 服務(wù)工具包來 實現(xiàn) Web 服務(wù)。
- 請閱讀 WSFL 規(guī)范。
- 在 Google 處查看已列出的商業(yè)流程建模參考資料。
- 學(xué)習(xí) SOAP、WSDL 和
UDDI。
- 學(xué)習(xí) IBM MQSeries 和它的工作流組件。
James Snell 是一位撰稿人兼開發(fā)人員,他也是 IBM Web 服務(wù)開發(fā)小組的最新成員之一。他在進入 IBM 之前,已經(jīng)具有關(guān)于定制企業(yè)應(yīng)用開發(fā)和商家對商家集成這些方面的深厚背景,而且他對 Web 前沿技術(shù)有極大的熱情??赏ㄟ^ jasnell@us.ibm.com 與他聯(lián)系。
瀏覽:Web服務(wù)內(nèi)幕,第1部分
Web服務(wù)內(nèi)幕,第2部分
Web服務(wù)內(nèi)幕,第3部分
Web服務(wù)內(nèi)幕,第4部分
Web服務(wù)內(nèi)幕,第5部分
Web服務(wù)內(nèi)幕,第7部分
Web服務(wù)內(nèi)幕,第8部分
Web服務(wù)內(nèi)幕,第9部分
Web服務(wù)內(nèi)幕,第10部分
- 1Applying .Net to Web Services
- 2Web服務(wù)內(nèi)幕,第7部分:WSFL和遞歸組合
- 3石家莊OA信息化的基本XML和RDF技術(shù)(二):將文件合并到RDF模型和基本的RDF查詢
- 4泛普OA軟件支持在線直接發(fā)送消息、傳送文件、音頻會話等
- 5Web Service Case Study: 認證考試申請服務(wù)
- 6非常漂亮的一個模型
- 7Web服務(wù)設(shè)計師,第1部分:動態(tài)電子商務(wù)介紹
- 82009金和協(xié)同管理“破冰之旅”助企業(yè)安然渡冬
- 9Web服務(wù)的“租用”本質(zhì)
- 10泛普軟件石家莊OA信息化系統(tǒng)集成接口舉例
- 11企業(yè)核心能力的經(jīng)濟學(xué)含義
- 12Web服務(wù)設(shè)計師,第4部分:基于付費Web服務(wù):術(shù)語
- 13關(guān)于石家莊OA信息化的幾個問答(by AMT 夏敬華)
- 14如何幫助企業(yè)構(gòu)建安全的協(xié)同辦公系統(tǒng)?
- 15搜索:非結(jié)構(gòu)化信息管理的核心
- 16Web Service 的異步調(diào)用
- 17Web服務(wù)準(zhǔn)備:理解和使用Web服務(wù)托管技術(shù)
- 18Web Services 及其技術(shù)(上)
- 19源天榮獲“2008中國信息產(chǎn)業(yè)年度高成長性企業(yè)”稱號
- 20分析家:安全仍是Web服務(wù)普及最大障礙
- 21Web服務(wù)設(shè)計師,第2部分:動態(tài)電子商務(wù)模式
- 22泛普協(xié)同OA辦公軟件的信息資源共享
- 23Ask the DotNetJunkies: Consuming Remote Web Services in ASP.
- 24石家莊OA信息化的基本XML和RDF技術(shù)(三):語義知識
- 25利用FrontPage來使用XML Web Service
- 26石家莊OA信息化方面的站點資源!
- 27Web服務(wù)內(nèi)幕,第9部分:研究問題--安全性與保密性
- 28源天軟件獲2008年度中國IT服務(wù)創(chuàng)新獎
- 29破解OA項目實施難題:建立項目實施與交付體系
- 30Sun等公布Web服務(wù)協(xié)調(diào)語言“WSCI”
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114