天天看點

web service 簡介

Web service是一個平台獨立的,低耦合的,自包含的、基于可程式設計的web的應用程式,可使用開放的XML标準來描述、釋出、發現、協調和配置這些應用程式,用于開發分布式的互操作的應用程式

web Service技術, 能使得運作在不同機器上的不同應用無須借助附加的、專門的第三方軟體或硬體, 就可互相交換資料或內建。依據Web Service規範實施的應用之間, 無論它們所使用的語言、 平台或内部協定是什麼, 都可以互相交換資料。Web Service是自描述、 自包含的可用網絡子產品, 可以執行具體的業務功能。Web Service也很容易部署, 因為它們基于一些正常的産業标準以及已有的一些技術,諸如标準通用标記語言下的子集XML、HTTP。Web Service減少了應用接口的花費。Web Service為整個企業甚至多個組織之間的業務流程的內建提供了一個通用機制。

Web service到底是什麼;在什麼情況下你應該使用Web service。

研究一下目前的應用程式開發,你會發現一個絕對的傾向:人們開始偏愛基于浏覽器的用戶端應用程式。這當然不是因為用戶端能夠提供更好的使用者界面,而是因為它能夠避免花在桌面應用程式釋出上的高成本。釋出桌面應用程式成本很高,一半是因為應用程式安裝和配置的問題,另一半是因為用戶端和伺服器之間通信的問題。

傳統的Windows客戶應用程式使用DCOM來與伺服器進行通信和調用遠端對象。配置好DCOM使其在一個大型的網絡中正常工作将是一個極富挑戰性的工作,同時也是許多IT工程師的噩夢。事實上,許多IT工程師甯願忍受浏覽器所帶來的功能限制,也不願在區域網路上去運作一個DCOM。在我看來,結果就是一個釋出容易,但開發難度大而且使用者界面極其受限的應用程式。極端的說,就是你花了更多的資金和時間,卻開發出從使用者看來功能更弱的應用程式。不信?問問你的會計師對新的基于浏覽器的會計軟體有什麼想法:絕大多數商用程式使用者希望使用更加友好的Windows使用者界面。

關于用戶端與伺服器的通信問題,一個完美的解決方法是使用HTTP協定來通信。這是因為任何運作Web浏覽器的機器都在使用HTTP協定。同時,目前許多防火牆也配置為隻允許HTTP連接配接。

許多商用程式還面臨另一個問題,那就是與其他程式的互操作性。如果所有的應用程式都是使用COM或.NET語言寫的,并且都運作在Windows平台上,那就天下太平了。然而,事實上大多數商業資料仍然在大型主機上以非關系檔案(VSAM)的形式存放,并由COBOL語言編寫的大型機程式通路。而且,還有很多商用程式繼續在使用C++、Java、Visual Basic和其他各種各樣的語言編寫。除了最簡單的程式之外,所有的應用程式都需要與運作在其他異構平台上的應用程式內建并進行資料交換。這樣的任務通常都是由特殊的方法,如檔案傳輸和分析,消息隊列,還有僅适用于某些情況的的API,如IBM的"進階程式到程式交流(APPC)"等來完成的。在以前,沒有一個應用程式通信标準,是獨立于平台、組模組化型和程式設計語言的。隻有通過Web Service,用戶端和伺服器才能夠自由的用HTTP進行通信,不論兩個程式的平台和程式設計語言是什麼。

什麼是Web Service

對這個問題,我們至少有兩種答案。從表面上看,Web service 就是一個應用程式,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用程式設計的方法通過Web來調用這個應用程式。我們把調用這個Web service 的應用程式叫做客戶。例如,你想建立一個Web service ,它的作用是傳回目前的天氣情況。那麼你可以建立一個ASP頁面,它接受郵政編碼作為查詢字元串,然後傳回一個由逗号隔開的字元串,包含了目前的氣溫和天氣。要調用這個ASP頁面,用戶端需要發送下面的這個HTTP GET

傳回的資料就應該是這樣:

這個ASP頁面就應該可以算作是Web service 了。因為它基于HTTP GET請求,暴露出了一個可以通過Web調用的API。當然,Web service 還有更多的東西。

下面是對Web service 更精确的解釋: Web services是建立可互操作的分布式應用程式的新平台。作為一個Windows程式員,你可能已經用COM或DCOM建立過基于元件的分布式應用程式。COM是一個非常好的元件技術,但是我們也很容易舉出COM并不能滿足要求的情況。

第二種了解:Web service平台是一套标準,它定義了應用程式如何在Web上實作互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平台上寫Web service ,隻要我們可以通過Web service标準對這些服務進行查詢和通路。