曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
圖11-7
圖11 - 8將顯示遠(yuǎn)程方法調(diào)用的X M L過(guò)程:
對(duì)于一個(gè)非?煽康膽(yīng)用程序而言,它要求一系列的調(diào)用被處理成一個(gè)事務(wù)。這個(gè)技術(shù)保
證了調(diào)用在一種“都做或者都不做”的方式下被完成,如果應(yīng)用程序希望使用事務(wù),并且你使
用X M L - R P C協(xié)議,那么你將不得不在應(yīng)用程序中加入事務(wù)處理的能力。但如果需要的話,更新
的S O A P(和一些商務(wù)的X M L服務(wù)器產(chǎn)品)有能力去實(shí)現(xiàn)基于事務(wù)的應(yīng)用程序。
在一個(gè)分布式應(yīng)用程序中,能夠在不同的服務(wù)器間只使用一種版本控制。因?yàn)槊恳粋(gè)X M L
“文檔”都能夠被合法化為一個(gè)合適的D T D或者模式,這樣能擴(kuò)充功能和減少?zèng)_突。在一個(gè)服務(wù)
器發(fā)現(xiàn)沖突時(shí),將會(huì)執(zhí)行一個(gè)良好的錯(cuò)誤處理程序。只要X M L標(biāo)記沒(méi)有被刪除,所有的功能能
夠有效地保持在被有效隔離的分布式組件間。事實(shí)上,隨著傳送語(yǔ)言使用X M L,只要包括必要
第11章服服務(wù)器到服務(wù)器使用429 下載
服務(wù)器1 服務(wù)器2
請(qǐng)求
回復(fù)
回復(fù)
回復(fù)
請(qǐng)求
請(qǐng)求
的數(shù)據(jù),客戶結(jié)構(gòu)甚至并不必是一種固定的X M L格式。
圖11-8
松耦合系統(tǒng)中,從相互發(fā)送消息的不同協(xié)議規(guī)范中創(chuàng)建文件是相對(duì)簡(jiǎn)單的。例如,我們將
要討論使用X M L - R P C和S O A P協(xié)議的X M L分布式通信。這些系統(tǒng)是基于不同的X M L標(biāo)準(zhǔn)的,但
是一些方法如X S LT在X M L文檔的特定版本的不同規(guī)范之間不能被用于“翻譯”,這是毫無(wú)理由
的(事實(shí)上,這正在被討論)。
11.2.3 通信方式
使用X M L進(jìn)行相互通信的服務(wù)器能夠使用許多協(xié)議和標(biāo)準(zhǔn),在分布式組件間建立彼此聯(lián)系
的橋梁。最流行的是H T T P,因?yàn)樗鞘褂弥凶钇胀ǖ臉?biāo)準(zhǔn),盡管S M T P和F T P與之非常相似,
并能提供獨(dú)立傳送X M L消息的平臺(tái)。但是,更多的比較特殊的網(wǎng)絡(luò)接口,例如: C O R B A / I I O P,
Java RMI(Remete Method Invocation)和Microsoft DCOM/COM能夠被用于一些動(dòng)態(tài)X M L應(yīng)
用程序服務(wù)器。
這一部分將關(guān)注H T T P作為分布式組件的通信協(xié)議,因?yàn)樗强捎玫淖詈?jiǎn)單和最獨(dú)立的協(xié)議。
我們?cè)谧詈笠矊⒂懻撈渌恍┛捎玫膮f(xié)議,這些協(xié)議能夠?qū)崿F(xiàn)一些可變化的傳輸方法。
1. 遠(yuǎn)程調(diào)用
使用X M L的服務(wù)器到服務(wù)器通信的首要方法與傳統(tǒng)的調(diào)用分布式應(yīng)用程序的方法非常相近,
即通過(guò)調(diào)用一個(gè)方法并傳送參數(shù)到該方法,而該方法提供一個(gè)返回值,細(xì)微的不同在于所有這
些調(diào)用都在H T T P上運(yùn)行,并僅使用X M L消息去提供調(diào)用遠(yuǎn)程網(wǎng)絡(luò)服務(wù)器那個(gè)方法的信息。
在本節(jié)的后面,我們將關(guān)注X M L - R P C和S O A P,S O A P提供功能性的描述,它對(duì)于異構(gòu)的分
布式應(yīng)用程序是非常有效的—它也可能成為服務(wù)器通信發(fā)展過(guò)程中的亮點(diǎn)。
2. 數(shù)據(jù)交換
數(shù)據(jù)交換是一種用于W D D X(Web Distributed Data Exchange,We b分布式數(shù)據(jù)交換)的方
法,它與遠(yuǎn)程過(guò)程調(diào)用的不同在于它并不說(shuō)明特定的協(xié)議,且僅僅對(duì)創(chuàng)建一個(gè)關(guān)于數(shù)據(jù)的基于
X M L的消息,數(shù)據(jù)交換并不像分布式機(jī)制將方法和參數(shù)封裝起來(lái)。純粹的數(shù)據(jù)交換是一個(gè)主動(dòng)
的過(guò)程,在此過(guò)程中,遠(yuǎn)程服務(wù)器的某一個(gè)特定頁(yè)被激活,并且數(shù)據(jù)以X M L形式被發(fā)送到該頁(yè)。
430使用XML 高級(jí)編程
下載
請(qǐng)求
回復(fù)服務(wù)器2
服務(wù)器1
另外一些方法允許通過(guò)C O M、C O R B A、S M T P和另外一些別的傳送方式支持?jǐn)?shù)據(jù)交換。
11.3 XML-RPC
X M L - R P C即X M L遠(yuǎn)程過(guò)程調(diào)用,是一個(gè)相對(duì)較新的方法,這種方法激活在分布式機(jī)器上的
方法并使消息返回。它使用X M L來(lái)傳送結(jié)構(gòu)化的消息,而其中封裝的功能調(diào)用的執(zhí)行依賴于遠(yuǎn)
程系統(tǒng),這樣我們就能夠使遠(yuǎn)程系統(tǒng)與本地系統(tǒng)結(jié)合起來(lái)。事實(shí)上,當(dāng)X M L - R P C運(yùn)行在一個(gè)純
粹的H T T P上,并使用X M L(格式文本)來(lái)傳送消息時(shí),全部的標(biāo)準(zhǔn)是語(yǔ)言獨(dú)立的。
你可能對(duì)平臺(tái)的獨(dú)立性產(chǎn)生懷疑,但這個(gè)疑慮將很快被打消,即如果考慮到H T T P和X M L這
兩個(gè)主要的組件是簡(jiǎn)單而有效的標(biāo)準(zhǔn),并被全部的行業(yè)所接受,且在所有的平臺(tái)上運(yùn)行良好這
個(gè)事實(shí)。請(qǐng)相信,雖然X M L - R P C是簡(jiǎn)單的,但是它將是在未來(lái)的2 0年中X M L技術(shù)領(lǐng)域中最有效
的一個(gè)。
目前的X M L - R P C標(biāo)準(zhǔn)(參見(jiàn)h t t p : / / w w w. x m l r p c . c o m ),允許我們得到一個(gè)對(duì)于特定方法的返
回值,而該方法使用了一套由遠(yuǎn)程服務(wù)器指定的參數(shù)。我們能夠直接從一客戶或者從一個(gè)服務(wù)
器使用X M L - R P C而調(diào)用在遠(yuǎn)程服務(wù)器上的方法。在關(guān)于服務(wù)器通信的討論中,我們將看到更多
此類(lèi)情況。
在X M L - R P C世界中,訪問(wèn)一些站點(diǎn)將會(huì)使你收獲頗豐,例如h t t p : / / w w w. m a i l t o t h e f u t u r e . c o m,
它允許你使用一個(gè)遠(yuǎn)程服務(wù)器的界面在未來(lái)的某個(gè)日期發(fā)送一個(gè)e - m a i l給你自己,這有點(diǎn)像“提
醒”系統(tǒng),你能夠遠(yuǎn)程地加入一條新消息,刪除一條以前的消息,或者像一些其他方法一樣,
在使用者的隊(duì)列中得到一些消息。所有這些都可以在瀏覽這些站點(diǎn)和不使用它們的接口下被實(shí)
現(xiàn)。圖11 - 9將顯示這些工作:
圖11-9
近來(lái),我們?cè)谝恍┢脚_(tái),例如F r o n t i e r、A p p l e M a c s、U n i x和Wi n d o w s等上已經(jīng)看到允許使
用者在遠(yuǎn)程討論組上加入和修改一條消息。這能夠通過(guò)網(wǎng)絡(luò)瀏覽器或者客戶應(yīng)用程序來(lái)實(shí)現(xiàn)
(例如Microsoft Wo r d)。在這樣的界面里,你能夠創(chuàng)建一個(gè)并不基于瀏覽器的工作站編輯器,它
允許使用文本編輯器去創(chuàng)建或者編輯消息,而該文本編輯器比嵌在瀏覽器里的編輯器更為先進(jìn)。
X M L - R P C允許你向討論論壇粘貼消息,編輯已經(jīng)存在于論壇里的消息,保存自己的已經(jīng)存
在的消息。這些工作能夠在任何系統(tǒng)里完成,只要該系統(tǒng)支持H T T P協(xié)議和各種文本編輯器。
可能性每周都在增加,在h t t p : / / w w w. x m l r p c . c o m /網(wǎng)站,Dave Wi n e r正不斷地把它推向前進(jìn)。
第11章服服務(wù)器到服務(wù)器使用431 下載
文本編輯器
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(137)