WebService學習一

   什麼是WebService?
  Web service是一個 平臺獨立的,低耦合的,自包含的、基於可 編程的web的應用程序,可以使用開放的 XML標準通用標記語言下的一個子集) 標準描述、發佈、發現、協調和配置這些應用程序,用於開發分佈式的互操做的 應用程序 
  Web Service技術, 能使得運行在不一樣機器上的不一樣應用無須藉助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規範實施的應用之間, 不管它們所使用的語言、 平臺或內部協議是什麼, 均可以相互交換數據。Web Service是自描述、 自包含的可用網絡模塊, 能夠執行具體的業務功能。Web Service也很容易部署, 由於它們基於一些常規的產業標準以及已有的一些技術,諸如 標準通用標記語言下的子集 XML、HTTP。Web Service減小了應用接口的花費。Web Service爲整個企業甚至多個組織之間的業務流程的集成提供了一個通用機制。
  一 句話歸納:WebService是一種跨編程語言和跨操做系統平臺的遠程調用技術。
  

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

  所謂遠程調用,就是一臺計算機a上的一個程序能夠調用到另一臺計算機b上的一個對象的方法。譬如從天氣預報系統中獲取某個城市的天氣數據在本身系統中進行展現;從證券交易系統中獲取某隻股票的交易信息在本身的系統中進行展現;又譬如一個商城系統中可以展現快遞的跟蹤信息,而這些信息就是經過webservice從具體的快遞公司的系統中獲取的數據。spring

  其實能夠從多個角度來理解WebService,從表面上看,WebService就是一個應用程序向外界暴露出一個能經過Web進行調用的API,也就是說能用編程的方法經過Web來調用這個應用程序。咱們把調用這個WebService的應用程序叫作客戶端,而把提供這個WebService的應用程序叫作服務端。從深層次看,WebService是創建可互操做的分佈式應用程序的新平臺,是一個平臺,是一套標準。它定義了應用程序如何在Web上實現互操做性,你能夠用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要咱們能夠經過Web service標準對這些服務進行查詢和訪問。編程

XML和XSD
  可擴展的 標記語言標準通用標記語言下的一個子集)是Web Service平臺中表示數據的基本格式。除了易於創建和易於分析外,XML主要的優勢在於它既與平臺無關,又與廠商無關。XML是由萬維網協會(W3C)建立,W3C制定的XML SchemaXSD 定義了一套標準的 數據類型,並給出了一種語言來擴展這套 數據類型
Web Service平臺是用XSD來做爲 數據類型系統的。當你用某種語言如VB. NET或C# 來構造一個Web Service時,爲了符合Web Service標準,全部你使用的 數據類型都必須被轉換爲XSD類型。如想讓它使用在不一樣平臺和不一樣 軟件的不一樣組織間傳遞,還須要用某種東西將它包裝起來。這種東西就是一種協議,如 SOAP。
SOAP
  SOAP即 簡單對象訪問協議(Simple Object Access Protocol),它是用於交換 XML標準通用標記語言下的一個子集)編碼信息的輕量級協議。它有三個主要方面:XML-envelope爲描述信息內容和如何處理內容定義了框架,將程序對象編碼成爲XML對象的規則,執行 遠程過程調用(RPC)的約定。SOAP能夠運行在任何其餘 傳輸協議上。例如,你可使用 SMTP,即因特網 電子郵件協議來傳遞SOAP消息,這但是頗有誘惑力的。在 傳輸層之間的頭是不一樣的,但XML有效負載保持相同。
Web Service 但願實現不一樣的系統之間可以用「 軟件-軟件對話」的方式相互調用,打破了軟件應用、網站和各類設備之間的格格不入的狀態,實現「基於Web無縫集成」的目標。
WSDL
  Web Service描述語言WSDL 就是用機器能閱讀的方式提供的一個正式描述文檔而基於 XML標準通用標記語言下的一個子集)的語言,用於描述Web Service及其函數、參數和返回值。由於是基於XML的,因此WSDL既是機器可閱讀的,又是人可閱讀的。
UDDI
  UDDI 的目的是爲電子商務創建標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業可以發現的訪問協議的實現標準。

Webservice經常使用框架有JWS、Axis二、XFire以及CXF。網絡

下面分別介紹一個這幾種Web Service框架的基本概念架構

  一、JWS是Java語言對WebService服務的一種實現,用來開發和發佈服務。而從服務自己的角度來看JWS服務是沒有語言界限的。可是Java語言爲Java開發者提供便捷發佈和調用WebService服務的一種途徑。
  二、Axis2是Apache下的一個重量級WebService框架,準確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能製做和發佈WebService,並且能夠生成Java和其餘語言版WebService客戶端和服務端代碼。這是它的優點所在。可是,這也不可避免的致使了Axis2的複雜性,使用過的開發者都知道,它所依賴的包數量和大小都是很驚人的,打包部署發佈都比較麻煩,不能很好的與現有應用整合爲一體。可是若是你要開發Java以外別的語言客戶端,Axis2提供的豐富工具將是你不二的選擇。
  三、XFire是一個高性能的WebService框架,在Java6以前,它的知名度甚至超過了Apache的Axis2,XFire的優勢是開發方便,與現有的Web整合很好,能夠融爲一體,而且開發也很方便。可是對Java以外的語言,沒有提供相關的代碼工具。XFire後來被Apache收購了,緣由是它太優秀了,收購後,隨着Java6 JWS的興起,開源的WebService引擎已經再也不被看好,漸漸的都敗落了。
  四、CXF是Apache旗下一個重磅的SOA簡易框架,它實現了ESB(企業服務總線)。CXF來自於XFire項目,通過改造後造成的,就像目前的Struts2來自WebWork同樣。能夠看出XFire的命運會和WebWork的命運同樣,最終會淡出人們的視線。CXF不可是一個優秀的Web Services / SOAP / WSDL 引擎,也是一個不錯的ESB總線,爲SOA的實施提供了一種選擇方案,固然他不是最好的,它僅僅實現了SOA架構的一部分。
  注:對於Axis2與CXF之間的關係,一個是Axis2出現的時間較早,而CXF的追趕速度快。框架

如何抉擇: 
  一、若是應用程序須要多語言的支持,Axis2應當是首選了;
  二、若是應用程序是遵循 spring哲學路線的話,Apache CXF是一種更好的選擇,特別對嵌入式的Web Services來講;
  三、若是應用程序沒有新的特性須要的話,就還是用原來項目所用的框架,好比 Axis1,XFire,Celtrix或BEA等等廠家本身的Web Services實現,就別勞民傷財了。編程語言

 

Web Service開發實例
  1. 利用WebService實現數據添加
  2. 利用WebService實現數據刪除
  3. 利用WebService給手機發短信  [3] 
適合使用Web Service的狀況
  1. 跨越 防火牆
  2. 應用程序集成;
  3. B2B集成;
  4. 軟件重用
不適合使用Web服務的狀況
  1. 單機 應用程序
  2. 局域網上的同構應用程序
相關文章
相關標籤/搜索