webservice是什麼?

    一談到webservice,老是會出現jax-ws,axis,cxf這樣子的技術字眼,可是webservice究竟是什麼呢,和上面那些技術又有着怎樣的關係呢?java


1、web service究竟是什麼?web


    先看百度百科,Web service是一個平臺獨立的,低耦合的,自包含的、基於可編程的web的應用程序,可以使用開放的XML標準通用標記語言下的一個子集)標準描述、發佈、發現、協調和配置這些應用程序,用於開發分佈式的互操做的應用程序編程

      上面文縐縐的,一言以蔽之:WebService是一種跨編程語言和跨操做系統平臺的遠程調用技術服務器

     所謂跨編程語言和跨操做平臺,就是說服務端程序採用java編寫,客戶端程序則能夠採用其餘編程語言編寫,反之亦然!跨操做系統平臺則是指服務端程序和客戶端程序能夠在不一樣的操做系統上運行。網絡

   所謂遠程調用,就是一臺計算機a上的一個程序能夠調用到另一臺計算機b上的一個對象的方法,譬如,銀聯提供給商場的pos刷卡系統,商場的POS機轉帳調用的轉帳方法的代碼實際上是跑在銀行服務器上。再好比,amazon,天氣預報系統,淘寶網,校內網,百度等把本身的系統服務以webservice服務的形式暴露出來,讓第三方網站和程序能夠調用這些服務功能,這樣擴展了本身系統的市場佔有率,往大的概念上吹,就是所謂的SOA應用。框架


2、WebService平臺技術編程語言

   XML+XSD,SOAP和WSDL就是構成WebService平臺的三大技術。下面分別簡單介紹他們的做用。分佈式

   XML+XSD:ide

       WebService採用HTTP協議傳輸數據,採用XML格式封裝數據,XML是WebService平臺中表示數據的格式,xsd也就是XML Schema,用來定義一個xml。函數

    SOAP:Simple Object Access Protocol(簡單對象訪問協議),SOAP協議 = HTTP協議 + XML數據格式

      用xml表示數據以後,經過http協議傳輸,並增長了一些特定的HTTP消息頭,以說明HTTP消息的內容格式,這些特定的HTTP消息頭和XML內容格式就是SOAP協議。

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

 wsdl:Web Services Description Language(網絡服務描述語言)。

     一個基於XML的語言,用於描述Web Service及其函數、參數和返回值。它是WebService客戶端和服務器端都能理解的標準格式。

        比如咱們去商店買東西,首先要知道商店裏有什麼東西可買,而後再來購買,商家的作法就是張貼廣告海報。 


3、WebService開發

  WebService開發能夠分爲服務器端開發和客戶端開發兩個方面:

   服務端開發:把公司內部系統的業務方法發佈成WebService服務,向外界暴露出wsdl地址,供遠程合做單位和我的調用。(藉助一些WebService框 架能夠很輕鬆地把本身的業務對象發佈成WebService服務,Java方面的典型WebService框架包括:axis,xfire,cxf等,後面會詳細介紹如何開發服務端)


   客戶端開發:經過別人暴露的wsdl地址,調用別人發佈的WebService服務,大多數人從事的開發都屬於這個方面,例如,調用天氣預報WebService服務。(使用廠商的WSDL2Java之類的工具生成靜態調用的代理類代碼;使用廠商提供的客戶端編程API類;使用SUN公司早期標準的jax-rpc開發包;使用SUN公司最新標準的jax-ws開發包。固然SUN已被ORACLE收購)


4、webService工做原理

   WebService的工做調用原理:

     對客戶端而言,咱們給這各種WebService客戶端API傳遞wsdl文件的url地址,這些API就會建立出底層的代理類,我調用這些代理,就能夠訪問到webservice服務。代理類把客戶端的方法調用變成soap格式的請求數據再經過HTTP協議發出去,並把接收到的soap數據變成返回值返回。

    對服務端而言,各種WebService框架的本質就是一個大大的Servlet,當遠程調用客戶端給它經過http協議發送過來soap格式的請求數據時,它分析這個數據,就知道要調用哪一個java類的哪一個方法,因而去查找或建立這個對象,並調用其方法,再把方法返回的結果包裝成soap格式的數據,經過http響應消息回給客戶端。



   本文參考於:http://blog.csdn.net/wooshn/article/details/8069087,好文章應該獲得分享!

相關文章
相關標籤/搜索