「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。1日目の記事になります。現在既に13日分が登録されており非常に楽しみです。いっても、まだ12日分空いていますので今もなお募集中でございます!是非是非ご登録を!今日は1日目なので、mod_mrubyとngx_mrubyの最新のアーキテクチャとリファレンス公開ということで、2014年11月に情報処理学会のジャーナルに採録され公開されたmod_mrubyの元になるアーキテクチャの論文を下記のリンクからPDFで無料で公開します。皆さんタブレットにPDFを保存したり印刷したりして読んでみてください。謝辞には馴染みの方々のお名前を書かせていただきました。mod_mruby:スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構スライド最新のアーキテクチャは論文を読めば大体わかるのですが、少しだけ論文趣旨を説明します。この論文では、サーバソフトウェアをスクリプト言語で制御するために、サーバソフトウェアに対して効率良くインタプリタを組込むアーキテクチャを提案しています。既存の手法の問題点を明確にした上で、実装としてmrubyとApache、あるいは、nginxを使ったという内容になっています。その結果生まれたソフトウェアがmod_mrubyでありngx_mrubyであるというわけです。ジャーナルですので、単にApacheにmrubyを組み込んでみたら速かったというような話の流れでは論文にならないので、そういう意味でmrubyやApacheに実装したmod_mrubyは単に一つの実装例であり、その元になるある程度汎用的なアーキテクチャを論文にしたという内容になっております。インタプリタが軽量であることや、一つのプロセスに複数のVMを組み込む事のできるmrubyはこのアーキテクチャにも最適なスクリプト言語であったと言えます。踏み込めば、設定のかわりにDSLとしてサーバアプリケーションの振る舞いを記述する際に、mrubyの生産性の高さと性能は非常にバランスが良かったというのも選択の理由です。この生産性の高さというのは、なかなか論文では表現し辛いためほとんど言及しておりませんが、実際に使った事がある方はもはや説明不要な話だと思います。この論文のアーキテクチャを使えば、mruby以外の似たような性質を持つ組込みスクリプト言語やApache以外のWebサーバでもmod_mrubyと同等の性能や利便性を持つソフトウェアが作れるということを意味し、さらにいうと、Webサーバだけではなく、サーバソフトウェアへのスクリプト言語組込みでもそれなりに最適化されたアーキテクチャであると思っています。いう開発を想定している方は参考にして頂けたらと思います。リファレンスmod_mrubyやngx_mrubyを触る際にGoogleで調べると、古い情報や僕のブログが出てくると思いますが、そこからの変更点もあり色々と混乱したと思います。最新のリファレンス情報はGitHubのそれぞれのレポジトリのWikiにまとめていますので、そちらを参照して頂ければと思います。Wikiの内容としては、インストール方法、Apacheやnginxでのディレクティブの設定、クラスやメソッド、テストについて、ユースケースや例、を主に載せています。参考にして頂いて、もし間違いなどありましたら適当にWikiを更新して頂ければと思います。今後もこのWikiを中心にリファレンス情報を更新していく予定です。Calendar1日目でmod_mrubyとngx_mrubyのアーキテクチャやリファレンスの最新情報をお送りしました。Calendarで公開して頂けると幸いでございます!では、明日2日目はMarcyさんの「SUCON4予選問題をngx_mrubyだけで解いてみて分かったこととか、ちょっとしたノウハウ(レベル低いやつですw)とか、感想とか書きます」になります。はてなブログPro研究者と技術者をやっています。詳しくはリンクの「研究・開発業績ページ」を御覧ください。さくらインターネットに入社して1年が経ちました非厳密計算で確率的に解釈するコンピューティングへの流れラストオーサーとしての国際会議投稿やジャーナル執筆のサポートについてviを:wqや:q!、あるいはZZで終了するのとではどちらが効率的か自分の研究開発に自信を持つためには月別アーカイブリンク研究・開発業績ページ旧ブログ検索はてなブログをはじめよう!matsumoto_rさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。