横転プログラミング

 | 

2010-05-22

MessagePack-RPC for PHP の実装

20:48 | MessagePack-RPC for PHP の実装を含むブックマーク

MessagePack という id:viver さんが作られているシリアライズライブラリがあります。よく JSONXML を使ってデータのやりとりをすることがありますが、それらに比べても速くてコンパクトというすぐれもの。

この MessagePack を利用した RPC が各言語向けにだされてます。

http://github.com/msgpack/msgpack-rpc


それで、ちょうど PHP 版がなかったのと、最近 PHP から JavaC++ を呼び出すことがよくあり、パイプ処理でやるのも面倒になったので MessagePack-RPC for PHP を 実装してみました。

http://github.com/msgpack/msgpack-rpc

http://github.com/h0x10/msgpack-rpc/tree/master/php

本家にとりこんでいただいのでこちらは消しました


MessagePackPHP 実装については takei-h さんがされたものを利用してます。ありがとうございます

http://lab.klab.org/young/2009/11/%E3%82%A2%E3%82%B7%E3%82%A2%E3%83%ABklab%E5%90%88%E5%90%8C%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%81%A7%E7%99%BA%E8%A1%A8%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F-messagepack%E3%81%AEphp-extension%E3%81%AB/


また内部の実装は id:kzk さんが作られていた Python 版を参考にしながら作りました(とってもわかりやすい)。コーディング規約等については ZendFramework のもので書いて PHP_CodeSniffer で確認していきます。またクラス名やファイル名等については id:sotarok さんにアドバイスをいただきました。ありがとうございました。

http://framework.zend.com/manual/ja/coding-standard.html


いまのところ MessagePack-RPC for PHP課題として以下をまだ残したままです。



一応、下の記事で書いた Java サーバーの実装サンプルのコードをこちらで呼び出して確認をしています。

ネットワークプログラム関係ってあまりやったことがないので指摘等 @h0x10 までもらえると嬉しいです。

cd /path/to/msgpack-rpc/java/target/classes
java -cp .:/path/to/.m2/repository/org/jboss/netty/netty/3.1.5.GA/netty-3.1.5.GA.jar:~:/path/to/.m2/repository/org/msgpack/msgpack/0.2/msgpack-0.2.jar org/msgpack/rpc/sample/ServerTest
java -cp .:/path/to/.m2/repository/org/jboss/netty/netty/3.1.5.GA/netty-3.1.5.GA.jar:~:/path/to/.m2/repository/org/msgpack/msgpack/0.2/msgpack-0.2.jar org/msgpack/rpc/sample/ClientTest
トラックバック - http://d.hatena.ne.jp/h0x10/20100522/1274528931
 | 
プロフィール

h0x10

大規模データを利用して生活を楽しくしたいな