コンピュータを働かせるカタチの話

コンピュータが組み合わさって動く処理形態には種類
集中処理はセキュリティ確保や運用管理が簡単しかしシステムの拡張が大変、ホストコンピュータが故障すると全体に影響する。
分散管理はシステムの拡張は容易、故障しても全体には影響しない。しかしセキュリティの確保や運用管理に難がありました。
それら２つのいいとこ取りをしたのが```クライアントサーバシステム```という。
基本的には分散処理を行う。集中して管理や処理を行う部分をサーバとして残している。

# シンクライアントとピアツーピア
## シンクライアント
クライアント側の端末は、```入力や表示部分を担当するだけ```で、情報の処理や保管といった機能は```全てサーバに任せます```。

## ピアツーピア
完全な分散処理型のシステム
```コンピュータ同士が対等な関係```でやり取りするものかつ```サーバーなどの一元的に管理する存在を必要としない```。

# ３層クライアントサーバシステム
クライアントサーバシステムの機能をプレゼンテーション層、ファンクション層、データ層の３つに分けている。
通常のクライアントサーバシステムのことを2層クライアントサーバシステムと呼ぶ。
## ２層クライアントサーバシステムの問題点
* アプリケーションがクライアント側にある
* そのためにビジネスロジックに変更があると```全てのクライアントに修正が必要```となる。
* 処理に必要なデータがいちいちネットワーク上を流れるので```帯域を圧迫```する。
* ```データベースをロックする時間が長くなる。```

### ビジネスロジックとは？
* ```そのシステムにおける、システム固有の処理```を行う部分……的なニュアンスだけど具体的に何を指すかは結構あいまいで、みんな何となくのフィーリングで使っている用語。
出典 https://wa3.i-3-i.info/word13666.html

* 業務システムの中で、具体的な業務で扱う様々な実体（商品、顧客、在庫など）を表現し、また、それらの```関係や処理の方法、業務の流れなどをデータモデルやプログラムコードなどとして実装した部分```。
出典 https://e-words.jp/w/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF.html#:~:text=%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E3%83%AD%E3%82%B8%E3%83%83%E3%82%AF%20%E3%80%90business%20logic%E3%80%91,%E3%81%AA%E3%81%A9%E3%81%A8%E3%81%97%E3%81%A6%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9F%E9%83%A8%E5%88%86%E3%80%82

#### 気づき
業務内容のコードのことなのか。

## ３層サーバシステム
* GUI操作を行うだけなので```シンクライアントを使用```できる
* 処理結果が返ってくるだけなのでネットワーク上を流れる```データ量が軽減```される。
* ビジネスロジックに変更があっても```サーバ側だけ修正```すれば良い
* データベースを```ロックする時間が短く```済む

# オンライントランザクション処理とバッチ処理
### オンライントランザクション処理
要求に対して即座に処理を行い、結果が反映されるもの

### バッチ処理
一定の期間ごとに処理を取りまとめて実行する。
リアルタイムで更新する必要がない場合にする。

### 対話型処理
利用者がそれに答えたり情報を与えたりしながら処理が進む。
* 利用者とシステムがディスプレイなどの出力装置，キーボードやマウスなどの```入力装置を介して互いに指示や応答をしながら作業を行う処理方式```．会話型処理ともいう．```利用者の判断，意思決定が逐次システムに反映```され，```人とシステムの協調```により作業が進められる．
    出典 https://www.jsme.or.jp/jsme-medwiki/19:1007712#:~:text=%E5%88%A9%E7%94%A8%E8%80%85%E3%81%A8%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%8C,%E3%81%AB%E3%82%88%E3%82%8A%E4%BD%9C%E6%A5%AD%E3%81%8C%E9%80%B2%E3%82%81%E3%82%89%E3%82%8C%E3%82%8B%EF%BC%8E 

# 問題を解いた時の気づき
「Thin（薄い・厚みが無い）Client」という呼称が示す通り、```クライアント端末から大容量の記憶媒体（HDDやSSD）を省き、アプリケーションのインストールも行わない```という形態が一般的です。
...
## なぜ今、シンクライアントなのか？普及が進む背景
ここ数年、シンクライアントが業務システムとして再評価されていることをご存じの方も多いでしょう。
ここでは、その理由を```「セキュリティ」「コスト」「機能」```という3つの視点から整理していきます。
## セキュリティ面
高度情報化社会で「情報」の資産価値が格段にあがり、資産を守るための対策が必要になった。
セキュリティリスクの多様化（人的な要因による情報漏洩、エンドポイントへのサイバー攻撃など）で包括的なセキュリティリスク対策が必要になった。災害時のBCP（事業継続性）対策として、業務用端末に重要なデータを保持させておくリスクが増大した。働き方改革や人手の確保、ライフスタイルの多様化により、遠隔地から安全かつ確実に業務を遂行できる環境が必要になった。
## コスト面
単純に```端末1台あたりのコスト削減```が可能である
```業務アプリが一元化```でき大量のライセンスを購入するよりも安い
## 機能面
ハードウェアと仮想化技術の進化により、```ひとつの物理サーバー上でいくつもの仮想マシンを構築可能```になった
```リモート接続でも、通常のPC操作と遜色のない使用感```が得られるようになった

## シンクライアントのメリットとデメリット
さまざまなリスク・課題を解決できるシンクライアントも「万能なシステム」ではありません。そこで、シンクライアントのメリットとデメリットを、「ファットクライアントとの比較」で整理していきましょう。

## メリット
### セキュリティ
データを```保存出来ない仕組み```をもち、```個人によるアプリケーションインストールもできない```ため一律のセキュリティを確保できます。
シンクラアイント端末ではデータを一切持たないため、```端末紛失時の情報漏洩対策やデータの持ち出しを抑制```できます。
### 耐久性
```最も壊れやすい稼働パーツが少ない```ため、```故障する確率も低く耐久性```に優れます。
### 管理性
```サーバ側でOS、アプリケーションの一元管理```ができ、現地での設定作業が減少します。
シンクライアント端末が故障しても```端末を交換することで業務開始が可能```です。

## デメリット
### 初期導入コスト
シンクライアント端末はデータの保存、アプリケーションのインストールも個人で出来ないため```デスクトップ仮想化ソリューションとの組み合わせで利用```する必要があります。
そのためシステム全体での初期導入コストがPC環境よりも高くなるケースが多いです。
### ネットワーク環境必須
サーバ側の画面を操作する仕組みのため、基本的にオフライン環境では利用できません。

## シンクライアント環境の種類
### 画面転送型
サーバ側で実行されたデスクトップ画面をネットワーク経由でシンクライアント端末で表示する方式です。画面転送型にも、仮想PC型/サーバベース型/ブレードPC型と多様な方式があり、ユーザニーズに合わせて選択できます。

### ネットブート型
ネットワーク上のOSイメージをダウンロードし、クライアント端末で起動して利用する方式です。PCと変わらない操作感で利用できますが、転送データが大きいため、広いネットワーク帯域と高い端末スペックが求められます。

# 関連記事

https://qiita.com/masatom86650860/items/539ecd7181ef1520f0d4