2013年に取り組んだ研究まとめ

2013年ももうすぐ終わってしまいますね。今日も非常に寒く、年の終わりを肌で感じております。

とりあえずの区切りということで、2013年に取り組んできた研究を簡単にまとめておこうと思います。

はじめに

まずは、今年取り組んだ研究の各内容の最終成果の論文を紹介します。全てPDFで読めるようにしています。

  1. [IPSJ 論文誌]大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善
  2. [IEICE 論文誌]スレッド単位で権限分離を行うWebサーバのアクセス制御アーキテクチャ
  3. mod_mruby: スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構
  4. リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ

これらの内容に関しては他にも幾つか論文は書いたのですが、最終的な成果としては各内容が上記の論文としてまとまりました。

研究まとめ

では、上記の4つの研究について簡単にまとめていきます。

1. 大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善

ApacheのVirtualHost環境でWebホスティングシステムを構築するというのは既にセキュリティ・運用性・パフォーマンスにおいて色々と問題がある事は10年以上前から分かっており、各社独自の方法で共有環境を構築していました。

ある時、VirtualHostで大規模な共有環境をセキュリティや運用性を考慮して真面目に組むとどうなるか、という議論を元に、その内容を論文にしたのが、「大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善」になります。

大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善について書いた論文公開」エントリでも紹介しています。現状のセキュリティや運用性の情報・問題点を調べてまとめているので、参考になればと思います。

無事、情報処理学会のジャーナルとして採録されました。

2. スレッド単位で権限分離を行うWebサーバのアクセス制御アーキテクチャ

大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善」において、セキュリティと運用技術は改善できたものの、依然としてパフォーマンスが課題となっていました。そこで、Webサーバにおける動的コンテンツ実行時のセキュリティとパフォーマンスを両立するためのアクセス制御アーキテクチャを考えたのがこの研究になります。

アクセス制御の複雑化や、WebホスティングのみならずWebサービスのアクセス制御の必要性等も説明しています。その他、本ブログで幾つかmod_process_securityに言及したエントリがありますので、その辺りも参考にしていただけるとより理解が深まるかもしれません。

これは、電子情報通信学会のジャーナルとして採録されました。

3. mod_mruby: スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構

続いて、Webサーバのリソース制御アーキテクチャについて考えたいと思っていたのですが、その前段として「サーバプロセス稼働中でも管理者がDSLで柔軟にリソース制御ルールを記述できる」という設計を考えていました。しかし、これを実現するのは簡単ではなかったため、まずは、サーバプロセスの振る舞いをスクリプトで表現するために、既存のスクリプト言語をいかに効率良くサーバプロセスに組み込むか、という点に着目し始めた研究です。

この研究では、関連する技術が論文になっていなかったりと、既存の手法を整理するのに沢山コードを読む必要があってかなり苦労しましたが、どうにか「mod_mruby: スクリプト言語で高速かつ省メモリに拡張可能なWebサーバの機能拡張支援機構」という論文として形にすることができました。

この論文は、つい先日12月13日に行われた情報処理学会のインターネットと運用技術シンポジウム2013で、優秀論文賞と学生奨励賞を頂きました。その他、各所でも評価を頂き感謝しております。そういえば、IOTS2013のスライドを公開してなかったので、ここに載せておきます

今後は、もう少し既存の手法の精査や実用的な評価を行ってジャーナル化したいと考えています。

4. リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ

mod_mrubyの研究によって、Webサーバの振る舞いをDSLで効率良く記述する事ができたので、それを利用して、リクエスト単位でリソース制御を行える研究を行いました。この研究によって、「管理者がDSLで柔軟にリソース制御ルールを記述でき、その制御ルールを元にリクエスト単位でリソースを分離して、分離範囲内で継続的に処理を行う」事が可能になります。

研究者向けの内容で「「リクエスト単位でコンピュータリソースを分離可能なWebサーバのリソース制御アーキテクチャ」という話を発表してきた」エントリを書き、技術者向けの内容で「「コンテナ型仮想化の情報交換会@東京」で発表してきた」エントリも書いていますので、合わせてご覧下さい。学会発表では、学生奨励賞を頂きました。

この論文も、評価を整理しジャーナル化したいと考えています。

まとめ

来年の1月と2月には、Ruby東京プレゼンテーションのパネルディスカッションに参加したり、2月の研究会では「同一の送受信アドレスを持つ大量メールの効率的判定手法」や「serverspec: 宣言的記述でサーバの状態をテスト可能な汎用性の高いテストフレームワーク」の共著として参加する予定です。このような取り組みによって、企業での開発と学術機関での研究が良い方向で影響を与え合うような機会が多くなると良いと思っています。

今年は大きく分けて上記の4つの成果を残す事ができました。Webサーバのセキュリティと運用技術の改善にはじまり、パフォーマンスやセキュリティの課題、サーバプロセスへのインタプリタ組込みの効率化、管理者が自由に制御ルールを書けるリソース制御等に取り組んできました。

これらの研究はそれなりに実用性があって良いとは思っている一方で、やはり10年以上前からのCERN HTTPdやNCSA HTTPdから始まる既存のWebサーバモデルの本質に進展はあまりなく、既存のアーキテクチャ前提に各種問題を解決してきたという捉え方もできます。

ですので、今後は既存のサーバプロセスのアーキテクチャやそれに関連するOS技術そのものにメスを入れていきたいと考えています。

番外編

大学の学部時代(6年前)は以下のように、データマイニングや変化点検出と外れ値を利用した以上検出等の研究をしていました。興味のある方はどうぞ。