- 相關(guān)推薦
WebServices簡(jiǎn)介
Web Service是一個(gè)平臺(tái)低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開(kāi)放的XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)子集)標(biāo)準(zhǔn)來(lái)描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開(kāi)發(fā)分布式的交互操作的應(yīng)用程序。以下是小編整理的WebServices簡(jiǎn)介,歡迎查看。
WebServices簡(jiǎn)介
SOA ,即Service Oriented Architecture ,中文一般理解為面向服務(wù)的架構(gòu)。既然說(shuō)是一種架構(gòu)的話,所以一般認(rèn)為 SOA 是包含了運(yùn)行環(huán)境、編程模型、架構(gòu)風(fēng)格和相關(guān)方法論等在內(nèi)的一整套新的分布式軟件系統(tǒng)構(gòu)造方法和環(huán)境,涵蓋服務(wù)的整個(gè)生命周期。而在 SOA 的架構(gòu)風(fēng)格中,服務(wù)是最核心的抽象手段。SOA 中的服務(wù)是構(gòu)建在一些開(kāi)放標(biāo)準(zhǔn)的基礎(chǔ)之上的,Web服務(wù)定義了如何在異構(gòu)系統(tǒng)之間實(shí)現(xiàn)通信的標(biāo)準(zhǔn)化方法,從而就使得 Web 服務(wù)可以跨越運(yùn)行平臺(tái)和實(shí)現(xiàn)語(yǔ)言,同時(shí)也使得 Web 服務(wù)成為了實(shí)現(xiàn) SOA 中服務(wù)的主要技術(shù)。
有沒(méi)有一種辦法可以實(shí)現(xiàn)跨應(yīng)用程序通信和跨平臺(tái)通信呢,也就是如何可以實(shí)現(xiàn)應(yīng)用程序 A 可以和應(yīng)用程序 B 的通信?或者說(shuō)如何實(shí)現(xiàn)Java 寫(xiě)的應(yīng)用程序和用.Net開(kāi)發(fā)的應(yīng)用程序之間的通信?拿騰訊QQ的天氣預(yù)報(bào)工具來(lái)舉例,天氣預(yù)報(bào)功能是如何實(shí)現(xiàn)的呢?有一種辦法,那就是騰訊公司放個(gè)衛(wèi)星上天,并且在公司中成立一個(gè)氣象部門(mén),天天關(guān)注于天氣,然后實(shí)時(shí)更新騰訊 QQ 的天氣預(yù)報(bào)信息。確實(shí),這種辦法確實(shí)行得通,但很蠢。
再舉一個(gè)跨平臺(tái)的例子,假如有兩個(gè)公司,一個(gè)公司項(xiàng)目使用. Net 開(kāi)發(fā),另一個(gè)使用 Java 開(kāi)發(fā),這兩個(gè)公司本來(lái)相互獨(dú)立,但是這兩個(gè)公司如果需要把兩個(gè)項(xiàng)目結(jié)合起來(lái),兩個(gè)項(xiàng)目之間需要通信,此時(shí)兩個(gè)項(xiàng)目基于不同的平臺(tái)。
第三個(gè)例子,一個(gè)公司使用的服務(wù)器是 Windows Server 2008,那么它如何和 IT 供應(yīng)商的UNIX 或是 Linux 服務(wù)器進(jìn)行連接?
WebServices特點(diǎn)介紹
WebServices 提供一個(gè)建立分布式應(yīng)用的平臺(tái),使得運(yùn)行在不同操作系統(tǒng)和不同設(shè)備上的軟件,或者是用不同的程序語(yǔ)言和不同廠商的軟件開(kāi)發(fā)工具開(kāi)發(fā)的軟件,所有可能的已開(kāi)發(fā)和部署的軟件,能夠利用這一平臺(tái)實(shí)現(xiàn)分布式計(jì)算的目的。WebServices的思想是:使得應(yīng)用程序也具有 Web 分布式編程模型的松散耦合性。
1. WebServices 是自包含的。即在客戶端不需要附加任何軟件,只要客戶機(jī)支持 HTTP 和XML 就 OK 了。
2. WebServices 是自我描述的。在客戶端和服務(wù)端都不需要知道除了請(qǐng)求和響應(yīng)消息的格式和內(nèi)容外的任何事。
3. WebServices 是跨平臺(tái)和跨語(yǔ)言的?蛻舳撕头⻊(wù)端均可以在不同的平臺(tái)和語(yǔ)言環(huán)境中實(shí)現(xiàn),同時(shí),不必為了支持 WebServices 而更改現(xiàn)有的代碼。
4. WebServices 是基于開(kāi)放和標(biāo)準(zhǔn)的。XML和HTTP 是WebServices 的主要技術(shù)基礎(chǔ),而 XML 和HTTP早就成了業(yè)內(nèi)標(biāo)準(zhǔn)了。
5. WebServices 是動(dòng)態(tài)的。
6. WebServices 是可以組合的。即通過(guò)一個(gè) WebService 訪問(wèn)另外一個(gè) WebService 來(lái)達(dá)到組合的目的。通過(guò)組合 WebServices 便可以將簡(jiǎn)單的 WebServices 聚合成為實(shí)現(xiàn)更多復(fù)雜功能的復(fù)雜的服務(wù)。
7. WebServices 是松散耦合的。它完全解耦了客戶端和服務(wù)端。
8. WebServices 提供編程訪問(wèn)的能力。換句話說(shuō),就是可以通過(guò)編寫(xiě)程序來(lái)訪問(wèn)Web 服務(wù)。
9. WebServices 是基于經(jīng)過(guò)考驗(yàn)的成熟技術(shù)上構(gòu)建的。比如 XML 和 HTTP。
10. WebServices 提供打包現(xiàn)有應(yīng)用程序的能力。
11. WebServices 通過(guò)網(wǎng)絡(luò)進(jìn)行發(fā)布,查找和使用。
WebServices到底是什么?
WebServices是基于 XML 和 HTTP 的,(當(dāng)然這是最基本的 WebServices ,也可以通過(guò) HTTPS 或者是 SMTP 來(lái)實(shí)現(xiàn)通信),不論Java平臺(tái)還是.Net平臺(tái)開(kāi)發(fā)(或者是是使用 Web 服務(wù)),這一切都和Web服務(wù)無(wú)關(guān),只需要關(guān)注通過(guò) HTTP 協(xié)議來(lái)傳輸 XML 就 OK了,至于這些 XML 是如何被服務(wù)提供者開(kāi)發(fā)出來(lái)的或者這些 XML 是如何被服務(wù)請(qǐng)求者使用的(小編按:如何實(shí)現(xiàn)很重要,后面會(huì)提到),這些都和應(yīng)用開(kāi)發(fā)無(wú)關(guān),這里可以看出Web服務(wù)的另一個(gè)優(yōu)勢(shì),那就是跨語(yǔ)言跨平臺(tái)(實(shí)現(xiàn)協(xié)同工作),通過(guò) Web 服務(wù)可以實(shí)現(xiàn)不同應(yīng)用程序和不同平臺(tái)之間的通信,Web服務(wù)允許獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件或者是軟件平臺(tái)和編寫(xiě)服務(wù)所使用編程語(yǔ)言來(lái)實(shí)現(xiàn)(小編按:WebServices對(duì)硬件基礎(chǔ)、軟件平臺(tái)、開(kāi)發(fā)語(yǔ)言不關(guān)心)。
以上可以回答開(kāi)頭引子中提出的三個(gè)問(wèn)題,即:
1)QQ天氣預(yù)報(bào)問(wèn)題:通過(guò)訪問(wèn)氣象局發(fā)布的天氣狀況的WebServices來(lái)實(shí)現(xiàn)
2)Java 應(yīng)用程序和. Net應(yīng)用程序之間的通信
3)解決 Linux 或是UNIX 和 Windows Server 2008 之間進(jìn)行連接問(wèn)題。
另外通過(guò)使用不同的 Web 服務(wù),我們可以從不同的平臺(tái)和操作系統(tǒng)進(jìn)行訪問(wèn),從而提高不同應(yīng)用程序共享數(shù)據(jù)和應(yīng)用的能力。
WebServices三種基本元素之SOAP
SOAP 即 Simple Object AccessProtocol,也就是簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議。其指導(dǎo)理念是“唯一一個(gè)沒(méi)有發(fā)明任何新技術(shù)的技術(shù)”(小編按:通過(guò)XML和HTTP就可以實(shí)現(xiàn)),是一種用于訪問(wèn) Web 服務(wù)的協(xié)議。即SOAP基于XML和HTTP,其通過(guò)XML來(lái)實(shí)現(xiàn)消息描述,然后再通過(guò) HTTP 實(shí)現(xiàn)消息傳輸。
SOAP 協(xié)議的一個(gè)重要特點(diǎn)是它獨(dú)立于底層傳輸機(jī)制,Web 服務(wù)應(yīng)用程序可以根據(jù)需要選擇自己的數(shù)據(jù)傳輸協(xié)議,可以在發(fā)送消息時(shí)來(lái)確定相應(yīng)傳輸機(jī)制。
由于 HTTP 協(xié)議本身的一些特點(diǎn)和局限性,使得當(dāng) SOAP 使用HTTP 綁定的 Web 服務(wù)并不能滿足某些企業(yè)應(yīng)用的需求。比如,HTTP 不是一個(gè)可靠傳輸協(xié)議,所以有可能在傳輸過(guò)程中出現(xiàn)問(wèn)題,然后 HTTP 協(xié)議基于Request/Response 模型,也就是說(shuō)客戶端需要在等待響應(yīng)消息接收完成后才能繼續(xù)執(zhí)行,從而容易出現(xiàn)時(shí)延的問(wèn)題。
基于上面的這些需求,便需要選擇合適的傳輸協(xié)議了。
WebServices三種基本元素之 WSDL
WSDL 即Web Services Description Language也就是Web服務(wù)描述語(yǔ)言,是基于 XML的用于描述 Web 服務(wù)以及如何訪問(wèn) Web 服務(wù)的語(yǔ)言。
服務(wù)提供者通過(guò)服務(wù)描述將所有用于訪問(wèn) Web服務(wù)的規(guī)范傳送給服務(wù)請(qǐng)求者,要實(shí)現(xiàn) Web服務(wù)體系結(jié)構(gòu)的松散耦合,服務(wù)描述是一個(gè)關(guān)鍵,不管是請(qǐng)求者還是服務(wù)提供者,通過(guò)服務(wù)描述便可以不必了解對(duì)方的底層平臺(tái),編程語(yǔ)言等,服務(wù)描述與底層的 SOAP 基礎(chǔ)結(jié)構(gòu)相結(jié)合,足以封裝服務(wù)請(qǐng)求者的應(yīng)用程序和服務(wù)提供者的 Web服務(wù)之間的這個(gè)細(xì)節(jié)。
WSDL 描述了 Web服務(wù)的三個(gè)基本屬性:
1. 服務(wù)所提供的操作
2. 如何訪問(wèn)服務(wù)
3. 服務(wù)位于何處(通過(guò) URL 來(lái)確定就 OK 了)
WebServices三種基本元素之 UDDI
UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述、發(fā)現(xiàn)以及整合,用來(lái)描述了訪問(wèn)特定的Web服務(wù)的一些相關(guān)的信息。
前面說(shuō)到WSDL是用來(lái)描述了訪問(wèn)特定的 Web 服務(wù)的一些相關(guān)的信息,但是如何來(lái)發(fā)現(xiàn)我們所需要的 Web 服務(wù),而 Web 服務(wù)提供商又如何將自己開(kāi)發(fā)的 Web 服務(wù)公布到因特網(wǎng)上?
這就需要使用到 UDDI,它是一個(gè)跨產(chǎn)業(yè),跨平臺(tái)的開(kāi)放性架構(gòu),可以幫助 Web 服務(wù)提供商在互聯(lián)網(wǎng)上發(fā)布 Web 服務(wù)的信息。
UDDI 是一種目錄服務(wù),企業(yè)可以通過(guò) UDDI 來(lái)注冊(cè)和搜索 Web 服務(wù),簡(jiǎn)單來(lái)說(shuō),UDDI 就是一個(gè)目錄,只不過(guò)在這個(gè)目錄中存放的是一些關(guān)于 Web 服務(wù)的信息而已。
小編按:WebServices三種基本元素在科普文里的描述比較難懂,事實(shí)上這些理論描述和實(shí)際應(yīng)用的感受完全不同。引用一個(gè)非常簡(jiǎn)單的比喻,可能更加容易理解:
Web Services:是一個(gè)可以將應(yīng)用程序變?yōu)閣eb應(yīng)用程序,將自己本地的應(yīng)用程序信息通過(guò)網(wǎng)絡(luò),發(fā)布到網(wǎng)絡(luò)當(dāng)中,讓別人通過(guò)瀏覽器等訪問(wèn)本地的信息。
SOAP:是定義訪問(wèn)Web Services的協(xié)議,也就是哪些是可以訪問(wèn)的,怎樣的格式才能夠訪問(wèn),返回的格式又是什么樣的,這些都是SOAP定義的。
WSDL:是描述SOAP協(xié)議的具體語(yǔ)言,用WSDL實(shí)現(xiàn)SOAP協(xié)議,把它寫(xiě)成文件,直接訪問(wèn)。
UDDI:是把這些web services 收集和存儲(chǔ)起來(lái),這樣當(dāng)別人訪問(wèn)這些信息的時(shí)候就從UDDI中查找,看有沒(méi)有這個(gè)信息存在。
歷史
web廣泛用到的技術(shù):
1.TCP/IP:通用網(wǎng)絡(luò)協(xié)議,被各種設(shè)備使用
2.HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用):通用用戶界面,可以使用HTML標(biāo)簽顯示數(shù)據(jù)
3.NET: 不同應(yīng)用程序間共享數(shù)據(jù)與數(shù)據(jù)交換
4.Java:寫(xiě)一次可以在任何系統(tǒng)運(yùn)行的通用編程語(yǔ)言,因?yàn)閖ava具有跨平臺(tái)特性
5.XML(eXtensible Markup Language):通用數(shù)據(jù)表達(dá)語(yǔ)言,在web上傳送結(jié)構(gòu)化數(shù)據(jù)的容易方法
他們的特點(diǎn)是其開(kāi)放性,跨平臺(tái)性,開(kāi)放性正是Web services的基礎(chǔ)。
近幾年來(lái),Internet的迅猛發(fā)展使其成為全球信息傳遞與共享的巨大的資源庫(kù)。越來(lái)越多的網(wǎng)絡(luò)環(huán)境下的Web應(yīng)用系統(tǒng)被建立起來(lái),利用HTML、CGI等Web技術(shù)可以輕松地在Internet環(huán)境下實(shí)現(xiàn)電子商務(wù)、電子政務(wù)等多種應(yīng)用。然而這些應(yīng)用可能分布在不同的地理位置,使用不同的數(shù)據(jù)組織形式和操作系統(tǒng)平臺(tái),加上應(yīng)用不同所造成的數(shù)據(jù)不一致性,使得如何將這些高度分布的數(shù)據(jù)集中起來(lái)并得以充分利用成為急需解決的問(wèn)題。
隨著網(wǎng)絡(luò)技術(shù)、網(wǎng)絡(luò)運(yùn)行理念的發(fā)展,人們提出一種新的利用網(wǎng)絡(luò)進(jìn)行應(yīng)用集成的解決方案——Web Service。Web Service是一種新的Web應(yīng)用程序分支,其可以執(zhí)行從簡(jiǎn)單的請(qǐng)求到復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。因此,Web Service是構(gòu)造分布式、模塊化應(yīng)用程序和面向服務(wù)應(yīng)用集成的最新技術(shù)和發(fā)展趨勢(shì)。
趨勢(shì)
1.內(nèi)容更加動(dòng)態(tài):一個(gè)web service必須能合并從多個(gè)不同來(lái)源的內(nèi)容,可以包括股票,天氣,新聞等,在傳統(tǒng)環(huán)境中的內(nèi)容,如存貨水平,購(gòu)物訂單或者目錄信息等,都從后端系統(tǒng)而來(lái);
2.帶寬更加便宜:web services可以分發(fā)各種類型的內(nèi)容(音頻,視頻流等);
3.存儲(chǔ)更便宜::web services必須能聰明地處理大量數(shù)據(jù),意味著要使用數(shù)據(jù)庫(kù),LDAP目錄,緩沖,和負(fù)載平衡軟件等技術(shù)保持可擴(kuò)展能力;
4.普遍式計(jì)算更重要:web services不能要求客戶使用某一版本的windows的傳統(tǒng)瀏覽器,必須支持各種設(shè)備,平臺(tái),瀏覽器類型,各種內(nèi)容類型;
兩種重要技術(shù)
要達(dá)到這樣的目標(biāo),Web services要使用兩種技術(shù):
1.XML:XML是在web上傳送結(jié)構(gòu)化數(shù)據(jù)的偉大方式,Web services要以一種可靠的自動(dòng)的方式操作數(shù)據(jù),HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)不會(huì)滿足要求,而XML可以使web services十分方便的處理數(shù)據(jù),它的內(nèi)容與表示的分離十分理想;
2.SOAP:SOAP使用XML消息調(diào)用遠(yuǎn)程方法,這樣web services可以通過(guò)HTTP協(xié)議的post和get方法與遠(yuǎn)程機(jī)器交互,而且,SOAP更加健壯和靈活易用;
其他像UDDI和WSDL技術(shù)與XML和SOAP技術(shù)緊密結(jié)合用于服務(wù)發(fā)現(xiàn)。
【W(wǎng)ebServices簡(jiǎn)介】相關(guān)文章:
苦丁茶的簡(jiǎn)介10-27
圍棋的簡(jiǎn)介09-14
美術(shù)的簡(jiǎn)介08-26
泰國(guó)舞蹈簡(jiǎn)介04-07
茶藝師簡(jiǎn)介03-25
ACCP認(rèn)證簡(jiǎn)介11-10
京劇的起源簡(jiǎn)介04-02
豫劇起源簡(jiǎn)介03-08