Jun 1, 2005

Gridable Type構想 (1)

このエントリーではMovable Typeを用いて「グリッドする」ことを目的としたGridable Type構想を紹介する。(1)は導入として概念の説明を行う。

アプリケーションプラットフォームとしてのMovable Type

Movable Typeはユニークなソフトウェアである。利用ユーザー数という意味ではASP型のブログサービスに及ばないが、インストール数という点では他のとは比較にならないほど多いブログシステムである。対象をブログシステムに限らず一般のWebアプリケーションまで広げたとしてもおそらく最大のインストールベースになるであろうと推測される。

このことは、ブログの効用としての「プラットフォーム化」(Permalinkの実現、RSS/Atomによるメタデータサービス、XMLRPCなどによる外部インタフェース)とは異なる意味で、単一のソフトウェアレイヤーによるアプリケーションプラットフォームが広範に実現されていることに他ならない。言い換えると、Apache Web ServerにおいてCGIやPHPが利用可能であるのと同程度に、Movable Typeの提供するアプリケーションスタックが利用可能である、ということである。

このプラットフォームは、ブログを構成する各種オブジェクトを表現するクラスライブラリ(それらを操作するメソッド群を含む)と、それらライブラリを使って実現されている標準アプリケーション群(CMS、Comments、Trackbackなど)からなる*1。また、標準アプリケーションには(自己反映ではないが)自身の振る舞いを拡張あるいは変更するためのPluginインタフェースが用意されている。

例えば、標準アプリケーションの一つであるTrackbackは、基本的には単にショートメッセージを受信して保存する機能しか持たない*2。しかし、Pluginインタフェースを用いて振る舞いをカスタマイズすれば、メッセージに応じて必要な処理を行うアプリケーションとしても利用できる。

*1 無論ライブラリを使って固有のアプリケーションを記述することもできる。

*2 外部からのトラックバックメッセージが「トラックバック」として機能するのは、CMSアプリケーションが保存されたメッセージを読み込んでトラックバックデータとして利用するからである。

グリッド環境としての利用

まず最初にグリッドについて解説しておく。

まず現状認識として「資源はどこにでもあるはずなのになぜか(マーフィー則のように)常に不足する」という現象がある。つまり、広域的に見れば資源の効率的な利用がなされていない状態にある。また費用対効果ということを考えると、ユーザーは実行効率を向上させたい、サービスの利用継続性を維持したいなどといった資源に対するある種の「最適化」効果を期待している。資源保有者は資源の保有コストや追加コストを効果的に避けたいと考えており、コストと資源量が相対的なものであるという事実を勘案すれば、要するに「資源の稼働率を上げたい」と考えている。

これらを全部合わせて「広域的に資源の稼働率を上げて実行効率を上げる」というのがグリッドであり、それを実現したのがグリッド環境であり、実現する技術がグリッド技術である。

ここではMovable Typeを用いて、BerkeleyのSETI@HomeやNTTデータのセル・コンピューティングのように遊休リソースをad hocに統合して利用するグリッド環境「Gridable Type」を実現することを考える。Movable Typeをプラットフォームとして用いることにはメリットがある。Movable Typeのアプリケーションプラットフォームを利用できるという以外、Web Serverであるという性質から次のようなメリットが期待できる:

  • 個人用計算機に比べてネットワークトポロジー上の制約を受けない。つまり、すべての資源が均一なグローバルネットワーク空間上にあるものと見做せる。
  • 個人用計算機に比べてダウンタイムが極めて少ない。したがって長時間に及ぶアプリケーションを実行でき、ダウン時の対処も容易である。
  • 資源の低負荷時間帯をマクロに予測でき、それは概ね正しい。つまり、適切に利用時間帯を定めるだけでスケジューリングできる。

当然ながらPerlによる実行効率とセキュリティという問題は残る。後者は、例えばどこかからコードをダウンロードして中身をevalするだけのプラグインを考えてみれば自明である。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com