【ミドルウェア】初耳さんも必見👂インターネット上で他のサーバーとつながるために必要なもの
こんにちは!最近ブドウ🍇を食べて秋を感じ始めたインターン生、かほです。
本日はソフトウェアの一つであるミドルウェアについて学んでいきましょう!
ソフトウェアについて復習したい方は、こちらをご覧ください↓
〇そもそもミドルウェアって何?
皆さん、ミドルウェアを聞いたことがありますか?
(私は初耳でした👂)
ミドルウェアとは具体な業務の処理を行うアプリケーションと基本的な制御を行うOSの中間に入るソフトウェアのことを言います。
中間に入るからミドルというのですね!
アプリケーションが動作する際には、ネットワーク上における他のサーバーと通信をしたりやデータベースへアクセスしたりなど、面倒ですが普遍的なリクエストがあります。
これらの手順や管理をその種別単位にまとめ、ひとつの機能管理パッケージソフトウェアとしてまとめたものをミドルウェアというそうです。
ミドルウェアはそれ自体が処理の遂行やアプリケーションの制御を行います。
原則として単体で利用されることはなく、サーバーにインストールして利用されるようです。
・OSだけじゃアプリケーションは動かせないんですか?
以前、こちらの記事を読んでくださった方の中にこのような疑問を感じる方もいらっしゃるのではないでしょうか。
答えだけでいうと、OSだけでアプリケーションを動かすことはできません。
インターネット経由で他のサーバーとつながるということは、OSにはできないからだそうです。
そのため、ブラウザでウェブサイトを閲覧するためにミドルウェアが必要なんだとか!
〇ミドルウェアの種類
ここまでの話で、ミドルウェアは他サーバーとの通信やデータベースへのアクセスが主な役割ということがわかりました!
実は、すべての機能を同じミドルウェアが担うわけではなく、ミドルウェアは機能に応じて様々な種類があります。
代表的なものは主に三つです。
①webサーバー
②AP(Application )サーバー
③DBサーバー(Data Base)サーバー
それぞれ詳しく見ていきましょう!
①webサーバー
webサーバーとは、ブラウザからのリクエストに応じて、webページを送信するミドルウェアのことを指します。
リクエストされたコンテンツが静的なもの(誰がいつどこで見ても同じ内容が表示されるコンテンツ 例:noteの記事)であれば、webサーバ内に保存されているものがそのまま送信されます。
APACHE HTTP SERVERやNGINXなどが有名なwebサーバーです。
②AP(Application )サーバー
では、ECサイトのショッピングカートや掲示板などのように、見る人や時間によって内容が変わるもの(動的なもの)はどうでしょうか?
そのような動的コンテンツを作成するのがミドルウェアの中の二種類目、アプリケーションサーバーです!
JAVAベースのJAKARTA EEアプリケーションサーバーやMicrosoft社のInternet Imformation Services(IIS)が代表的でしょう。
③DBサーバー(Data Base)サーバー
ミドルウェアの三種類目は、データベースサーバーです!
動的コンテンツを作成するために必要なデータベースを管理するという機能を持っています。
データ自体はストレージに保存されているので、ストレージから必要な情報を取り出したり、書き込んだりするのがデータベース管理サーバの役割です。
MySQLが代表例と言えます。
これら三種類のミドルウェアが助け合って、webサイトの閲覧が可能になります。
この構造はweb三層構造と言われています↓
実はweb三層構造を担うミドルウェア以外に、もう一つ重要な”運用ミドルウェア”というのがあるのでご紹介しますね。
④運用ミドルウェア
運用ミドルウェアの役割は、データのバックアップ、データのログの取得、サーバーの再起動、システムの監視をすることです。
運用ミドルウェアが他のミドルウェアと異なる点は、それ自体がアプリケーションとして機能するということです!
(図に表すと↓)
〇ミドルウェアを使ってよいこと、よくないこと
何事にもメリット、デメリットはつきものですよね。
次にそちらを見ていきましょう!
・ミドルウェアを使うメリットとは?
高度な処理がパッケージ化されているので、一から全部開発するのに比べると開発が効率的に進められる点。
・デメリットは?
パッケージ化の結果、不要な機能もあり、弊社のプロダクト”PLEN Cube”のような小さいデバイスに接続するとCPUのリソース(コンピューターが供えられる能力)が減ってしまうという点。
〇では、弊社の製品”PLEN Cube"にはどのようなミドルウェアが使われている?
PLEN CubeにはROS(Robot Operating System)が使われています!
ROSとは、世界的に利用されている知能ロボット開発用のオープンソースのミドルウェアです。
データをシェアするプロセス間の通信、アプリ間の情報の流通を担当しています。
例えば、”Take a photo"と言ったら、PLEN Cubeのカメラが写真を撮影する機能はROSを使っています。
ぜひ、こちらでその様子をご覧ください!
〇まとめ
今回は、他のサーバーと通信をしたりやデータベースへアクセスを行うためのソフトウェア、ミドルウェアについて学びました。皆さんの身近な電化製品にも使われていること間違いなし!
使われているものを見つけた際には、コメント欄までお願いします笑笑
弊社PLEN Roboticsのnoteは毎週金曜日に投稿しています!
ぜひ次回もご覧ください!それではbye~♪