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