システムを作りたいのなら、プログラミングを勉強するだけでなく、システムの全体像を把握することが大切です。
システムの全体像を把握することで、システムを作るためにはどのようなことが必要なのかがイメージしやすくなります。
本記事では、以下の5つの用語について図を用いて説明しつつ、システムの仕組みや全体像について解説していきます。
- アプリケーション(ソフトウェア)
- システムインフラ
- ハードウェア
- OS(オペレーティングシステム)
- ミドルウェア
私もシステム開発に携わる際にシステムの理解には苦労した覚えがあります。
その経験から、システムを開発する際に最低限知っておきたいことだけをピックアップし、初心者の方にも分かりやすく解説していくので、ぜひ最後まで読んでみてください。
システム=アプリケーション(ソフトウェア)+システムインフラ(ITインフラ)
システムとは、”アプリケーション(ソフトウェア)”と”システムインフラ(ITインフラ)”で構成されています。
アプリケーション…プログラマーが書いたプログラム
システムインフラ…プログラムを動かすための土台
みなさんが日頃から使っているTwitterやInstagramなどのもととなるアプリケーションもシステムインフラが土台となっているので、システムとして機能し、サービスとして利用できるのです。
なので、プログラムだけ書いてもシステムを作ることはできません。
システムを開発に携わるエンジニアにとって、最低限のシステムインフラの知識は必須なのです。
システムはアプリケーションとシステムインフラでできている
システムインフラ=ハードウェア+OS+ミドルウェア
インフラ(インフラストラクチャー)と聞くと、水道・電気・ガスの設備や道路などの“生活基盤”のイメージを持つのではないでしょうか。
ITにおけるインフラ、つまりシステムインフラとは、“システムを構成する基盤となるもの”のことを指します。
そして、そのシステムインフラを構成するものが主に以下の3つになります。
ハードウェア
OS(オペレーションシステム)
ミドルウェア
この3つについてもう少し細かく見ていきましょう。
ハードウェア
ハードウェアとは、コンピュータやシステムを構成する機器のことを指します。
つまり、見たり触ったりできる物理的なものです。
代表的なハードウェア
- コンピュータ
- キーボード
- マウス
- ストレージ
- ネットワーク機器(ルータ、スイッチ)
ハードウェアとは、人間が実際に触れる物理的なもの
OS
OS(オペレーティングシステム)とは、ハードウェアとソフトウェアをユーザが利用しやすいように管理してくれるソフトウェアです。
みなさんが使用しているパソコンやスマートフォンを分かりやすく簡単に操作できるようにしてくれているのがOSなのです。
もしパソコンやスマートフォンにOSが入っていなかったら、キーボードやマウスから入力を受け付けて、Webページなどを画面に出力したりできません。
ましてやパソコンやスマートフォンの電源を入れることもできないです。
代表的なOS
- Windows
- Mac OS
- Linux
- Android
- iOS
OSがハードウェアとソフトウェアを管理してくれている
ミドルウェア
ミドルウェアとは、アプリケーションとOSを間で支えるソフトウェアのことです。
ミドルウェアにも様々な種類があり、それぞれ役割が異なります。
そのミドルウェアの役割ごとに機能を提供しているコンピュータを“サーバ”と言います。
システムはいくつかのサーバで構成されていることが多いですが、ほとんどのシステムで
サーバの役割=ミドルウェアの役割
となっていることが多いです。
代表的なサーバ
- Webサーバ
- APサーバ(アプリケーションサーバ)
- DBサーバ(データベースサーバ)
アプリケーションとOSの中間に位置しているのでミドルウェアという
システムとは:まとめ
- システムとは、“アプリケーション”と“インフラ”で構成されている
- インフラは、“ハードウェア”と“OS”と“ミドルウェア”で構成されている
- ハードウェアとはパソコンやスマートフォンのように実際に触れられるもの
- OSとは、ハードウェアとソフトウェアを管理してくれるもの
- ミドルウェアとは、アプリケーションとOSを間で支え、システムを構成するサーバの役割を担っているもの
ここまで読めばシステムの全体像はなんとなく理解できたのではないでしょうか。
ただし、ここまでの内容はシステムの全体像を簡単に紹介しただけなので、実践的な知識としては不十分です。
自分が作ったプログラムをサービスとして公開するには、システムインフラの知識がかなり重要になってきます。
次は、「一般的なWebシステムの構成」について学び、システムインフラの知識をさらに理解を深めていきましょう。
最後まで読んでいただきありがとうございました。