将来の Web はサービス中心の Web になり、XML_RPC 標準によりサービスの作成と適用が非常に簡単になります。この記事では、XML_RPC 標準とその PHP 実装を紹介し、例を通じて PHP で XML_RPC サービスとクライアント プログラムを開発する方法を示します。
1. サービス Web
コンテンツ プロバイダーが採用するシンプルな手法から、UDDI (Universal description、Discovery、Integration) の将来ビジョンに至るまで、業界では「サービス Web」について多くの説明やコメントが行われています。 Web の初期段階では、Web は単なる文書の収集および配布センターであり、閲覧可能な情報のみを提供していました。 Web の発展に伴い、Web 上でのサービスの実行はますます魅力的になってきています。将来的には、Web は企業が顧客や他の企業に便利なサービスを提供する媒体となるでしょう。 B2B モデルと B2C モデル間のコラボレーションは、サービス指向の Web とみなすことができます。
非常に重要な質問は、Web 上でどのようなサービスを提供できるかということです。 Web は多くのサービスを提供できますが、その中には現在すでに使用されているサービスもあれば、近い将来登場するサービスもあります。問題を説明するために、Web を通じて提供できるサービスの小さなリストを以下に示します:
トピック指向の垂直型検索エンジン。
ユーザーが情報を見つけるためのナレッジベース。
ユーザーが質問できるエキスパートシステム。
銀行サービス。
ニュースおよび情報公開サービス。
デジタル決済関連サービス。
グラフィック処理サービス。
健康とウェルネスのサービス。
では、企業や組織が Web を通じてサービスを提供する正しい方法は何でしょうか?これは非常に重要な質問です。現在、一部のサービスでは HTML インターフェイスが提供され、ドキュメント形式でサービスが提供されていますが、サービス インターフェイスの背後には何が隠されているのでしょうか。 Web を引き継ぐ競争に参加しているのは Web ブラウザだけではありません。携帯電話、ハンドヘルド デバイス、電子レンジなどのデバイスはすべて、Web へのアクセス、データベースのクエリ、データの変換、情報の抽出などを望んでいます。真のサービス Web を実現するには、プレゼンテーション層 (HTML) の下に別の層が必要です。
2. XML_RPC 標準
XML は、企業がサービス環境を構築するための基礎となる標準です。サービス付き Web を構築するには、XML_RPC 標準を学ぶ必要があります。これは、XML_RPC が Web 上にサービスを配置するのに役立つだけでなく、XML_RPC が既に確立されている標準であり、簡単に採用できるためでもあります。 B2Bサービスにおいては、サービスを提供するための基準が非常に重要であり、その基準を遵守する企業は、他社が提供するサービスを活用することで急成長を遂げることができます。真にサービスを提供する Web がさまざまな民間サービス標準に基づいて構築できることを想像することは不可能です。サービスには従うことができる標準が必要です。
XML_RPC は、インターネット分散処理の標準です。 RPC は、Remote Procedure Call の略語で、他のマシン上に存在し、他の言語で記述されたプロシージャを呼び出すために使用されるリモート呼び出しメカニズムです。リモート プロシージャ コールは、分散コンピューティングの重要な柱です。たとえば、分散コンピューティング環境では、他のマシン上で実行される加算および減算演算を実行するプロセスを見つけて利用できます。加算演算を実行するプロセスは APL で記述され、RS6000 マシン上で実行されます。減算演算 おそらく C で書かれ、Unix 上で実行されます。このような分散計算機を使用したい他の開発者もそれらを使用することも、別のより優れた計算機を選択することもできます。
RPC ではプロシージャが最も重要なコンポーネントであり、サーバーはクライアントが呼び出すためのプロセスを提供します。プロシージャはパラメータを受け取り、結果を返すことができます。 XML_RPC は、プロトコル キャリアとして HTTP を使用し、データを送受信するための XML ボキャブラリを通じて RPC メカニズムを実装します。 XML_RPC サーバーは XML_RPC 要求を受信して XML_RPC 応答を返し、XML_RPC クライアントは XML_RPC 要求を送信して XML_RPC 応答を受信します。サーバーとクライアントは、XML_RPC 標準の要件に従って応答と要求を処理する必要があります。
3. XML_RPC プロトコル
完全な XML_RPC 仕様は、http://www.xmlrpc.com/spec で参照できます。以下にその要点を解説します。
3.1 XML_RPC リクエスト
XML_RPC リクエストは HTTP POST リクエストである必要があり、その本文は XML 形式です。リクエストの XML 部分の形式は次のとおりです:
41 </i4></value>
</param>
</params>
</methodCall>
ここではデータの送信先を指定するURLは指定しません。サーバーが RPC 処理専用の場合は、「/」になる可能性があります。上記の XML ドキュメントのペイロードは「methodCall」構造です。 MethodCall には、呼び出されるメソッドを説明する文字列を含む「methodName」サブ要素が含まれている必要があります。 「methodName」の内容をどのように解釈するかは完全にサーバー次第です。たとえば、実行可能ファイルの名前、データベース内のレコードの名前、またはその他の名前にすることができます。プロシージャがパラメータを受け入れる場合、「methodCall」には「params」要素といくつかの「param」子要素を含めることができます。各「param」要素には、型記述子を含む値が含まれます。型記述子は次の表に示すとおりです。
マークの説明
<i4> または <int> 12 などの 4 バイトの符号付き整数
<boolean > 0 (false)、または 1 (true)
<base64> eW91IGbid0IHJlQgdGhpcyE などの、base64 でエンコードされたバイナリ データ
3.1.1 構造体
値は構造体にすることができ、その構造体は
3.1.2 配列
値は配列型にすることができ、配列は
<array>
<data>
<value><boolean>0</boolean></value>
<value><i4>9</i4></value>
3.2 XML_RPC レスポンス
XML_RPC レスポンスは HTTP レスポンスであり、コンテンツタイプは text/xml です。レスポンスボディの形式は以下のとおりです。
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>ABCDEFG</string></value>
<値><int>4</int></value>
</member>
<member>
<name>faultString</name>
<value><string>Error!</string ></value>
< /member>
</struct>
</value>
</fault>
http://www.bkjia.com/PHPjc/313938.html
www.bkjia.com
本当