1. 程式人生 > >Java程式設計師從笨鳥到菜鳥之(一百零七)一步一步學習webservice(一)開篇

Java程式設計師從笨鳥到菜鳥之(一百零七)一步一步學習webservice(一)開篇

      Webservice技術在web開發中算是一個比較常見技術。這個對於大多數的web開發者,別管是java程式設計師還是.NET程式設計師應該都不是很陌生。今天我就和大家一起來學習一下webservice的基本內容。此篇文章作為webservice的開篇,首先我們來看一下什麼是webservice。他能幹什麼用呢?

什麼是webservice

     Web Services是由企業釋出的完成其特定商務需求的線上應用服務,其他公司或應用軟體能夠通過Internet來訪問並使用這項線上服務。 用簡單點的話說,就是系統對外的介面!一個企業開發出某種功能之後,我就對外提供一個介面。別人如果也想要這個功能的話直接通過internet

呼叫我所提供的介面。就可以實現相同的功能。當然了這些功能可以收費的。

     它是一種構建應用程式的普遍模型,可以在任何支援網路通訊的作業系統中實施執行;它是一種新的web應用程式分支,是自包含、自描述、模組化的應用,可以釋出、定位、通過web呼叫。WebService是一個應用元件,它邏輯性的為其他應用程式提供資料與服務.各應用程式通過網路協議和規定的一些標準資料格式(HttpXMLSoap)來訪問WebService,通過WebService內部執行得到所需結果.Web Service可以執行從簡單的請求到複雜商務處理的任何功能。一旦部署以後,其他WebService應用程式可以發現並呼叫它部署的服務 

Webservice的相關技術

在構建和使用Web Service,主要用到以下幾個關鍵的技術和規則:

1.XML:描述資料的標準方法. 可以用來標記資料、定義資料型別,是一種允許使用者對自己的標記語言進行定義的源語言。 

2.SOAP:簡單物件訪問協議. 是一種輕量的、簡單的、基於 XML 的協議,它被設計成在 WEB 上交換結構化的和固化的資訊。

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

 WebService採用HTTP協議傳輸資料,採用XML格式封裝資料 

3.WSDL:Web服務描述語言. 是一個用來描述Web服務和說明如何與Web服務通訊的XML語言。為使用者提供詳細的介面說明書。 

它是WebService客戶端和伺服器端都能理解的標準格式,其中描述的資訊可以分為what,where,how等部分!

what:服務是什麼(服務中有哪些方法,方法接受的引數是什麼,返回值是什麼)

where:服務的網路地址用哪個url地址表示

how:服務通過什麼方式來呼叫

WSDL檔案儲存在Web伺服器上,通過一個url地址訪問WebService服務提供商可以通過兩種方式來暴露它的WSDL檔案地址:註冊到UDDI伺服器,以便被人查詢。直接告訴給客戶端呼叫者,例如,在自己網站給出資訊或郵件告訴。

4.UDDI(Universal Description, Discovery and Integration):通用描述、發現與整合,它是一種獨立於平臺的,基於XML語言的用於在網際網路上描述商務的協議。可譯為通用描述、發現與整合服務

實際上,WebService的主要目標是跨平臺的可互操作性。為了達到這一目標,WebService完全基於XML可擴充套件標記語言)、XSDXMLSchema)等獨立於平臺、獨立於軟體供應商的標準,是建立可互操作的、分散式應用程式的新平臺。 

                                                                                 Webservice的工作過程:

下面我們用幾個圖的例項來簡單理解一下webservice

如何實現實時天氣預報?

如何使用安付通進行貨款支付?

Web服務在其中起到的作用:

由上面的圖我們可以看出:Web Service的出現

 1.讓任何平臺上的用任何語言編寫的服務進行互動。

 2.將應用程式功能概念化成任務,從而形成面向任務的開發和工作流。這使得更抽象的軟體能夠為工作在業務層面具有較少軟體分析技術的使用者所用。

 3.允許鬆耦合,這意味著,每當其中某個或多個服務在設計或實現中發生改變時,服務應用程式之間的互動不會因此而中斷。

 4.使現有的應用程式能適應不斷變化的業務條件和客戶需求。

 5.向現有或遺留軟體應用程式提供服務介面,而無需改變原來的應用程式,從而使這些應用程式完全可以執行在這種服務環境下。

 6.引入其他一些與原有功能無關的管理或操作管理功能,比如可靠性、責任性和安全性等等,從而在業務計算環境中增加其通用性和實用性。

Webservice應用場景

1.跨防火牆的通訊  如果應用程式有成千上萬的使用者,而且分佈在世界各地,那麼客戶端和伺服器之間的通訊將是一個棘手的問題。因為客戶端和伺服器之間通常會有防火牆或者代理伺服器。在這種情況下,使用DCOM就不是那麼簡單,通常也不便於把客戶端程式釋出到數量如此龐大的每一個使用者手中。傳統的做法是,選擇用瀏覽器作為客戶端,寫下一大堆JSP頁面,把應用程式的中間層暴露給終端使用者。這樣做的結果是開發難度大,程式很難維護。

      如果中間層元件換成WebService的話,就可以從使用者介面直接呼叫中間層元件,從而省掉建立JSP頁面的那一步。要呼叫WebService,可以直接使用SOAP這樣的客戶端,也可以使用自己開發的SOAP客戶端,然後把它和應用程式連線起來。不僅縮短了開發週期,還減少了程式碼複雜度,並能夠增強應用程式的可維護性。同時,應用程式也不再需要在每次呼叫中間層元件時,都跳轉到相應的結果頁。 

2.應用程式整合

  企業級的應用程式開發者都知道,企業裡經常都要把用不同語言寫成的、在不同平臺上執行的各種程式整合起來,而這種整合將花費很大的開發力量。應用程式經常需要從執行在IBM主機上的程式中獲取資料;或者把資料傳送到主機或UNIX應用程式中去。即使在同一個平臺上,不同軟體廠商生產的各種軟體也常常需要整合起來。通過WebService,應用程式可以用標準的方法把功能和資料暴露出來,供其它應用程式使用。 

長項三:B2B的整合  用WebService整合應用程式,可以使公司內部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎麼樣呢?跨公司的商務交易整合通常叫做B2B整合。  WebServiceB2B整合成功的關鍵。通過WebService,公司可以把關鍵的商務應用暴露給指定的供應商和客戶。例如,把電子下單系統和電子發票系統暴露出來,客戶就可以以電子的方式傳送訂單,供應商則可以以電子的方式傳送原料採購發票。當然,這並不是一個新的概念,EDI(電子文件交換)早就是這樣了。但是,WebService的實現要比EDI簡單得多,而且WebService執行在Internet上,在世界任何地方都可輕易實現,其執行成本就相對較低。不過,WebService並不像EDI那樣,是文件交換或B2B整合的完整解決方案。WebService只是B2B整合的一個關鍵部分,還需要許多其它的部分才能實現整合。 

長項四:軟體和資料重用

  軟體重用是一個很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是原始碼模組或者類一級的重用,另一種形式是二進位制形式的元件重用。當前,像表格控制元件或使用者介面控制元件這樣的可重用軟體元件,在市場上都佔有很大的份額。但這類軟體的重用有一個很大的限制,就是重用僅限於程式碼,資料不能重用。原因在於,釋出元件甚至原始碼都比較容易,但要釋出資料就沒那麼容易,除非是不會經常變化的靜態資料。