ミドルウェアとは「わかりやすく」解説します

用語解説

ミドルウェアについて調べる人

ミドルウェアについて調べる人
「ミドルウェアとは何のことですか?ソフトウェアとミドルウェアの違いは何でしょう?どのような役割のどのような製品があるのでしょう。わかりやすく解説してほしいです。」

こんな悩みを解決します。

本記事の概要:ミドルウェアは

Middle(中間)+Ware(ソフトウェア)、つまり直訳すると中間的なソフトウェアと言う意味です。

  • サーバの構成「OS↔︎ミドルウェア↔︎ソフトウェア」の中間に位置します
  • OS・ハードの違いを吸収し、みんながよく使う機能を提供します
  • コストについては近年、仮想化とクラウド化による効率化が進んでいます

ミドルウェアとは

ミドルウェアとは、サーバの種類を特徴づける基本的なソフトウェアのこと。OSとアプリケーションの中間(ミドル)で機能を提供するため、ミドルウェアと呼ばれます。

出典:ニフクラ 

代表的な例

  • WEBサーバの代表的なミドルウェアは、Apache
  • APサーバの代表的なミドルウェアは、Tomcat
  • DBサーバの代表的なミドルウェアは、MySQLやOracle

OS/ミドルウェア/アプリケーションの3層構造で理解

先ほど示した図のように、サーバはOS/ミドルウェア/アプリケーションの3層が基本構造です。

構成例

  • 構成例①・・・APサーバ
    アプリケーション:Javaで自社開発
    ミドルウェア:Tomcat
    OS:Windows
  • 構成例②・・・DBサーバ
    アプリケーション:SQLを自社開発
    ミドルウェア:Oracle
    OS:Linux
  • 構成例③・・・WEBサーバ
    アプリケーション:なし(静的コンテンツのみ)
    ミドルウェア:Apache
    OS:Linux

ミドルウェアには様々な種類がありますが、サーバに使われるOSはほぼLinuxかWIndowsの2択と思って良いです。

ミドルウェアの役割

ミドルウェアの主な役割は次の2つです。

  • みんなが使う機能を提供する
  • OSやハードウェアの違いを吸収する

ミドルウェアはみんなが使う機能を提供する

例えばTomcatはみんな(=アプリケーションサーバを使いたい人)のニーズをくんで、以下のような共通機能を提供します。

  • プログラムの実行環境やデータベースへの接続機能を提供する
  • 複数のリクエストを処理する機能を提供する
  • 処理の流れを制御するビジネスロジックを提供する

どんな機能を提供するかは、ミドルウェア製品の事業戦略そのものです。みんなが普通に欲しい機能がきちんと提供されていることに加え、気が利いた機能があったり、実行速度が速かったり、使いやすかったりするミドルウェアがデファクトスタンダートとしてみんなに利用される製品となります。

OSやハードウェアの違いを吸収する

同じくTomcatを使う場合、TomcatがLinuxで動いていてもWindowsで動いていても同じように機能を使うことができます。これは、ミドルウェアがOSの違いを吸収してくれているからです。

ミドルウェアの問題点は導入・維持コスト

OS・ミドルウェア・アプリケーションの中でもミドルウェアは金食い虫。導入時の多額のライセンス費用に加え、毎年の年間保守費用が発生します。この問題を解決するのが仮想化技術クラウドです。

仮想化技術とクラウドでミドルウェアコストを削減

  • 仮想化による集約でサーバミドルウェアコストを削減する
  • クラウドで、ミドルウェアも必要な時・必要なだけ使った費用を払う時代に

仮想化とは

10年ほど前までは、WEBサーバ、APサーバ、DBサーバといったミドルウェアの特質ごとにサーバ構築が行われていましたが、近年では仮想化技術が実用化したことによってOS・ミドルウェア・アプリケーションの立ち位置も変わってきました。

コンテナと呼ばれる仮想技術を扱うDockerという製品を導入すると、OS/ミドルウェア/アプリケーションの3層構造はこんなに複雑に。でもメリットが大きいんです。

出典:IT media 

仮想化による集約でサーバミドルウェアコストを削減する

これまで10種類のサービスを提供するのに、個別にOracle DBサーバを構築していたとすると、10台分のライセンス費用が発生していました。それが仮想化によって1台のサーバ上に集約することで、ミドルウェア費用を抑えることができます。
(ライセンス費用はサーバの台数だけでなくサーバスペックに依るので、単純に台数比例で10分の1にはなりません)

クラウドとは

クラウドでは、データやアプリケーションがネットワークにつながった先、つまり「クラウド」上に存在します。

クラウドのビジネスモデルはデータ・ストレージやアプリケーションを購入させるのではなく、必要な時・必要なだけ使った費用だけを払う仕組みです。

クラウドで、ミドルウェアも必要な時・必要なだけ使った費用を払う時代に

Oracleなど高額のミドルウェアもクラウド化していて、使った分だけ支払う仕組みに変わってきています。以下の例(図)はOralce社の提供するクラウドサービスの料金体系です。

出典:DZ Net Japan 

ミドルウェアとは/まとめ

内容のおさらいです。

ミドルウェアは・・・

  • サーバの構成「OS↔︎ミドルウェア↔︎ソフトウェア」の中間に位置します
  • OS・ハードの違いを吸収し、みんながよく使う機能を提供します
  • コストについては近年、仮想化とクラウド化による効率化が進んでいます

今回は以上です。ミドルウェアについての理解が深まりましたら幸いです。

こちらのシステム用語解説も参考になります