我們經(jīng)常聽(tīng)到WEB Service,那么什么是Web Service?Web Service有什么用呢?什么情況下使用Web Service呢?本文就給出基礎(chǔ)認(rèn)識(shí)。
實(shí)際上,Web Service的主要目標(biāo)是跨平臺(tái)的可互操作性。為了達(dá)到這一目標(biāo),WebService完全基于XML(可擴(kuò)展標(biāo)記語(yǔ)言)、XSD(XMLSchema)等獨(dú)立于平臺(tái)、獨(dú)立于軟件供應(yīng)商的標(biāo)準(zhǔn),是創(chuàng)建可互操作的、分布式應(yīng)用程序的新平臺(tái)。由此可以看出,在以下三種情況下,使用WebService會(huì)帶來(lái)極大的好處。
長(zhǎng)項(xiàng)一:跨防火墻的通信
如果應(yīng)用程序有成千上萬(wàn)的用戶(hù),而且分布在世界各地,那么客戶(hù)端和服務(wù)器之間的通信將是一個(gè)棘手的問(wèn)題。因?yàn)榭蛻?hù)端和服務(wù)器之間通常會(huì)有防火墻或者代理服務(wù)器。在這種情況下,使用DCOM就不是那么簡(jiǎn)單,通常也不便于把客戶(hù)端程序發(fā)布到數(shù)量如此龐大的每一個(gè)用戶(hù)手中。傳統(tǒng)的做法是,選擇用瀏覽器作為客戶(hù)端,寫(xiě)下一大堆ASP頁(yè)面,把應(yīng)用程序的中間層暴露給最終用戶(hù)。這樣做的結(jié)果是開(kāi)發(fā)難度大,程序很難維護(hù)。
舉個(gè)例子,在應(yīng)用程序里加入一個(gè)新頁(yè)面,必須先建立好用戶(hù)界面(Web頁(yè)面),并在這個(gè)頁(yè)面后面,包含相應(yīng)商業(yè)邏輯的中間層組件,還要再建立至少一個(gè)ASP頁(yè)面,用來(lái)接受用戶(hù)輸入的信息,調(diào)用中間層組件,把結(jié)果格式化為HTML形式,最后還要把“結(jié)果頁(yè)”送回瀏覽器。要是客戶(hù)端代碼不再如此依賴(lài)于HTML表單,客戶(hù)端的編程就簡(jiǎn)單多了。
如果中間層組件換成WebService的話,就可以從用戶(hù)界面直接調(diào)用中間層組件,從而省掉建立ASP頁(yè)面的那一步。要調(diào)用WebService,可以直接使用MicrosoftSOAPToolkit或.NET這樣的SOAP客戶(hù)端,也可以使用自己開(kāi)發(fā)的SOAP客戶(hù)端,然后把它和應(yīng)用程序連接起來(lái)。不僅縮短了開(kāi)發(fā)周期,還減少了代碼復(fù)雜度,并能夠增強(qiáng)應(yīng)用程序的可維護(hù)性。同時(shí),應(yīng)用程序也不再需要在每次調(diào)用中間層組件時(shí),都跳轉(zhuǎn)到相應(yīng)的“結(jié)果頁(yè)”。
從經(jīng)驗(yàn)來(lái)看,在一個(gè)用戶(hù)界面和中間層有較多交互的應(yīng)用程序中,使用WebService這種結(jié)構(gòu),可以節(jié)省花在用戶(hù)界面編程上20%的開(kāi)發(fā)時(shí)間。另外,這樣一個(gè)由WebService組成的中間層,完全可以在應(yīng)用程序集成或其它場(chǎng)合下重用。最后,通過(guò)WebService把應(yīng)用程序的邏輯和數(shù)據(jù)“暴露”出來(lái),還可以讓其它平臺(tái)上的客戶(hù)重用這些應(yīng)用程序。
長(zhǎng)項(xiàng)二:應(yīng)用程序集成
企業(yè)級(jí)的應(yīng)用程序開(kāi)發(fā)者都知道,企業(yè)里經(jīng)常都要把用不同語(yǔ)言寫(xiě)成的、在不同平臺(tái)上運(yùn)行的各種程序集成起來(lái),而這種集成將花費(fèi)很大的開(kāi)發(fā)力量。應(yīng)用程序經(jīng)常需要從運(yùn)行在IBM主機(jī)上的程序中獲取數(shù)據(jù);或者把數(shù)據(jù)發(fā)送到主機(jī)或UNIX應(yīng)用程序中去。即使在同一個(gè)平臺(tái)上,不同軟件廠商生產(chǎn)的各種軟件也常常需要集成起來(lái)。通過(guò)WebService,應(yīng)用程序可以用標(biāo)準(zhǔn)的方法把功能和數(shù)據(jù)“暴露”出來(lái),供其它應(yīng)用程序使用。
例如,有一個(gè)訂單登錄程序,用于登錄從客戶(hù)來(lái)的新訂單,包括客戶(hù)信息、發(fā)貨地址、數(shù)量、價(jià)ge和付款方式等內(nèi)容;還有一個(gè)訂單執(zhí)行程序,用于實(shí)際貨物發(fā)送的管理。這兩個(gè)程序來(lái)自不同軟件廠商。一份新訂單進(jìn)來(lái)之后,訂單登錄程序需要通知訂單執(zhí)行程序發(fā)送貨物。通過(guò)在訂單執(zhí)行程序上面增加一層WebService,訂單執(zhí)行程序可以把“AddOrder”函數(shù)“暴露”出來(lái)。這樣,每當(dāng)有新訂單到來(lái)時(shí),訂單登錄程序就可以調(diào)用這個(gè)函數(shù)來(lái)發(fā)送貨物了。
新聞熱點(diǎn)
疑難解答
圖片精選