コマンドラインでピザを注文するソフトに学ぶ新技術
コマンドを入力するとピザが注文されて本当に届くというソフトの話。
コマンド一発、ピザよ来い!「電話しろよ(笑)」ってことでもちろんシャレなソフトなんだけど、 見方を変えればネットの技術の奥(とちょっとした未来)を理解する材料になる。
(スラッシュドットジャパン 2004/5)
このソフト、 ダウンロードしてもらえばわかるとおり、perlで書かれている。 要は、人間がブラウザからドミノピザのサイトで注文データを入力するという動作を perlに自動的にやってもらっている。
CPANで公開されているモジュールを使っているようだ。例えば
-
LWP::UserAgent
ブラウザのような通信動作をやってくれるモジュール。たとえばmy $ua = LWP::UserAgent->new; my $string = $ua->get('http://www.yahoo.co.jp/');これだけでYahooのトップページのHTMLソースを丸ごと持ってくることができる。
Webブラウザからの操作をコンピュータ君に肩代わりしてもらうためのソフト はそれほどめずらしいものではない。 最近の筆者のお気に入りは Amazonのアフィリエイトレポートサイトに自動的にログインして売り上げレポートをメールで送ってくれるスクリプトと Googleのアドセンス広告のレポートをメールで送ってくれるスクリプト。
そうこうしているうちに、上に上げたようなピザの注文データをブラウザから入力するようなことに限らず、 ありとあらゆる「データ」の「やりとり」をHTTP、SMTP、XMLなどをうまく使いつつ、 できるだけみんな共通のやり方で行うようにすることで世の中便利にしていこうよ、 という機運が高まり、正式な規格となった。 それがSOAP。
実際にSOAP規格に基づいて提供されているWebサービスで有名なのは Amazon Webサービスと Google Web APIだろう。ちなみにGogle APIのサイトには ロボットみたいなのがパソコンに向かってgoogleのサイトを見ている絵がある。 「SOAPって何なの?」という問いに対するわかりやすい(?)答えを示唆している。
PEAR SOAP+Google Web APIsでGoogle検索してみる上の例はPHPスクリプトにGoogle検索させる例だ。もしもこれをSOAPを使わずに、 ピザを注文するスクリプトと似たような手法でプログラミングしようとしたら 少なくとも2倍以上の労力、半分以下の柔軟性になってしまうだろう。 逆にSOAP規格に沿ってサービスできるようになれば それに自動的にアクセスする仕組みを簡単につくれるようになる。
実際には企業間のクローズなやりとりで使われる場面のほうが多く、広く公開される形でのSOAPの利用は少ないかもしれないが、 まあとにかくamazonやgoogle以外の企業にも期待したい。

コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)