今回はアプリケーション開発を効率化するためのソフトウエアであるミドルウエアを取り上げる。様々なミドルウエアが世に出ているが、システム全体の見通しを高めるためにもITアーキテクトは適材適所でミドルウエアを使いこなせるだけの知識とノウハウを持つことが欠かせない。

OSとアプリを仲立ち

 ICTシステムのソフトウエアをレイヤーで分けると、一般的にはハードウエアに近い順からOS、ミドルウエア、フレームワーク、アプリケーションとなる。ハードの固体差をドライバーで吸収しリソースを効率的に使うためのソフトがOSだとすると、その上に位置して個別にアプリケーション開発する部分を削減するソフトがミドルウエアである。

 アプリケーションからミドルウエアを使う場合は、ベンダーごとの拡張機能を使わなければ基本的なインタフェースの多くはJavaやSQL、SNMP(Simple Network Management Protocol)などで標準化されている。ミドルウエアの提供形態は商用ソフト、OSS(オープン・ソース・ソフトウエア)に二分できるが、OSSにサポートをバンドルしたサブスクリプション形態の提供も増加している。

 ミドルウエアの種類は、実行基盤系、開発支援系、データストアー系、システム連携系、管理基盤系、それと上位ミドルに分けると理解しやすい。ハード機能に内包されたファームウエアや組み込みソフト、従来はハードと一体で提供していた機能を仮想マシン化したVA(バーチャルアプライアンス)をミドルウエアに含むこともある。

 一方で、仮想化ソフト機能やOpenStackなどのクラウドオーケストレーション機能は最近、OSのレイヤーに含めてしまう傾向にある。システム特性に応じて使い分けたい。