天天看點

關于 web service 詳解

1、  webservice  它是一種建構 應用程式 的普遍模型,可以在任何支援網絡通信的 作業系統 中實施運作;它是一種新的web  

應用程式分支,是自包含、自描述、子產品化的應用,可以釋出、定位、通過web調用。Web Service是一個應用元件,它邏輯性的為其他應用程式提供資料與服務.各應用程式通過網絡協定和規定的一些标準資料格式(Http,XML,Soap)來通路Web Service,通過Web Service内部執行得到所需結果.Web Service可以執行從簡單的請求到複雜商務處理的任何功能。一旦部署以後,其他Web Service應用程式可以發現并調用它部署的服務。

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

 ①.XML:描述資料的标準方法.  ②.SOAP:表示資訊交換的協定.  ③.WSDL:Web服務描述語言.  ④.UDDI(Universal Description, Discovery and Integration):通用描述、發現與內建,它是一種獨立于平台的,基于XML語言的用于在網際網路上描述商務的協定。

3、相關

  實際上,WebService的主要目标是跨平台的可互操作性。為了達到這一目标,WebService完全基于XML( 可擴充标記語言 )、XSD(XMLSchema)等獨立于平台、獨立于 軟體 供應商的标準,是建立可互操作的、 分布式應用 程式的新平台。由此可以看出,在以下三種情況下,使用WebService會帶來極大的好處。

長項一:跨防火牆的通信

  如果應用程式有成千上萬的使用者,而且分布在世界各地,那麼用戶端和 伺服器 之間的通信将是一個棘手的問題。因為用戶端和伺服器之間通常會有 防火牆 或者代理伺服器。在這種情況下,使用DCOM就不是那麼簡單,通常也不便于把用戶端程式釋出到數量如此龐大的每一個使用者手中。傳統的做法是,選擇用浏覽器作為用戶端,寫下一大堆ASP頁面,把應用程式的中間層暴露給最終使用者。這樣做的結果是開發難度大,程式很難維護。   圖1通過WebService內建應用程式   舉個例子,在應用程式裡加入一個新頁面,必須先建立好使用者界面(Web頁面),并在這個頁面後面,包含相應 商業邏輯 的中間層元件,還要再建立至少一個ASP頁面,用來接受使用者輸入的資訊,調用中間層元件,把結果格式化為HTML形式,最後還要把“結果頁”送回浏覽器。要是用戶端 代碼 不再如此依賴于 HTML表單 ,用戶端的程式設計就簡單多了。   如果中間層元件換成WebService的話,就可以從使用者界面直接調用中間層元件,進而省掉建立ASP頁面的那一步。要調用WebService,可以直接使用MicrosoftSOAPToolkit或 .NET 這樣的SOAP用戶端,也可以使用自己開發的SOAP用戶端,然後把它和應用程式連接配接起來。不僅縮短了開發周期,還減少了代碼複雜度,并能夠增強應用程式的可維護性。同時,應用程式也不再需要在每次調用中間層元件時,都跳轉到相應的“結果頁”。   從經驗來看,在一個使用者界面和中間層有較多互動的應用程式中,使用WebService這種結構,可以節省花在使用者界面程式設計上20%的開發時間。另外,這樣一個由WebService組成的中間層,完全可以在應用程式內建或其它場合下重用。最後,通過WebService把應用程式的邏輯和資料“暴露”出來,還可以讓其它平台上的客戶重用這些應用程式。

長項二:應用程式內建

  企業級的應用程式開發者都知道,企業裡經常都要把用不同語言寫成的、在不同平台上運作的各種程式內建起來,而這種內建将花費很大的開發力量。應用程式經常需要從運作在IBM主機上的程式中擷取資料;或者把資料發送到主機或UNIX應用程式中去。即使在同一個平台上,不同軟體廠商生産的各種軟體也常常需要內建起來。通過WebService,應用程式可以用标準的方法把功能和資料“暴露”出來,供其它應用程式使用。   例如,有一個訂單登入程式,用于登入從客戶來的新訂單,包括客戶資訊、發貨位址、數量、價格和付款方式等内容;還有一個訂單 執行程式 ,用于實際貨物發送的管理。這兩個程式來自不同軟體廠商。一份新訂單進來之後,訂單登入程式需要通知訂單執行程式發送貨物。通過在訂單執行程式上面增加一層WebService,訂單執行程式可以把“AddOrder”函數“暴露”出來。這樣,每當有新訂單到來時,訂單登入程式就可以調用這個函數來發送貨物了。

長項三:B2B的內建

  用WebService內建應用程式,可以使公司内部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎麼樣呢?跨公司的商務交易內建通常叫做B2B內建。   WebService是B2B內建成功的關鍵。通過WebService,公司可以把關鍵的商務應用“暴露”給指定的供應商和客戶。例如,把電子下單系統和電子發票系統“暴露”出來,客戶就可以以電子的方式發送訂單,供應商則可以以電子的方式發送原料采購發票。當然,這并不是一個新的概念,EDI(電子文檔交換)早就是這樣了。但是,WebService的實作要比EDI簡單得多,而且WebService運作在Internet上,在世界任何地方都可輕易實作,其運作成本就相對較低。不過,WebService并不像EDI那樣,是文檔交換或B2B內建的完整解決方案。WebService隻是B2B內建的一個關鍵部分,還需要許多其它的部分才能實作內建。   用WebService來實作B2B內建的最大好處在于可以輕易實作互操作性。隻要把商務邏輯“暴露”出來,成為WebService,就可以讓任何指定的合作夥伴調用這些商務邏輯,而不管他們的系統在什麼平台上運作,使用什麼開發語言。這樣就大大減少了花在B2B內建上的時間和成本,讓許多原本無法承受EDI的中小企業也能實作B2B內建。

長項四:軟體和資料重用

  軟體重用是一個很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是 源代碼 子產品或者類一級的重用,另一種形式是二進制形式的元件重用。   圖2用WebService內建各種應用中的功能,為使用者提供一個統一的界面   目前,像 表格控件 或使用者界面控件這樣的可重用 軟體元件 ,在市場上都占有很大的份額。但這類軟體的重用有一個很大的限制,就是重用僅限于代碼,資料不能重用。原因在于,釋出元件甚至源代碼都比較容易,但要釋出資料就沒那麼容易,除非是不會經常變化的靜态資料。   WebService在允許重用代碼的同時,可以重用代碼背後的資料。使用WebService,再也不必像以前那樣,要先從第三方購買、安裝軟體元件,再從應用程式中調用這些元件;隻需要直接調用遠端的WebService就可以了。舉個例子,要在應用程式中确認使用者輸入的位址,隻需把這個位址直接發送給相應的WebService,這個WebService就會幫你查閱街道位址、城市、省區和郵政編碼等資訊,确認這個位址是否在相應的郵政編碼區域。WebService的提供商可以按時間或使用次數來對這項服務進行收費。這樣的服務要通過元件重用來實作是不可能的,那樣的話你必須下載下傳并安裝好包含街道位址、城市、省區和郵政編碼等資訊的 資料庫 ,而且這個資料庫還是不能實時更新的。   另一種軟體重用的情況是,把好幾個應用程式的功能內建起來。例如,要建立一個區域網路上的門戶站點應用,讓使用者既可以查詢聯邦快遞包裹,檢視股市行情,又可以管理自己的日程安排,還可以線上購買電影票。現在Web上有很多應用程式供應商,都在其應用中實作了這些功能。一旦他們把這些功能都通過WebService“暴露”出來,就可以非常容易地把所有這些功能都內建到你的門戶站點中,為使用者提供一個統一的、友好的界面。   将來,許多應用程式都會利用WebService,把目前基于元件的應用程式結構擴充為元件/WebService的混合結構,可以在應用程式中使用第三方的WebService提供的功能,也可以把自己的應用程式功能通過WebService提供給别人。兩種情況下,都可以重用代碼和代碼背後的資料。   從以上論述可以看出,WebService在通過Web進行互操作或遠端調用的時候是最有用的。不過,也有一些情況,WebService根本不能帶來任何好處。

繼續閱讀