IT

ソフトウェアとは?

前回の投稿で、システムを3つの要素 – ハードウェア・ソフトウェア・データ – に分解しました。

今回は、その一つ、ソフトウェアとは何かについて、詳解します。

ソフトウェアとは?

ソフトウェアとは、何らかの目的のために機能を実行するプログラム、です。

厳密な定義は、「実践ソフトウェアエンジニアリング」によると、以下のようになります。

1.実行されることによって必要な特性、機能、性能を提供する命令語群(コンピュータプログラム)

2.プログラムが適切に情報を扱うことを可能とするデータ構造

3.プログラムの操作や使用法を記述した情報

もっと平たく言うと、ソフトウェア=プログラムの塊、と言えるかと思います。

ソフトウェアの分類

ソフトウェアは、その目的に応じて、以下のように分類されます。

  • アプリケーションソフトウェア: ユーザとのコミュニケーションが目的
    例. MS-Word, Google Chrome, スマホアプリ, ゲームソフト, など
  • ミドルウェア: Web機能、アプリケーション機能、データベース機能、ジョブ運用など、ネットワーク上の他のサーバやクライアントとのコミュニケーションが目的
    例. Apache HTTP Server, Tomcat, Oracle Database, JP1, など
  • システムソフトウェア(オペレーティングシステム/OS): ハードウェアの制御が目的
    例. Windows, macOS, Android, RHEL, CentOS, など

一つ一つのコンピュータに、これらのソフトウェアがインストールされています。

例えば、自宅のパソコンだと、以下のような構成です。

アプリケーション: Safari, メール, メモ, マップなど多数
オペレーティングシステム: macOS Monterey

【例】システムとソフトウェアの使い分け

システム

前回の投稿では、システムを、「情報システムを構成するコンピュータネットワーク」と、表現しました。

また、「情報システムとは、社会、組織体または個人の活動を支える適切な情報を、収集し、加工し、伝達するための、人間活動を含む社会的な仕組みである。」と、あります。

例えば、以下のような個人のスマートデバイス、ホームネットワーク、企業ネットワーク、クラウドサービスが、インターネットを介して繋がっている場合、

社会レベルでは、これ全体で一つの情報システム、と言えます。

さらに、個人、家庭、企業、組織レベルで、サブシステムに分けられます。

ただし、個人や家庭で使用するコンピュータネットワークのことを、「〇〇システム」とは呼ぶことは、あまり一般的ではありません。

ソフトウェア

さらに、各システム上で、何らかのソフトウェアが必ず動いています。

例えば、ある個人が、iPhoneで、家庭用のルータからインターネットに接続し、YouTubeを視聴したとき

iPhoneは、システムソフトウェア(iOS)上で、アプリケーション(SafariやYouTubeアプリ)を実行して、YouTubeサービスからダウンロードした動画データを、再生します。

また、別のユーザが、Android端末(OS: Android)で、アプリケーション(Google Chrome)を起動し、ある企業のコーポレートサイトに、インターネットでアクセスしたとき

企業ネットワークのシステムは、VPNゲートウェイ、DNSサーバ、Webサーバ上のミドルウェアを実行して、外部のユーザにHTMLファイルを、送り返します。

ユーザ側から見ると、自身のAndroid端末のChromeに、ダウンロードしたコーポレートサイトのHTMLファイルが、表示されます。

さらにもう一つ、テレワークの例を見てみます。

まず、ホームネットワークにあるパソコン(OS: Windows)を起動し、アプリケーション(VPNクライアント)を実行します。

VPNクライアントは、勤務先のネットワークにあるVPNゲートウェイの認証を受けて、仮想デスクトップ環境に、アクセスします。

そうすると、仮想のデスクトップ画面の映像が、VPN(仮想専用線)接続に守られて、ホームネットワークのPC上に表示されて、あたかも勤務先にあるPCを直接操作しているように、遠隔操作できるようになります。

この遠隔操作によって、企業のプライベートネットワーク上の基幹系システム(顧客管理システムや購買管理システム、人事給与システムなど)にアクセスしたり、

あるいは、クラウドサービス(OneDriveやAWSなど)上に配置したファイルシステムや基幹系システムに、アクセスすることができます。

これらの基幹系システムでも、Web機能、アプリケーション機能、データベース機能などのミドルウェアが動いており、そのベースにOSがあります。

※上記のネットワーク図は、従来の境界型セキュリティを前提とした構成です。あくまで、一つの例として、ご理解ください。

まとめ

ソフトウェアとは、何らかの目的のために機能を実行するプログラムであり、その目的に応じて、アプリケーションソフトウェアミドルウェアシステムソフトウェアに、分けられます。

ABOUT ME
Polo
ITプロフェッショナルを志向する一介のシステムエンジニア