gen_serverでErlangをサーバにする

Erlangでとても深い話で毎回参考になる檜山さんのブログで クライアント・サーバー型分散アプリケーションの話がありました。

檜山正幸のキマイラ飼育記 - Erlang分散アプリケーションのお作法

また、バックエンドはIDLコンパイラ本体とは切り離されているので、例えばプロトコルJSON-RPC over HTTPにして、JavaScriptのクライアント・スタブを生成する、とかもできるでしょう。

うーん、これどういうことだろう。

あれこれ悩んだすえに、gen_serverを読め、ということか。

(っていうか、最初にgen_serverの紹介だと書いてあるよ>自分)

読んでみた。

コールバックの書き方の作法はなんとなく分かった。

が、外からの呼び出し方が分からない。

そこで、JSON-RPCを使っているらしい、RBridge(Young risk taker.: [Ruby and Erlang] そろそろRBridge::Erlangについて一言いっておくか参照)ではどうしているんだろう、と思って、ソースをみてみた。

ソースの中に

- mod_jsonrpc.erl

というモジュールが組み込まれていた(あとjson.erlも)。

なになに。

start() ->

gen_server:start({local, mod_jsonrpc}, ?MODULE, , ).

あ、なるほど。使われている。gen_server。

ということで、ここ(mod_jsonrpc.erl)を読んでけば、ちょっと理解できそうな感じがする。