PHPで分散処理 
ネタ蔵キーワード:オープンソース [インターネット・IT]

Filed under Web開発 | Tags ,

Mediamatic Distributed Library
Creative Commons License photo credit: Anne Helmond

またしても、エラそうなタイトルをつけてしまいました(w

今日一日、「やらないといけない仕事」をほっぽって「100%趣味でPCに向かう」というのをやってみました。
実はそういうことはあまりしないのですが、もう少しPCをいじるのが好きになる努力の一環として。

そんな中、「PHPで分散処理するフレームワークってないのか?」と急に思って調べてみました。

PHPには、ソケット通信やプロセス制御やIPCをつつく関数がちゃんと(?)揃っています。
でも、世間にはほとんどその辺の情報はながれてないし、だれもPHPで分散処理しようなんて思ってないみたい。
「msg_get_queue」なんてキーワードで検索しても、なぜかいろんなサーバーで公開されているPHPマニュアルがヒットするばかりです。

分散処理というと、最近ではErlangが流行ってます。

もちろん、Javaも(Apache Hadoopってどうなの?)。

Pythonあたりでは、「Parallel Python」ってなライブラリ(?)があって、これで遊んでいる人は結構いるみたい。

Rubyあたりでは、楽天が研究所にRuby作者を向かえて(2007年?)分散処理プラットフォームを作っているらしい。

さらに・・・GoogleのMapReduceなシステムはC++。

PHPはというと・・・ほんとに日本じゃだれも気にしてないらしい。
複数RSSの読み込みなんかでcurl_multiな処理をやっている人は結構いるみたいだけど・・・

ただ、「XP Framework」っていうオープンソースプロジェクトがあって、これがどうやらPHPでJ2EEチックなフレームワークを作っている模様ではあります・・・が、分散処理に特化したものではありませんので、ちょっと手を出しづらい。

そんなわけで、自分が分散処理させたいって思ったら・・・

  • 自分でPHP分散処理のフレームワークを用意する
  • 他の言語を使う

のどちらかのオプションになります。
ちょっと考えちゃいますよねぇ〜(w
分散処理したいといっても、自前の巨大データを処理したいだけなんで、使い慣れた言語でさくっとやりたいところなんですが・・・

  • プロセスのデーモン化
  • プロセスのfork&管理
  • プロセス間のソケット通信
  • プロセス間のメッセージキュー通信

あたりを順繰りに組んでいくとPHPでも分散処理フレームワークを作れそうな気がします・・・「よっしゃやろ」とすぐに言えないボクですが、ちょと考えてみようかな(w


関連記事

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*