ミドルウェアって何?こう聞かれても、答えるのって非常に難しいのですよね。
最初に頭に思い浮かんだのが、
Apache Tomcat という、Webサーバー。
Wikipediaを見たり、質問サイトの回答をいくつか巡ったりして、これもミドルウェアの一つではあるっぽいというのが分かりました。
それ以外に、データベースもミドルウェアになるようで。
そんなわけで、説明用に作ったイラストがこんなのです。
↓
複数のアプリケーションで共通で使える機能を、毎回開発しなくて良いように使えるようにしたソフトウェアがミドルウェア。フレームワークとは違うの?とか考え出すと、きりがなさそうです。
ミドルと言うからには、OSとアプリの橋渡しをする役割になります。
専門用語だらけになってしまったので、それぞれに簡単な解説を試みます。
・ミドルウェア
OS上でアプリケーションを動かす前提として必要となるソフトウェア。アプリケーションの種類(ファイル管理、ネットワーク通信、Webアプリ...etc.)によって、必要となるミドルウェアは異なる。ミドルウェアなしでアプリケーションを作ることもできるが、結局ミドルウェアと同じ機能まで作ることになるので、初めからミドルウェアを使ってしまった方が良い。
・Apache Tomcat
Webアプリケーションを作る時に必要となるミドルウェアである、Webサーバーの一つ。無料で利用することができる。
・Webアプリケーション
動的なWebサイト。ただ情報を表示するだけのWebサイトは単純にhtmlが公開されているだけだが、例えばGoogleカレンダーやAmazonのショッピングページのように、ログインして、何か情報を登録したり、買い物をしたりというように、ユーザーの操作ができるようなWebサイトは、Webアプリケーションである。(より正確には、Webアプリケーションによって表示されたhtmlをユーザーは見ている)
・Webサーバー
Webアプリケーションを動かすのに必要な機能を持ったソフトウェア。例えば、ユーザーが入力したログイン情報を受け取って、正しいかどうかを判断し、次の画面のhtmlをユーザーのPCの画面に表示するような機能を持っている。
・フレームワーク
アプリケーションを開発するときに、ゼロから作るのではなくて、ある程度の骨格があれば、作るのが楽になる。その骨格のこと。多くのアプリケーションで共通する処理、例えば、データベースと通信する機能などが予め組み込まれている。
・・・さて、この説明で何か伝わるのか?情報処理試験の勉強で詰まっている方の参考にでもなればと思います。
最後に、間違いを発見されたり、ここがどういう意味か分からない等ありましたら、コメント欄にコメントいただけると幸いです。