見出し画像

【スタンドアローン / クライアントサーバ / WEB】サービスの仕組みにはどんな種類があるの?

前回はクライアントサーバについて説明したね!
(まだ読んでない人はぜひ読んでね🐙)

今回はクライアントサーバと合わせて語られることも多い、
- スタンドアローン・システム
- クライアントサーバ・システム
- WEBシステム

の特徴と具体例、それぞれのメリット・デメリットを説明していくよ。

世の中には色んなサービスがあるけれど、そのほとんどはこの3つのシステムのいずれかに分類されるんだ。
できるだけ分かりやすく説明していくから、ぜひ最後まで読んでいってね〜!

[ スタンドアローン・システム ]

スタンドアローンとは「stand(立つ)-alone(一人で)」、つまり周りの助けを受けることなく単体で動作するようなシステムのことなんだ。より詳しくいうと、クライアント(PCやスマホ)が他の機器・ネットワークに接続することなく単体で動作するようなシステムのことをいうよ。

例えば、前に説明したクライアントサーバはクライアントとサーバが協力しながら処理を行っていたね。この場合クライアントはサーバの助けを受けているから、スタンドアローンとはいえないんだ。
一方、例えばMicrosoftのWordやExcelなんかは、ネットワークに接続していなくても使うことができるし、何か特別な機器を必要とするわけでもないよね。こうしたものをスタンドアローン・システムというんだ!

スタンドアローン・システムは他の機器・ネットワークに接続しない分、単純な仕組みにできたり、セキュリティ上のリスクを少なくできるというメリットがあるよ。
一方、クライアントだけで全ての処理を行うから、PCやスマホの性能が低い場合には処理に時間がかかったり、できることが制限されてしまうというデメリットがあるんだ。

ダイアグラム2_300ppi_jpg100

「スタンドアローン・システムのチャート」

[ クライアントサーバ・システム ]

クライアントサーバ・システムは、前回説明した通りクライアントとサーバが協力して働くシステムのことだよ。より詳しくいうと、高度な処理(難しい計算やデータの保存など)はサーバで行って、低度な処理(計算の依頼や結果の表示など)はクライアントで行うようなシステムのことをいうよ。

例えば、スマホアプリの食べログは、エリアを検索したタイミングでサーバと通信し、そのエリアにあるお店のデータを取得しているんだ。こうした仕組みだからこそ、クライアント(PCやスマホ)でたくさんのデータを持つことなく、指定したエリアのお店を表示することができるんだね。こうしたものをクライアントサーバ・システムというんだ!

反対に、もしクライアントに全てのお店のデータを持たせてしまったら、お店が増えたり減ったりするたびにアプリのアップデートをしなければいけなくなってしまう。それにアプリの容量がものすごく大きくなってしまう。そんなのはとても不便だよね😢

クライアントサーバ・システムは高度な処理をサーバに任せられるから、クライアントの性能を問わないシステムをつくれるというメリットがあるよ。
一方でネットワークに接続する分、セキュリティ上のリスクが大きくなったり、そもそもネットワーク環境でないとシステムを使用できないというデメリットがあるよ。

ダイアグラム3_300ppi_jpg100

「クライアントサーバ・システムのチャート」

[ WEBシステム ]

WEBシステムは実はクライアントサーバ・システムの一種なんだ。クライアントサーバ・システムの中で特にWEB(SafariやChoromeで検索するときに利用している仕組みのこと)を使用するシステムのことをいうよ。

例えばGoogle DocsやGoogle Sheetsなんかは、WEBに繋がる環境であればどんなクライアント(スマホやPC)からでも使用することができるよね。こうしたものをWEBシステムというんだ!

WEBシステムは、専用のアプリをインストールする必要がないというメリットがあるよ。
一方でネットワークに接続する分、クライアントサーバ・システム同様に、セキュリティ上のリスク増加やネットワーク環境下でないと使えないというデメリットがあるよ。さらにWEBシステム特有のものとして、ブラウザ(SafariやChrome)の障害や仕様変更の影響をもろに受けてしまうというデメリットがあるんだ。

ダイアグラム4_300ppi_jpg100

「WEBシステム・システムのチャート」

補足1:
「クライアントサーバ・システム」という言葉は、状況に応じて2つの意味合いで使われるんだ。混乱しないように気をつけてね!

1つ目は、クライアントとサーバが協力して働くシステムの中で、WEBを使わないシステムという意味合いだよ。この場合にはクライアントサーバ・システムとWEBシステムが、WEBを使うか使わないかという点で、対照的に語られるよ。(今回のnoteはこちらの意味合いだよ!)
2つ目が、クライアントとサーバが協力して働くシステム全般という意味合いだよ。これにはWEBシステムも含まれているよ。

[ 発展的な内容 ]

これらのシステムは、歴史的には上で説明したような順番で発展してきたのだけれど、スタンドアローン・システムが劣っているとか、WEBシステムが優れているということではないんだ。実際どのシステムも、現在でも広く使われているんだ!

というのも、それぞれのシステムにはメリット・デメリットがあったよね。だから「セキュリティ上のリスクをできる限り低くしたいからスタンドアローン・システムにする」「PCからもスマホからも簡単に使えるようなサービスにしたいからWEBシステムにする」というように、つくりたいものに応じて、メリット・デメリット見極めながらサービスの仕組みを考えていくことになるんだね。

補足2:
最近は「クラウド化」が急速に進んでいるよ。クラウド化とは色々なものをネットワーク上で管理することで、ネットワーク環境であれば、どこからでもアクセスできるようにしようという考え方だ。

例えば、今までスタンドアローン・システムとしてつくられていたものが、徐々にクライアントサーバ・システムやWEBシステムに移行している。さらにサーバは自社では持たずに、必要な時に必要な分だけネットワーク上のサーバを借りるようになってきた。こうした動きがクラウド化の一例だよ!

昔は携帯のメモアプリに書いた情報は、その端末からしか見ることができなかったんだ。でも今はiPhoneのメモにしろGoogle Keepにしろ、書いた情報はPCやタブレットからでも確認することができるよね。これは書いた情報がネットワーク上に置かれているからなんだね。

--------------------

最後まで記事を読んでくれてありがとう!
Twitter( @takosuke_diary )のフォローもよろしくね🐙

※このnoteは「分かりやすく紹介すること」を目的としています。そのため専門的な視点からは厳密さに欠ける場合がございます。厳密・正確な情報をお求めの方はごめんなさい🙇‍♂️

よろしければサポートお願いします!