- 相關(guān)推薦
WebServices簡介
SOA ,即Service Oriented Architecture ,中文一般理解為面向服務(wù)的架構(gòu)。既然說是一種架構(gòu)的話,所以一般認(rèn)為 SOA 是包含了運(yùn)行環(huán)境、編程模型、架構(gòu)風(fēng)格和相關(guān)方法論等在內(nèi)的一整套新的分布式軟件系統(tǒng)構(gòu)造方法和環(huán)境,涵蓋服務(wù)的整個生命周期。而在 SOA 的架構(gòu)風(fēng)格中,服務(wù)是最核心的抽象手段。SOA 中的服務(wù)是構(gòu)建在一些開放標(biāo)準(zhǔn)的基礎(chǔ)之上的,Web服務(wù)定義了如何在異構(gòu)系統(tǒng)之間實(shí)現(xiàn)通信的標(biāo)準(zhǔn)化方法,從而就使得 Web 服務(wù)可以跨越運(yùn)行平臺和實(shí)現(xiàn)語言,同時也使得 Web 服務(wù)成為了實(shí)現(xiàn) SOA 中服務(wù)的主要技術(shù)。
有沒有一種辦法可以實(shí)現(xiàn)跨應(yīng)用程序通信和跨平臺通信呢,也就是如何可以實(shí)現(xiàn)應(yīng)用程序 A 可以和應(yīng)用程序 B 的通信?或者說如何實(shí)現(xiàn)Java 寫的應(yīng)用程序和用.Net開發(fā)的應(yīng)用程序之間的通信?拿騰訊QQ的天氣預(yù)報工具來舉例,天氣預(yù)報功能是如何實(shí)現(xiàn)的呢?有一種辦法,那就是騰訊公司放個衛(wèi)星上天,并且在公司中成立一個氣象部門,天天關(guān)注于天氣,然后實(shí)時更新騰訊 QQ 的天氣預(yù)報信息。確實(shí),這種辦法確實(shí)行得通,但很蠢。
再舉一個跨平臺的例子,假如有兩個公司,一個公司項(xiàng)目使用. Net 開發(fā),另一個使用 Java 開發(fā),這兩個公司本來相互獨(dú)立,但是這兩個公司如果需要把兩個項(xiàng)目結(jié)合起來,兩個項(xiàng)目之間需要通信,此時兩個項(xiàng)目基于不同的平臺。
第三個例子,一個公司使用的服務(wù)器是 Windows Server 2008,那么它如何和 IT 供應(yīng)商的UNIX 或是 Linux 服務(wù)器進(jìn)行連接?
WebServices特點(diǎn)介紹
WebServices 提供一個建立分布式應(yīng)用的平臺,使得運(yùn)行在不同操作系統(tǒng)和不同設(shè)備上的軟件,或者是用不同的程序語言和不同廠商的軟件開發(fā)工具開發(fā)的軟件,所有可能的已開發(fā)和部署的軟件,能夠利用這一平臺實(shí)現(xiàn)分布式計算的目的。WebServices的思想是:使得應(yīng)用程序也具有 Web 分布式編程模型的松散耦合性。
1. WebServices 是自包含的。即在客戶端不需要附加任何軟件,只要客戶機(jī)支持 HTTP 和XML 就 OK 了。
2. WebServices 是自我描述的。在客戶端和服務(wù)端都不需要知道除了請求和響應(yīng)消息的格式和內(nèi)容外的任何事。
3. WebServices 是跨平臺和跨語言的?蛻舳撕头⻊(wù)端均可以在不同的平臺和語言環(huán)境中實(shí)現(xiàn),同時,不必為了支持 WebServices 而更改現(xiàn)有的代碼。
4. WebServices 是基于開放和標(biāo)準(zhǔn)的。XML和HTTP 是WebServices 的主要技術(shù)基礎(chǔ),而 XML 和HTTP早就成了業(yè)內(nèi)標(biāo)準(zhǔn)了。
5. WebServices 是動態(tài)的。
6. WebServices 是可以組合的。即通過一個 WebService 訪問另外一個 WebService 來達(dá)到組合的目的。通過組合 WebServices 便可以將簡單的 WebServices 聚合成為實(shí)現(xiàn)更多復(fù)雜功能的復(fù)雜的服務(wù)。
7. WebServices 是松散耦合的。它完全解耦了客戶端和服務(wù)端。
8. WebServices 提供編程訪問的能力。換句話說,就是可以通過編寫程序來訪問Web 服務(wù)。
9. WebServices 是基于經(jīng)過考驗(yàn)的成熟技術(shù)上構(gòu)建的。比如 XML 和 HTTP。
10. WebServices 提供打包現(xiàn)有應(yīng)用程序的能力。
11. WebServices 通過網(wǎng)絡(luò)進(jìn)行發(fā)布,查找和使用。
WebServices到底是什么?
WebServices是基于 XML 和 HTTP 的,(當(dāng)然這是最基本的 WebServices ,也可以通過 HTTPS 或者是 SMTP 來實(shí)現(xiàn)通信),不論Java平臺還是.Net平臺開發(fā)(或者是是使用 Web 服務(wù)),這一切都和Web服務(wù)無關(guān),只需要關(guān)注通過 HTTP 協(xié)議來傳輸 XML 就 OK了,至于這些 XML 是如何被服務(wù)提供者開發(fā)出來的或者這些 XML 是如何被服務(wù)請求者使用的(小編按:如何實(shí)現(xiàn)很重要,后面會提到),這些都和應(yīng)用開發(fā)無關(guān),這里可以看出Web服務(wù)的另一個優(yōu)勢,那就是跨語言跨平臺(實(shí)現(xiàn)協(xié)同工作),通過 Web 服務(wù)可以實(shí)現(xiàn)不同應(yīng)用程序和不同平臺之間的通信,Web服務(wù)允許獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件或者是軟件平臺和編寫服務(wù)所使用編程語言來實(shí)現(xiàn)(小編按:WebServices對硬件基礎(chǔ)、軟件平臺、開發(fā)語言不關(guān)心)。
以上可以回答開頭引子中提出的三個問題,即:
1)QQ天氣預(yù)報問題:通過訪問氣象局發(fā)布的天氣狀況的WebServices來實(shí)現(xiàn)
2)Java 應(yīng)用程序和. Net應(yīng)用程序之間的通信
3)解決 Linux 或是UNIX 和 Windows Server 2008 之間進(jìn)行連接問題。
另外通過使用不同的 Web 服務(wù),我們可以從不同的平臺和操作系統(tǒng)進(jìn)行訪問,從而提高不同應(yīng)用程序共享數(shù)據(jù)和應(yīng)用的能力。
WebServices三種基本元素之SOAP
SOAP 即 Simple Object AccessProtocol,也就是簡單對象訪問協(xié)議。其指導(dǎo)理念是“唯一一個沒有發(fā)明任何新技術(shù)的技術(shù)”(小編按:通過XML和HTTP就可以實(shí)現(xiàn)),是一種用于訪問 Web 服務(wù)的協(xié)議。即SOAP基于XML和HTTP,其通過XML來實(shí)現(xiàn)消息描述,然后再通過 HTTP 實(shí)現(xiàn)消息傳輸。
SOAP 協(xié)議的一個重要特點(diǎn)是它獨(dú)立于底層傳輸機(jī)制,Web 服務(wù)應(yīng)用程序可以根據(jù)需要選擇自己的數(shù)據(jù)傳輸協(xié)議,可以在發(fā)送消息時來確定相應(yīng)傳輸機(jī)制。
由于 HTTP 協(xié)議本身的一些特點(diǎn)和局限性,使得當(dāng) SOAP 使用HTTP 綁定的 Web 服務(wù)并不能滿足某些企業(yè)應(yīng)用的需求。比如,HTTP 不是一個可靠傳輸協(xié)議,所以有可能在傳輸過程中出現(xiàn)問題,
然后 HTTP 協(xié)議基于Request/Response 模型,也就是說客戶端需要在等待響應(yīng)消息接收完成后才能繼續(xù)執(zhí)行,從而容易出現(xiàn)時延的問題。
基于上面的這些需求,便需要選擇合適的傳輸協(xié)議了。
WebServices三種基本元素之 WSDL
WSDL 即Web Services Description Language也就是Web服務(wù)描述語言,是基于 XML的用于描述 Web 服務(wù)以及如何訪問 Web 服務(wù)的語言。
服務(wù)提供者通過服務(wù)描述將所有用于訪問 Web服務(wù)的規(guī)范傳送給服務(wù)請求者,要實(shí)現(xiàn) Web服務(wù)體系結(jié)構(gòu)的松散耦合,服務(wù)描述是一個關(guān)鍵,不管是請求者還是服務(wù)提供者,通過服務(wù)描述便可以不必了解對方的底層平臺,編程語言等,服務(wù)描述與底層的 SOAP 基礎(chǔ)結(jié)構(gòu)相結(jié)合,足以封裝服務(wù)請求者的應(yīng)用程序和服務(wù)提供者的 Web服務(wù)之間的這個細(xì)節(jié)。
WSDL 描述了 Web服務(wù)的三個基本屬性:
1. 服務(wù)所提供的操作
2. 如何訪問服務(wù)
3. 服務(wù)位于何處(通過 URL 來確定就 OK 了)
WebServices三種基本元素之 UDDI
UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述、發(fā)現(xiàn)以及整合,用來描述了訪問特定的Web服務(wù)的一些相關(guān)的信息。
前面說到WSDL是用來描述了訪問特定的 Web 服務(wù)的一些相關(guān)的信息,但是如何來發(fā)現(xiàn)我們所需要的 Web 服務(wù),而 Web 服務(wù)提供商又如何將自己開發(fā)的 Web 服務(wù)公布到因特網(wǎng)上?
這就需要使用到 UDDI,它是一個跨產(chǎn)業(yè),跨平臺的開放性架構(gòu),可以幫助 Web 服務(wù)提供商在互聯(lián)網(wǎng)上發(fā)布 Web 服務(wù)的信息。
UDDI 是一種目錄服務(wù),企業(yè)可以通過 UDDI 來注冊和搜索 Web 服務(wù),簡單來說,UDDI 就是一個目錄,只不過在這個目錄中存放的是一些關(guān)于 Web 服務(wù)的信息而已。
小編按:WebServices三種基本元素在科普文里的描述比較難懂,事實(shí)上這些理論描述和實(shí)際應(yīng)用的感受完全不同。引用一個非常簡單的比喻,可能更加容易理解:
Web Services:是一個可以將應(yīng)用程序變?yōu)閣eb應(yīng)用程序,將自己本地的應(yīng)用程序信息通過網(wǎng)絡(luò),發(fā)布到網(wǎng)絡(luò)當(dāng)中,讓別人通過瀏覽器等訪問本地的信息。
SOAP:是定義訪問Web Services的協(xié)議,也就是哪些是可以訪問的,怎樣的格式才能夠訪問,返回的格式又是什么樣的,這些都是SOAP定義的。
WSDL:是描述SOAP協(xié)議的具體語言,用WSDL實(shí)現(xiàn)SOAP協(xié)議,把它寫成文件,直接訪問。
UDDI:是把這些web services 收集和存儲起來,這樣當(dāng)別人訪問這些信息的時候就從UDDI中查找,看有沒有這個信息存在。
【W(wǎng)ebServices簡介】相關(guān)文章:
IBM簡介08-11
WAP的簡介10-03
SOAP簡介08-15
圍棋的簡介09-25
拓展訓(xùn)練簡介10-20
Oracle認(rèn)證簡介08-05
冬至的由來簡介10-25
中國的紅茶簡介08-20
韓國料理簡介08-16
瑜伽分類及簡介07-07