Web服務(wù)
定義
核心定義
考慮到并沒某個獨立文檔包含一切相關(guān)內(nèi)容,可采用模塊化的方式給出對WEB服務(wù)的描述,但不能給出一個“絕對全面和準確”的定義。受外部環(huán)境和實現(xiàn)技術(shù)影響,各方給出的核心定義可能稍有出入,但通常包括:
這些標準由這些組織制訂:W3C負責(zé)XML、SOAP及WSDL;OASIS(英語:OASIS (organization))負責(zé)UDDI。
協(xié)議集
為提高WEB服務(wù)間的互操作能力,WS-I還特別發(fā)布了WEB服務(wù)協(xié)議集(Profile)。協(xié)議集包含了一系列特定版本的核心定義(諸如SOAP和WSDL),以及對其使用上的限制與約束。WS-I還發(fā)布了用于部署協(xié)議集兼容WEB服務(wù)的測試工具及相關(guān)用例。
WS-系列追加定義
為擴展WEB服務(wù)能力,一些新的標準已經(jīng)或正在被開發(fā)。這些標準通常被冠以WS字頭(Web Service的簡稱),以下是一個WS系列追加標準的不完全列表:
一直以來,W3C負責(zé)制定了不少WS追加定義,但近來此舉開始受到懷疑。一些人呼吁W3C作為網(wǎng)絡(luò)和語義網(wǎng)構(gòu)建者應(yīng)當(dāng)把精力放在核心網(wǎng)絡(luò)本身,而不是為WEB服務(wù)改換版本。特別是2007年2月的企業(yè)級WEB服務(wù)論壇上,對W3C不再充當(dāng)WEB服務(wù)定義者的訴求開始表面化。 此外,OASIS對WEB服務(wù)擴展實施了許多標準化工作。包括WEB服務(wù)資源框架以及WSDM。
使用WEB服務(wù)的方式
WEB服務(wù)實際上是一組工具,并有多種不同的方法調(diào)用之。三種最普遍的手段是:遠程過程調(diào)用(RPC),服務(wù)導(dǎo)向架構(gòu)(SOA)以及表述性狀態(tài)轉(zhuǎn)移(REST)。
遠程過程調(diào)用
WEB服務(wù)提供一個分布式函數(shù)或方法接口供用戶調(diào)用,這是一種比較傳統(tǒng)的方式。通常,在WSDL中對RPC接口進行定義(類似于早期的XML-RPC)。
盡管最初的WEB服務(wù)廣泛采用RPC方式部署,但針對其過于緊密之耦合性的批評聲也隨之不斷。這是因為RPC式WEB服務(wù)實質(zhì)上是利用一個簡單的映射,以把用戶請求直接轉(zhuǎn)化成為一個特定語言編寫的函數(shù)或方法。如今,多數(shù)服務(wù)提供商認定此種方式在未來將難有作為,在他們的推動下,WS-I基本協(xié)議集(WS-I Basic Profile)已不再支持遠程過程調(diào)用。
服務(wù)導(dǎo)向架構(gòu)
現(xiàn)在,業(yè)界比較關(guān)注的是遵從服務(wù)導(dǎo)向架構(gòu)(Service-oriented architecture,SOA)概念來構(gòu)筑WEB服務(wù)。在服務(wù)導(dǎo)向架構(gòu)中,通訊由消息驅(qū)動,而不再是某個動作(方法調(diào)用)。這種WEB服務(wù)也被稱作面向消息的服務(wù)。
SOA式WEB服務(wù)得到了大部分主要軟件供應(yīng)商以及業(yè)界專家的支持和肯定。作為與RPC方式的最大差別,SOA方式更加關(guān)注如何去連接服務(wù)而不是去特定某個實現(xiàn)的細節(jié)。WSDL定義了聯(lián)絡(luò)服務(wù)的必要內(nèi)容。
表述性狀態(tài)轉(zhuǎn)移
表述性狀態(tài)轉(zhuǎn)移式(Representational state transfer,REST)WEB服務(wù)類似于HTTP或其他類似協(xié)議,它們把接口限定在一組廣為人知的標準動作中(比如HTTP的GET、PUT、DELETE)以供調(diào)用。此類WEB服務(wù)關(guān)注與那些穩(wěn)定的資源的互動,而不是消息或動作。
此種服務(wù)可以通過WSDL來描述SOAP消息內(nèi)容,通過HTTP限定動作接口;或者完全在SOAP中對動作進行抽象。
批評
一些人抱怨,WEB服務(wù)(具象化狀態(tài)轉(zhuǎn)移式除外)過于復(fù)雜,認為它太過于偏重那些大型軟件開發(fā)商,而不利于開源項目。但是至今不少開發(fā)工具已經(jīng)具備自動化產(chǎn)生具象物件,已經(jīng)減少web服務(wù)的調(diào)用難度。例如Microsoft visual studio、eclipse 等等IDE工具。使用者只需要專注于調(diào)用與實行。
WEB服務(wù)的性能也時常是人們關(guān)注的一個問題。由于使用XML作為消息格式,并以SOAP封裝,由HTTP傳輸,WEB服務(wù)始終處于較高的開銷狀態(tài)。不過目前一些新興技術(shù)正在試圖解決此一問題,諸如新的XML處理模型致力于解決XML這一部分的性能。
類似方式
無論是在WEB服務(wù)出現(xiàn)以前,還是現(xiàn)在,一直不斷有各種同類技術(shù)問世。比如,RMI作為這樣一種中間件系統(tǒng)就得到了廣泛部署。CORBA和DCOM則更加雄心壯志,兩者都嘗試將作用域波及到分布式對象,這一點也為WEB服務(wù)所模仿。
這些類似方式往往借助于XML-RPC和HTTP本身,而不依靠SOAP封裝參數(shù)。
參見
SOAP
WSDL
UDDI
WSCI
BPEL4WS
XML
WCF
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
- 有價值
- 一般般
- 沒價值
{{item.userName}} 舉報
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報
{{_reply.time}}