Web Service“四長兩短”

來源:互聯網
上載者:User
web Web Service“四長兩短”
(中國電腦報 陳友 2001年11月01日 17:42)

當前,Web Service是一個熱門話題。但是,Web Service究竟是什嗎?什麼情況下應該用Web Service?什麼情況下不應該用Web Service?是需要我們正確認識的。

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

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


圖1 通過Web Service整合應用程式
舉個例子,在應用程式裡加入一個新頁面,必須先建立好使用者介面(Web頁面),並在這個頁面後面,包含相應商業邏輯的中介層組件,還要再建立至少一個ASP頁面,用來接受使用者輸入的資訊,調用中介層組件,把結果格式化為HTML形式,最後還要把“結果頁”送回瀏覽器。要是用戶端代碼不再如此依賴於HTML表單,用戶端的編程就簡單多了。

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

從經驗來看,在一個使用者介面和中介層有較多互動的應用程式中,使用Web Service這種結構,可以節省花在使用者介面編程上20%的開發時間。另外,這樣一個由Web Service組成的中介層,完全可以在應用程式整合或其它場合下重用。最後,通過Web Service把應用程式的邏輯和資料“暴露”出來,還可以讓其它平台上的客戶重用這些應用程式。

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

例如,有一個訂單登入程式,用於登入從客戶來的新訂單,包括客戶資訊、發貨地址、數量、價格和付款條件等內容;還有一個訂單執行程式,用於實際貨物發送的管理。這兩個程式來自不同軟體廠商。一份新訂單進來之後,訂單登入程式需要通知訂單執行程式發送貨物。通過在訂單執行程式上面增加一層Web Service,訂單執行程式可以把“Add Order”函數“暴露”出來。這樣,每當有新訂單到來時,訂單登入程式就可以調用這個函數來發送貨物了。

長項三: B2B的整合
用Web Service整合應用程式,可以使公司內部的商務處理更加自動化。但當交易跨越供應商和客戶、突破公司的界限時會怎麼樣呢?跨公司的商務交易整合通常叫做B2B整合。

Web Service是B2B整合成功的關鍵。通過Web Service,公司可以把關鍵的商務應用“暴露”給指定的供應商和客戶。例如,把電子下單系統和電子發票系統“暴露”出來,客戶就可以以電子的方式發送訂單,供應商則可以以電子的方式發送原料採購發票。當然,這並不是一個新的概念, EDI(電子文檔交換)早就是這樣了。但是,Web Service的實現要比EDI簡單得多,而且Web Service運行在Internet上,在世界任何地方都可輕易實現,其運行成本就相對較低。不過,Web Service並不像EDI那樣,是文檔交換或B2B整合的完整解決方案。Web Service只是B2B整合的一個關鍵區段,還需要許多其它的部分才能實現整合。

用Web Service來實現B2B整合的最大好處在於可以輕易實現互通性。只要把商務邏輯“暴露”出來,成為Web Service,就可以讓任何指定的夥伴調用這些商務邏輯,而不管他們的系統在什麼平台上運行,使用什麼開發語言。這樣就大大減少了花在B2B整合上的時間和成本,讓許多原本無法承受EDI的中小企業也能實現B2B整合。

長項四: 軟體和資料重用
軟體重用是一個很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是原始碼模組或者類一級的重用,另一種形式是二進位形式的組件重用。


圖2 用Web Service整合各種應用中的功能,為使用者提供一個統一的介面
當前,像表格控制項或使用者介面控制項這樣的可重用軟體組件,在市場上都佔有很大的份額。但這類軟體的重用有一個很大的限制,就是重用僅限於代碼,資料不能重用。原因在於,發布組件甚至原始碼都比較容易,但要發布資料就沒那麼容易,除非是不會經常變化的待用資料。

Web Service在允許重用代碼的同時,可以重用代碼背後的資料。使用Web Service,再也不必像以前那樣,要先從第三方購買、安裝軟體組件,再從應用程式中調用這些組件;只需要直接調用遠端的Web Service就可以了。舉個例子,要在應用程式中確認使用者輸入的地址,只需把這個地址直接發送給相應的Web Service,這個Web Service 就會幫你查閱街道地址、城市、省區和郵遞區號等資訊,確認這個地址是否在相應的郵遞區號地區。Web Service 的供應商可以按時間或使用次數來對這項服務進行收費。這樣的服務要通過組件重用來實現是不可能的,那樣的話你必須下載並安裝好包含街道地址、城市、省區和郵遞區號等資訊的資料庫,而且這個資料庫還是不能即時更新的。

另一種軟體重用的情況是,把好幾個應用程式的功能整合起來。例如,要建立一個區域網路上的門戶網站應用,讓使用者既可以查詢聯邦快遞包裹,查看股市行情,又可以管理自己的排程,還可以線上購買電影票。現在Web上有很多應用程式供應商,都在其應用中實現了這些功能。一旦他們把這些功能都通過Web Service “暴露”出來,就可以非常容易地把所有這些功能都整合到你的門戶網站中,為使用者提供一個統一的、友好的介面。

將來,許多應用程式都會利用Web Service,把當前基於組件的應用程式結構擴充為組件/Web Service 的混合結構,可以在應用程式中使用第三方的Web Service 提供的功能,也可以把自己的應用程式功能通過Web Service 提供給別人。兩種情況下,都可以重用代碼和代碼背後的資料。

從以上論述可以看出,Web Service 在通過Web進行互操作或遠程調用的時候是最有用的。不過,也有一些情況,Web Service根本不能帶來任何好處。

短處一: 單機應用程式
目前,企業和個人還使用著很多傳統型應用程式。其中一些只需要與本機上的其它程式通訊。在這種情況下,最好就不要用Web Service,只要用本地的API就可以了。COM非常適合於在這種情況下工作,因為它既小又快。運行在同一台伺服器上的伺服器軟體也是這樣。最好直接用COM或其它本地的API來進行應用程式間的調用。當然Web Service 也能用在這些場合,但那樣不僅消耗太大,而且不會帶來任何好處。

短處二: 區域網路的同構應用程式
在許多應用中,所有的程式都是用VB或VC開發的,都在Windows平台下使用COM,都運行在同一個區域網路上。例如,有兩個伺服器應用程式需要相互連信,或者有一個Win32或WinForm的客戶程式要串連區域網路上另一個伺服器的程式。在這些程式裡,使用DCOM會比SOAP/HTTP有效得多。與此相類似,如果一個.NET程式要串連到區域網路上的另一個.NET程式,應該使用.NET remoting。有趣的是,在.NET remoting中,也可以指定使用SOAP/HTTP來進行Web Service 調用。不過最好還是直接通過TCP進行RPC調用,那樣會有效得多。

總之,只要從應用程式結構的角度看,有別的方法比Web Service 更有效、更可行,那就不要用Web Service。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。