Webservice 是什麼?

前兩天突然有個人問題,webservice是什麼?我還真的沒有答上來,雖然平時一直用xfire,axis,xml,wsdl,異構系統之間交互接口設計等等,但是對於概念性的東西,還真的沒有一個系統性的概念。

下面從別的網友那裏參考一下:整理一下這個概念性的描述。

 

參考:http://tech.ccidnet.com/art/3539/20080110/1337975_1.html

 

Web Service概念

  什麼是Web Service呢?從表面上看,Web Service就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法通過Web調用來實現某個功能的應用程序。例如,筆者創建一個Web Service,它的作用是查詢某公司某員工的基本信息。它接受該員工的編號作爲查詢字符串,返回該員工的具體信息。你可以在瀏覽器的地址欄中直接輸入HTTP GET請求來調用羅列該員工基本信息的ASP頁面,這就可以算作是體驗Web Service了。

  從深層次上看,Web Service是一種新的Web應用程序分支,它們是自包含、自描述、模塊化的應用,可以在網絡(通常爲Web)中被描述、發佈、查找以及通過Web來調用。

  Web Service便是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵守具體的技術規範,這些規範使得Web Service能與其他兼容的組件進行互操作。它可以使用標準的互聯網協議,像超文本傳輸協議HTTP和XML,將功能體現在互聯網和企業內部網上。Web Service平臺是一套標準,它定義了應用程序如何在Web上實現互操作性。你可以用你喜歡的任何語言(筆者用的是C#),在你喜歡的任何平臺上寫Web Service。

Web Service的技術支持

  Web Service平臺需要一套協議來實現分佈式應用程序的創建。任何平臺都有它的數據表示方法和類型系統。要實現互操作性,Web Service平臺必須提供一套標準的類型系統,用於溝通不同平臺、編程語言和組件模型中的不同類型系統。目前這些協議有:

  1.XML和XSD

  可擴展的標記語言XML?是Web Service平臺中表示數據的基本格式。除了易於建立和易於分析外,XML主要的優點在於它既與平臺無關,又與廠商無關。XML是由萬維網協會(W3C)創建,W3C制定的XML SchemaXSD?定義了一套標準的數據類型,並給出了一種語言來擴展這套數據類型。

  Web Service平臺是用XSD來作爲數據類型系統的。當你用某種語言如VB.NET或C#?來構造一個Web Service時,爲了符合Web Service標準,所有你使用的數據類型都必須被轉換爲XSD類型。如想讓它使用在不同平臺和不同軟件的不同組織間傳遞,還需要用某種東西將它包裝起來。這種東西就是一種協議,如 SOAP。

  2.SOAP

  SOAP即簡單對象訪問協議(Simple Object Access Protocol),它是用於交換XML編碼信息的輕量級協議。它有三個主要方面:XML-envelope爲描述信息內容和如何處理內容定義了框架,將程序對象編碼成爲XML對象的規則,執行遠程過程調用(RPC)的約定。SOAP可以運行在任何其他傳輸協議上。例如,你可以使用 SMTP,即因特網電子郵件協議來傳遞SOAP消息,這可是很有誘惑力的。在傳輸層之間的頭是不同的,但XML有效負載保持相同。

  Web Service 希望實現不同的系統之間能夠用“軟件-軟件對話”的方式相互調用,打破了軟件應用、網站和各種設備之間的格格不入的狀態,實現“基於Web無縫集成”的目標。

  3.WSDL

  Web Service描述語言WSDL?就是用機器能閱讀的方式提供的一個正式描述文檔而基於XML的語言,用於描述Web Service及其函數、參數和返回值。因爲是基於XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的。

  4.UDDI

  UDDI 的目的是爲電子商務建立標準;UDDI是一套基於Web的、分佈式的、爲Web Service提供的、信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web Service註冊,以使別的企業能夠發現的訪問協議的實現標準。

  5.遠程過程調用RPC與消息傳遞

  Web Service本身其實是在實現應用程序間的通信。我們現在有兩種應用程序通信的方法:RPC遠程過程調用?和消息傳遞。使用RPC的時候,客戶端的概念是調用服務器上的遠程過程,通常方式爲實例化一個遠程對象並調用其方法和屬性。RPC系統試圖達到一種位置上的透明性:服務器暴露出遠程對象的接口,而客戶端就好像在本地使用的這些對象的接口一樣,這樣就隱藏了底層的信息,客戶端也就根本不需要知道對象是在哪臺機器上。

 Web Service軟件的支持

  操作系統離不開豐富的應用軟件的支持。同樣,Web Service這項技術只有通過日益廣泛的應用才能體現出其價值,目前比較流行的實現方法是使用.NET 和 Java兩種技術,並且兩種實現方法可以互相操作;如今我們已經可以看到使用微軟、IBM、SUN、Borland等不同廠商的Web Service構建工具建立的Web Service應用。

  微軟.NET

  微軟的.NET技術應該算是時下最爲流行的Web Service 開發技術。首先因爲其公司在以前相應的產品就佔有相當大的市場份額,以至使新推出的.NET得以有比較穩定的用戶羣;其次也是更重要的是 .NET平臺不僅延續了微軟一貫的編程風格,而且還增加了許多支持Web 服務的關鍵性技術,使得.NET在操作的簡單性和執行的穩定性,高效性上達到了一個非常好的結合。

  微軟的Visual Studio.NET便是一個便於 Web 服務的開發工具。微軟的目標是,將其新編程語言??C#作爲Web Service的首選語言。雖然C#看起來與Java類似,但是還有一些Java中沒有的獨特的功能。.NET技術中用於Web Service 開發的主要工具是ASP.NET?從技術上說,ASPasp.net? 提供了一些超出ASP以前版本的優點(例如:代碼和HTML的分離,與腳本語言相比較,對“真正”的編程語言如 C# 的支持)。

  IBM的WebSphere

  IBM公司是業界第一家能夠提供全面支持Web服務的電子商務基礎設施中間件的公司。通過多年來與W3C(The World Wide Web Consortium)的共同努力,包括DB2、Lotus、Tivoli 和WebSphere在內的所有IBM軟件都實現了對SOAP、WSDL、UDDI、Linux、XML、J2EE等開放技術和標準的全面支持。  IBM公司的WebSphere也是比較好的基礎架構軟件開發平臺。WebSphere軟件平臺及開發工具包括WebSphere Studio Application Developer WSAD? 基於J2EE、XML 和Web服務等開放標準,並具備 IBM 在可靠性、擴展性和安全性上的主要優勢。WebSphere 是 IBM 在 Web Services策略中的核心平臺,它支持所有開發、發佈、部署 Web Services應用所必需的開放標準和技術,包括 UDDI,SOAP,J2EE,WSDL,和對 XML 技術集成的增強,這特使得它在全球有很多用戶。

  Borland的JBuilder

  Borland公司在 JBuilder7中,用戶可以用其Borland Web Services Kit for Java和Borland JBuilder MobileSet 3進行更快捷地開發Web Service和無線應用。這樣將使開發者能夠在同一個開發環境中輕鬆地創建和集成Web Service。今年新推出的JBuidler8更是針對Web Service開發更提供了方便和高效的方法。

  總之,在Web Service開發上,.NET 和Java都是很好的選擇,儘管兩者現在都有一些需要完善的地方,但是就目前來說,它們還是最好的開發手段和技術。具體選擇哪種開發工具,也是仁者見仁,智者見智的問題。從根本上說,這兩種方法沒有孰優孰劣的問題,只是根據使用者對這兩種方法的掌握程度和對具體語言的偏愛程度來決定。

 

參考:http://www.cnblogs.com/Ihaveadream/archive/2008/08/08/1176880.html

 

Web Services扮演什麼角色? 
上述的這些趨勢意味着,更加智能的處理,操作和彙總內容變得十分重要。讓我們看看按照Web services角度所預示的四個趨勢: 
◆內容更加動態:一個web service必須能合併從多個不同源來的內容,可以包括股票,天氣,新聞等,在傳統環境中的內容,如存貨水平,購物訂單或者目錄信息等,都從後端系統而來 
◆帶寬更加便宜:web services可以分發各種類型的內容(音頻,視頻流等) 
◆存儲更便宜: web services必須能聰明地處理大量數據,意味着要使用數據庫,LDAP目錄,緩衝,和負載平衡軟件等技術保持可擴展能力 
◆普遍式計算更重要:web services不能要求客戶使用某一版本的windows的傳統瀏覽器,必須支持各種設備,平臺,瀏覽器類型,各種內容類型。
要達到這樣的目標,Web services要使用兩種技術: 
◆XML XML是在web上傳送結構化數據的偉大方式,Web services要以一種可靠的自動的方式操作數據,HTML不會滿足要求,而XML可以使web services十分方便的處理數據,它的內容與表示的分離十分理想 
◆SOAP SOAP使用XML消息調用遠程方法,這樣web services可以通過HTTP協議的post和get方法與遠程機器交互,而且,SOAP更加健壯和靈活易用。 
其他象UDDI和WSDL技術與XML和SOAP技術緊密結合用於服務發現。
那麼什麼是web service 平臺呢?最基本的平臺是XML加HTTP。HTTP是一個在Internet上廣泛使用的協議。XML是一種元語言,你可以用它書寫特定的語言來描述客戶和服務之間或者組件和複雜服務之間的交互。在web server之後,XML格式的消息被轉變成中間件的請求,返回的結果也會轉化成XML格式。 
有必要增加一些服務,同時保持簡單性和普遍性,來把Web構建成一個功能更強大的平臺。可以認爲功能全面的web services平臺是XML+HTTP+SOAP+WSDL+UDDI。在更高層次上,可能還要加上一些尚未廣泛接受的技術如XAML,XLANG, XKMS,和XFS。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章