當前位置:工程項目OA系統(tǒng) > 泛普各地 > 重慶OA系統(tǒng) > 重慶OA行業(yè)資訊
什么時候應該使用Web Service
什么時候應該使用Web Service
現(xiàn)在我將列舉三種情況,在這三種情況下,你將會發(fā)現(xiàn)使用Web service會帶來極大的好處。此后,我還會舉出不應該使用Web
service的一些情況。
跨越防火墻的通信
如果你的應用程序有成千上萬的用戶,而且他們都分布在世界各地,那么客戶端和服務器之間的通信將是一個棘手的問題。那是因為客戶端和服務器之間通常都會有防火墻或者代理服務器。在這種情況下,你想使用DCOM就不是那么簡單了,而且,通常你也不愿意把你的客戶端程序發(fā)布到如此龐大數(shù)量的每一個用戶手中。于是,你最終選擇了用瀏覽器作為客戶端,寫下一堆ASP頁面,把應用程序的中間層暴露給最終用戶。結(jié)果呢?運氣好的話,只是開發(fā)難度大了一些,運氣不好的話,就會得到一個根本無法維護的應用程序。
想象一下你應該怎么在你的應用程序里面加入一個新的頁面:你必須先建立好用戶界面(Web頁面),以及在這個頁面后面,包含相應商業(yè)邏輯的中間層組件。這還不夠,你還要再建立至少一個ASP頁面,用來接受用戶輸入的信息,調(diào)用中間層組件,把結(jié)果格式化為HTML形式,最后還要把"結(jié)果頁"送回瀏覽器。要是客戶端代碼不再如此依賴于HTML表單,客戶端的編程不就簡單多了嗎?還有,建立ASP頁面的那一步可以省略掉嗎?
當然。如果你的中間層組件是Web service的話,你完全可以從用戶界面直接調(diào)用中間層組件,從而省掉建立ASP頁面的那一步。要調(diào)用Web
service,你可以直接使用Microsoft SOAP
Toolkit或.NET這樣的SOAP客戶端,也可以使用你自己開發(fā)的SOAP客戶端,然后把它和你的應用程序連接起來。這樣做,不僅可以縮短開發(fā)周期,還可以減少代碼的復雜度,并增強整個應用程序的可維護性。同時,你的應用程序也不再需要在每次調(diào)用中間層組件時,都跳轉(zhuǎn)到相應的"結(jié)果頁"了。
以我的經(jīng)驗來看,在一個用戶界面和中間層有較多交互的應用程序中,使用Web
service這種結(jié)構(gòu),可以輕松的節(jié)省花在用戶界面編程上的20%的開發(fā)時間。這樣做還有另一個好處,就是你將得到一個由Web
service組成的中間層,這一層是完全可以在應用程序集成或其他場合下被重用的。最后,通過Web
service把你的應用程序的邏輯和數(shù)據(jù)暴露出來,還可以讓其它平臺上的客戶重用你的應用程序。
應用程序集成
企業(yè)級的應用程序開發(fā)者都知道,企業(yè)里經(jīng)常都要把用不同語言寫成的在不同平臺上運行的各種程序集成起來,而這種集成將花費很大的開發(fā)的力量。你的應用程序經(jīng)常都需要從運行在古老的IBM主機上的程序中獲取數(shù)據(jù);或者再把數(shù)據(jù)發(fā)送到主機或UNIX應用程序中去。即使是在同一個平臺上,不同的軟件廠商生產(chǎn)的各種軟件也常常需要集成起來。通過Web
service,應用程序可以用標準的方法把功能和數(shù)據(jù)暴露出來,供其它的應用程序使用。
例如,你有一個訂單登錄程序,用于登錄從客戶來的新訂單,包括客戶信息、發(fā)貨地址、數(shù)量、價格和付款方式等信息。同時,你還有一個訂單執(zhí)行程序,用于實際貨物發(fā)送的管理。這兩個程序是來自不同軟件廠商的。一份新訂單進來之后,訂單登錄程序需要通知訂單執(zhí)行程序發(fā)送貨物。通過在訂單執(zhí)行程序上面增加一層Web
service,訂單執(zhí)行程序可以把"AddOrder"函數(shù)暴露出來。這樣,每當有新訂單到來時,訂單登錄程序就可以調(diào)用這個函數(shù)來發(fā)送貨物了。如下圖。
B2B的集成
用Web
service集成應用程序,可以使你公司內(nèi)部的商務處理更加自動化。但當交易跨越了你的供應商和客戶,突破了公司的界線時又會怎么樣呢?跨公司的商務交易集成通常叫做B2B集成。
Web
service是B2B集成成功的關(guān)鍵。通過Web
service,你的公司可以把關(guān)鍵的商務應用暴露給指定的供應商和客戶。例如,把你的電子下單系統(tǒng)和電子發(fā)票系統(tǒng)暴露出來,你的客戶就可以以電子的方式向你發(fā)送購貨訂單,而你的供應商則可以以電子的方式把原料采購的發(fā)票發(fā)送給你。當然,這并不是一個新的概念:電子文檔交換(EDI)早就是這樣了。Web
service和EDI之間的主要區(qū)別在于,Web service的實現(xiàn)要比EDI簡單得多,而且Web
service是運行在Internet上的,在世界任何地方都可輕易實現(xiàn),這樣其運行成本就相對較低。不過,Web
service并不像EDI那樣,是文檔交換或B2B集成的一套完整的解決方案。Web
service只是B2B集成的一個關(guān)鍵部分,還需要許多其它的部分才能完成這個集成。
用Web
service來實現(xiàn)B2B集成的最大好處在于可以輕易實現(xiàn)互操作性。只要把你的商務邏輯暴露出來,成為Web
service,你就可以讓任何指定的合作伙伴輕松的調(diào)用你的商務邏輯,而不管他們的系統(tǒng)在什么平臺上運行,使用的是什么開發(fā)語言。這樣就大大減少了花在B2B集成的上的時間和成本。這樣的低成本讓許多原本無法承受EDI的投資成本的中小企業(yè)也能實現(xiàn)B2B集成。
軟件重用
軟件重用是一個很大的主題,它有很多的形式和程度。最基本的形式是源代碼模塊或者類一級的重用。另一種形式是二進制形式的組件重用。當前,像表格控件或用戶界面控件這樣的可重用軟件組件在市場上都占有很大的份額。但這類軟件的重用都有一個很嚴重的限制:重用僅限于代碼,而數(shù)據(jù)不能被重用。原因在于你可以很輕易的發(fā)布組件甚至源代碼,但要發(fā)布數(shù)據(jù)就沒那么容易了,除非那些數(shù)據(jù)都是不會經(jīng)常變化的靜態(tài)數(shù)據(jù)。
而Web
service允許你在重用代碼的同時,重用代碼后面的數(shù)據(jù)。使用Web
service,你不再像以前那樣,要先從第三方購買、安裝軟件組件,再從你的應用程序中調(diào)用這些組件。你只需要直接調(diào)用遠端的Web
service就可以了。舉個例子,你想在你的應用程序中確認用戶輸入的郵件地址,那么,你只需把這個地址直接發(fā)送給相應的Web service,這個Web
service 就會幫你查閱街道地址、城市、省區(qū)和郵政編碼等信息,確認這個地址的確在相應的郵政編碼區(qū)域。Web service
的提供商可以按時間或使用次數(shù)來對這項服務進行收費。這樣的服務要通過組件重用來實現(xiàn)是不現(xiàn)實的,因為那樣的話你必須下載并安裝好包含街道地址、城市、省區(qū)和郵政編碼等信息的數(shù)據(jù)庫,而且這個數(shù)據(jù)庫還是不能實時更新的。
另一種軟件重用的情況是把好幾個應用程序的功能集成起來。例如,你想要建立一個局域網(wǎng)上的門戶站點應用,讓用戶既可以查詢他們的聯(lián)邦快遞包裹,察看股市行情,又可以管理他們的日程安排,還可以在線購買電影票。現(xiàn)在Web上有很多應用程序供應商,都在其應用中實現(xiàn)了上面的這些功能。一旦他們把這些功能都通過Web
service 暴露出來,你就可以非常輕易地把所有這些功能都集成到你的門戶站點中,為用戶提供一個統(tǒng)一的、友好的界面。如下圖。
用Web
service來集成各種應用中的功能,為用戶提供一個統(tǒng)一的界面
許多應用程序都會利用Web
service,把當前基于組件的應用程序結(jié)構(gòu)擴展為組件和Web service 的混合結(jié)構(gòu)。你也可以在應用程序中使用第三方的Web service
提供的功能。你還可以把你自己的應用程序的功能通過Web service 提供給別人。所有這些情況下,你都可以重用代碼和代碼后面的數(shù)據(jù)??傊琖eb
service 將是軟件重用的一種非常有力的形式。
什么時候不應該使用Web Service
一個對Web
service的完整介紹還應該包括什么時候不該用Web service。經(jīng)過前面的介紹,我們知道了Web service
在通過Web進行互操作或遠程調(diào)用的時候是最有用的。不過,還有許多情況,Web service根本不能給你帶來任何好處。
單機應用程序
目前,我們還有很多桌面應用程序是供商用和個人使用的。其中一些只需要與運行在本機上的其他程序通信。在這種情況下,我們最好就不要再用Web
service
,只要用本地的API就可以了。COM非常適合于在這種情況下工作,因為它既小又快。運行在一臺服務器上的服務器軟件也是這樣:最好直接用COM或其他本地的API來進行應用程序間的調(diào)用。當然Web
service 也能用在這些情況下,但那樣不僅消耗太大,而且不會給你帶來任何好處。
局域網(wǎng)上的同構(gòu)應用程序
在許多應用中,你所有的程序都是用VB或VC開發(fā)的,都在Windows平臺下使用COM,都運行在同一個局域網(wǎng)上。例如,你有兩個服務器應用程序需要相互通信,或者你有一個Win32或WinForm的客戶程序要連接到局域網(wǎng)上的另一個服務器程序。在這些程序里使用DCOM會比SOAP/HTTP有效的多。類似的,如果你的一個.NET程序要連接到LAN上的另一個.NET程序,那么你應該使用.NET
remoting。有趣的是,在.NET remoting中,你也可以指定使用SOAP/HTTP來進行Web service
調(diào)用。不過最好還是直接通過TCP進行RPC調(diào)用,那樣會有效得多??傊?,只要你從應用程序結(jié)構(gòu)的角度看來,有別的方法比Web service
更有效,更可行,那就不要再用Web service。
總結(jié)
Web service是創(chuàng)建可互操作的分布式應用程序的新平臺。Web service
的主要目標是跨平臺的可互操作性。為了達到這一目標,Web service 是完全基于XML、XSD等獨立于平臺、獨立于軟件供應商的標準的。
Web service在應用程序跨平臺和跨網(wǎng)絡進行通信的時候是非常有用的。Web
service適用于應用程序集成、B2B集成、代碼和數(shù)據(jù)重用,以及通過Web進行客戶端和服務器的通信的場合。
當然,Web
service也不是萬能的,你不能到處濫用Web service。在有些情況下,Web service
會降低應用程序的性能,而不會帶來任何好處。例如,一臺機器或一個局域網(wǎng)里面運行的同構(gòu)應用程序就不應該用Web service
進行通信。
- 1ITSM市場 誰來撼動四大管理廠商?
- 2重慶OA幫助企業(yè)雇傭員工頭腦(Kevin)
- 3訪大連市衛(wèi)生局信息中心副主任林紅十
- 4ERP項目實施 要跑好哪“三匹馬”?
- 5企業(yè)理念:老鼠與米缸故事的啟發(fā)
- 6IT業(yè)成為金融風暴中最脆弱三大行業(yè)之一
- 7SOA與云計算之間可進行互補相互促進
- 8企業(yè)級項目管理體系建設概述
- 9ITIL讓小公司成就大作為
- 10陳春花:管理新內(nèi)涵 變革和知識管理
- 11四大管理軟件廠商顯露疲態(tài)
- 12新醫(yī)改漸行漸近 六大信息建設初現(xiàn)端倪
- 13如何判斷一個企業(yè)流程管理水平高低?
- 14XML Web Service基礎
- 15微軟反唇相譏:Sun ONE毫無競爭性
- 16成功實施IT資產(chǎn)管理的十個經(jīng)驗
- 17談談企業(yè)信息門戶與企業(yè)知識門戶
- 18財務管理系統(tǒng)選型之打印格式的設置
- 19交通違章繳費系統(tǒng)有望全國聯(lián)網(wǎng)管理
- 20工業(yè)小組定義網(wǎng)絡服務
- 21企業(yè)商業(yè)智能應用鮮有作為原因何在?
- 22醫(yī)院信息系統(tǒng)也要強調(diào)項目管理
- 23建立企業(yè)級項目管理體系步驟(下)
- 24軟件企業(yè)未來的SaaS將走入歧途?
- 25ITIL是洋東西 水土不服慢消化
- 26重慶XX房地產(chǎn)公司大OA辦公系統(tǒng)之ERP項目工作周報(10.21—10.25
- 27提供云計算服務 從行業(yè)應用開始
- 28打好企業(yè)信息戰(zhàn) 商務智能軟件派上用場
- 29ISO20000是ITIL藥到病除的萬能藥?
- 30北京煙草電子結(jié)算系統(tǒng)升級
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114