資源描述:
《面向服務(wù)的架構(gòu)(soa)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、面向服務(wù)的架構(gòu)(SOA)什么是SOA為什么要使用SOASOA工作原理構(gòu)建SOASOA的應(yīng)用目錄什么是SOA面向服務(wù)的體系結(jié)構(gòu)(Service-OrientedArchitecture,SOA)是一個(gè)組件模型。組件模型它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái);接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言;構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以一種統(tǒng)一和通用的方式進(jìn)行交互。Webservice平臺(tái)是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在W
2、eb上實(shí)現(xiàn)互操作性。你可以用任何你喜歡的語(yǔ)言,在任何你喜歡的平臺(tái)上寫(xiě)Webservice,只要我們可以通過(guò)Webservice標(biāo)準(zhǔn)對(duì)這些服務(wù)進(jìn)行查詢和訪問(wèn)。Webservice是技術(shù)規(guī)范,SOA是設(shè)計(jì)原則。從本質(zhì)上講,SOA是一種架構(gòu)模式,而webservice是利用一組標(biāo)準(zhǔn)實(shí)現(xiàn)的服務(wù)。Webservice是實(shí)現(xiàn)SOA的方式之一。用webservice實(shí)現(xiàn)SOA的好處是:可以實(shí)現(xiàn)一個(gè)中立平臺(tái),來(lái)獲取服務(wù),獲取更好的通用性。WebServices的目標(biāo)是即時(shí)裝配、松散耦合以及自動(dòng)集成。Webservic
3、e為什么要使用SOA傳統(tǒng)的架構(gòu),軟件包是被編寫(xiě)為獨(dú)立的(self-contained)軟件,即在一個(gè)完整的軟件包中將許多應(yīng)用程序功能整合在一起。實(shí)現(xiàn)整合應(yīng)用程序功能的代碼通常與功能本身的代碼混合在一起。我們將這種方式稱作軟件設(shè)計(jì)“單一應(yīng)用程序“。與此密切相關(guān)的是,更改一部分代碼將對(duì)使用該代碼的代碼具有重大影響,這會(huì)造成系統(tǒng)的復(fù)雜性,并增加維護(hù)系統(tǒng)的成本。而且還使重新使用應(yīng)用程序功能變得較困難,因?yàn)檫@些功能不是為了重新使用而打的包。缺點(diǎn):代碼冗余不能重用緊耦合成本高SOA旨在將單個(gè)應(yīng)用程序功能彼此分開(kāi),
4、以便這些功能可以單獨(dú)用作單個(gè)的應(yīng)用程序功能或“組件”。這些組件可以用于在企業(yè)內(nèi)部創(chuàng)建各種其他的應(yīng)用程序,或者如有需要,對(duì)外向合作伙伴公開(kāi),以便用于合作伙伴的應(yīng)用程序。SOA優(yōu)點(diǎn):代碼重用松耦合平臺(tái)獨(dú)立語(yǔ)言無(wú)關(guān)為什么要使用SOA商品消費(fèi)——軟件服務(wù)SOA工作流程SOA架構(gòu)中有三種角色:服務(wù)提供者:發(fā)布自己的服務(wù),并且對(duì)服務(wù)請(qǐng)求進(jìn)行響應(yīng)。服務(wù)注冊(cè)中心:注冊(cè)已經(jīng)發(fā)布的webservice,對(duì)其進(jìn)行分類,并提供搜索服務(wù)。服務(wù)請(qǐng)求者:利用服務(wù)中心查找所需要的服務(wù),然后使用該服務(wù)。SOA角色SOA操作SOA的三種
5、操作:發(fā)布操作:為了使服務(wù)可訪問(wèn),需要發(fā)布服務(wù)描述以使服務(wù)使用者可以發(fā)現(xiàn)它。查找操作:服務(wù)請(qǐng)求者定位服務(wù),方法是查詢服務(wù)注冊(cè)中心來(lái)找到滿足其標(biāo)準(zhǔn)的服務(wù)。綁定操作:在檢索到服務(wù)描述之后,服務(wù)使用者繼續(xù)根據(jù)服務(wù)描述中的信息來(lái)調(diào)用服務(wù)。SOAP:簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SimpleObjectAccessProtocol)WSDL:Web服務(wù)描述語(yǔ)言WSDL(WebServicesDescriptionLanguage)UUDI:統(tǒng)一描述、發(fā)現(xiàn)和集成(UniversalDescription,Discoverya
6、ndIntegration)WSDL用來(lái)描述服務(wù);UDDI用來(lái)注冊(cè)和查找服務(wù);而SOAP,作為傳輸層,用來(lái)在消費(fèi)者和服務(wù)提供者之間傳送消息。一個(gè)消費(fèi)者可以在UDDI注冊(cè)表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過(guò)SOAP來(lái)調(diào)用服務(wù)。SOA的相關(guān)標(biāo)準(zhǔn)——WSDL、UUDI、SOAP一個(gè)SOA系統(tǒng)要具有以下六大關(guān)鍵要素——基礎(chǔ)設(shè)施、已有資源、企業(yè)服務(wù)、流程模型、服務(wù)展現(xiàn)和系統(tǒng)工具(包括開(kāi)發(fā)、測(cè)試和管理工具等)。因此,在基礎(chǔ)設(shè)施和已有資源都已具備的基礎(chǔ)上,開(kāi)發(fā)和構(gòu)建一個(gè)SOA系統(tǒng)要包括以
7、下幾方面的工作:首先需要設(shè)計(jì)開(kāi)發(fā)出符合標(biāo)準(zhǔn)的服務(wù),這是整個(gè)SOA系統(tǒng)最核心的要素?;跇?biāo)準(zhǔn)服務(wù),借助流程編排工具和建模工具,組織構(gòu)造流程,生成流程模型,更好地滿足業(yè)務(wù)需求。實(shí)際構(gòu)建和開(kāi)發(fā)SOA系統(tǒng),具體包括服務(wù)和應(yīng)用程序的開(kāi)發(fā),數(shù)據(jù)的訪問(wèn)、處理和管理,及對(duì)服務(wù)各種形式的展現(xiàn)等。如何構(gòu)建SOA假設(shè)股票行業(yè)存在以下6個(gè)服務(wù):Country()輸入?yún)?shù):國(guó)家編碼。輸出項(xiàng):國(guó)家名稱和其他信息。YellowPages()輸入?yún)?shù):公司名稱;輸出項(xiàng):企業(yè)代碼,所在國(guó)家等其他信息。NewYorkStock()輸入?yún)?/p>
8、數(shù):公司代碼,時(shí)間;輸出項(xiàng):該公司在紐約的股票價(jià)格(美元)。LondonStock()輸入?yún)?shù):公司代碼,時(shí)間;輸出項(xiàng):該公司在倫敦的股票價(jià)格。USToRMB()輸入?yún)?shù):美元價(jià)格,時(shí)間;輸出項(xiàng):對(duì)應(yīng)的人民幣價(jià)格。UKToRMB()輸入?yún)?shù):英鎊價(jià)格,時(shí)間;輸出項(xiàng):對(duì)應(yīng)的人民幣價(jià)格。使用SOA進(jìn)行服務(wù)組合實(shí)例用戶想通過(guò)“跨國(guó)公司名稱”和“時(shí)間”找出該跨國(guó)公司在紐約的股票折合成人民幣的價(jià)格以及該公司所在國(guó)家的信息。分析:輸入?yún)?shù):跨國(guó)公司的名稱、時(shí)間如何實(shí)