標籤:java android web service
一、Web Service是什嗎?
就是網路服務,根據W3C的定義,WebServices(Web服務)是一個用於支援網路間不同機器互操作的軟體系統,它是一種自包含、自描述和模組化的應用程式,它可以在網路中被描述、發布和調用,可以將它看作是基於網路的、分布式的模組化組件。
Web Services是建立在通用協議的基礎之上的,包括HTTP、SOAP、UDDI、WSDL等。其中Web Service三要素就是SOAP、WSDL和UDDI。 SOAP用來描述傳遞資訊的格式, WSDL用來描述如何訪問具體的介面,UDDI用來管理,分發,查詢webService。
(以上粗體部分內容出自百度百科)
WebServices的優勢在於提供了不同應用程式平台之間的互操作,它使得基於組件的開發和Web相結合的效果達到最佳。它是基於HTTP協議的,調用請求和回應訊息都可以穿過防火牆,不需要更改防火牆的設定,這樣就避免了使用特殊連接埠進行通訊時無法穿越防火牆的問題。
歸納總結——Web service 就是一個應用程式,它向外界暴露出一個能夠通過Web進行調用的API。
其實,說白了,就是某個伺服器,你可以理解為網站,開放了(即對外公開)某個功能或者方法,我們通過 web service編程就可以擷取到它公開的資訊,從而為自己所用。比如說,某個天氣網站,對外公開了其天氣介面,那麼我們就可以通過web service擷取到每天的地點情況了。需要注意的是,上面說到,web service是基於通用協議的,這個跟JAVA一樣,具備很好的跨平台跨語言特性!但是說是這麼說的,Web Service真的是這樣的嗎?我目前因為實踐少而不得而知,但是下面這篇博文卻以曆史傳記的形式說明了
一些事情。我們可以參詳下——
SOAP和WebService的那些事
二、SOAP、 WSDL與UDDI
上面說到, SOAP、WSDL和UDDI就是Web Service的三大組件,其中SOAP和WSDL是必選的,然後UDDI是可選的。所以我們要先來瞭解這幾個協議。
(1)SOAP
全稱就是Simple Object Access Protocol,簡易物件存取通訊協定 (SOAP),是用於交換XML(標準通用標記語言 (SGML)下的一個子集)編碼資訊的輕量級協議。目前常用的有兩個版本,SOAP1.1和 SOAP 1.2。SOAP的優點在於——它可以運行在任意的其他協議上,比如SMTP,HTTP等。
(2)WSDL
全稱就是(Web Services DescriptionLanguage,即Web服務描述語言)是一種用來描述Web服務的XML語言,它描述了Web服務的功能、介面、參數、返回值等,便於使用者綁定和調用服務。它以一種和具體語言無關的方式定義了給定Web服務調用和應答的相關操作和訊息。
WSDL是我們能夠實實在在看到的東西,它是一份xml文檔,用於描述某個WebSerivce的方方面面。
如果閱讀上述的文字後,你依然無法理解WSDL,那麼請閱讀下面的內容:(來自某網友的,下面有出處)
你會怎樣向別人介紹你的Webservice有什麼功能,以及每個函數調用時的參數呢?你可能會自己寫一套文檔,你甚至可能會口頭上告訴需要使用你的Webservice的人。這些非正式的方法至少都有一個嚴重的問題:當程式員坐到電腦前,想要使用你的Web service的時候,他們的工具(如VisualStudio)無法給他們提供任何協助,因為這些工具根本就不瞭解你的Web service。解決方案是:用機器能閱讀的方式提供一個正式的描述文檔。Webservice描述語言(WSDL)就是這樣一個基於XML的語言,用於描述Webservice及其函數、參數和返回值。因為是基於XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的,這將是一個很大的好處。一些最新的開發工具既能根據你的Webservice產生WSDL文檔,又能匯入WSDL文檔,產生調用相應Web service的代碼。於是WSDL誕生。
來源文件 <http://sakyone.iteye.com/blog/353063>
(3)UDDI
全稱是:Universal Description, Discovery andIntegration",中文翻譯就是“通用描述,發現和整合服務”,或者可以叫“統一描述、發現和整合協議”。感覺很抽象是吧,我也這麼覺得,哈哈。沒關係,接著看。
以下的說明過於專業,不好理解,於是原文引用——
瞭解 Web 服務規範: 第 3部分:統一描述、發現和整合 (UDDI)
當所有應用程式都位於本地時,要找到所需的功能會非常容易。不過,使用 Web服務之類的分布式系統時,您不能獲得中央註冊中心的好處。分布式系統也容易發生更改。而這正是 UDDI的用武之地。它旨在用於兩個目的。最初形成時,它被認為是一種“通用業務註冊中心”。其想法是,企業可以使用以下三種方法之一搜尋夥伴:
- “白頁”:白頁與電話簿中用於尋找公司資訊的白頁類似。例如,如果您知道公司的名稱,可以在其中尋找公司的地址、如何進行聯絡,甚至還能夠確定與組織中的哪個人聯絡。
- “黃頁”:同樣,黃頁與電話簿中的黃頁一樣,可以在其中根據分類尋找公司。UDDI指定了各種分類法,以供各個公司用於對自己進行分類。例如,如果您在尋找體育用具,則可以尋找其北美工業分類系統(North American Industry Classification System,NAICS)代碼為 339920 的公司。
- “綠頁”:電話簿中沒有綠頁,但這裡的想法是,公司可以使用此搜尋方法來尋找實現了特定服務的交易夥伴。例如,可以搜尋實現了使用郵遞區號的距離計算功能的公司。
UDDI同時也被認為是一種保持分布式應用程式長期啟動並執行方法。其想法是這樣的,可以緩衝有關訪問特定服務的資訊,如果客戶機崩潰,應用程式將自動回到註冊中心並進行檢查,以確定資訊是否已更改。如果已更改,則可以直接在應用程式內變更(在理想的情況下將自動變更)並重試您的請求。
看完之後,大概懂了吧,UDDI其實就是業務登記邏輯和註冊,使得使用者能夠快速尋找。