第55回 月例発表会(2002年11月) 知的システムデザイン研究室 SOAP によるマッチング処理の実装 松本 義秀
1 はじめに
我々の目標としているバーコードを用いない商品管理 システムでは,クライアント-サーバ間の通信に PHP を 用いている.一方売れた商品を判別するための,特徴量 のマッチング処理は C 言語で記述されている. システムの自動化を図るためには,PHP から C 言語 で書かれたマッチング処理を呼び出す必要がある.本シ ステムでは SOAP( Simple Object Access Protocol )に よる RPC( Remote Procedure Call)を用いてシステム の自動化を図る.2 SOAP
2.1 SOAP の概要 SOAPとは,プラットフォームに依存することなく実 装,および 動作させることのできる RPC 技術であり, XMLを用いたメッセージ交換を行う. SOAPは,HTTP や SMTP などの下位のプロトコル には非依存であり,SOAP メッセージを送受信,解析で きれば ,オブジェクト間の通信が可能である. 2.2 SOAP の仕組み SOAPによる RPC の仕組み簡単に述べる.まずクラ イアント側では,オブジェクトの呼び出し命令を SOAP メッセージとして生成し,サーバ側へと送信する.サー バ側ではメッセージを受信すると,その SOAP メッセー ジを解析する.その解析結果をもとに,どのオブジェク トにマッピングするかを判断し,オブジェクトを実行す る.実行結果が得られると,それを再び SOAP メッセー ジとしてクライアント 側へと送信する.クライアント 側で SOAP メッセージを解析することで,処理が完結 する. XMLで記述されてた SOAP メッセージを生成し,解 析する役割を果たすのが SOAP エンジンである.3 マッチング処理の実装
上述のように,SOAP による RPC を実現するために は SOAP エンジンが必要となる.我々のシステムにお いては PHP( クライアント )側では PEAR と呼ばれ る SOAP モジュールを,C 言語( サーバ )においては OpenSOAPと呼ばれる SOAP エンジンを用いる.Fig.1は本システムにおける SOAP による通信を用いたマッ チング処理の流れを示したものである. 1RGP51#2 1RGP51#2 2'#4 2'#4 51#2%NKGPV2*2 51#25GTXGT%⸒⺆ ࡑ࠶࠴ࡦࠣಣℂ 㧝㧚ࡑ࠶࠴ࡦࠣ߮ߒ 㧞㧚:/.↢ᚑ 㧟㧚:/.ォㅍ 㧠㧚:/.⸃ᨆ 㧡㧚ࡑ࠶࠴ࡦࠣ߮ߒ 㧢㧚ࡑ࠶࠴ࡦࠣ⚿ᨐ 㧣㧚:/.↢ᚑ 㧤㧚:/.ォㅍ 㧥㧚:/.⸃ᨆ 㧝㧜㧚ࡑ࠶࠴ࡦࠣ⚿ᨐ Fig. 1 マッチング処理の呼び出し手順