#はじめに
インフラまわりの知識はほぼないけど(そもそもひよっこだし)、これからアサインされる案件でインフラ寄りのこともさわることになりそうで不安。。。
ということで、ミドルウェアについて調べてみた備忘録です。
※初心者、初学者向けの内容ですのでご了承ください。
ミドルウェアとは?
ミドルウェア(英: Middleware)は、コンピュータの分野で、コンピュータの基本的な制御を行うオペレーティングシステム(OS)と、各業務処理を行うアプリケーションソフトウェアとの中間に入るソフトウェアのこと。
※wikipedia
エンジニアひよっこあるある、定義を調べても概念ばかりでイメージができない。
というわけでまずは具体的にイメージしやすいものを調べてみて理解を深めようと思います。
Web・AP・DBサーバの役割
よく聞くやつ、だけど、結局何をする役割なんだろうかと。
(最近までWEB系の案件やってたのに知りませんでした、恥ずべき行為)
なので、手始めにここから見てみようと思った次第です。
Webサーバ
・クライアントからのリクエストをもらってレスポンスを返すよ
・静的なコンテンツなら持ってるよ
・動的なコンテンツはAPサーバに任せるよ
APサーバ
・Webサーバからの依頼で動的なコンテンツをつくるよ、作ったらWebサーバに投げるよ
・DBの情報が欲しいときはDBサーバに任せるよ
・具体的な処理はJavaやPHPで書かれるよ
DBサーバ
・APサーバからの依頼でDBを操作するよ
・結果をAPサーバに投げるよ
クライアントとのやりとりはWebサーバが全部やって、
別途処理が必要な場合は他のサーバに投げるということね。なんとなく理解した。
##本題のミドルウェア
3つのサーバにおいては以下が有名どころのようです。
・Webサーバ:Apache
・APサーバ:Tomcat
・DBサーバ:MySQL、Oracle
さすがに名前は聞いたことあったよかった()
(ただ、サーブレットとかの記事見てても、なんでApacheとTomcatの2つ必要なの???って思ってたからようやく理解)
そしてミドルウェアの役割は、
・アプリケーションを使いたい人が使いやすいような機能を提供すること
・OSのやハードウェアの違いを吸収して使えるようにすること
が主なようです。
アプリケーション(やりたいこと)に共通の機能は、パッケージにしておいたほうがみんな楽だよね!という認識で落ち着きました。
なるほど、縁の下の力持ち的なポジションですね。
上記のほかにも、ジョブ運用やシステム監視などの役割をするシステム運用ミドルウェアもあるみたいです。