A Web Server Extension Mechanism Using Embeddable Scripting Language mruby

Bibliographic Information

Other Title
  • 組み込みスクリプト言語mrubyを利用したWebサーバの機能拡張支援機構

Search this article


Web サーバを利用したサービスの増加に伴って,Web サーバ上で生じるインシデントも増加している.これらの問題を解決するために,Web サーバソフトウェアの機能拡張が必要である.Apache を利用していた場合,機能拡張のためには C 言語や Apache 内部の仕様を深く理解している必要があり,開発の敷居が高く,コンパイルが必要となって保守性が低い.そこで,現在注目されてきている組み込みスクリプト言語 mruby を利用して,Apache に機能拡張のための mruby 用インターフェイスを実装し,mruby スクリプトによって簡単に Apache 内部の機能拡張を行える機構 mod_mruby を提案する.mod_mruby は,Apache 内部に存在する各種リクエスト処理フェーズにおいて,任意の mruby スクリプトを任意のフェーズでフックして実行できるインターフェイスを提供している.フックする際には,Apache 内部でのみ保持しているリクエスト処理情報を,組み込みスクリプトの特性を生かして,mruby スクリプト上で操作可能にした.また,mruby スクリプト実行時に生成される状態遷移を保存する領域や拡張ライブラリのロードを複数の mruby スクリプトで共有し,コンパイルされたバイトコードのみを使い分ける事によって,高速に動作するように設計した.その結果,mruby は広く利用されている Ruby と同様のオブジェクト指向による実装が可能である事と相まって,多くの開発者が Apache の機能拡張に取り組み易くなると考えている.As the increase of services using Web servers, the number of incidents also is increasing rapidly. In order to solve those problems, it is necessary to extend a functionality of a Web server software. In case of using Apache, developers are required high coding skill of C language and internal specifications of Apache in order to extend the functionality of it. The development of a web server extension requires some high skills, and the maintainability is low since that extension need to compile a code. Therefore, we propose mod_mruby that is a web server extension mechanism using embeddable scripting language mruby which has been attracting attention now. mod_mruby allows to extend the functionality of Apache easily by implementing a mruby script. mod_mruby provides an interface to hook and execute any mruby scripts in the various phases of processing requests inside Apache. When hooking mruby scripts, mruby scripts can process the data of processing requests inside Apache, taking advantage of the characteristics of a embeddable scripting language for C language. We have designed that mod_mruby run at high speed by sharing the data of state transition and the extension library of mruby by multiple mruby scripts and using only different byte code each mruby script. Many developers can implement a web server extension easily by mod_mruby in cooperation with coding style of mruby which is the same as object oriented programming ruby which is widely used by web developers.



  • CRID
  • NII Article ID
  • NII Book ID
  • Text Lang
  • Data Source
    • CiNii Articles

Report a problem

Back to top