中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      在PHP中利用XML技術構造遠程服務

      時間:2024-10-01 09:39:04 XML DOM 我要投稿
      • 相關推薦

      在PHP中利用XML技術構造遠程服務

        未來的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標準的要求處理應答和請求。

        三、XML_RPC協議

        完整的XML_RPC規范可以在http://www.xmlrpc.com/spec找到。下面是其要點說明。

        3.1 XML_RPC請求

        XML_RPC請求應該是HTTP POST請求,它的正文是XML格式。請求的XML部分格式如下:

        <?xml version="1.0" ?>

        <methodCall>

        <methodName>examples.getStateName</methodName>

        <params>

        <param>

        <value><i4>41</i4></value>

       。/param>

        </params>

        </methodCall>

        指定數據發送到哪里的URL并未在這里指定。如果服務器專門用來進行RPC處理,它可能是“/”。上述XML文檔中的有效載荷是一個“methodCall”結構。methodCall必須包含一個“methodName”子元素,“methodName”子元素包含一個描述待調用方法的字符串。如何解釋“methodName”的內容完全由服務器決定,例如它可以是一個執行文件的名字,可以是數據庫中記錄的名字,或者任何其他東西。如果過程接收參數,“methodCall”可以包含一個“params”元素以及若干個“param”子元素。每一個“param”元素包含一個帶有類型描述符的值,類型描述符如下表所示:

        標記 說明

        <i4>或<int> 四字節的帶符號整數,如12

       。糱oolean> 0(false),或1(true)

        <string> 字符串,如“Hello World”

       。糳ouble> 雙精度帶符號浮點數,如-12.214

       。糳ateTime.iso8601> 日期/時間,如19980717T14:08:55

       。糱ase64> base64編碼的二進制數據,如eW91IGbid0IHJlQgdGhpcyE

        3.1.1 結構

        值可以是一個結構,結構用元素描述。每個包含多個,每個包含一個和一個。下面是一個由兩個元素構成的結構:

        <struct>

       。糾ember>

       。糿ame>name</name>

        <value><string>member1</string></value>

       。/member>

       。糾ember>

        <name>member2</name>

       。紇alue><i4>19</i4></value>

       。/member>

        </struct>

        可以嵌套,任意可以包含或者任意其它類型,包括。

        3.1.2 數組

        值可以是數組類型,數組用元素描述。每個元素包含一個元素,元素里面可以包含任意多個元素。下面是數組元素的一個例子:

       。糰rray>

        <data>

       。紇alue><boolean>0</boolean></value>

        <value><i4>9</i4></value>

        <value><string>Hello</string></value>

       。/data>

       。/array>

        元素沒有名字。如前例所示,元素的值可以是各種類型。元素可以嵌套,任何都可以包含或者其他類型,如上面介紹的。

        3.2 XML_RPC應答

        XML_RPC應答是一個HTTP應答,內容類型是text/xml。應答正文的格式如下:

        <?xml version="1.0"?>

       。糾ethodResponse>

       。紁arams>

       。紁aram>

       。紇alue><string>ABCDEFG</string></value>

        </param>

        </params>

        </methodResponse>

        可能包含一個結構,或者可能包含一個結構,具體由過程調用是否成功決定。結構與XML請求中的一樣,元素的語法如下:

       。糵ault>

       。紇alue>

        <struct>

        <member>

       。糿ame>faultCode</name>

       。紇alue><int>4</int></value>

        </member>

        <member>

        <name>faultString</name>

       。紇alue><string>Error!</string></value>

       。/member>

       。/struct>

       。/value>

        </fault>

      【在PHP中利用XML技術構造遠程服務】相關文章:

      關于XML技術在數據交換中的應用09-28

      簡單介紹php構造函數用法08-31

      PHP中curl的使用實例07-31

      PHP中關于類的定義10-02

      PHP路由技術的原理與實踐10-15

      PHP中函數的使用說明09-01

      PHP中的排序函數區別分析08-23

      php中dirname()和--FILE--常量的用法09-26

      PHP程序員的技術成長規劃范文08-10

      PHP中date函數常用時間處理方法09-13

      主站蜘蛛池模板: 免费一级a毛片在线播出| 日本精品在线观看免费| a欧美一级爱看视频| av狼人婷婷久久亚洲综合| 国产免费人成网站在线播放| 亚洲av成人一区二区三区不卡| 社会| 成人影院免费观看在线播放视频| 国产成人av综合色| 国模偷拍视频一区二区 | 99热这里只有精品久久6| 91尤物在线看| 国产欧美日本亚洲精品一4区| 绥中县| 安龙县| 印江| 国产精品一品二品有码| 亚洲国产日韩欧美高清片a| 日韩精品人妻av免费| 亚洲一区二区高清在线| 久色精品国产亚洲av麻豆一| 紫阳县| 中文字幕人成人乱码亚洲| 无码丰满熟妇浪潮一区二区av| 亚洲人成18禁网站| 久久99老妇伦国产熟女高清| 久久精品国产亚洲情侣| 无码视频一区二区三区在线播放| 泗洪县| 久久精品女人天堂av影院| 福建省| 肥乡县| 丰满少妇人妻无码超清| 日本女优在线观看一区二区三区| 海伦市| 久久婷婷国产综合精品| 久久久久亚洲AV无码专区一区| 午夜亚洲国产精品福利| 日本色偷偷| 色播在线永久免费视频网站| 亚洲无码性爱视频在线观看|