未來的web將是以服務為中心的web,xml_rpc標准使得編寫和應用服務變得非常簡單。本文介紹xml_rpc標准及其php實現,並通過實例示范了如何在php中開發xml_rpc服務和客戶程序。
一、服務式web
從內容提供商所采用的簡單方法到uddi(universal description,discovery and integration)的未來構想,業界已經有大量關於“服務式web”的說明和評論。就web的初創階段來說,它只是一個文檔的集散地,提供的只是一些可浏覽的信息。隨著web的發展,在web上運行服務越來越具有吸引力。未來,web將成為企業為客戶和其他企業提供便捷服務的載體。b2b和b2c模式間的協同就可以看成是一種服務式web。
一個很重要的問題是,web上究竟可以提供哪些服務?web能夠提供的服務非常多,其中有些服務現在已經在使用,有些服務在不久的將來就會出現。為了說明問題,下面列出了一小部分可以通過web提供的服務:
◆面向主題的垂直搜索引擎。
◆供用戶查找信息的知識庫。
◆用戶可以請教問題的專家系統。
◆銀行服務。
◆新聞和信息出版服務。
◆數字化支付相關的服務。
◆圖形處理服務。
◆衛生和健康服務。
那麼,企業和組織通過web提供服務的正確途徑是什麼呢?這是一個很重要的問題。今天,有些服務提供html界面,它們通過文檔的形式提供服務,但在服務界面的背後隱藏著什麼?在占領web的競賽中,web浏覽器並不孤單,移動電話、手持設備以及微波爐之類的設備都想要訪問web、查詢數據庫、轉換數據、提取信息,等等。要實現真正的服務式web,在表現層(html)之下應該還有另外一層。
二、xml_rpc標准
xml或許是近10年來最為重要的標准,xml詞匯表(vocabulary)為企業構造服務環境提供了基石。要構建服務式web就有必要學習xml_rpc標准,這不僅是因為xml_rpc對於把服務放到web上很有用,而且因為xml_rpc是一種已經成形的、很容易采用的標准。對於b2b服務來說,提供服務的標准是極其重要的,共同遵循標准的公司可以利用其它公司提供的服務獲得快速的增長。無法想象在各種私有的服務標准之上可以建立起真正的服務式web,服務必須有一種可以遵循的標准。
xml_rpc是一種面向internet分布式處理的標准。rpc即為remote procedure call(遠程過程調用)的縮寫,它是一種遠程調用機制,用於調用可能駐留在其他機器之上以及可能用其他語言編寫的過程。遠程過程調用是分布式計算的重要支柱。例如,在一個分布式計算環境中,我們可以尋找和利用在其他機器上運行的執行加法和減法操作的過程,執行加法操作的過程可能用apl編寫、在rs6000機器上運行,執行減法操作的過程可能用c編寫、在unix上運行。其他要使用這種分布式計算器的開發者同樣可以利用它們,或者他也可以選用另外更好的計算器。
在rpc中,過程(procedure)是最主要的構件,服務器提供的就是供客戶端調用的過程。過程可以接收參數並返回結果。xml_rpc以http作為協議載體,通過發送和接收數據的xml詞匯表實現rpc機制。xml_rpc服務器接收xml_rpc請求並返回xml_rpc應答,xml_rpc客戶程序發送xml_rpc請求並接收xml_rpc應答。服務器和客戶必須按照xml_rpc標准的要求處理應答和請求。
1