詞語(yǔ)解釋
WebService(網(wǎng)絡(luò)服務(wù))是一種用于在網(wǎng)絡(luò)上傳輸信息的標(biāo)準(zhǔn)化技術(shù),它可以使不同類型的計(jì)算機(jī)系統(tǒng)之間進(jìn)行信息交換,實(shí)現(xiàn)跨網(wǎng)絡(luò)的通信。 WebService是一種分布式應(yīng)用程序架構(gòu),它將系統(tǒng)的功能模塊以WebService的形式發(fā)布,使得其他系統(tǒng)可以通過(guò)網(wǎng)絡(luò)訪問(wèn)這些功能模塊,從而實(shí)現(xiàn)跨網(wǎng)絡(luò)的信息交換。WebService使得網(wǎng)絡(luò)上的應(yīng)用程序可以以標(biāo)準(zhǔn)化的方式進(jìn)行交互,而不必考慮底層網(wǎng)絡(luò)的具體實(shí)現(xiàn)。 WebService的應(yīng)用非常廣泛,可以用于實(shí)現(xiàn)跨網(wǎng)絡(luò)的數(shù)據(jù)交換,實(shí)現(xiàn)跨網(wǎng)絡(luò)的應(yīng)用程序集成,實(shí)現(xiàn)跨網(wǎng)絡(luò)的計(jì)算服務(wù),實(shí)現(xiàn)跨網(wǎng)絡(luò)的多媒體服務(wù),實(shí)現(xiàn)跨網(wǎng)絡(luò)的軟件升級(jí)服務(wù),實(shí)現(xiàn)跨網(wǎng)絡(luò)的支付服務(wù),實(shí)現(xiàn)跨網(wǎng)絡(luò)的知識(shí)服務(wù),實(shí)現(xiàn)跨網(wǎng)絡(luò)的業(yè)務(wù)流程服務(wù),實(shí)現(xiàn)跨網(wǎng)絡(luò)的認(rèn)證服務(wù)等。 WebService可以使不同類型的計(jì)算機(jī)系統(tǒng)之間進(jìn)行信息交換,實(shí)現(xiàn)跨網(wǎng)絡(luò)的通信。它可以將復(fù)雜的應(yīng)用程序分解為一系列的WebService,每個(gè)WebService都可以被獨(dú)立地發(fā)布、調(diào)用和維護(hù),從而提高了系統(tǒng)的可維護(hù)性和可擴(kuò)展性。WebService的發(fā)展為跨網(wǎng)絡(luò)的應(yīng)用程序集成提供了一種新的技術(shù)框架,為跨網(wǎng)絡(luò)的數(shù)據(jù)交換和服務(wù)提供了一種新的通信方式。 當(dāng)前,WebService是一個(gè)熱門話題。但是,WebService究竟是什么?什么情況下應(yīng)該用WebService?什么情況下不應(yīng)該用WebService?是需要我們正確認(rèn)識(shí)的。 實(shí)際上,WebService的主要目標(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)的用戶,而且分布在世界各地,那么客戶端和服務(wù)器之間的通信將是一個(gè)棘手的問(wèn)題。因?yàn)榭蛻舳撕头⻊?wù)器之間通常會(huì)有防火墻或者代理服務(wù)器。在這種情況下,使用DCOM就不是那么簡(jiǎn)單,通常也不便于把客戶端程序發(fā)布到數(shù)量如此龐大的每一個(gè)用戶手中。傳統(tǒng)的做法是,選擇用瀏覽器作為客戶端,寫下一大堆ASP頁(yè)面,把應(yīng)用程序的中間層暴露給最終用戶。這樣做的結(jié)果是開發(fā)難度大,程序很難維護(hù)。 圖1通過(guò)WebService集成應(yīng)用程序 舉個(gè)例子,在應(yīng)用程序里加入一個(gè)新頁(yè)面,必須先建立好用戶界面(Web頁(yè)面),并在這個(gè)頁(yè)面后面,包含相應(yīng)商業(yè)邏輯的中間層組件,還要再建立至少一個(gè)ASP頁(yè)面,用來(lái)接受用戶輸入的信息,調(diào)用中間層組件,把結(jié)果格式化為HTML形式,最后還要把“結(jié)果頁(yè)”送回瀏覽器。要是客戶端代碼不再如此依賴于HTML表單,客戶端的編程就簡(jiǎn)單多了。 如果中間層組件換成WebService的話,就可以從用戶界面直接調(diào)用中間層組件,從而省掉建立ASP頁(yè)面的那一步。要調(diào)用WebService,可以直接使用MicrosoftSOAPToolkit或.NET這樣的SOAP客戶端,也可以使用自己開發(fā)的SOAP客戶端,然后把它和應(yīng)用程序連接起來(lá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è)用戶界面和中間層有較多交互的應(yīng)用程序中,使用WebService這種結(jié)構(gòu),可以節(jié)省花在用戶界面編程上20%的開發(fā)時(shí)間。另外,這樣一個(gè)由WebService組成的中間層,完全可以在應(yīng)用程序集成或其它場(chǎng)合下重用。最后,通過(guò)WebService把應(yīng)用程序的邏輯和數(shù)據(jù)“暴露”出來(lái),還可以讓其它平臺(tái)上的客戶重用這些應(yīng)用程序。 長(zhǎng)項(xiàng)二:應(yīng)用程序集成 企業(yè)級(jí)的應(yīng)用程序開發(fā)者都知道,企業(yè)里經(jīng)常都要把用不同語(yǔ)言寫成的、在不同平臺(tái)上運(yùn)行的各種程序集成起來(lái),而這種集成將花費(fè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è)訂單登錄程序,用于登錄從客戶來(lái)的新訂單,包括客戶信息、發(fā)貨地址、數(shù)量、價(jià)格和付款方式等內(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ā)送貨物了。 長(zhǎng)項(xiàng)三:B2B的集成 用WebService集成應(yīng)用程序,可以使公司內(nèi)部的商務(wù)處理更加自動(dòng)化。但當(dāng)交易跨越供應(yīng)商和客戶、突破公司的界限時(shí)會(huì)怎么樣呢?跨公司的商務(wù)交易集成通常叫做B2B集成。 WebService是B2B集成成功的關(guān)鍵。通過(guò)WebService,公司可以把關(guān)鍵的商務(wù)應(yīng)用“暴露”給指定的供應(yīng)商和客戶。例如,把電子下單系統(tǒng)和電子發(fā)票系統(tǒng)“暴露”出來(lái),客戶就可以以電子的方式發(fā)送訂單,供應(yīng)商則可以以電子的方式發(fā)送原料采購(gòu)發(fā)票。當(dāng)然,這并不是一個(gè)新的概念,EDI(電子文檔交換)早就是這樣了。但是,WebService的實(shí)現(xiàn)要比EDI簡(jiǎn)單得多,而且WebService運(yùn)行在Internet上,在世界任何地方都可輕易實(shí)現(xiàn),其運(yùn)行成本就相對(duì)較低。不過(guò),WebService并不像EDI那樣,是文檔交換或B2B集成的完整解決方案。WebService只是B2B集成的一個(gè)關(guān)鍵部分,還需要許多其它的部分才能實(shí)現(xiàn)集成。 用WebService來(lái)實(shí)現(xiàn)B2B集成的最大好處在于可以輕易實(shí)現(xiàn)互操作性。只要把商務(wù)邏輯“暴露”出來(lái),成為WebService,就可以讓任何指定的合作伙伴調(diào)用這些商務(wù)邏輯,而不管他們的系統(tǒng)在什么平臺(tái)上運(yùn)行,使用什么開發(fā)語(yǔ)言。這樣就大大減少了花在B2B集成上的時(shí)間和成本,讓許多原本無(wú)法承受EDI的中小企業(yè)也能實(shí)現(xiàn)B2B集成。 長(zhǎng)項(xiàng)四:軟件和數(shù)據(jù)重用 軟件重用是一個(gè)很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是源代碼模塊或者類一級(jí)的重用,另一種形式是二進(jìn)制形式的組件重用。 圖2用WebService集成各種應(yīng)用中的功能,為用戶提供一個(gè)統(tǒng)一的界面 當(dāng)前,像表格控件或用戶界面控件這樣的可重用軟件組件,在市場(chǎng)上都占有很大的份額。但這類軟件的重用有一個(gè)很大的限制,就是重用僅限于代碼,數(shù)據(jù)不能重用。原因在于,發(fā)布組件甚至源代碼都比較容易,但要發(fā)布數(shù)據(jù)就沒(méi)那么容易,除非是不會(huì)經(jīng)常變化的靜態(tài)數(shù)據(jù)。 WebService在允許重用代碼的同時(shí),可以重用代碼背后的數(shù)據(jù)。使用WebService,再也不必像以前那樣,要先從第三方購(gòu)買、安裝軟件組件,再?gòu)膽?yīng)用程序中調(diào)用這些組件;只需要直接調(diào)用遠(yuǎn)端的WebService就可以了。舉個(gè)例子,要在應(yīng)用程序中確認(rèn)用戶輸入的地址,只需把這個(gè)地址直接發(fā)送給相應(yīng)的WebService,這個(gè)WebService就會(huì)幫你查閱街道地址、城市、省區(qū)和郵政編碼等信息,確認(rèn)這個(gè)地址是否在相應(yīng)的郵政編碼區(qū)域。WebService的提供商可以按時(shí)間或使用次數(shù)來(lái)對(duì)這項(xiàng)服務(wù)進(jìn)行收費(fèi)。這樣的服務(wù)要通過(guò)組件重用來(lái)實(shí)現(xiàn)是不可能的,那樣的話你必須下載并安裝好包含街道地址、城市、省區(qū)和郵政編碼等信息的數(shù)據(jù)庫(kù),而且這個(gè)數(shù)據(jù)庫(kù)還是不能實(shí)時(shí)更新的。 另一種軟件重用的情況是,把好幾個(gè)應(yīng)用程序的功能集成起來(lái)。例如,要建立一個(gè)局域網(wǎng)上的門戶站點(diǎn)應(yīng)用,讓用戶既可以查詢聯(lián)邦快遞包裹,查看股市行情,又可以管理自己的日程安排,還可以在線購(gòu)買電影票。現(xiàn)在Web上有很多應(yīng)用程序供應(yīng)商,都在其應(yīng)用中實(shí)現(xiàn)了這些功能。一旦他們把這些功能都通過(guò)WebService“暴露”出來(lái),就可以非常容易地把所有這些功能都集成到你的門戶站點(diǎn)中,為用戶提供一個(gè)統(tǒng)一的、友好的界面。 將來(lái),許多應(yīng)用程序都會(huì)利用WebService,把當(dāng)前基于組件的應(yīng)用程序結(jié)構(gòu)擴(kuò)展為組件/WebService的混合結(jié)構(gòu),可以在應(yīng)用程序中使用第三方的WebService提供的功能,也可以把自己的應(yīng)用程序功能通過(guò)WebService提供給別人。兩種情況下,都可以重用代碼和代碼背后的數(shù)據(jù)。 從以上論述可以看出,WebService在通過(guò)Web進(jìn)行互操作或遠(yuǎn)程調(diào)用的時(shí)候是最有用的。不過(guò),也有一些情況,WebService根本不能帶來(lái)任何好處。 短處一:?jiǎn)螜C(jī)應(yīng)用程序 目前,企業(yè)和個(gè)人還使用著很多桌面應(yīng)用程序。其中一些只需要與本機(jī)上的其它程序通信。在這種情況下,最好就不要用WebService,只要用本地的API就可以了。COM非常適合于在這種情況下工作,因?yàn)樗刃∮挚。運(yùn)行在同一臺(tái)服務(wù)器上的服務(wù)器軟件也是這樣。最好直接用COM或其它本地的API來(lái)進(jìn)行應(yīng)用程序間的調(diào)用。當(dāng)然WebService也能用在這些場(chǎng)合,但那樣不僅消耗太大,而且不會(huì)帶來(lái)任何好處。 短處二:局域網(wǎng)的同構(gòu)應(yīng)用程序 在許多應(yīng)用中,所有的程序都是用VB或VC開發(fā)的,都在Windows平臺(tái)下使用COM,都運(yùn)行在同一個(gè)局域網(wǎng)上。例如,有兩個(gè)服務(wù)器應(yīng)用程序需要相互通信,或者有一個(gè)Win32或WinForm的客戶程序要連接局域網(wǎng)上另一個(gè)服務(wù)器的程序。在這些程序里,使用DCOM會(huì)比SOAP/HTTP有效得多。與此相類似,如果一個(gè).NET程序要連接到局域網(wǎng)上的另一個(gè).NET程序,應(yīng)該使用.NETremoting。有趣的是,在.NETremoting中,也可以指定使用SOAP/HTTP來(lái)進(jìn)行WebService調(diào)用。不過(guò)最好還是直接通過(guò)TCP進(jìn)行RPC調(diào)用,那樣會(huì)有效得多。 總之,只要從應(yīng)用程序結(jié)構(gòu)的角度看,有別的方法比WebService更有效、更可行,那就不要用WebService
當(dāng)前,WebService是一個(gè)熱門話題。但是,WebService究竟是什么?什么情況下應(yīng)該用WebService?什么情況下不應(yīng)該用WebService?是需要我們正確認(rèn)識(shí)的。 實(shí)際上,WebService的主要目標(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)的用戶,而且分布在世界各地,那么客戶端和服務(wù)器之間的通信將是一個(gè)棘手的問(wèn)題。因?yàn)榭蛻舳撕头⻊?wù)器之間通常會(huì)有防火墻或者代理服務(wù)器。在這種情況下,使用DCOM就不是那么簡(jiǎn)單,通常也不便于把客戶端程序發(fā)布到數(shù)量如此龐大的每一個(gè)用戶手中。傳統(tǒng)的做法是,選擇用瀏覽器作為客戶端,寫下一大堆ASP頁(yè)面,把應(yīng)用程序的中間層暴露給最終用戶。這樣做的結(jié)果是開發(fā)難度大,程序很難維護(hù)。 圖1通過(guò)WebService集成應(yīng)用程序 舉個(gè)例子,在應(yīng)用程序里加入一個(gè)新頁(yè)面,必須先建立好用戶界面(Web頁(yè)面),并在這個(gè)頁(yè)面后面,包含相應(yīng)商業(yè)邏輯的中間層組件,還要再建立至少一個(gè)ASP頁(yè)面,用來(lái)接受用戶輸入的信息,調(diào)用中間層組件,把結(jié)果格式化為HTML形式,最后還要把“結(jié)果頁(yè)”送回瀏覽器。要是客戶端代碼不再如此依賴于HTML表單,客戶端的編程就簡(jiǎn)單多了。 如果中間層組件換成WebService的話,就可以從用戶界面直接調(diào)用中間層組件,從而省掉建立ASP頁(yè)面的那一步。要調(diào)用WebService,可以直接使用MicrosoftSOAPToolkit或.NET這樣的SOAP客戶端,也可以使用自己開發(fā)的SOAP客戶端,然后把它和應(yīng)用程序連接起來(lá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è)用戶界面和中間層有較多交互的應(yīng)用程序中,使用WebService這種結(jié)構(gòu),可以節(jié)省花在用戶界面編程上20%的開發(fā)時(shí)間。另外,這樣一個(gè)由WebService組成的中間層,完全可以在應(yīng)用程序集成或其它場(chǎng)合下重用。最后,通過(guò)WebService把應(yīng)用程序的邏輯和數(shù)據(jù)“暴露”出來(lái),還可以讓其它平臺(tái)上的客戶重用這些應(yīng)用程序。 長(zhǎng)項(xiàng)二:應(yīng)用程序集成 企業(yè)級(jí)的應(yīng)用程序開發(fā)者都知道,企業(yè)里經(jīng)常都要把用不同語(yǔ)言寫成的、在不同平臺(tái)上運(yùn)行的各種程序集成起來(lái),而這種集成將花費(fè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è)訂單登錄程序,用于登錄從客戶來(lái)的新訂單,包括客戶信息、發(fā)貨地址、數(shù)量、價(jià)格和付款方式等內(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ā)送貨物了。 長(zhǎng)項(xiàng)三:B2B的集成 用WebService集成應(yīng)用程序,可以使公司內(nèi)部的商務(wù)處理更加自動(dòng)化。但當(dāng)交易跨越供應(yīng)商和客戶、突破公司的界限時(shí)會(huì)怎么樣呢?跨公司的商務(wù)交易集成通常叫做B2B集成。 WebService是B2B集成成功的關(guān)鍵。通過(guò)WebService,公司可以把關(guān)鍵的商務(wù)應(yīng)用“暴露”給指定的供應(yīng)商和客戶。例如,把電子下單系統(tǒng)和電子發(fā)票系統(tǒng)“暴露”出來(lái),客戶就可以以電子的方式發(fā)送訂單,供應(yīng)商則可以以電子的方式發(fā)送原料采購(gòu)發(fā)票。當(dāng)然,這并不是一個(gè)新的概念,EDI(電子文檔交換)早就是這樣了。但是,WebService的實(shí)現(xiàn)要比EDI簡(jiǎn)單得多,而且WebService運(yùn)行在Internet上,在世界任何地方都可輕易實(shí)現(xiàn),其運(yùn)行成本就相對(duì)較低。不過(guò),WebService并不像EDI那樣,是文檔交換或B2B集成的完整解決方案。WebService只是B2B集成的一個(gè)關(guān)鍵部分,還需要許多其它的部分才能實(shí)現(xiàn)集成。 用WebService來(lái)實(shí)現(xiàn)B2B集成的最大好處在于可以輕易實(shí)現(xiàn)互操作性。只要把商務(wù)邏輯“暴露”出來(lái),成為WebService,就可以讓任何指定的合作伙伴調(diào)用這些商務(wù)邏輯,而不管他們的系統(tǒng)在什么平臺(tái)上運(yùn)行,使用什么開發(fā)語(yǔ)言。這樣就大大減少了花在B2B集成上的時(shí)間和成本,讓許多原本無(wú)法承受EDI的中小企業(yè)也能實(shí)現(xiàn)B2B集成。 長(zhǎng)項(xiàng)四:軟件和數(shù)據(jù)重用 軟件重用是一個(gè)很大的主題,重用的形式很多,重用的程度有大有小。最基本的形式是源代碼模塊或者類一級(jí)的重用,另一種形式是二進(jìn)制形式的組件重用。 圖2用WebService集成各種應(yīng)用中的功能,為用戶提供一個(gè)統(tǒng)一的界面 當(dāng)前,像表格控件或用戶界面控件這樣的可重用軟件組件,在市場(chǎng)上都占有很大的份額。但這類軟件的重用有一個(gè)很大的限制,就是重用僅限于代碼,數(shù)據(jù)不能重用。原因在于,發(fā)布組件甚至源代碼都比較容易,但要發(fā)布數(shù)據(jù)就沒(méi)那么容易,除非是不會(huì)經(jīng)常變化的靜態(tài)數(shù)據(jù)。 WebService在允許重用代碼的同時(shí),可以重用代碼背后的數(shù)據(jù)。使用WebService,再也不必像以前那樣,要先從第三方購(gòu)買、安裝軟件組件,再?gòu)膽?yīng)用程序中調(diào)用這些組件;只需要直接調(diào)用遠(yuǎn)端的WebService就可以了。舉個(gè)例子,要在應(yīng)用程序中確認(rèn)用戶輸入的地址,只需把這個(gè)地址直接發(fā)送給相應(yīng)的WebService,這個(gè)WebService就會(huì)幫你查閱街道地址、城市、省區(qū)和郵政編碼等信息,確認(rèn)這個(gè)地址是否在相應(yīng)的郵政編碼區(qū)域。WebService的提供商可以按時(shí)間或使用次數(shù)來(lái)對(duì)這項(xiàng)服務(wù)進(jìn)行收費(fèi)。這樣的服務(wù)要通過(guò)組件重用來(lái)實(shí)現(xiàn)是不可能的,那樣的話你必須下載并安裝好包含街道地址、城市、省區(qū)和郵政編碼等信息的數(shù)據(jù)庫(kù),而且這個(gè)數(shù)據(jù)庫(kù)還是不能實(shí)時(shí)更新的。 另一種軟件重用的情況是,把好幾個(gè)應(yīng)用程序的功能集成起來(lái)。例如,要建立一個(gè)局域網(wǎng)上的門戶站點(diǎn)應(yīng)用,讓用戶既可以查詢聯(lián)邦快遞包裹,查看股市行情,又可以管理自己的日程安排,還可以在線購(gòu)買電影票。現(xiàn)在Web上有很多應(yīng)用程序供應(yīng)商,都在其應(yīng)用中實(shí)現(xiàn)了這些功能。一旦他們把這些功能都通過(guò)WebService“暴露”出來(lái),就可以非常容易地把所有這些功能都集成到你的門戶站點(diǎn)中,為用戶提供一個(gè)統(tǒng)一的、友好的界面。 將來(lái),許多應(yīng)用程序都會(huì)利用WebService,把當(dāng)前基于組件的應(yīng)用程序結(jié)構(gòu)擴(kuò)展為組件/WebService的混合結(jié)構(gòu),可以在應(yīng)用程序中使用第三方的WebService提供的功能,也可以把自己的應(yīng)用程序功能通過(guò)WebService提供給別人。兩種情況下,都可以重用代碼和代碼背后的數(shù)據(jù)。 從以上論述可以看出,WebService在通過(guò)Web進(jìn)行互操作或遠(yuǎn)程調(diào)用的時(shí)候是最有用的。不過(guò),也有一些情況,WebService根本不能帶來(lái)任何好處。 短處一:?jiǎn)螜C(jī)應(yīng)用程序 目前,企業(yè)和個(gè)人還使用著很多桌面應(yīng)用程序。其中一些只需要與本機(jī)上的其它程序通信。在這種情況下,最好就不要用WebService,只要用本地的API就可以了。COM非常適合于在這種情況下工作,因?yàn)樗刃∮挚。運(yùn)行在同一臺(tái)服務(wù)器上的服務(wù)器軟件也是這樣。最好直接用COM或其它本地的API來(lái)進(jìn)行應(yīng)用程序間的調(diào)用。當(dāng)然WebService也能用在這些場(chǎng)合,但那樣不僅消耗太大,而且不會(huì)帶來(lái)任何好處。 短處二:局域網(wǎng)的同構(gòu)應(yīng)用程序 在許多應(yīng)用中,所有的程序都是用VB或VC開發(fā)的,都在Windows平臺(tái)下使用COM,都運(yùn)行在同一個(gè)局域網(wǎng)上。例如,有兩個(gè)服務(wù)器應(yīng)用程序需要相互通信,或者有一個(gè)Win32或WinForm的客戶程序要連接局域網(wǎng)上另一個(gè)服務(wù)器的程序。在這些程序里,使用DCOM會(huì)比SOAP/HTTP有效得多。與此相類似,如果一個(gè).NET程序要連接到局域網(wǎng)上的另一個(gè).NET程序,應(yīng)該使用.NETremoting。有趣的是,在.NETremoting中,也可以指定使用SOAP/HTTP來(lái)進(jìn)行WebService調(diào)用。不過(guò)最好還是直接通過(guò)TCP進(jìn)行RPC調(diào)用,那樣會(huì)有效得多。 總之,只要從應(yīng)用程序結(jié)構(gòu)的角度看,有別的方法比WebService更有效、更可行,那就不要用WebService
抱歉,此頁(yè)面的內(nèi)容受版權(quán)保護(hù),復(fù)制需扣除次數(shù),次數(shù)不足時(shí)需付費(fèi)購(gòu)買。
如需下載請(qǐng)點(diǎn)擊:點(diǎn)擊此處下載
掃碼付費(fèi)即可復(fù)制
DUN | tree20 | CASU | VANG | GSW | CNFC | CLSU | CMU | IWCU | CCSU | AWG | AD-PCM |
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助