Web服務是web應用的壹個新分支。它們是自包含、自描述和模塊化的應用程序,可以通過web發布、定位和調用。Web服務可以執行從簡單請求到復雜業務處理的任何功能。部署後,其他Web服務應用程序可以發現和調用它部署的服務。
事實上,WebService的主要目標是跨平臺的互操作性。為了實現這壹目標,WebService完全基於獨立於平臺和軟件廠商的標準,如XML(可擴展標記語言)和XSD(XMLSchema),它是壹個創建可互操作的分布式應用程序的新平臺。可以看出,在以下三種情況下,使用WebService會帶來很大的好處。
第1項:跨越防火墻的通信
如果應用程序有成千上萬的用戶,並且分布在世界各地,那麽客戶端和服務器之間的通信將是壹個棘手的問題。因為客戶端和服務器之間通常有防火墻或代理服務器。在這種情況下,使用DCOM就不那麽簡單了,通常不方便將客戶端程序分發給如此大量的用戶。傳統的方式是選擇壹個瀏覽器作為客戶端,編寫大量的ASP頁面,將應用程序的中間層暴露給最終用戶。因此,很難開發和維護程序。
項目2:應用程序集成
企業級的應用開發者都知道,企業往往要集成各種用不同語言編寫、運行在不同平臺上的程序,而這種集成會耗費大量的開發力量。應用程序經常需要從運行在IBM主機上的程序中獲取數據;或者向主機或UNIX應用程序發送數據。即使在同壹個平臺上,不同軟件廠商生產的各種軟件往往需要集成。通過WebService,應用程序可以以標準的方式“公開”功能和數據,供其他應用程序使用。
例如,有壹個訂單註冊程序,用於註冊客戶的新訂單,包括客戶信息、送貨地址、數量、價格和付款方式;還有壹個訂單執行程序,用於管理實際的貨物交付。這兩個程序來自不同的軟件供應商。新訂單進來後,訂單登錄程序需要通知訂單執行程序發送貨物。通過在訂單執行程序上添加壹層WebService,訂單執行程序可以“暴露”“AddOrder”功能。這樣,每次有新訂單到來,訂單登錄程序就可以調用這個函數來發送貨物。
項目3: B2B集成
將應用程序與WebService集成可以使公司內部的業務處理更加自動化。但是當交易跨越了供應商和客戶,突破了公司的邊界,會發生什麽?跨公司業務事務集成通常稱為B2B集成。
WebService是成功的B2B集成的關鍵。通過WebService,公司可以向指定的供應商和客戶“公開”關鍵的業務應用程序。比如電子訂貨系統、電子發票系統暴露出來,客戶可以電子發送訂單,供應商可以電子發送原材料采購發票。當然,這並不是壹個新概念。EDI(電子文檔交換)早就這樣了。然而,WebService的實現比EDI簡單得多。而且WebService運行在互聯網上,在世界任何地方都可以輕松實現,所以它的運行成本相對較低。然而,WebService並不是像EDI那樣的文檔交換或B2B集成的完整解決方案。WebService只是B2B集成的關鍵部分,要實現集成還需要很多其他部分。
用WebService實現B2B集成的最大好處是可以輕松實現互操作。只要業務邏輯被“公開”,成為WebService,就可以被任何指定的合作夥伴調用,無論他們的系統運行在什麽平臺上,使用什麽開發語言。這大大減少了B2B集成所花費的時間和成本,使許多原本無法承受EDI的中小企業實現了B2B集成。
缺點1:獨立應用程序
目前,企業和個人仍然使用許多桌面應用程序。其中壹些只需要和這臺機器上的其他程序進行通信。在這種情況下,最好不要使用WebService,直接使用本地API即可。
缺點2:局域網的同構應用。
在許多應用中,所有的程序都是用VB或VC開發的,都是在Windows平臺下使用COM,都運行在同壹個局域網上。例如,有兩個服務器應用程序需要相互通信,或者有壹個Win32或WinForm的客戶端程序想要與局域網上的另壹個服務器程序連接。在這些程序中,DCOM比SOAP/HTTP有效得多。
簡而言之,只要從應用結構的角度來看,還有比WebService更有效可行的其他方法,那麽就不要使用WebService。