曝光臺(tái) 注意防騙
網(wǎng)曝天貓店富美金盛家居專營(yíng)店坑蒙拐騙欺詐消費(fèi)者
對(duì)于以上功能調(diào)用的一個(gè)例子如下:
程序清單11 - 2 9
讓我們看看調(diào)用這些方法的服務(wù)器代碼。再次強(qiáng)調(diào)服務(wù)器實(shí)現(xiàn)并不需要使用與客戶相同的
語(yǔ)言(甚至平臺(tái))。但是我們將得到相同的功效,就像為客戶做的那樣。
(7) ASP
程序清單11 - 3 0
第11章服服務(wù)器到服務(wù)器使用443 下載
(8) Java
程序清單11 - 3 1
(9) PHP
程序清單11 - 3 2
11.3.5 書籍應(yīng)用例子
下面的這個(gè)應(yīng)用的例子( Wr o x網(wǎng)站上有一些相關(guān)的本書沒有顯示的代碼)表明如何激活一
個(gè)遠(yuǎn)程程序來(lái)接收消息和更新遠(yuǎn)程的信息庫(kù)。Wrox Books已經(jīng)決定在世界五個(gè)不同的地方安裝
五個(gè)遠(yuǎn)程服務(wù)器。在那里,書籍信息以X M L文件的方式存儲(chǔ)。盡管這些文件也能從在伯明翰的
本地服務(wù)器上直接更新(假設(shè)書籍目錄的維護(hù)是在該站點(diǎn)進(jìn)行的),使用者將能夠選擇咨詢地點(diǎn)
并得到一個(gè)主題表單,當(dāng)這個(gè)表單被返回,使用者能選擇一個(gè)主題以及查詢的區(qū)域。這樣,就
能在這些地點(diǎn)得到有關(guān)該主題的信息。
讓我們看看表示相關(guān)過程的圖表(參見圖11 - 1 2)。
444使用XML 高級(jí)編程
下載
圖11-12
一個(gè)想獲得一個(gè)或更多服務(wù)器上書籍信息的使用者,將通過顯示器來(lái)選擇站點(diǎn),進(jìn)而通過
該站點(diǎn)獲得一個(gè)書籍主題的列表(參見圖11 - 1 3)。
圖11-13
產(chǎn)生顯示的H T M L如下所示,它在文件c l i e n t . h t m里(參見程序清單11 - 3 3):
程序清單11 - 3 3
第11章服服務(wù)器到服務(wù)器使用445 下載
Glasgow
web服務(wù)器
客戶web
瀏覽器
Milano web
服務(wù)器
悉尼web
服務(wù)器
伯明翰本地
web服務(wù)器
達(dá)拉斯web
服務(wù)器
響應(yīng)返回了一個(gè)城市的列表,以及一個(gè)書籍主題的下拉式列表(參見圖11 - 1 4)。
圖11-14
在特定的遠(yuǎn)程站點(diǎn),相關(guān)書籍的數(shù)據(jù)在被存入到一個(gè)X M L文件里。這個(gè)文件被稱作
C i t y N a m e B o o k s . x m l,每個(gè)文件是否被查詢?nèi)Q于選擇的城市。因此,所有城市的X M L數(shù)據(jù)文
件都是不同的,并被該站點(diǎn)更新。
這個(gè)例子說(shuō)明了X M L - R P C的強(qiáng)大,每一個(gè)X M L庫(kù)均能存在世界上不同的遠(yuǎn)程服務(wù)器上。
446使用XML 高級(jí)編程
下載
同樣,使用這個(gè)例子,不僅能夠?qū)⑺械腦 M L庫(kù)放進(jìn)網(wǎng)絡(luò)服務(wù)器的一個(gè)目錄里,還能夠
通過在不同端口創(chuàng)建We b實(shí)現(xiàn)多個(gè)虛擬服務(wù)器。可以通過如h t t p : / / m y s e r v e r :
port/<citystore>.xml的方式實(shí)現(xiàn)訪問,位置對(duì)客戶是完全隱藏的。
關(guān)于在何處指定X M L庫(kù)位置的進(jìn)一步描述將在本章給出。
下面的X M L文件是為G l a s g o w書店建立的。這里有許多書,但每本書必須包含一個(gè)書的I D、
出版日期、書名、作者以及書的類屬。出版日期是U K日期格式,所有的處理將在伯明翰U K
We b服務(wù)器上。很明顯,如果該X M L文件要在一些國(guó)際化的服務(wù)器上處理,使用類似于I S O
8 6 0 1(該格式被X M L - R P C規(guī)范內(nèi)部使用)時(shí)間格式將更有好處。
程序清單11 - 3 4
第11章服服務(wù)器到服務(wù)器使用447 下載
1. 獲得主題列表
圖11 - 1 5將表明從X M L數(shù)據(jù)文件里獲得一個(gè)主題列表的過程。
圖11-15
表單被提交到一個(gè)稱作s u b j e c t . a s p的頁(yè)面上,它是用V B S c r i p t寫的。我們必須首先將X M L -
R P C客戶/服務(wù)器的文件包含進(jìn)來(lái),該文件包含了一個(gè)功能即將你的方法調(diào)用轉(zhuǎn)換成標(biāo)準(zhǔn)定義
(就A S P而言,目前使用的是V B S c r i p t)。
然后可以使用H T M L在屏幕顯示城市及其復(fù)選框,這個(gè)文件稱作p r o x y. a s p,當(dāng)按照選擇的主
題查詢書籍時(shí)它將被使用。
程序清單11 - 3 5
448使用XML 高級(jí)編程
下載
Client.html
不可為所有使用者
利用的網(wǎng)頁(yè),用于
選擇將查詢的遠(yuǎn)程
站點(diǎn)
Subjects.asp
向使用表單的使用
者顯示相關(guān)主題
提交選擇
的城市
XML RPC調(diào)
用激活方法
Getsubjects()
使用被選城
市作為參數(shù)
Bookserver.asp
按照R P C調(diào)用里要求的方法查詢
一個(gè)本地X M L文件并返回結(jié)果到
Subjects.asp
Subjects.asp
檢查P O S T發(fā)現(xiàn)哪個(gè)城市被選中,并為
每個(gè)所選的城市在該遠(yuǎn)程站點(diǎn)調(diào)用
B o o k s e r v e r. a s p (如果G l a s g o w被選中,
那么該處的web服務(wù)器將被查詢)
然后我們創(chuàng)建一個(gè)目錄對(duì)象的實(shí)例來(lái)保存每一個(gè)返回的主題的名字。將使用函數(shù)
C h e c k D u p l i c a t e(),這個(gè)函數(shù)決定是否一個(gè)主題的實(shí)例已經(jīng)被找到。如果沒有,它將被去掉
—這樣就可以避免用戶在下拉列表中看到重復(fù)主題。
程序清單11 - 3 6
然后我們引用在前頁(yè)c l i e n t . h t m中的隱藏元素F u n c t i o n,它將用于定義被激活的X M L - R P C方
法。我們想調(diào)用的這個(gè)方法稱作G e t S u b j e c t s(),被選城市將被作為一個(gè)參數(shù)傳送,因此我們聲
明一個(gè)數(shù)組(該參數(shù)必須以數(shù)組形式傳送)稱作p a r a m l i s t,有一個(gè)元素。
程序清單11 - 3 7
這些值被插入到一個(gè)斷開的記錄集中去,因?yàn)橛杏涗浖瘜?duì)象的s a v e()方法,因而保存分布
式系統(tǒng)數(shù)據(jù)是簡(jiǎn)單的。記錄集設(shè)置了用戶游標(biāo)來(lái)許可記錄集的斷開。
程序清單11 - 3 8
隨后,在記錄集對(duì)象里創(chuàng)建一個(gè)區(qū)域。我們想通過標(biāo)題的地點(diǎn)和它在本地的唯一I D來(lái)識(shí)別
第11章服服務(wù)器到服務(wù)器使用449 下載
每一個(gè)標(biāo)題。因此,我們?cè)谟涗浖锔綄偃齻(gè)標(biāo)題, I D作為一個(gè)整型來(lái)定義(整型在A D O記錄
集里以“3”來(lái)定義),標(biāo)題和城市作為字符串(字符串型在A D O記錄集里以“ 8”來(lái)定義),然
后使用O p e n()打開記錄集進(jìn)行操作。
程序清單11 - 3 9
因?yàn)樵诿恳粋(gè)城市都有一個(gè)服務(wù)器,我們產(chǎn)生X M L - R P C調(diào)用來(lái)得到一個(gè)相關(guān)主題的列表。
首先檢查客戶是否已經(jīng)查看了G l a s g o w數(shù)據(jù)庫(kù),做這個(gè)工作是通過檢查FORM POST,而F O R M
中國(guó)航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級(jí)編程上(141)