仮想化、クラウド時代におけるミドルウェアの新たな役割
2009年11月4日(水)9時38分配信 ITmediaエンタープライズ
情報処理システムのライフサイクルと運用環境の変遷例,写真:ITmedia [ 拡大 ]
-PR-
ソフトウェアについてもSaaS(サービスとしてのソフトウェア)の適用範囲がさらに広がりつつある状況だ。一方、アプリケーションサーバ(APサーバ)やデータベースサーバ(DBサーバ)といったミドルウェアが仮想化やクラウドと絡めて論じられることが比較的少ないようにも感じられる。元来、ユーザー自身が直接意識しづらい位置づけであることに加え、オープンソース製品の台頭によるコモディティ化、買収などによるプレイヤーの収れんといったことが、「ミドルウェアはもうそれほど気にかける必要のないもの」という意識を生んでいるのかもしれない。
だが実際はその逆である。ミドルウェアはこれからの時代も引き続き重要な役割を担う存在であり、現在も進化を続けている。本稿ではそうした観点からミドルウェアの現状と今後を俯瞰してみることにする。
●求められるのは情報処理システムの「ポータビリティ」
クラウド活用における留意点はたくさんあるが、企業の情報処理システム全体にとって中長期にわたって重要なポイントは「ポータビリティ」の確保である。システムにはライフサイクルが存在する。プロトタイピング、特定部署への試験的な導入、本格的な全社展開、レガシー化、廃棄や他システムへの移行といったステージを経ながら自身の機能や規模を変化させていく。
当然、それぞれのステージで求められるインフラ要件は異なってくる。手元で試行錯誤ができるように社内設置を選びたい時もあれば、社外に預けることが良い時もある。コストと要件のバランスを考慮した結果、委託先を変更することもあるだろう。
つまり、特定の構築/運用環境に情報処理システムを束縛させないことが重要なのである。情報処理システムのインフラを意識しないで済むことはクラウドの最も大きなメリットといえる。だが、全く意識しないままでは特定のクラウドから身動きが取れない状態(ある種のベンダーロックイン)に陥りかねない。逆説的ではあるが、インフラを意識せずに済むからこそ、「ライフサイクルを意識し、ポータビリティを確保する」ことの重要性が増してくるのである。
●ミドルウェアは「ロックインされないクラウド活用」の要
ではポータビリティの確保とミドルウェアはどのようにかかわってくるのだろうか。情報処理システムを移転(社内運用からクラウドへ、あるいはクラウド間など)させることを考えた場合、移転先の環境で現在運用しているミドルウェアがきちんと動作するかは非常に重要な問題である。現在のクラウド環境(特にIaaSの場合)において、ミドルウェアのポータビリティを保証しているケースは非常に少ない。
確かに、OSのレベルまできちんと移転できれば、その上で動作するミドルウェアも基本的には問題なく動作するはずである。しかし、ユーザーとしてはミドルウェアベンダーとクラウド提供者による何らかの動作保証がほしいところだろう。十分な検証環境を持つことが難しい中堅・中小のシステムインテグレーターも、アプリケーションより下層の環境について責任を負うことが難しいのが現状だ。
つまり、ミドルウェアのポータビリティは「ロックインされないクラウド活用」を実現する上で不可欠な要素であり、今後のクラウド普及を左右するポイントであるともいえる。実際、ミドルウェアを提供するベンダーはこの重要性を意識し始めており「Oracle Database」の「Amazon EC2」サポートや、 「Azure Services Platform」における「SQL Database Services(現:SQL Azure Database)」で従来のRDBMSのデータモデルや機能との互換性を維持する方針へと転換したことなどが例として挙げられる。
●ミドルウェア自身の進化
こうした状況の中、ミドルウェア自身もポータビリティ確保に向けて新たな進化を始めている。ミドルウェアにとってのポータビリティ確保とは「ハードウェアやOSへの依存度を最小化する」ことにほかならない。例えば、可用性を実現する際にもハードウェア構成を意識せずに済むようにするといったことや、OSの機能に頼らなくても自身のリソース管理ができるといったことが挙げられる。
代表的な具体例が「Oracle Database 11g R2」だ。複数のデータベースグリッドを集約して仮想的なサーバプールを構成し、その中で複数の業務システムデータベースを自由に配備することが可能な「Oracle Grid Infrastructure」や、ログやトレースなどといった従来はOSのファイルシステム管理下に置かれていたデータもデータベース領域とまとめて管理が可能な「ASM Cluster File System」といった新機能を備えている。ミドルウェアが自らの役割を拡大することによって、ハードウェアやOSからの独立性を高め、結果的にポータビリティを実現しようとする動きの例といえる。
●システム階層の単純化に向けた動き
こうしたミドルウェアの進化はシステムの階層を単純化する動きととらえることもできる。仮想化技術を活用するということは仮想化のためのハイパーバイザーがハードウェアとOSの間に挟まることを意味する。システム階層はその分だけ複雑化し、運用管理やトラブル対応において意識すべき対象も増える。ミドルウェア自身の役割を増やすことはそうした負担を軽減する手段の1つでもあるわけだ。
ただし、ミドルウェアの役割を増やすことは仮想化ハイパーバイザーが不要になることを意味するわけではない。実際、Oracleも「RAC(Real Application Clusters)」と「Oracle VM」の併用によるメリットを訴求している。あくまで数多くある選択肢の1つとして、ミドルウェアの役割拡大の効果をとらえることが大切だ。
システム階層を単純化する動きはミドルウェア以外のシステム階層においても見られる。VMwareのSpring Source買収などはその一例だ。「vSphere」という仮想化ハイパーバイザーと「Spring Framework」というフレームワークの両方をVMwareがまとめて面倒をみることで、「Spring Framework」上で開発したアプリケーションを擁するシステムインテグレーターが仮想化やクラウドへ取り組む際の敷居が下がることになる。
あるいは、「Windows Server 2008」における「Hyper-V」搭載もOSの役割拡大によるシステム階層の単純化例ととらえることができるだろう。このようにシステム階層の単純化への取り組みはシステム階層のさまざまな個所で発生してきており、今後も新たな取り組みが登場してくると予想される。
●ベンダーロックインを避けながら、役割拡大のメリットを享受する
ただし、こうした「システム階層の単純化」も場合によっては新たなベンダーロックイン要因となることに注意を払う必要がある。ミドルウェアがハードウェアやOSが担っていた役割をカバーすることは運用管理面で大きなメリットをもたらすが、そうした機能の活用は特定ミドルウェアへの依存度を高めることにもつながる。自社が活用しようとしている機能はベンダー固有のものなのか、他社製品でも実現可能な標準的なものなのかを常に意識し、「ベンダー非依存」と「システム階層の単純化」を両立させながら、情報処理システムのポータビリティを確保していくことが肝要である。【岩上由高(ノークリサーチ)】