ミドルウェアとは「わかりやすく」解説します
ミドルウェアについて調べる人
「ミドルウェアとは何のことですか?ソフトウェアとミドルウェアの違いは何でしょう?どのような役割のどのような製品があるのでしょう。わかりやすく解説してほしいです。」
こんな悩みを解決します。
本記事の概要:ミドルウェアは
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層構造はこんなに複雑に。でもメリットが大きいんです。
仮想化による集約でサーバミドルウェアコストを削減する
これまで10種類のサービスを提供するのに、個別にOracle DBサーバを構築していたとすると、10台分のライセンス費用が発生していました。それが仮想化によって1台のサーバ上に集約することで、ミドルウェア費用を抑えることができます。
(ライセンス費用はサーバの台数だけでなくサーバスペックに依るので、単純に台数比例で10分の1にはなりません)
クラウドとは
クラウドでは、データやアプリケーションがネットワークにつながった先、つまり「クラウド」上に存在します。
クラウドのビジネスモデルはデータ・ストレージやアプリケーションを購入させるのではなく、必要な時・必要なだけ使った費用だけを払う仕組みです。
クラウドで、ミドルウェアも必要な時・必要なだけ使った費用を払う時代に
Oracleなど高額のミドルウェアもクラウド化していて、使った分だけ支払う仕組みに変わってきています。以下の例(図)はOralce社の提供するクラウドサービスの料金体系です。
ミドルウェアとは/まとめ
内容のおさらいです。
ミドルウェアは・・・
- サーバの構成「OS↔︎ミドルウェア↔︎ソフトウェア」の中間に位置します
- OS・ハードの違いを吸収し、みんながよく使う機能を提供します
- コストについては近年、仮想化とクラウド化による効率化が進んでいます
今回は以上です。ミドルウェアについての理解が深まりましたら幸いです。
ミドルウェアとは【ミドルウェアの役割を徹底解説します】
サーバ構成「OS↔︎ミドルウェア↔︎アプリケーション」の中間に位置
OS・ハードの違いを吸収し、みんながよく使う機能を提供
仮想化とクラウド化によるコスト効率化が進んでいます
スクリプトとは【プログラミング言語についての解説】
スクリプト言語とは
コンパイル言語とは
スクリプトとコンパイル言語の違いは機械語への翻訳の仕方
実行速度が遅いスクリプト言語が流行るワケ
プロキシ(proxy)とは【プロキシの種類と機能を解説します】
プロキシとは?
プロキシの仕組み
プロキシの種類と用途
注意点
KKDとは?【2020年に通用するKKDとは何か】
KKDのメリット・デメリット
KKD法とは
2020年に通用するKKDとは何か