Web Services(二)

06-10-19:
第二章:xml-rpc 實質
xml-rpc提供了一個基於xml和http的機制,來進行跨網的方法或者函數調用。xml-rpc提供了一套工具用來連接全異的系統,發佈機器可以讀懂的信息。
2.1xml-rpc概觀
xml-rpc使用一小部分xml語法來描述請求和響應的自然屬性。xml-rpc的參數是一個簡單的類型和內容清單,struct和arrays是最複雜的類型。xml-rpc沒有對象的概念,沒有機制來包括使用其他xml語法的信息。
2.2爲什麼要使用xml-rpc
由於對象的困擾,xml-rpc似乎可能在許多程序中受限。用在兩個領域:分佈式系統作爲glue code,來連接全異的私網;public服務。
2.2.1想定1:使用xml-rpc粘貼代碼
創建自己的系統(協議,格式)需要廣泛的測試,文檔和debug。
2.2.2想定2:用xml-rpc發佈服務
像傳統的web發佈,有同樣的安全和架構問題,但是允許接收方是任何的客戶端。
2.3xml-rpc技術概觀
xml-rpc由3個相關的小部分組成:
1.xml-rpc data model:一套類型用來定義傳遞的參數,返回值和錯誤
2.xml-rpc request structures:一個http post請求,包含方法和參數信息
3.xml-rpc response structures:一個http response,包含返回值或者錯誤信息
三個部分結合起來就層了完整的rpc定義了。
2.3.1xml-rpc數據模型
6個基本的數據類型和2個混合的數據類型。似乎是最小的命名爲program-to-program通訊。
所有的數據類型都是使用簡單的xml元素來表示,contents表示value。可以看看MIME中的關於base 64的信息。
xml-rpc不會保證數組的數量和values的一致性。
數組和結構體都可以相互包含,這樣你可以表示對象,但是在某些地方,你可以發現,使用soap更加的容易。/*缺點*/
2.3.2xml-rpc請求結構
xml-rpc請求是xml內容和http頭的結合。
每個請求包含一個xml文檔。
2.3.3xml-rpc 響應結構
和請求結構差不多,而且user-agent頭將會反映xml-rpc庫,不是某個程序來調用。
一個xml-rpc響應,僅僅能夠包含一個參數,不管用沒有用params元素。當然也可以返回一個數組,所以也有可能返回多個值。即使你的方法沒有返回一些值,你仍然不得不返回一些東西。
xml-rpc根本沒有標準化出錯代碼。/*缺點*/
所有的xml-rpc響應都使用200 ok響應代碼。頭不一樣。
xml-rpc僅僅需要http 1.0支持,但是http1.1是兼容的。當響應被髮送到了xml-rpc客戶端的時候,整個連接就關閉了,接下來的請求需要重建連接。
2.4xml-rpc開發
在你的程序中使用xml-rpc,基本上意味着增加一個xml-rpc庫,然後使用這個庫。爲了使你的代碼順利的執行,需要僅僅使用xml-rpc支持的基本類型。
下面是關於apache xml項目的apache xml-rpc。原來這些xml-rpc項目是表示按照標準實現了xml-rpc的通信。
2.5跨越簡單的調用
xml-rpc的限制也是xml-rpc最吸引人的地方,因爲他們充分的減少協議實現的難度,減少了協同工作的測試。xml-rpc本身並不體動狀態管理的支持,但是程序能夠使用參數來維持一次請求-響應循環,有點像web開發者使用cookies保持對會話的追蹤。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章