什麼是Web Server

來源:互聯網
上載者:User

標籤:訊息   bsp   services   實現   理解   表示   sdn   知識   自動   

WebService到底是什嗎?

   一言以蔽之:WebService是一種跨程式設計語言和跨作業系統平台的遠程調用技術。

WebService平台技術

  XML+XSD,SOAP和WSDL就是構成WebService平台的三大技術。

XML+XSD:

  WebService採用HTTP協議傳輸資料,採用XML格式封裝資料(即XML中說明調用遠程服務物件的哪個方法,傳遞的參數是什麼,以及服務物件的返回結果是什麼)。XML是WebService平台中表示資料的格式。除了易於建立和易於分析外,XML主要的優點在於它既是平台無關的,又是廠商無關的。無關性是比技術優越性更重要的:軟體廠商是不會選擇一個由競爭者所發明的技術的。 

  XML解決了資料表示的問題,但它沒有定義一套標準的資料類型,更沒有說怎麼去擴充這套資料類型。例如,整形數到底代表什嗎?16位,32位,64位?這些細節對實現互通性很重要。XML Schema(XSD)就是專門解決這個問題的一套標準。它定義了一套標準的資料類型,並給出了一種語言來擴充這套資料類型。WebService平台就是用XSD來作為其資料類型系統的。當你用某種語言(如VB.NET或C#)來構造一個Web service時,為了符合WebService標準,所有你使用的資料類型都必須被轉換為XSD類型。你用的工具可能已經自動幫你完成了這個轉換,但你很可能會根據你的需要修改一下轉換過程。

SOAP:

   WebService通過HTTP協議發送請求和接收結果時,發送的請求內容和結果內容都採用XML格式封裝,並增加了一些特定的HTTP訊息頭,以說明HTTP訊息的內容格式,這些特定的HTTP訊息頭和XML內容格式就是SOAP協議。SOAP提供了標準的RPC方法來調用Web Service。

  SOAP協議 = HTTP協議 + XML資料格式

  SOAP協議定義了SOAP訊息的格式,SOAP協議是基於HTTP協議的,SOAP也是基於XML和XSD的,XML是SOAP的資料編碼方式。打個比喻:HTTP就是普通公路,XML就是中間的綠色隔離帶和兩邊的防護欄,SOAP就是普通公路經過加隔離帶和防護欄改造過的高速公路。

WSDL:

   好比我們去商店買東西,首先要知道商店裡有什麼東西可買,然後再來購買,商家的做法就是張貼廣告海報。 WebService也一樣,WebService用戶端要調用一個WebService服務,首先要有知道這個服務的地址在哪,以及這個服務裡有什麼方法可以調用,所以,WebService務器端首先要通過一個WSDL檔案來說明自己家裡有啥服務可以對外調用,服務是什麼(服務中有哪些方法,方法接受的參數是什麼,傳回值是什麼),服務的網路地址用哪個url地址表示,服務通過什麼方式來調用。

   WSDL(Web Services Description Language)就是這樣一個基於XML的語言,用於描述Web Service及其函數、參數和傳回值。它是WebService用戶端和伺服器端都能理解的標準格式。因為是基於XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的,這將是一個很大的好處。一些最新的開發工具既能根據你的Web service產生WSDL文檔,又能匯入WSDL文檔,產生調用相應WebService的代理類代碼。

  WSDL檔案儲存在Web伺服器上,通過一個url地址就可以訪問到它。用戶端要調用一個WebService服務之前,要知道該服務的WSDL檔案的地址。WebService服務提供者可以通過兩種方式來暴露它的WSDL檔案地址:1.註冊到UDDI伺服器,以便被人尋找;2.直接告訴給用戶端調用者。

WebService開發

  WebService開發可以分為伺服器端開發和用戶端開發兩個方面:

   服務端開發:把公司內部系統的業務方法發布成WebService服務,供遠程合作單位和個人調用。(藉助一些WebService框   架可以很輕鬆地把自己的業務對象發布成WebService服務,Java方面的典型WebService架構套件括:axis,xfire,cxf等,java ee伺服器通常也支援發布WebService服務,例如JBoss。)
   用戶端開發:調用別人發布的WebService服務,大多數人從事的開發都屬於這個方面,例如,調用天氣預報WebService服務。(使用廠商的WSDL2Java之類的工具產生靜態調用的代理類代碼;使用廠商提供的用戶端編程API類;使用SUN公司早期標準的jax-rpc開發包;使用SUN公司最新標準的jax-ws開發包。當然SUN已被Oracle收購)

   WebService的工作調用原理:對用戶端而言,我們給這各類WebService用戶端API傳遞wsdl檔案的url地址,這些API就會建立出底層的代理類,我調用這些代理,就可以訪問到webservice服務。代理類把用戶端的方法調用變成soap格式的請求資料再通過HTTP協議發出去,並把接收到的soap資料變成傳回值返回。對服務端而言,各類WebService架構的本質就是一個大大的Servlet,當遠程調用用戶端給它通過http協議發送過來soap格式的請求資料時,它分析這個資料,就知道要調用哪個java類的哪個方法,於是去尋找或建立這個對象,並調用其方法,再把方法返回的結果封裝成soap格式的資料,通過http響應訊息回給用戶端。

 

什麼是Web Server

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.