服務(wù)計算概述_第1頁
服務(wù)計算概述_第2頁
服務(wù)計算概述_第3頁
服務(wù)計算概述_第4頁
服務(wù)計算概述_第5頁
已閱讀5頁,還剩126頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

服務(wù)科學(xué)概論服務(wù)計算概述山東大學(xué)軟件學(xué)院SSMEV4.02本章內(nèi)容234面向服務(wù)的體系結(jié)構(gòu)(SOA)服務(wù)組合WebService1服務(wù)計算產(chǎn)生和發(fā)展1.服務(wù)計算產(chǎn)生和發(fā)展服務(wù)計算產(chǎn)生及發(fā)展?2002年6月,美國拉斯維加斯舉行國際互聯(lián)網(wǎng)計算會議

(InternationalConferenceonInternetComputing)–張良杰承辦Web服務(wù)計算(WebServicesComputing)專題討論,首 次將服務(wù)與計算結(jié)合,強(qiáng)調(diào)Web服務(wù)在分布式計算和動態(tài)業(yè)務(wù)集成 中的重要作用?2003年6月,美國拉斯維加斯舉行第一屆Web服務(wù)國際會議(InternationalConferenceonWebServices)?2003年11月,IEEE成立服務(wù)計算技術(shù)社區(qū)(TechnicalCommunityofServicesComputing)?2004年5月,改名為服務(wù)計算技術(shù)指導(dǎo)委員會(TechnicalSteeringCommitteeforServicesComputing)–張良杰先生出任委員會的首任主席–致力于推動服務(wù)計算學(xué)科發(fā)展和相關(guān)標(biāo)準(zhǔn)制定–標(biāo)志著服務(wù)計算正式成為一門獨立的計算學(xué)科?2004年9月,服務(wù)計算技術(shù)指導(dǎo)委員會在上海召開第一屆服務(wù)計算專題國際會議(IEEEInternaltionalConferenceonServicesComputing)服務(wù)科學(xué)??50多年前,隨著信息技術(shù)時代的到來,計算機(jī)科 學(xué)從電子工程和數(shù)學(xué)分離出來,成為一個獨立的 學(xué)科?隨著服務(wù)經(jīng)濟(jì)的到來,服務(wù)科學(xué)會不會也像計算 機(jī)學(xué)科一樣,在不久的將來成為一門獨立的學(xué)科 ??服務(wù)科學(xué)可以將計算機(jī)科學(xué)、運(yùn)籌學(xué)、產(chǎn)業(yè)工程 、數(shù)學(xué)、管理學(xué)、決策學(xué)、社會科學(xué)和法律學(xué)等 既定領(lǐng)域內(nèi)的工作相融合,創(chuàng)建新的技能和市場 ,提供高價值的業(yè)務(wù)科學(xué)、工程與管理?科學(xué)–用來產(chǎn)生知識?工程–應(yīng)用知識去產(chǎn)生價值?管理–改進(jìn)產(chǎn)生和獲取價值的流程服務(wù)計算的外延

服務(wù)管理服務(wù)質(zhì)量和性能

優(yōu)化

效率

質(zhì)量

最優(yōu)化方法

管理經(jīng)驗

管理

服務(wù)科學(xué)服務(wù)計算理論

建模

理論

實驗

行為

規(guī)則

工程

服務(wù)工程服務(wù)系統(tǒng)的工程開發(fā)

規(guī)范、技術(shù)

方法、工具

自動化

度量性

以服務(wù)為中心

科學(xué)服務(wù)工程(ServicesEngineering)?面向服務(wù)軟件的工程化開發(fā)?

–高效地開發(fā)高質(zhì)量的軟件制品

–軟件開發(fā)的工業(yè)化:軟件生產(chǎn)線面臨的挑戰(zhàn)

服務(wù)工程的數(shù)學(xué)理論

服務(wù)工程的設(shè)計方法

服務(wù)工程的模型驅(qū)動架構(gòu)

服務(wù)工程的信任、安全、隱私

服務(wù)工程的Agent技術(shù)–服務(wù)計算應(yīng)用的需求工程–普適應(yīng)用的服務(wù)開發(fā)––––服務(wù)的分析與設(shè)計模式服務(wù)的可信性、可生存性、重構(gòu)、測試、驗證與校驗服務(wù)的本體化與語義匹配………….汽車的組裝軟件的組裝Internet/E-BusinessService-OrientedComputingMainframeComputingReturnonInvestmentInteroperability/FlexibilityTimetoMarketInfrastructureLeveragePeriodCharacteristics1980’s?Packaged&Custom MainframeApplications?Top-Down,Procedural Development?CentralizedComputing Models?Non-DistributedSolutions?EmergingPC-Based Technologies1990’s?Client-Server Applications?Object-Oriented Development?Enterprise-Centric Computing?InternetProliferation?E-Commerce Applications2000’s?EnterpriseWeb Applications&Suites?WebServices& SoftwareComponents?Next-Generation Integrations?Real-TimeApplication Assembly?RapidDeployment&Management

服務(wù)計算帶來分布式計算演進(jìn)大寬松粒度聯(lián)接小緊密網(wǎng)絡(luò)化技術(shù)

客戶/服務(wù)器單機(jī),主機(jī)

虛擬計算環(huán)境60年代70809020002010

函數(shù)函數(shù)調(diào)用Web服務(wù)SOAP,WSDL, UDDI簡單服務(wù)

MOM,XML- RPC構(gòu)件

J2EECORBA

對象消息傳遞服務(wù)計算帶來中間件技術(shù)演進(jìn)

趨勢?數(shù)字化?網(wǎng)絡(luò)化?智能化開發(fā)購買下載安裝運(yùn)行軟件服務(wù)帶來的便利

管理應(yīng)用軟件職責(zé)CustomerService(Client/Server)Integration(EAIPackages)Java

(ApplicationServers)

ERP

(Packages)

ContentRelationalDatabases

Logistics (Mainframes)

Legacy ApplicationsContent/Personalisation

(InteractionPackages)

Packaged Applications

軟件提供商業(yè)務(wù)用戶參與活動面臨眾多的IT技術(shù)面臨眾多的IT產(chǎn)品軟件服務(wù)帶來的便利安裝(部署)運(yùn)行管理

開發(fā)軟件提供商業(yè)務(wù)

應(yīng)用用戶參與活動

購買軟件運(yùn)營商業(yè)務(wù)軟件職責(zé)軟件服務(wù)軟件提供商什么是?服務(wù)計算??荷蘭科學(xué)家MikeP.Papazoulou–從軟件系統(tǒng)設(shè)計與開發(fā)的角度出發(fā),認(rèn)為“服務(wù)計算是一種以服務(wù)為基本元素進(jìn)行應(yīng)用系統(tǒng)開發(fā)的方式”

?M.PapazoglouandD.Georgakopoulos.Introductiontoaspecialissueonserviceorientedcomputing,CommunicationofACM,2003:p.25-28什么是?服務(wù)計算??華人科學(xué)家張良杰–從學(xué)科的角度出發(fā),認(rèn)為“服務(wù)計算是一門跨計算機(jī)與信息技術(shù)、商業(yè)管理與咨詢服務(wù)的基礎(chǔ)學(xué)科,其目標(biāo)在于利用服務(wù)科學(xué)和服務(wù)技術(shù)消除商業(yè)服務(wù)和信息技術(shù)服務(wù)之間的鴻溝”什么是?服務(wù)計算??北卡羅來納州立大學(xué)MunindarP.Singh?南加州大學(xué)MichaelN.Huhns–從服務(wù)技術(shù)的應(yīng)用角度出發(fā),認(rèn)為“服務(wù)計算是集服務(wù)概念、服務(wù)體系架構(gòu)、服務(wù)技術(shù)和服務(wù)基礎(chǔ)設(shè)施于一體,指導(dǎo)如何使用服務(wù)的技術(shù)集合”什么是?服務(wù)計算??從分布式計算的角度出發(fā),認(rèn)為?服務(wù)計算是從 面向?qū)ο蠛兔嫦驑?gòu)件的計算演化而來的一種分布 式計算模式,它使得分布在企業(yè)內(nèi)部或跨越企業(yè) 邊界的不同商業(yè)應(yīng)用系統(tǒng)能實現(xiàn)快捷、靈活的無 縫集成與相互協(xié)作?–Orlowska,M.E.,Weerawarana,S.,Papazoglou,M.P.,andYang,J.FirstInternationalConferenceService-OrientedComputing(ICSOC2003),Trento,Italy,December15-18,2003.服務(wù)計算?它在形成自己獨特的科學(xué)與技術(shù)體系的基礎(chǔ)上有機(jī)整合了一系列最新技術(shù)成果–SOA(ServiceOrientedArchitecture,面向服務(wù)的體系架構(gòu))及Web服務(wù)–網(wǎng)格/效用計算(Grid&UtilityComputing)–業(yè)務(wù)流程整合及管理(BusinessProcessIntegration&Management)–第一部分解決的是技術(shù)平臺和架構(gòu)的問題;第二部分解決是服務(wù)交付的問題;第三部分則是業(yè)務(wù)本身的整合和管理。成熟度(Maturity)生產(chǎn)力成熟期

Plateauof productivity

復(fù)蘇期

SlopeofEnlightenment幻覺破滅谷底期

Troughof Disillusionment

過熱期PeakofInflated Expectations技術(shù)萌芽期Technology TriggerSOA技術(shù)20092008200720022003 2005未來

SOA/Web服務(wù)技術(shù)成熟度趨勢Gartner新興技術(shù)光環(huán)曲線(GartnerHypeCycleforEmergingTechnologies)

可見度

(Visibility)

服務(wù)科學(xué)與工程

提高服務(wù)生產(chǎn)力SOA軟件產(chǎn)業(yè)現(xiàn)狀?最活躍的SOA標(biāo)準(zhǔn)組織:

–W3C-WorldWideWeb Consortium–OASIS–WS-I–Webservices

Interoperability Organization–JCP–JavaCommunity Process–OSOA–OpenSOA Collaboration

最活躍的SOA相關(guān)公司:

?

OracleBEA

?

IBMMicrosoft?SUNSAP開源組織:

?

ObjectWeb

?

Apache(Axis)?JBoss學(xué)術(shù)界現(xiàn)狀?刊物–IEEETransactiononServicesComputing(TSC)–InternationalJournalofWebServicesResearch(JWSR)–InternationalJournalofWebandGridServices(IJWGS)?會議–IEEEInternationalConferenceonServicesComputing(SCC)–IEEEInternationalConferenceonWebServices(ICWS)–IEEEWorldCongressonServices–InternationalConferenceonServiceOrientedComputing(ICSOC)學(xué)術(shù)界現(xiàn)狀?荷蘭大學(xué)的信息實驗室–http://infolab.uvt.nl/–PapazoglouM.P.–面向服務(wù)計算(SOC)?美國卡內(nèi)基梅隆大學(xué)的智能軟件Agent實驗室–語義Web服務(wù)–/~softagents/?美國亞利桑那大學(xué)–蔡維德?美國喬治亞大學(xué)的大規(guī)模分布式信息系統(tǒng)實驗室–語義服務(wù)、服務(wù)組合等?澳大利亞新南威爾士大學(xué)服務(wù)計算研究組–.au/?國內(nèi)–北航、中科院軟件所、北京大學(xué)、浙江大學(xué)等2.面向服務(wù)的體系結(jié)構(gòu)(SOA)山東大學(xué)軟件學(xué)院SSMEV4.023什么是“SOA”從字面上看,SOA=Service(服務(wù))+體系結(jié)構(gòu)(Architecture)山東大學(xué)軟件學(xué)院SSMEV4.024服務(wù)的含義從外特性上看,一個服務(wù)被定義為顯式的、獨立于服務(wù)具體實現(xiàn)技術(shù)細(xì)節(jié)的接口。從內(nèi)特性上看,服務(wù)封裝了可復(fù)用的業(yè)務(wù)功能,這些功能通常是大粒度業(yè)務(wù),如業(yè)務(wù)過程、業(yè)務(wù)活動等。服務(wù)的實現(xiàn)可采用任何技術(shù)平臺,如J2EE、.Net等。山東大學(xué)軟件學(xué)院SSMEV4.025軟件體系結(jié)構(gòu)的發(fā)展與演化系統(tǒng)(程序)=算法+數(shù)據(jù)結(jié)構(gòu)(1960’s)系統(tǒng)=子程序+子程序(1970’s)系統(tǒng)=對象+對象關(guān)聯(lián)機(jī)制(1980’s)系統(tǒng)=軟構(gòu)件+連接件(1990’s)系統(tǒng)=服務(wù)+服務(wù)連接件(2000’s)簡單復(fù)雜系統(tǒng)規(guī)模與復(fù)雜度封閉開放系統(tǒng)開放度細(xì)粗構(gòu)件粒度構(gòu)件連接件關(guān)注層面IT技術(shù)商務(wù)過程封閉開發(fā)個人企業(yè)內(nèi)企業(yè)間全球為什么要引入SOA?Gartner首次提出SOA?早在1996年,Gartner就首次提出了SOA(Service- OrientedArchitecture,即面向服務(wù)的架構(gòu))的概念, 并預(yù)言SOA將成為下一代軟件的革命性技術(shù)?但因為當(dāng)時缺乏實現(xiàn)SOA的技術(shù)基礎(chǔ),SOA并沒有立即引起企業(yè)用戶和IT公司的重視?直到后來XML、SOAP、WSDL、UDDI等Web服務(wù)標(biāo)準(zhǔn) 逐漸成熟,SOA才真正成長為可部署的技術(shù)、產(chǎn)品和下一 代應(yīng)用系統(tǒng)的方法論,開始被業(yè)界廣泛接受,進(jìn)入了部署 期。Gartner研究報告"ServiceOriented"Architectures,Part112April1996W.RoySchulteYefimV.Natis?大多數(shù)業(yè)務(wù)信息都存儲在集中式的數(shù)據(jù)庫中,在需 要時,向個人用戶一次提供一個頁面。糟糕的是, 這種頁面只是一種數(shù)據(jù)的?圖畫?,而不是數(shù)據(jù) 本身,迫使開發(fā)人員去?屏幕刮取?所需的信息。?今天這種孤立的應(yīng)用和Web網(wǎng)站創(chuàng)建的是功能和數(shù)據(jù)的孤島。?解決這些問題是對下一代Internet的關(guān)鍵性挑戰(zhàn)?解決方案的核心是可擴(kuò)展的標(biāo)注語言(eXtensible MarkupLanguage,orXML.)在以XML為基礎(chǔ) 的技術(shù)(如SOAP、UDDI等)的幫助下創(chuàng)建一類 新的軟件。比爾·蓋茨:Microsoft.NETTodayJune14,2001比爾·蓋茨:明日工作新世界2005年《計算機(jī)世界日報》?由于XML和豐富Webservices的出現(xiàn),企業(yè)能夠 日益與合作伙伴無縫分享信息和過程,并建立一 些雖然跨越多個機(jī)構(gòu)但作為一個統(tǒng)一整體工作的 供應(yīng)鏈。?我們將通過下一代生產(chǎn)力平臺實現(xiàn)這個目標(biāo),這 個平臺將建立于當(dāng)今微軟Office程序和服務(wù)系統(tǒng) 的扎實基礎(chǔ)上。我們將使人們能夠創(chuàng)建更有效的 專業(yè)文件,能夠從任何地點獲取工作信息,能夠 更好地管理個人、團(tuán)隊和項目任務(wù)。?基于XMLWebservices標(biāo)準(zhǔn)的.NET開發(fā)平臺可 以實現(xiàn)個人之間,個人與企業(yè)之間,和企業(yè)之間 的信息互連,這樣就實現(xiàn)人們可以隨時隨地存取 和使用信息的夢想。各軟件公司紛紛提出對策?Microsoft:微軟宣布推出Windows.NETServerRC1,預(yù)見下一代平臺技術(shù)浪潮?Sun:面向服務(wù)的體系結(jié)構(gòu)因其固有的松散耦合 與互操作性,成為許多企業(yè)應(yīng)用的自然選擇。使 用J2EE提供的Web服務(wù)功能可以很容易地構(gòu) 建能夠訪問現(xiàn)有業(yè)務(wù)流程的SOA系統(tǒng)?IBM:2001年開始,將動態(tài)電子商務(wù)(Dynamice-Business)的理念轉(zhuǎn)向WebServices?Oracle:應(yīng)用程序網(wǎng)格計算的特征和優(yōu)點恰恰是面向服務(wù)體系結(jié)構(gòu)(SOA)的特征和優(yōu)點IT理念殊途同歸?Veritas強(qiáng)調(diào),在?效用計算?模式下,可用性將使數(shù)據(jù) 和應(yīng)用?永遠(yuǎn)在線?,從而確保最終用戶隨時都可以獲得 服務(wù);?BEA指出?流體計算?能幫助企業(yè)將IT響應(yīng)時間從幾個 月縮短為幾分鐘,其最終目標(biāo)是使實時的業(yè)務(wù)目標(biāo)與企業(yè) 的每一步變化緊密結(jié)合在一起;?Microsoft比爾蓋茨表示,在?無縫計算?的世界里,人 們可以實現(xiàn)在任何時候、任何地點、任何設(shè)備得到任何想 要的信息。?IT廠商理念雖然層出不窮,隨需應(yīng)變、效用計算、流體計 算、無縫計算、實時企業(yè)、動成長企業(yè)等等理念看似復(fù)雜 、毫不相干,但是他們骨子里卻都透著面向服務(wù)、整合資 源、按需分配、敏捷響應(yīng)共性。?面向服務(wù)架構(gòu)(SOA)是實現(xiàn)上述理念的技術(shù)基礎(chǔ)。山東大學(xué)軟件學(xué)院SSMEV4.032(1)Internet環(huán)境下的企業(yè)交互現(xiàn)代企業(yè)已經(jīng)不再是封閉的企業(yè),市場分工的日益專業(yè)化使得企業(yè)之間可能存在大量頻繁的交互行為,以發(fā)揮各自的競爭優(yōu)勢:供應(yīng)鏈:供應(yīng)商-制造商;客戶關(guān)系管理:制造商-物流商-客戶這種業(yè)務(wù)上的交互體現(xiàn)為企業(yè)業(yè)務(wù)流程的交互/互操作,同時一定需要企業(yè)信息系統(tǒng)的支持,因此體現(xiàn)為軟件系統(tǒng)之間的集成與互操作。互操作(Interoperability):能夠在異構(gòu)的、分布式的系統(tǒng)之間交換和使用信息的能力;不僅是不同企業(yè)之間,甚至一個企業(yè)內(nèi)部的各個部門之間都有可能存在大量的交互。山東大學(xué)軟件學(xué)院SSMEV4.033企業(yè)價值鏈:多方協(xié)調(diào)與集成山東大學(xué)軟件學(xué)院SSMEV4.034案例:主機(jī)廠——供應(yīng)商的業(yè)務(wù)集成主機(jī)廠供應(yīng)商SBMSBMSNAPSNAP采購計劃內(nèi)爆優(yōu)化反饋供貨計劃可供貨計劃內(nèi)爆優(yōu)化剩余能力信息反饋信息合并采購計劃合并后采購計劃根據(jù)配額分解新采購計劃新采購計劃確認(rèn)采購計劃確定采購/供貨計劃ERP供貨確認(rèn)?外爆優(yōu)化根據(jù)配額分解采購計劃物料需求待確認(rèn)采購計劃BOM/庫存ERP計劃分析?修改配額?NYNYYNBOM/庫存/訂單供應(yīng)商及其配額調(diào)整配額訂單/采購計劃發(fā)布剩余能力信息已確認(rèn)采購計劃山東大學(xué)軟件學(xué)院SSMEV4.035(2)異構(gòu)系統(tǒng)的集成與互操作不同企業(yè)所應(yīng)用的軟件系統(tǒng)是不同的(異構(gòu)的):技術(shù)平臺不同:J2EE-based、.Net-based軟件體系結(jié)構(gòu)不同:message-based、file-based、process-based數(shù)據(jù)格式不同:同樣的“訂單”對象,不同的屬性集合…集成這些分布式的軟件系統(tǒng),在它們之間傳遞數(shù)據(jù)和消息,是一件非常困難的事情EJBCORBACOMCORBA山東大學(xué)軟件學(xué)院SSMEV4.036案例:異構(gòu)系統(tǒng)的集成山東大學(xué)軟件學(xué)院SSMEV4.037(3)頻繁變化的互操作與集成需求企業(yè)的業(yè)務(wù)是頻繁變化的;企業(yè)間的協(xié)同關(guān)系也不是固定的,隨著業(yè)務(wù)流程的變化而隨之變化;企業(yè)的IT應(yīng)用系統(tǒng)要能快速支持這種變化的需求山東大學(xué)軟件學(xué)院SSMEV4.038示例:靈活可變的企業(yè)流程Change:CustomerOrderEntryChange:SharedService–Marketing,Billing,Receivables山東大學(xué)軟件學(xué)院SSMEV4.039Change:SupplierHandlesInventory(VMI)Change:ShippingbyFedEx,DHLorUPS山東大學(xué)軟件學(xué)院SSMEV4.040歸納:SOA所要解決的問題分布式企業(yè)間業(yè)務(wù)的協(xié)同。通過Internet連接在一起的異構(gòu)企業(yè)應(yīng)用軟件系統(tǒng)的集成、交互與互操作。當(dāng)業(yè)務(wù)(Business)發(fā)生變化時,IT系統(tǒng)能夠快速響應(yīng)。??

敏捷業(yè)務(wù)–SOA的首要目的;SOA–敏捷業(yè)務(wù)的實現(xiàn)之道(水平整合、靈活應(yīng)變的業(yè)務(wù)流程;可重用、可組裝的IT資產(chǎn))做什么怎么做敏捷業(yè)務(wù) 可 重 用

IT

資 產(chǎn)

WS-Trustv1.3WS-SecurityV1.1SOAP V1.019992000SOAP V1.1200120022003200420052006200720082009

WS-PolicyV1.0

WS-PolicyAttachmentV1.0 WS-PolicyAssertionsV1.0

WS-Addressing V1.0 UDDIV1.0WSRMV1.0WSDLV1.1

UDDIV2.0WS-SecurityConversationV1.0 WS-SecurityPolicyV1.0 WS-TrustV1.0Web服務(wù)產(chǎn)生及發(fā)展

WS-ResourcePropertiesv1.2

WS-BaseNotificationv1.3

WS-Brokered Notificationv1.3 WS-Topicsv1.3WS-Reliability V1.1WS-CoordinationV1.2WS-BusinessActivityV1.2WS-AtomicTransactionv1.2

SOAPV1.2 WS-BPELV2.0WS-Transaction v1.1

WS-ResourceLifetimev1.2 WS-ServiceGroupv1.2 WS-BaseFaultsv1.2 WS-Resourcev1.2WS-RMV1.1WSDLV2.0WS-TransactionsWS-TrustV1.4

V1.0WS-SecurityPolicyV1.3

WSDM

PolicyV1.2BPEL4WSV1.1 WS-Security V1.0

SCAV1.0 SDOV2.0WS-Seurity V1.1SOA的典型特征與優(yōu)勢山東大學(xué)軟件學(xué)院SSMEV4.044(1)分布式異構(gòu)系統(tǒng)的集成與互操作*.java*.java*.java*.java函數(shù)調(diào)用(局域網(wǎng))?(本機(jī))山東大學(xué)軟件學(xué)院SSMEV4.045(1)分布式異構(gòu)系統(tǒng)的集成與互操作*.java*.java遠(yuǎn)程方法調(diào)用RMI/RPC.NetRemotingEJBCORBA*.java*.c?(局域網(wǎng))山東大學(xué)軟件學(xué)院SSMEV4.046(1)分布式異構(gòu)系統(tǒng)的集成與互操作*.java*.cCORBA*.java*.cor*.java?(局域網(wǎng))Internet山東大學(xué)軟件學(xué)院SSMEV4.047(1)分布式異構(gòu)系統(tǒng)的集成與互操作*.java*.cor*.javaSOAInternet雖然目前已經(jīng)存在成熟的遠(yuǎn)程方法調(diào)用機(jī)制以實現(xiàn)異構(gòu)系統(tǒng)的集成與互操作,但在Internet這樣的分布式環(huán)境下,SOA才能實現(xiàn)這一目標(biāo)山東大學(xué)軟件學(xué)院SSMEV4.048(2)緊密耦合與松散耦合傳統(tǒng)軟件體系結(jié)構(gòu)中的構(gòu)件,通常都是緊密耦合通過函數(shù)調(diào)用的方式實現(xiàn)互操作;客戶端需要了解被調(diào)用構(gòu)件的位置和技術(shù)細(xì)節(jié);缺陷:構(gòu)件的維護(hù)和重復(fù)使用變得非常困難,因為一個構(gòu)件中的修改就自動意味著其他構(gòu)件中的修改。SOA則實現(xiàn)了完全的松散耦合:位置透明與具體的實現(xiàn)細(xì)節(jié)無關(guān)(通過接口調(diào)用)標(biāo)準(zhǔn)化的通訊協(xié)議(XML-based)具體實現(xiàn)機(jī)制:服務(wù)接口作為與服務(wù)實現(xiàn)分離的實體而存在,從而服務(wù)實現(xiàn)能夠在完全不影響服務(wù)使用者的情況下進(jìn)行修改山東大學(xué)軟件學(xué)院SSMEV4.049(3)大數(shù)據(jù)量低頻率訪問對于.NET、EJB或者RPC這些傳統(tǒng)的分布式計算模型而言,它們的服務(wù)提供都是通過函數(shù)調(diào)用的方式進(jìn)行的,一個功能的完成往往需要通過客戶端和服務(wù)器來回很多次函數(shù)調(diào)用才能完成。在局域網(wǎng)的環(huán)境下,這些調(diào)用給系統(tǒng)的響應(yīng)速度和穩(wěn)定性帶來的影響都可以忽略不計,但是在Internet環(huán)境下這些因素往往是決定整個系統(tǒng)是否能正常工作的一個關(guān)鍵決定因素。SOA采用大數(shù)據(jù)量的方式一次性進(jìn)行數(shù)據(jù)交換。山東大學(xué)軟件學(xué)院SSMEV4.050(4)基于文本的消息傳遞在COM、CORBA這些傳統(tǒng)的組件模型中,從服務(wù)器端傳往客戶端的是一個二進(jìn)制編碼的對象,在客戶端通過調(diào)用這個對象的方法來完成某些功能。在Internet環(huán)境下,不同語言,不同平臺對數(shù)據(jù)、甚至是一些基本數(shù)據(jù)類型定義不同,給不同的服務(wù)之間傳遞對象帶來的很大困難。由于基于文本的消息本身不包含任何處理邏輯和數(shù)據(jù)類型,因此服務(wù)間只傳遞文本,雙方不存在兼容性問題。山東大學(xué)軟件學(xué)院SSMEV4.051(5)上下文相關(guān)與上下文無關(guān)傳統(tǒng)的軟件體系結(jié)構(gòu),在設(shè)計階段就要考慮各構(gòu)件之間如何進(jìn)行交互,也就是說,一個構(gòu)件的設(shè)計模型可能依賴于其他構(gòu)件的設(shè)計模型,即“上下文相關(guān)”。在SOA中,在設(shè)計階段,服務(wù)不需要了解它們將來可能被復(fù)用的環(huán)境,即獨立于服務(wù)使用者的上下文。山東大學(xué)軟件學(xué)院SSMEV4.052(6)小粒度復(fù)用與大粒度復(fù)用傳統(tǒng)的軟件體系結(jié)構(gòu)中,被復(fù)用的軟件體通常都是小粒度的,如函數(shù)、對象、構(gòu)件等。在企業(yè)級應(yīng)用環(huán)境下,這種小粒度軟件體的復(fù)用效率過低。SOA中的服務(wù)是大粒度復(fù)用體,它更多的關(guān)注諸如業(yè)務(wù)過程/業(yè)務(wù)活動級別的復(fù)用,復(fù)用效率更高。另外,采用粗粒度服務(wù)接口的優(yōu)點在于使用者和服務(wù)層之間不必再進(jìn)行多次的信息交換。山東大學(xué)軟件學(xué)院SSMEV4.053SOA的本質(zhì)特征將“服務(wù)”(自治的、平臺獨立的計算實體,可被描述、發(fā)布、發(fā)現(xiàn)、動態(tài)組裝)作為基本的構(gòu)造單元;任何應(yīng)用均可看作是一組協(xié)同運(yùn)作的服務(wù);從而,以快速的、低成本的、容易組合的方式去創(chuàng)建高度分布式的、協(xié)同的、動態(tài)變化的、跨越組織與計算平臺邊界的服務(wù)系統(tǒng)。山東大學(xué)軟件學(xué)院SSMEV4.054SOA的革命性創(chuàng)造不再是構(gòu)造新的應(yīng)用或調(diào)用已有的應(yīng)用來完成特定的業(yè)務(wù),而是通過在網(wǎng)絡(luò)上發(fā)現(xiàn)并調(diào)用可用的服務(wù)來組合成一個系統(tǒng),且服務(wù)的提供者與服務(wù)的使用者是“松散耦合”的。這種觀點體現(xiàn)了軟件開發(fā)方式的一種根本性的變化,可使業(yè)務(wù)環(huán)境變得更加靈活和強(qiáng)大:以服務(wù)的形式提供獨立的、可復(fù)用的、自動化的業(yè)務(wù)過程和功能;通過快速組合與松散耦合來改善效率與生產(chǎn)率;借助于開放的、強(qiáng)壯的、安全的基礎(chǔ)平臺,使企業(yè)能夠快速向市場提供新的服務(wù)、快速的適應(yīng)環(huán)境的變化。山東大學(xué)軟件學(xué)院SSMEV4.055只要滿足了這些條件之一,就可以應(yīng)用SOA協(xié)同分布式環(huán)境異構(gòu)交互可能頻繁變化SOA的體系結(jié)構(gòu)模式山東大學(xué)軟件學(xué)院SSMEV4.057SOA的體系結(jié)構(gòu)模式應(yīng)用SOA來構(gòu)造業(yè)務(wù)系統(tǒng),既可以通過簡單的WebService調(diào)用,也可以通過復(fù)雜的企業(yè)服務(wù)總線(ESB)將異構(gòu)系統(tǒng)集成為業(yè)務(wù)過程。按照SOA應(yīng)用場景的復(fù)雜度,將其體系結(jié)構(gòu)模式分為10種:硬連線(Hard-wired)點對點的服務(wù)發(fā)布與調(diào)用(P2P)服務(wù)適配器(Serviceadaptor)服務(wù)代理(Serviceproxy)遠(yuǎn)程服務(wù)策略(Remoteservicestrategy)單點訪問(Singlepointofaccess)虛擬服務(wù)提供者(Virtualprovider)服務(wù)集成器(Serviceintegrator)企業(yè)服務(wù)總線(Enterpriseservicebus)集成化的服務(wù)生態(tài)系統(tǒng)(Integratedserviceecosystem)1).“發(fā)布-查詢-綁定”模式點對點的服務(wù)發(fā)布與調(diào)用(P2P)山東大學(xué)軟件學(xué)院SSMEV4.059基本模式:發(fā)布-訪問服務(wù)提供者服務(wù)注冊中心服務(wù)客戶端(1)注冊(2)發(fā)現(xiàn)(3)綁定山東大學(xué)軟件學(xué)院SSMEV4.060該模式中的操作發(fā)布(Publish):為了使服務(wù)可訪問,需要發(fā)布服務(wù)描述以使服務(wù)使用者可以發(fā)現(xiàn)它。發(fā)現(xiàn)(Find):服務(wù)請求者定位服務(wù),方法是查詢服務(wù)注冊中心來找到滿足其標(biāo)準(zhǔn)的服務(wù)。綁定(Bind)和調(diào)用(invoke):在檢索到服務(wù)描述之后,服務(wù)使用者繼續(xù)根據(jù)服務(wù)描述中的信息來調(diào)用服務(wù)山東大學(xué)軟件學(xué)院SSMEV4.061該模式實現(xiàn)機(jī)制:WebServiceWebService提供者WebService注冊中心WebService客戶端(1)WSDL(2)UDDI(3)SOAP2).服務(wù)適配器模式Serviceadaptor或ServiceWrapper山東大學(xué)軟件學(xué)院SSMEV4.063服務(wù)適配器企業(yè)中存在若干遺留系統(tǒng)(legacysystem);這些系統(tǒng)采用較傳統(tǒng)的技術(shù)開發(fā),無法提供清晰的接口(interface);但其他系統(tǒng)仍然需要訪問這些遺留系統(tǒng)的功能;——怎么辦?通過構(gòu)造適配器(adaptor),將遺留系統(tǒng)中的功能進(jìn)行二次包裝,從而開放出接口供其他系統(tǒng)使用。典型技術(shù):Java2ConnectorWebSphereBusinessIntegrationAdaptor山東大學(xué)軟件學(xué)院SSMEV4.064服務(wù)適配器3).遠(yuǎn)程服務(wù)策略

(Remoteservicestrategy)山東大學(xué)軟件學(xué)院SSMEV4.066以上幾種SOA模式的缺陷客戶端為了使用服務(wù),必須在自己的程序中寫入調(diào)用服務(wù)的代碼,即通過服務(wù)的URI地址來訪問服務(wù)。這導(dǎo)致客戶端與服務(wù)之間的耦合度過大,系統(tǒng)的靈活性受到限制。例如,客戶端需要在多個候選服務(wù)之間進(jìn)行靈活替換,以獲得更好的QoS?!趺崔k?將這種綁定關(guān)系從代碼中抽取出來。山東大學(xué)軟件學(xué)院SSMEV4.067遠(yuǎn)程服務(wù)策略①客戶端直接綁定服務(wù)接口(WSDL/URI);②客戶端通過“serviceregistry”來訪問服務(wù),當(dāng)希望訪問其他服務(wù)時,只要手工修改該registry即可——相當(dāng)于一個配置文件;③客戶端通過“servicebroker”來動態(tài)決定需訪問那個服務(wù);——完全動態(tài)的服務(wù)選擇,很困難,需要用到服務(wù)語義的相關(guān)技術(shù)。4).服務(wù)集成器

(ServiceIntegrator)山東大學(xué)軟件學(xué)院SSMEV4.069以上模式存在的問題如果客戶端需要同時或連續(xù)調(diào)用多個服務(wù)的功能,它必須在自己的系統(tǒng)中分別寫出多個調(diào)用;——非常麻煩;而且,對多個服務(wù)的調(diào)用次序也是容易發(fā)生變化的,需要頻繁的修改;——難以做到;——怎么辦?降低耦合度將remoteservicestrategy的思想進(jìn)一步發(fā)揮,客戶端不去逐一調(diào)用服務(wù),而是首先將這些被調(diào)用的服務(wù)按邏輯關(guān)系集成起來,形成一個集成的、大粒度的服務(wù);客戶端只需調(diào)用這一個服務(wù)即可;當(dāng)該服務(wù)執(zhí)行時,集成器(integrator)依靠配置信息來分別調(diào)用一個個小粒度的服務(wù);對這些配置信息進(jìn)行修改,即可方便的做到變更。山東大學(xué)軟件學(xué)院SSMEV4.070服務(wù)集成器(ServiceIntegrator)山東大學(xué)軟件學(xué)院SSMEV4.071服務(wù)集成器(ServiceIntegrator)OperationalSystemsService-OrientedBusinessProcessComponent-basedPresentationQoS,Security,Management&Monitoring(InfrastructureService)IntegrationArchitecture(EnterpriseServiceBus)Object-orientedCICS/COBOLCRM,ERPBusinessIntelligenceProcessChoreographyCompositeServicesPortlets5432167EnterpriseComponents5).企業(yè)服務(wù)總線ESB

(EnterpriseServiceBus)山東大學(xué)軟件學(xué)院SSMEV4.073問題SOA的重要目標(biāo)就是要在分布式環(huán)境下實現(xiàn)多組織之間業(yè)務(wù)的交互與協(xié)同;因此獨立存在的服務(wù)是沒有意義的;即使采用上面的serviceintegrator,一個組織中存在的和使用的服務(wù)數(shù)量仍然是巨大的,它們之間的關(guān)系也很復(fù)雜。必須提供一種手段,能夠?qū)⒍喾教峁┑姆?wù)集成在一起,并試圖構(gòu)造一種通用的服務(wù)基礎(chǔ)設(shè)施來來管理它們。山東大學(xué)軟件學(xué)院SSMEV4.074服務(wù)編排模式:總線服務(wù)客戶端1服務(wù)客戶端2服務(wù)客戶端n服務(wù)提供者1服務(wù)提供者2服務(wù)提供者n總線山東大學(xué)軟件學(xué)院SSMEV4.075企業(yè)服務(wù)總線(ESB)企業(yè)服務(wù)總線(EnterpriseServiceBus)是一個整合應(yīng)用和服務(wù)的靈活的連接基礎(chǔ)組織,支持實現(xiàn)多個服務(wù)的編排。山東大學(xué)軟件學(xué)院SSMEV4.076企業(yè)服務(wù)總線(ESB)形狀

=協(xié)議顏色

=數(shù)據(jù)類型ESB在請求者和服務(wù)之間實現(xiàn)了:轉(zhuǎn)化請求者和服務(wù)之間的傳輸協(xié)議處理分離資源間的業(yè)務(wù)事件轉(zhuǎn)換請求者和服務(wù)之間的消息格式路由服務(wù)間的消息山東大學(xué)軟件學(xué)院SSMEV4.077ESB體系結(jié)構(gòu)ESB網(wǎng)關(guān)Internet外部服務(wù)請求者外部服務(wù)提供者CAD服務(wù)PDMERP服務(wù)服務(wù)路由、中介、轉(zhuǎn)換、日志等企業(yè)服務(wù)總線ESBHub適配器適配器適配器ESB命名空間ESB管理類服務(wù)適配器服務(wù)目錄服務(wù)編排山東大學(xué)軟件學(xué)院SSMEV4.078ESB體系結(jié)構(gòu)ReliableAsynchronousSecureMessagingERP.NETWebServicesSOAP/HTTPSOAP/HTTPSOAP/HTTPJMSJCATransformation(XSLT)ConnectionLayerConnectionLayerCommunicationLayerC/C++LegacyApplicationJ2EE山東大學(xué)軟件學(xué)院SSMEV4.079ESB對異構(gòu)服務(wù)的集成山東大學(xué)軟件學(xué)院SSMEV4.080(對比)傳統(tǒng)的EAI方式:P2P的集成山東大學(xué)軟件學(xué)院SSMEV4.081(對比)基于ESB的集成方式:Hub/Bus山東大學(xué)軟件學(xué)院SSMEV4.082兩種集成方式的對比:P2PvsESB3.WebService山東大學(xué)軟件學(xué)院SSMEV4.084“對象”技術(shù)的演化TighterLooserCouplingGranularityScopeXML/HTTPMOMORBB2BMarket,

GlobalEnterpriseEcosystemsHomogeneous

ApplicationProgram典型的訪問方法:WebServicesServicesComponentsObjects山東大學(xué)軟件學(xué)院SSMEV4.085Web服務(wù)中的相關(guān)協(xié)議WSDL:Web服務(wù)描述語言用于服務(wù)接口的描述——Whatcantheservicedo?UDDI:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議服務(wù)使用者通過UDDI發(fā)現(xiàn)相應(yīng)的服務(wù)并據(jù)此將服務(wù)集成在自身的系統(tǒng)中——Whatkindofservicesareneeded?SOAP:簡單對象訪問協(xié)議用戶在服務(wù)客戶端與服務(wù)提供者之間傳遞信息通過HTTP或JMS等各類基于文本的消息傳遞協(xié)議來運(yùn)輸山東大學(xué)軟件學(xué)院SSMEV4.086WebServiceStandardsWSDL(WebServiceDescriptionLanguage)

anXML-basedlanguagefordescribingnetworkservicesWSDLdescriptionsofcapabilitiesandlocationsofserviceslikeaninterfacedescriptionlanguageforWebservicescommunicationusingSOAPordirectHTTPUDDI(UniversalDescription,Discovery,andIntegration)

providesaregistrymechanismforclientsandserverstofindeachotherusesSOAPforcommunicationSOAP(usedtobeSimpleObjectAccessProtocol)

aframeworkforexchangingXML-basedinformationinanetworkSource:山東大學(xué)軟件學(xué)院SSMEV4.087Service的剖析ServiceConsumerInterfaceProxyServiceInterfaceServiceImplementationNewServiceWrappedLegacyCompositeService山東大學(xué)軟件學(xué)院SSMEV4.088Service

ConsumersService

ProducersService通信通過接口,采用位置透明的、可互操作的協(xié)議進(jìn)行調(diào)用,與客戶端以“松散耦合”(looselycoupling)的方式綁定在一起。SOA中所有協(xié)議均是基于XML的文本文件山東大學(xué)軟件學(xué)院SSMEV4.089服務(wù)描述Servicesaredescribedusingastandardizedinterface(metadata)Definestheservice,itsoperations,andinputandoutputparametersDefineshowtheserviceisreachedanditslocationInputandoutputsmaybesimpleparametersorXMLdocumentsAnexistingapplicationcanbegivenaservice‘fa?ade’Thefa?ade(門面)(e.g.anEJB)isthendescribedastheserviceWebServicesDescriptionLanguage(WSDL)isthestandardusedtodescribetheservice山東大學(xué)軟件學(xué)院SSMEV4.090服務(wù)描述:WSDLWSDL(WebServicesDescriptionLanguage)isanXMLdocumentthatdescribesaService

usinganumberofkeyelements:APortTypedefineswhattheservicedoes,andisdescribedbyanumberofoperations.ForeachoperationthedatathatitreceivesandsendsisdescribedbyaMessageTheBinding

defineshowtheservice(asdescribedbythePort

Type)isinvokede.g.SOAP/HTTP,SOAP/JMS.ThePortspecifiestheaddresswheretheserviceislocated/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo/WebServices/MobileCodeWS.asmx?WSDL山東大學(xué)軟件學(xué)院SSMEV4.091服務(wù)發(fā)布與訪問UDDIWSDLWebService(J2EE,PL/SQL,

.NET,C/C++,

Legacy…)WebServiceClient(J2EE,.NET,

PL/SQL…)PointstodescriptionDescribesServiceFindsServiceInvokeswithXMLMessagesSOAPUDDI

RegistryPointstoservice4.服務(wù)組合

(ServiceComposition)山東大學(xué)軟件學(xué)院SSMEV4.093主要內(nèi)容服務(wù)組合(ServiceComposition)服務(wù)編排(ServiceOrchestration)服務(wù)協(xié)同(ServiceChoreography)編排vs協(xié)同服務(wù)組合方法山東大學(xué)軟件學(xué)院SSMEV4.094SOA的哲理:集成集成(Integration)盡可能的集成(Integrationasfaraspossible)盡可能靈活的集成(Integrationasflexiblyaspossible)將小粒度服務(wù)集成為大粒度服務(wù)(composefine-grainedservicesintocoarse-grainedservice)將硬編碼的集成變?yōu)閯討B(tài)可配置的集成(transformhard-codedintegrationintodynamicallyreconfigurableintegration)這是SOA的優(yōu)勢所在,也是我們追求的目標(biāo)所在山東大學(xué)軟件學(xué)院SSMEV4.095服務(wù)組合(servicecomposition)獨立存在的服務(wù)具有較低的價值,只有多方提供的多個服務(wù)集成在一起,通過協(xié)同來完成共同的業(yè)務(wù)目標(biāo),服務(wù)和SOA才能體現(xiàn)出其優(yōu)勢。單個Web服務(wù)的功能或/和性能有限,難以滿足一些業(yè)務(wù)應(yīng)用的需求,從而需要解決服務(wù)組合問題。服務(wù)組合(ServiceComposition)是將已有服務(wù)組合為一個新服務(wù)的過程,以增加服務(wù)的可復(fù)用性、功能和性能。山東大學(xué)軟件學(xué)院SSMEV4.096案例:“開設(shè)銀行賬戶”山東大學(xué)軟件學(xué)院SSMEV4.097服務(wù)組合的兩大概念SOA中提出了兩個概念:orchestration和choreography前者定義了如何將小粒度的服務(wù)按照特定的流程聚合為大粒度的服務(wù);后者則定義了如何在多方的業(yè)務(wù)流程之間通過服務(wù)實現(xiàn)協(xié)同的動作編排。二者的本質(zhì)上都是用來規(guī)劃服務(wù)之間的協(xié)同。ServiceOrchestration

服務(wù)編排山東大學(xué)軟件學(xué)院SSMEV4.099OrchestrationOrchestration的本意是“為管弦樂譜曲”:使用五線譜所提供的基本音符,構(gòu)造一首完整的樂曲。山東大學(xué)軟件學(xué)院SSMEV4.0100SOA中的Orchestration:服務(wù)編排/服務(wù)組合Orchestration:將多個小粒度的Web服務(wù)按照特定的業(yè)務(wù)邏輯規(guī)則構(gòu)造為一個可執(zhí)行的業(yè)務(wù)過程,同時又可以看作是一個大粒度的復(fù)合Web服務(wù)。執(zhí)行時需要有中心控制機(jī)制;由一個組織所擁有;側(cè)重點:如何使用已有的服務(wù)來構(gòu)造新的服務(wù)。Composition≈Orchestration山東大學(xué)軟件學(xué)院SSMEV4.0101SOA中的Orchestration:服務(wù)編排/服務(wù)組合山東大學(xué)軟件學(xué)院SSMEV4.0102服務(wù)編排/組合的一個例子SubmitOrderCheckInventoryCheckCreditSend

Resultto

UserPortalSAPJavaWebAppMainframeFormulate

Fulfillment

OfferFormulateRejectionCan

Fulfill?TransformOrder/

CustomerDetermineDiscount山東大學(xué)軟件學(xué)院SSMEV4.0103示例:“訂單管理”的服務(wù)流程山東大學(xué)軟件學(xué)院SSMEV4.0104服務(wù)編排的描述方法:BPEL(4WS)針對orchestration,出現(xiàn)了大量的服務(wù)協(xié)同建模標(biāo)準(zhǔn),最典型的莫過于BPEL和BPEL4WS,在實踐中得到了廣泛的應(yīng)用。BPEL:BusinessProcessExecutionLanguageBPEL4WS:BPELforWebServices面向Web服務(wù)的過程建模語言;由IBM、Microsoft和BEA共同提出;BPEL能夠?qū)崿F(xiàn)基于WSDL的WebServices之間的流程編排和服務(wù)協(xié)同,它提供了一種XML注釋和語義,用于指定對WebServices進(jìn)行編排并確定Web服務(wù)之間的業(yè)務(wù)流程,實現(xiàn)WebServices之間的協(xié)同。山東大學(xué)軟件學(xué)院SSMEV4.0105BPEL的基本結(jié)構(gòu)過程中的基本功能單元:活動<activity>活動之間的次序關(guān)系:先后次序<sequence>多分支<switch>循環(huán)<while>并發(fā)與同步<flow>非確定性選擇<pick>過程的相關(guān)數(shù)據(jù):容器<container>錯誤處理機(jī)制:<catching>、<handlingfaults>補(bǔ)償機(jī)制:<compensationhandler>山東大學(xué)軟件學(xué)院SSMEV4.0106BPEL的一個例子Determineif

CanFulfill10:00amHandleNegativeCreditExceptionDiscountServicestartendBPELFlow?CreditServiceInventory

ServiceGetDiscountSendCreditApplicationReceiveCreditResult03:00pmSendInventoryRequestReceiveInventoryResult<process></process><switch><variable><partnerLink><partnerLink><partnerLink><faultHandlers><receive><invoke><invoke><flow></flow>山東大學(xué)軟件學(xué)院SSMEV4.0107BPEL的一個例子山東大學(xué)軟件學(xué)院SSMEV4.0108BPEL運(yùn)行時框架Enterprise-strengthinfrastructurefordesigning,deployingandmanagingBPELbusinessprocessesJ2EEApplicationServer(OracleAS10g)BPELConsoleMANAGEDEHYDRATECoreBPELEngineWSDLBindingBuilt-inIntegrationServices

JCAWebServiceJMSEmailXQueryXSLTUserTasksBPELJDeveloperBPELDesignerDESIGNOracleDBBPELServerBPELJComprehensiveBPEL1.1supportEasy-to-installanddeployFlexibleWSIF-basedbindingframeworkEasy-to-usemodelingtoolScalability,Fail-overOperation-friendlydeploymentunitUnparalleledmanagement山東大學(xué)軟件學(xué)院SSMEV4.0109服務(wù)編排的運(yùn)行模式(1):集中式的執(zhí)行引擎CentralizedServiceOrchestration山東大學(xué)軟件學(xué)院SSMEV4.0110服務(wù)編排的執(zhí)行過程需要有一個中心控制引擎,負(fù)責(zé)調(diào)用各個離散的服務(wù)山東大學(xué)軟件學(xué)院SSMEV4.0111服務(wù)編排的運(yùn)行模式(2):基于Hub的分布式引擎Decentralizedserviceorchestrationwithhubsupport山東大學(xué)軟件學(xué)院SSMEV4.0112服務(wù)編排的運(yùn)行模式(3):無Hub的分布式引擎Decentralizedorchestrationwithouthub山東大學(xué)軟件學(xué)院SSMEV4.0113三種模式的對比分析ServiceChoreography

服務(wù)協(xié)同山東大學(xué)軟件學(xué)院SSMEV4.0115Choreography“編舞”:一支舞蹈需要由多個演員來協(xié)同完成,編舞者需要將各人的動作編排在一起,形成為一套完整的舞蹈?!敖豁憳肪幣拧保阂恢Ы豁憳非枰麄€樂隊各樂手之間的配合才能演奏成功,樂團(tuán)指揮就是起到在不同樂手之間的協(xié)調(diào)功能。山東大學(xué)軟件學(xué)院SSMEV4.0116SOA中的Choreography:服務(wù)編舞/服務(wù)協(xié)同Choreography:將多個零散的、分別由多方提供的服務(wù)/業(yè)務(wù)流程按照彼此之間的協(xié)同關(guān)系組織起來,支持多方的交互行為。側(cè)重于不同服務(wù)之間的消息傳遞的次序與規(guī)則,以保證期望的協(xié)同行為。無需中心控制;無需完全由一個組織所擁有;Collaboration≈Choreography山東大學(xué)軟件學(xué)院SSMEV4.0117SOA中的Choreography:服務(wù)編舞/服務(wù)協(xié)同山東大學(xué)軟件學(xué)院SSMEV4.0118服務(wù)協(xié)同的例子(1):企業(yè)采購山東大學(xué)軟件學(xué)院SSMEV4.0119服務(wù)協(xié)同的例子(2):航空訂票PlanTripSubmittoTravelAgentReceiveTicketsSelectAirlineOrderTicketsSendTicketsGetItineraryGetOrderReceiveConfirmationReserveSeatsConfirmFlightSendConfirmationTravelerAgentAirlineChargeCreditCard山東大學(xué)軟件學(xué)院SSMEV4.0120服務(wù)協(xié)同模式的分類鏈?zhǔn)絽f(xié)同模式(Chained)chainedsubstitutive(CS)chainedadditive(CA)同步協(xié)同模式(Synchronized)parallelsynchronized(PS)嵌套協(xié)同模式(Nested)nestedsynchronous(NS)nesteddeferred(ND)nestedparallel(NP)山東大學(xué)軟件學(xué)院SSMEV4.0121服務(wù)協(xié)同模式的分類:復(fù)合模式山東大學(xué)軟件學(xué)院SSMEV4.0122服務(wù)協(xié)同模式的例子:采購過程山東大學(xué)軟件學(xué)院SSMEV4.0123“服務(wù)協(xié)同”的描述語言:WS-CDLWS-CDL:WebServiceChoreographyDescriptionLanguage山東大學(xué)軟件學(xué)院SSMEV4.0124WS-CDL的文檔結(jié)構(gòu)山東大學(xué)軟件學(xué)院SSMEV4.0125“服務(wù)協(xié)同”的描述語言:WS-CDLChoreographyInteractionChannelinstancesStructuredActivitiesSequenceParallelChoiceRepetitionPerformConditionalsNon-observableObservableWorkunitsPackageParticipantsRolesRelationshipsChanneltypesExceptionsFinalizers山東大學(xué)軟件學(xué)院SSMEV4.0126一個例子山東大學(xué)軟件學(xué)院SSMEV4.0127MarketMaker視角的WS-CDLsendRequestQuotereceiveQuotesendAcceptQuotechoice{

receiveQuoteHasExpired

sequence{ receiveTradeAffirmation sendTradeAffirmed }}山東大學(xué)軟件學(xué)院SSMEV4.0128MarketTaker的QuotationSystem視角的WS-CDL山東大學(xué)軟件學(xué)院SSMEV4.0129MarketTaker的TradingSystem視角的WS-CDLreceiveRequestQuotesendQuotechoice{

sequence{ receiveAcceptQuote sendQuoteAcceptConfirmed receiveTradeAffirmation sendTradeAffirmed } noAction}山東大學(xué)軟件學(xué)院SSMEV4.0130Orchestrationvs.Choreography山東大學(xué)軟件學(xué)院SSMEV4.0131Orchestrationvs.Choreography山東大學(xué)軟件學(xué)院SSMEV4.0132Orchestrationvs.Choreographyprovidedinterface...orchestrationchoreographyrequiredinterfaceAdaptation(execution)Adaptation(design)Adaptation(design)Internalservice/API山東大學(xué)軟件學(xué)院SSMEV4.0133二者在SOA的標(biāo)準(zhǔn)協(xié)議棧中的位置SOAToolsAppDevFrameworkSOAP,WSDL,UDDIWS-IBasicProfile

WebServicePolicyWebServiceTransactionsWebServiceReliableMessagingJ2EE1.4WebServiceSecurityWebServiceOrchestrationWebServiceDistributedManagementWebServiceCoordinationWebServiceChoreographyTPM,Mainframe,LegacySysApplicationsDatabasesB2BPartnersJ2EEApplicationServer(OracleAS10g)山東大學(xué)軟件學(xué)院SSMEV4.0134BPEL4WSvs.WS-CDLBPEL需要集中式的控制機(jī)制;遞歸式的服務(wù)組合;可執(zhí)行的過程建模語言;需要調(diào)用Web服務(wù);WS-CDL無需集中式的控制機(jī)制(分布在各個參與方);描述性語言,不可執(zhí)行;無需調(diào)用Web服務(wù);服務(wù)組合中的協(xié)調(diào)問題

(ServiceCoordination)山東大學(xué)軟件學(xué)院SSMEV4.0136什么是“協(xié)調(diào)”(Coordination)?多個Web服務(wù)通過orchestration或choreography組合在一起并被客戶端所調(diào)用時,它們之間存在著復(fù)雜的交互過程。每個服務(wù)不是獨立與客戶端發(fā)生交互,各服務(wù)之間需要共享若干信息,這些信息會影響到自身服務(wù)的執(zhí)行策略。執(zhí)行過程需要較長的時間;各參與方需要根據(jù)其他參與方的選擇作出自己的決策;山東大學(xué)軟件學(xué)院SSMEV4.0137什么是“協(xié)調(diào)”(Coordination)?Coordination:各參與者之間通過傳遞消息的而共享信息的過程;使用Coordination的目的:為了在多個參與者之間達(dá)成一致的結(jié)果;為了讓參與者都接收到在應(yīng)用領(lǐng)域中某些特定的消息。山東大學(xué)軟件學(xué)院SSMEV4.0138Coordination的實例(1):分布式事務(wù)處理例如在實現(xiàn)分布式事務(wù)時,就需要由事務(wù)管理器在各個資源管理器之間相互協(xié)調(diào),并且由兩階段提交協(xié)議(2PC)規(guī)定了具體的協(xié)調(diào)過程。山東大學(xué)軟件學(xué)院SSMEV4.0139Coordination的實例(2):工作流管理為了控制工作流的運(yùn)行,需要使用coordination與工作流中的各個活動打交道。山東大學(xué)軟件學(xué)院SSMEV4.0140Coordination的實例(3):TravelAgencyService山東大學(xué)軟件學(xué)院SSMEV4.0141服務(wù)協(xié)調(diào)器(Coordinator)的組成部分Activationservice:向客戶端提供一個接口,用來創(chuàng)建協(xié)調(diào)上下文實例

(coordinationinstanceorcontext);Registrationservice:向客戶端提供一個接口,允許客戶端將自己注冊到上下文環(huán)境中來;Asetofcoordinationprotocolservices:每個服務(wù)支持一種特定的協(xié)調(diào)協(xié)議。山東大學(xué)軟件學(xué)院SSMEV4.0142服務(wù)協(xié)調(diào)器(Coordinator)的工作過程publicResultCompositionService(Parameterp)

{

Resulta=ServiceA(p);

Resultb=ServiceB(p);

Resultc=ServiceC(p);

returna+b+c;

}143WebServicesStandardStackTransportlayer:HTTP,SMTP,FTP,etc.XMLmessaginglayer:SOAP,WS-Addressing,WS-Notification,WS-Eventing,WS-Enumeration,WS-MessageDelivery,WS-Reliability,WSReliableMessaging,WS-ResourcesWS-TransferServicesDescriptionLayer:WSDL,WSCL,WSCI,WS-MetadataExchange,WS-PolicyWebServicescomposition:WSFL,BPEL4WSWS-CDLWS-CAFPublishinganddiscovery:UDDI,WSIL,WS-DiscoveryWebServicesTransaction:WS-CoordinationWS-TransactionWS-AtomicTransactionWS-BusinessActivityWebServicesManagement:WSDM,WS-ManageabilitySPML,WS-ProvisioningWebService

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論