共計(jì) 3337 個(gè)字符,預(yù)計(jì)需要花費(fèi) 9 分鐘才能閱讀完成。
本篇文章給大家分享的是有關(guān)如何進(jìn)行 web service 的原理分析,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
Web 服務(wù)是一種服務(wù)導(dǎo)向架構(gòu)的技術(shù),通過標(biāo)準(zhǔn)的 Web 協(xié)議提供服務(wù),目的是保證不同平臺(tái)的應(yīng)用服務(wù)可以互操作。
根據(jù) W3C 的定義,Web 服務(wù)(Web service)應(yīng)當(dāng)是一個(gè)軟件系統(tǒng),用以支持網(wǎng)絡(luò)間不同機(jī)器的互動(dòng)操作。網(wǎng)絡(luò)服務(wù)通常是許多應(yīng)用程序接口(API)所組成的,它們透過網(wǎng)絡(luò),例如國(guó)際互聯(lián)網(wǎng)(Internet)的遠(yuǎn)程服務(wù)器端,執(zhí)行客戶所提交服務(wù)的請(qǐng)求。
盡管 W3C 的定義涵蓋諸多相異且無法介分的系統(tǒng),不過通常我們指有關(guān)於主從式架構(gòu)(Client-server)之間根據(jù) SOAP 協(xié)議進(jìn)行傳遞 XML 格式消息。無論定義還是實(shí)現(xiàn),WEB 服務(wù)過程中會(huì)由伺服機(jī)提供一個(gè)機(jī)器可讀的描述(通常基于 WSDL)以辨識(shí)伺服機(jī)所提供的 WEB 服務(wù)。另外,雖然 WSDL 不是 SOAP 服務(wù)端點(diǎn)的必要條件,但目前基于 Java 的主流 WEB 服務(wù)開發(fā)框架往往需要 WSDL 實(shí)現(xiàn)客戶端的源代碼生成。一些工業(yè)標(biāo)準(zhǔn)化組織,比如 WS-I,就在 WEB 服務(wù)定義中強(qiáng)制包含 SOAP 和 WSDL。
SOAP
一個(gè)基于 XML 的可擴(kuò)展消息信封格式,需同時(shí)綁定一個(gè)網(wǎng)絡(luò)傳輸協(xié)議。這個(gè)協(xié)議通常是 HTTP 或 HTTPS,但也可能是 SMTP 或 XMPP。
WSDL
一個(gè) XML 格式文檔,用以描述服務(wù)端口訪問方式和使用協(xié)議的細(xì)節(jié)。通常用來輔助生成服務(wù)器和客戶端代碼及配置信息。
UDDI
一個(gè)用來發(fā)布和搜索 WEB 服務(wù)的協(xié)議,應(yīng)用程序可藉由此協(xié)議在設(shè)計(jì)或運(yùn)行時(shí)找到目標(biāo) WEB 服務(wù)。
這些標(biāo)準(zhǔn)由這些組織制訂:W3C 負(fù)責(zé) XML、SOAP 及 WSDL;OASIS 負(fù)責(zé) UDDI。
協(xié)議集[編輯]
為提高 WEB 服務(wù)間的互操作能力,WS- I 還特別發(fā)布了 WEB 服務(wù)協(xié)議集(Profile)。協(xié)議集包含了一系列特定版本的核心定義(諸如 SOAP 和 WSDL),以及對(duì)其使用上的限制與約束。WS- I 還發(fā)布了用于部署協(xié)議集兼容 WEB 服務(wù)的測(cè)試工具及相關(guān)用例。
WS- 系列追加定義[編輯]
為擴(kuò)展 WEB 服務(wù)能力,一些新的標(biāo)準(zhǔn)已經(jīng)或正在被開發(fā)。這些標(biāo)準(zhǔn)通常被冠以 WS 字頭(Web Service 的簡(jiǎn)稱),以下是一個(gè) WS 系列追加標(biāo)準(zhǔn)的不完全列表:
WS 安全(WS-Security)
定義了如何在 SOAP 中使用 XML 加密或 XML 簽名來保護(hù)消息傳遞。可作為 HTTPS 保護(hù)的一種替代或擴(kuò)充。
WS 信賴性(WS-Reliability)
一個(gè)來自 OASIS 的標(biāo)準(zhǔn)協(xié)議,用來提供可信賴的 WEB 服務(wù)間消息傳遞。
WS 可信賴消息(WS-ReliableMessaging)
同樣是一個(gè)提供信賴消息的協(xié)議,由 Microsoft, BEA 和 IBM 發(fā)布。目前 OASIS 正對(duì)其實(shí)施標(biāo)準(zhǔn)化工作。
WS 尋址(WS-Addressing)
定義了在 SOAP 消息內(nèi)描述發(fā)送/接收方地址的方式。
WS 事務(wù)(WS-Transaction)
定義事務(wù)處理方式。
Web Service 技術(shù),能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。依據(jù) Web Service 規(guī)范實(shí)施的應(yīng)用之間,無論它們所使用的語(yǔ)言、平臺(tái)或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。Web Service 是自描述、自包含的可用網(wǎng)絡(luò)模塊,可以執(zhí)行具體的業(yè)務(wù)功能。Web Service 也很容易部署,因?yàn)樗鼈兓谝恍┏R?guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的子集 XML、HTTP。Web Service 減少了應(yīng)用接口的花費(fèi)。Web Service 為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一個(gè)通用機(jī)制。
Web service 就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過 Web 進(jìn)行調(diào)用的 API。這就是說,你能夠用編程的方法通過 Web 來調(diào)用這個(gè)應(yīng)用程序。
Web service 包括內(nèi)容:
XML 和 XSD
可擴(kuò)展的標(biāo)記語(yǔ)言(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)子集)是 Web service 平臺(tái)中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML 主要的優(yōu)點(diǎn)在于它既是平臺(tái)無關(guān)的,又是廠商無關(guān)的。無關(guān)性是比技術(shù)優(yōu)越性更重要的:軟件廠商是不會(huì)選擇一個(gè)由競(jìng)爭(zhēng)對(duì)手所發(fā)明的技術(shù)的。
XML 解決了數(shù)據(jù)表示的問題,但它沒有定義一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,更沒有說怎么去擴(kuò)展這套數(shù)據(jù)類型。例如,整形數(shù)到底代表什么?16 位,32 位,還是 64 位?這些細(xì)節(jié)對(duì)實(shí)現(xiàn)互操作性都是很重要的。W3C 制定的 XML Schema(XSD)就是專門解決這個(gè)問題的一套標(biāo)準(zhǔn)。它定義了一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,并給出了一種語(yǔ)言來擴(kuò)展這套數(shù)據(jù)類型。Web service 平臺(tái)就是用 XSD 來作為其數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語(yǔ)言 (如 VB. NET 或 C#) 來構(gòu)造一個(gè) Web service 時(shí),為了符合 Web service 標(biāo)準(zhǔn),所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為 XSD 類型。你用的工具可能已經(jīng)自動(dòng)幫你完成了這個(gè)轉(zhuǎn)換,但你很可能會(huì)根據(jù)你的需要修改一下轉(zhuǎn)換過程。
SOAP
Web service 建好以后,你或者其他人就會(huì)去調(diào)用它。簡(jiǎn)單對(duì)象訪問協(xié)議 (SOAP) 提供了標(biāo)準(zhǔn)的 RPC 方法來調(diào)用 Web service。實(shí)際上,SOAP 在這里有點(diǎn)用詞不當(dāng):它意味著下面的 Web service 是以對(duì)象的方式表示的,但事實(shí)并不一定如此:你完全可以把你的 Web service 寫成一系列的 C 函數(shù),并仍然使用 SOAP 進(jìn)行調(diào)用。SOAP 規(guī)范定義了 SOAP 消息的格式,以及怎樣通過 HTTP 協(xié)議來使用 SOAP。SOAP 也是基于 XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)子集)和 XSD 的,XML 是 SOAP 的數(shù)據(jù)編碼方式。
WSDL
你會(huì)怎樣向別人介紹你的 Web service 有什么功能,以及每個(gè)函數(shù)調(diào)用時(shí)的參數(shù)呢?你可能會(huì)自己寫一套文檔,你甚至可能會(huì)口頭上告訴需要使用你的 Web service 的人。這些非正式的方法至少都有一個(gè)嚴(yán)重的問題:當(dāng)程序員坐到電腦前,想要使用你的 Web service 的時(shí)候,他們的工具 (如 Visual Studio) 無法給他們提供任何幫助,因?yàn)檫@些工具根本就不了解你的 Web service。
解決方法是:用機(jī)器能閱讀的方式提供一個(gè)正式的描述文檔。Web service 描述語(yǔ)言 (WSDL) 就是這樣一個(gè)基于 XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)子集)的語(yǔ)言,用于描述 Web service 及其函數(shù)、參數(shù)和返回值。WSDL 既是機(jī)器可閱讀的,又是人可閱讀的,這將是一個(gè)很大的好處。一些最新的開發(fā)工具既能根據(jù)你的 Web service 生成 WSDL 文檔,又能導(dǎo)入 WSDL 文檔,生成調(diào)用相應(yīng) Web service 的代碼。
UDDI
Universal Description, Discovery and Integration
為加速 Web Service 的推廣、加強(qiáng) Web Service 的互操作能力而推出的一個(gè)計(jì)劃, 基于標(biāo)準(zhǔn)的服務(wù)描述和發(fā)現(xiàn)的規(guī)范(specification)。
以資源共享的方式由多個(gè)運(yùn)作者一起以 Web Service 的形式運(yùn)作 UDDI 商業(yè)注冊(cè)中心。
UDDI 計(jì)劃的核心組件是 UDDI 商業(yè)注冊(cè),它使用 XML 文檔來描述企業(yè)及其提供的 Web Service。
UDDI 商業(yè)注冊(cè)提供三種信息:
White Page 包含地址、聯(lián)系方法、已知的企業(yè)標(biāo)識(shí)。
Yellow Page 包含基于標(biāo)準(zhǔn)分類法的行業(yè)類別。
Green Page 包含關(guān)于該企業(yè)所提供的 Web Service 的技術(shù)信息,其形式可能是指向文件或 URL 的指針,而這些文件或 URL 是為服務(wù)發(fā)現(xiàn)機(jī)制服務(wù)的。
優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1. 跨越防火墻;
2. 應(yīng)用程序集成;
3. B2B 集成;
4. 軟件重用
缺點(diǎn):
1. 單機(jī)應(yīng)用程序;
2. 局域網(wǎng)上的同構(gòu)應(yīng)用程序
在使用方式上,RPC 和 soap 的使用在減少,Restful 架構(gòu)占到了主導(dǎo)地位。
在數(shù)據(jù)格式上,XML 格式的使用在減少,json 等輕量級(jí)格式的使用在增多。
在設(shè)計(jì)架構(gòu)上,越來越多的第三方軟件讓用戶在客戶端(即瀏覽器),直接與云端對(duì)話,不再使用第三方的服務(wù)器進(jìn)行中轉(zhuǎn)或處理數(shù)據(jù)。
以上就是如何進(jìn)行 web service 的原理分析,丸趣 TV 小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道。