曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
(例如BBEdit,
MSWord,
ShockWave以
及AppleScript)
客戶服務
一個響應通過HTTP被異
步地送回到調用者,并
帶有處理結果
你通過HTTP提交一個
XMLRPC消息,作為XML
指定方法和相關參數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
A d d M e s s a g e ( )添加一個新消息到電子
郵件庫R e m o v e M e s s a g e ( )在電子郵件庫
中刪除當前消息G e t M e s s a g e I n Q u e u e ( )
獲得電子郵件庫的當前消息量
11.3.1 為什么使用XML-RPC
傳統的遠程通信方法包括C O M和C O R B A技術(例如D C O M或I I O P),它們仍然被發展著的
通信技術所支持,盡管這些技術在緊密集成的系統里毫無疑問是流行的,但在分布式通信領域
仍然強調傳統的方法。與之相反的是, X M L - R P C系統被廣泛的分布式網絡所更多地采納。例如,
X M L系統并不要求在一個方法被調用前必須知道服務器的標識,相反,服務器能夠在一個調用
里被標識,或者在使用一個動態的負載平衡后被決定。
傳統上,我們必須知道相關的許多技術問題,包括平臺形式,它們使用了C O M還是C O R B A,
但如果它們的系統在防火墻之后(許多系統有這樣的問題),另一些問題也將被考慮。
圖11 - 1 0將解釋在防火墻問題上, X M L - R P C為什么沒有問題,而傳統的方法將遇到困難,特
別在I n t e r n e t中。
圖11-10
使用X M L - R P C協議,所有的通信都是在H T T P上工作的,因此,消息傳送通過防火墻毫無
問題(幾乎所有的防火墻都允許H T T P通過),進而,隨著X M L對界面以及對數據的描述,與傳
統的比較固定的系統相比,將會減少很多的集成問題。事實上,所有我們所需要的是U R L、界
面描述和期望的返回值—這是個簡單的問題。
在X M L - R P C . c o m站點最近的一些工作可能是最好的解釋。U s e r l a n d . c o m站點(運行在
F r o n t i e r上)展示了一些修改討論組消息的方法。這些允許開發者遠程調用一些方法去執
行某些動作,如在討論板上創建一個新的消息和修改一個已經存在的消息—所有這些
都從任何一個遠程客戶系統通過XML-RPC來實現,而該客戶系統是支持HTTP協議的。
U s e r l a n d對每一個相對較短的文件提供一個方法名稱,它的期望參數,它的返回值和對該
432使用XML 高級編程
下載
COM/COBRA客
戶機或服務器
XMLRPC客戶機
或服務器
局部
遠程
服務器(Web)服務器
防火墻
一般來說,僅有端口8 0允許傳輸通過一這是H T T P用
于傳輸網頁的端口,它同樣適用于X M L R P C,并對該
協議是沒有問題的。使用傳統的方法時,經常有不知道
和/或不常用的端口被使用,并且防火墻不允許傳輸通
過,它對Internet來說是一個大問題
方法的一個簡短描述,兩天之內,人們就可以在平臺上例如M a c s,Windows 和U n i x擁有
一個包括多種編程語言的編輯器,這些語言包括A S P,C O M,P H P,L i n g o,J a v a和
Applescript等。
這一切都毫無問題。事實上,從Dave Wi n e r發來的一封e - m a i l十分令人感興趣,其大意是
他想到一個問題,因為在討論組標準發布2 4小時后沒有一條“成功”的消息被提交。我
懷疑是否每一位讀者都在綜合了多個平臺和傳統技術領域里使用的語言后,又考慮2 4小
時長的時間。XML-RPC的強大功能是毫無疑問的。
最重要的是要記住X M L - R P C對于分布式計算并不總是正確的選擇,它比傳統的方法要慢,
傳統的方法由于上述的理由被最普遍地用于封閉式網絡。但是, I n t e r n e t比絕大多數的封閉式網
絡要慢,因此在使用X M L - R P C時并不真感受到等待時間的問題(因為這是網絡延遲,而不是導
致絕大多數延遲的處理時間),如果你在一個相同的共用網絡里調用一個方法并對速度更看重,
并且也不介意將應用程序界面暴露給遠程服務器,最好的選擇可能是使用C O M或者C O R B A技術,
例如D C O M或I I O P。像你所見到的一樣,當在一個網絡服務器上使用H T T P打包并通過X M L -
R P C傳送時,將仍然會暴露一些在C O M / C O R B A應用程序中使用的方法。
圖11 - 11將顯示一個使用X M L - R P C的分布式系統的可能的結構,這個圖表將解釋任何一個
X M L - R P C授權的客戶如何調用一個在X M L - R P C服務器上的方法,而這些服務器又是在不同的
平臺上并運行不同的X M L - R P C服務程序,可能有許多可能的結構。能夠看到服務器能夠在另外
的遠程服務器上激活一個方法,并向客戶應用程序提供服務。事實上,一個客戶激活一個調用
和一個服務器激活該調用二者并沒有區別。
圖11-11
11.3.2 XML-RPC適用于何處
前面幾章已經描述了X M L和它的一些相關技術,因此當你聽到這樣一些事情時或許會感到
第11章服服務器到服務器使用433 下載
運行Perl
XMLRPC
服務器的
Web服務
器
運行Tcl
XML-RPC
服務器的
Apache Web
服務器
使用
XMLRPCPerl
Win32服務器
的MSII4 Web
服務器
運行Java
XMLRPC服
務器的
Apache Web
服務器
具有本機
XML RPC
支持的
Frontier
Mac
客戶機
Java
客戶機
Win32
客戶機
瀏覽器
JavaScript
客戶機
驚訝,即X M L - R P C目前僅僅使用了最基本的一些功能,即X M L 1 . 0標準和X M L文檔對象模型
(XML Document Object Model.)
這些X M L的一些基本特征在實際中幾乎被每一個平臺所支持,也保證了X M L - R P C規范能夠
被廣泛地支持。將來,我們將看到另外一些X M L特征加入到X M L - R P C規范。
11.3.3 XML-RPC規范—技術全瞻
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(138)