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