国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

SOA擴(kuò)展Web服務(wù)的前景(一)

2019-11-17 04:55:11
字體:
供稿:網(wǎng)友
現(xiàn)在的 Web 服務(wù)實(shí)現(xiàn)往往是簡(jiǎn)單的,通常類似于客戶端-服務(wù)器模型。然而,平臺(tái)中立的交換是受支持的,這就使一系列不同的客戶端實(shí)現(xiàn)可以與作為服務(wù)器函數(shù)的新代碼或遺留代碼進(jìn)行交互。許多文章都介紹了使這樣的應(yīng)用程序直接實(shí)現(xiàn)的技術(shù)。現(xiàn)在是看一看我們能夠如何使用它們的更大的圖景的時(shí)候了。作者解決了如何由簡(jiǎn)單的模型轉(zhuǎn)移到代表現(xiàn)實(shí)的任意復(fù)雜度的業(yè)務(wù)模型的問題。公元前 221 年,秦始皇將以前交戰(zhàn)的幾個(gè)國(guó)家統(tǒng)一為一個(gè)新的國(guó)家,我們現(xiàn)在稱之為中國(guó)。中國(guó)作為一個(gè)國(guó)家存在下來的一個(gè)可能的原因就是秦朝引入了標(biāo)準(zhǔn),標(biāo)準(zhǔn)鞏固了文化,促進(jìn)了貿(mào)易:標(biāo)準(zhǔn)的輪距使得馬車可以有效地行使在任何的道路,共同的書面語言使得每個(gè)人都可以交換信息(即使他們說的并不是相同的語言),而堅(jiān)固的工事(比如中國(guó)的長(zhǎng)城)使得人們可以防御外敵入侵。您可以說,他為標(biāo)準(zhǔn)化傳輸、消息交換和防火墻開發(fā)了一些模型。同樣地,現(xiàn)代的業(yè)務(wù)集成同樣也受益于標(biāo)準(zhǔn),它使異構(gòu)的計(jì)算機(jī)系統(tǒng)能夠有效地互操作。這些技術(shù)合在一起稱作 Web 服務(wù)。Web 服務(wù)的出現(xiàn)是以 SOAP 1.1 的引入為標(biāo)志的,SOAP 1.1 定義了將 xml 內(nèi)容用于分布式系統(tǒng),而同時(shí)隱藏實(shí)現(xiàn)的細(xì)節(jié)。四年后的今天,許多公司正在使用 Web 服務(wù),并且可以毫無疑問地地說,業(yè)界正處在 Web 服務(wù)主流時(shí)代的開端。IBM 將面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)視為它的按需(On demand)業(yè)務(wù)前景的互操作性和靈活性的要害。面向服務(wù)的體系結(jié)構(gòu)(SOA)支持跨企業(yè)和業(yè)務(wù)合作伙伴之間間的端到端集成。這就提供了一種靈活的業(yè)務(wù)流程模型,使得客戶可以迅速地響應(yīng)新的顧客需求、新的業(yè)務(wù)機(jī)會(huì)以及競(jìng)爭(zhēng)的威脅。什么是面向服務(wù)的體系結(jié)構(gòu)(SOA)?面向服務(wù)的體系結(jié)構(gòu)(SOA)表示您可以如何使用 Web 服務(wù)的大圖景。Web 服務(wù)規(guī)范定義了實(shí)現(xiàn)服務(wù)以及與它們的交互所需要的細(xì)節(jié)。然而,面向服務(wù)的體系結(jié)構(gòu)(SOA)是一種用于構(gòu)建分布式系統(tǒng)的方法,采用 SOA 這種方法構(gòu)建的分布式應(yīng)用程序可以將功能作為服務(wù)交付給終端用戶,也可以構(gòu)建其他的服務(wù)。面向服務(wù)的體系結(jié)構(gòu)(SOA)可以基于 Web 服務(wù),但是它可能改為使用其他的技術(shù)來代替。在使用面向服務(wù)的體系結(jié)構(gòu)(SOA)設(shè)計(jì)分布式應(yīng)用程序時(shí),您可以將 Web 服務(wù)的使用從簡(jiǎn)單的客戶端-服務(wù)器模型擴(kuò)展成任意復(fù)雜的系統(tǒng)。因而,單個(gè)的軟件資產(chǎn)成為開發(fā)其他應(yīng)用程序的基本構(gòu)件。您可以通過與新的代碼和遺留代碼一起使用的共同交互方式來減少系統(tǒng)的復(fù)雜性(CBDi 的 Lawrence Wilkes 開玩笑說,面向服務(wù)的體系結(jié)構(gòu)(SOA)可以代表"節(jié)省我們的資產(chǎn)(Save Our Assets)”)。有一種標(biāo)準(zhǔn)的方法可以用于表示這些軟件資產(chǎn)和與它們交互;現(xiàn)在人們關(guān)注的重點(diǎn)已經(jīng)轉(zhuǎn)移到基于這些構(gòu)件的應(yīng)用程序裝配上來了。雖然在這里討論的是用于業(yè)務(wù)應(yīng)用程序的面向服務(wù)的體系結(jié)構(gòu)(SOA),但是面向服務(wù)的體系結(jié)構(gòu)(SOA)同樣也可以用于其他的分布式系統(tǒng),比如網(wǎng)格計(jì)算和高級(jí) Web 服務(wù)規(guī)范(例如,Web 服務(wù)分布式治理(WS-DistributedManagement)、Web 服務(wù)信任(WS-Trust)以及 UDDI)。什么是服務(wù)?在面向服務(wù)的體系結(jié)構(gòu)(SOA)中, 服務(wù)(service)是封裝成用于業(yè)務(wù)流程的可重用組件的應(yīng)用程序函數(shù)。它提供信息或簡(jiǎn)化業(yè)務(wù)數(shù)據(jù)從一個(gè)有效的、一致的狀態(tài)向另一個(gè)狀態(tài)的轉(zhuǎn)變。用于實(shí)現(xiàn)特定服務(wù)的流程并不重要,只要它響應(yīng)您的命令并為您的請(qǐng)求提供高質(zhì)量的服務(wù)就可以了。 通過定義的通信協(xié)議,可以調(diào)用服務(wù)來強(qiáng)調(diào)互操作性和位置透明性。一個(gè)服務(wù)表現(xiàn)為一個(gè)軟件組件,因?yàn)閺姆?wù)請(qǐng)求者的角度來看,它看起來就像是一個(gè)自包含的函數(shù)。然而,實(shí)際上,服務(wù)的實(shí)現(xiàn)可能包括在一個(gè)企業(yè)內(nèi)部的不同計(jì)算機(jī)上或者許多業(yè)務(wù)合作伙伴擁有的計(jì)算機(jī)上執(zhí)行的很多步驟。就封裝的軟件而言,服務(wù)可能是一個(gè)組件,也可能不是一個(gè)組件。如同類對(duì)象,請(qǐng)求者應(yīng)用程序能夠?qū)⒎?wù)看作是一個(gè)整體。Web 服務(wù)是以使用 SOAP 消息(它是用像 HTTP 這樣的標(biāo)準(zhǔn)協(xié)議上的 WSDL 來描述的)的調(diào)用為基礎(chǔ)的。使用 Web 服務(wù)的最佳實(shí)踐就是與外部的業(yè)務(wù)伙伴通信。松耦合服務(wù)請(qǐng)求者到服務(wù)提供者的綁定與服務(wù)之間應(yīng)該是松耦合的。這就意味著,服務(wù)請(qǐng)求者不知道提供者實(shí)現(xiàn)的技術(shù)細(xì)節(jié),比如程序設(shè)計(jì)語言、部署平臺(tái),等等。服務(wù)請(qǐng)求者往往通過消息調(diào)用操作--請(qǐng)求消息和響應(yīng)--而不是通過使用 API 和文件格式。這個(gè)松耦合使會(huì)話一端的軟件可以在不影響另一端的情況下發(fā)生改變,前提是消息模式保持不變。在一個(gè)極端的情況下,服務(wù)提供者可以將以前基于遺留代碼(例如,COBOL)的實(shí)現(xiàn)完全用基于 java 語言的新代碼取代,同時(shí)又不對(duì)服務(wù)請(qǐng)求者造成任何影響。這種情況是真實(shí)的,只要新代碼支持相同的消息模式。明確定義的接口服務(wù)交互必須是明確定義的。Web 服務(wù)描述語言(Web services Description Language,WSDL)是受到廣泛支持的方法,用于描述服務(wù)請(qǐng)求者所要求的綁定到服務(wù)提供者的細(xì)節(jié)。服務(wù)描述的重點(diǎn)在于與下面幾部分交互所用的操作: 服務(wù)

調(diào)用操作的消息

構(gòu)造這種消息的細(xì)節(jié)

關(guān)于向何處發(fā)送用于構(gòu)造這種消息的處理細(xì)節(jié)的消息的信息 WSDL 不包括服務(wù)實(shí)現(xiàn)的任何技術(shù)細(xì)節(jié)。服務(wù)請(qǐng)求者不知道也不關(guān)心服務(wù)究竟是由 Java 代碼、C#、COBOL,還是由某種其他的程序設(shè)計(jì)語言編寫的。它可以描述使用 HTTP 的 SOAP 調(diào)用。由于它的擴(kuò)展機(jī)制,它也可以定義其他類型的交互,比如通過 JMS 提交的 XML 內(nèi)容、直接方法調(diào)用、由治理遺留代碼的適配器處理的調(diào)用(CICS),等等。
WSDL 的通用定義答應(yīng)開發(fā)工具創(chuàng)建各種各樣類型的交互的通過接口,同時(shí)隱藏它是如何由應(yīng)用程序代碼調(diào)用服務(wù)的細(xì)節(jié)。例如,假如服務(wù)是以多種交互類型公開的,Web 服務(wù)調(diào)用框架(Web Services Invocation Framework,WSIF)通過答應(yīng)運(yùn)行時(shí)決定調(diào)用高質(zhì)量服務(wù)的最優(yōu)方法來使用這種能力。無狀態(tài)的服務(wù)設(shè)計(jì)服務(wù)應(yīng)該是獨(dú)立的、自包含的請(qǐng)求,在實(shí)現(xiàn)時(shí)它不需要從一個(gè)請(qǐng)求到另一個(gè)請(qǐng)求的信息或狀態(tài)。服務(wù)不應(yīng)該依靠于其他服務(wù)的上下文和狀態(tài)。當(dāng)需要依靠時(shí),它們最好定義成通用業(yè)務(wù)流程、函數(shù)和數(shù)據(jù)模型,而不是實(shí)現(xiàn)構(gòu)件(比如會(huì)話密鑰)。當(dāng)然,請(qǐng)求者應(yīng)用程序需要服務(wù)調(diào)用之間的持久狀態(tài),但是這不應(yīng)該與服務(wù)提供者分開。這里有一個(gè)定義會(huì)話的 錯(cuò)誤方法的示例: Requester: "What is BrUCe’s checking account balance?"


Requester: "And what is his credit limit?"

Provider: "$y"

提供者被要求記住請(qǐng)求之間 Bruce 的帳號(hào),這就在服務(wù)實(shí)現(xiàn)中引入了復(fù)雜性。無狀態(tài)的服務(wù)設(shè)計(jì)將重新定義會(huì)話,如下所示:Requester: "What is Bruce’s checking account balance?"

Provider: "$x"

Requester: "What is Bruce’s credit limit?"

Provider: "$y" 服務(wù)粒度操作的粒度是一項(xiàng)重要的設(shè)計(jì)要點(diǎn)。對(duì)于外部的消耗推薦使用粗粒度的接口,而細(xì)粒度的接口可能用于企業(yè)內(nèi)部。粗粒度接口可能是特定服務(wù)的完整處理,例如 SubmitPurcha
SEOrder ,在這里消息包括定義訂購(gòu)單所需的所有業(yè)務(wù)信息。細(xì)粒度接口可能具有用于以下方法的不同操作: CreateNewPurchaseOrder 、 SetShippingAddress 、 AddItem ,等等。 雖然細(xì)粒度的接口為請(qǐng)求者應(yīng)用程序提供了更多的靈活性,它同樣也意味著交互的模式可能隨著不同的服務(wù)請(qǐng)求者而不同。這可能使對(duì)于服務(wù)提供者的支持更加困難。粗粒度接口保證服務(wù)請(qǐng)求者將以一致的方式使用服務(wù)。面向服務(wù)的體系結(jié)構(gòu)(SOA)不要求使用粗粒度接口,但是推薦使用它們作為外部集成的最佳實(shí)踐。服務(wù)編排可以用來創(chuàng)建運(yùn)行由細(xì)粒度操作組成的業(yè)務(wù)流程的粗粒度接口。服務(wù)質(zhì)量需要考慮的問題面向服務(wù)的體系結(jié)構(gòu)(SOA)設(shè)計(jì)將跨越計(jì)算機(jī)系統(tǒng),并且還可能跨越企業(yè)邊界。您不得不考慮在使用 Internet 時(shí)安全性功能和需求以及如何鏈接伙伴的安全域。Internet 協(xié)議并不是為可靠性(有保證的提交和提交的順序)而設(shè)計(jì),但是您不得不確保消息被提交并被處理一次。當(dāng)這不可能時(shí),請(qǐng)求者必須知道請(qǐng)求并沒有被處理。例如,您可能需要考慮您所部署服務(wù)的度量、可靠性以及響應(yīng)時(shí)間,以便確保它們?cè)诔兄Z的范圍之內(nèi)。當(dāng)您設(shè)計(jì)使用來自其他業(yè)務(wù)伙伴的服務(wù)的系統(tǒng)時(shí),您就不得不考慮面向服務(wù)的治理來以協(xié)作方式治理伙伴之間的服務(wù)。結(jié)束語本文的重點(diǎn)講解的是,在面向服務(wù)的體系結(jié)構(gòu)(SOA)中擴(kuò)大軟件資產(chǎn)價(jià)值的同時(shí)控制分布式應(yīng)用程序中的復(fù)雜性所帶來的好處。它也定義了服務(wù)的性質(zhì)并分析了它們的特征、以及一些最佳實(shí)踐。推薦:SOA擴(kuò)展Web服務(wù)的前景(二) 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 罗平县| 九寨沟县| 绥江县| 福海县| 北辰区| 墨玉县| 禄劝| 禄丰县| 新邵县| 南京市| 花莲市| 巴中市| 漳平市| 中西区| 青海省| 通山县| 宿州市| 广元市| 安龙县| 铁岭市| 武义县| 盐城市| 讷河市| 安庆市| 漳州市| 客服| 温泉县| 山丹县| 潮州市| 石狮市| 南部县| 手游| 万载县| 华池县| 鹤岗市| 舟山市| 十堰市| 盐源县| 剑阁县| 綦江县| 库尔勒市|