ひと昔前までは,一台の高性能なコンピュータに処理を集中させる集中処理が主流だった.現在は複数のコンピュータがネットワークで接続され,データや処理を分散させる分散処理が主流となりつつある.
クライアントサーバシステム
サービスを利用するクライアントとデータや処理を提供するサーバが,ネットワークを介して通信しながら処理を分散させる技術.一つの機能を複数のサーバに持たせることと一つのサーバに複数の機能を持たせることも可能.
3層クライアントサーバシステム
データベースまでのアクセスを論理的にプレゼンテーション層,アプリケーション層,データベース層の3層構造に分離したアーキテクチャ.
プレゼンテーション層 | ユーザーに情報を表示したり,入力を受け付ける機能を提供する層 |
アプリケーション層 | プレゼンテーション層から受け付けたデータの処理をする層.データベース層からデータを抽出し,プレゼンテーション層に渡す.ビジネスロジックを適用するのはこの層で行う. |
データベース層 | データベースからデータの検索,追加,消去を行う層.データの加工等は行わない. |
3層クライアントサーバシステムを利用することで,システム性能や保守効率を向上させることができる.データの加工処理に改修が必要な場合,アプリケーション層のみ改修を行えば良い.開発効率の観点から見ても,平行作業が可能なため開発速度の向上にもつながる.
ストアドプロシージャ
データベースへ接続する場合にサーバとデータベース間の通信負荷が問題となる場合がある.その問題を解消するために,利用頻度の高い命令群をサーバ上に配置することで通信負荷を軽減させる技術.
サーバの仮想化技術
1台の物理サーバ上に複数の仮想的なサーバを動作させる技術.仮想化ソフトウェアを用いて仮想サーバを動作させる環境をつくりだす.それぞれの独立したOS,独立したアプリケーションを一台のサーバーで動作できるようになる.サーバの設置スペースやハードウェアのコストを抑えることができる.
サーバのCPUやメモリなどを増強させることをスケールアップと言い,サーバの台数を物理的に増やすことをスケールアウトと呼ぶ.
仮想化の形式
仮想化の形式は大きく分けて下記に分類される.
- ホスト型
- ハイパバイザ型
- コンテナ型
ホスト型
ホストOS上で仮想化ソフトを動作させ,そのソフト上で別のゲストOSを動作させる.
- VMware Workstation Player
- VMware Fusion
- Oracle VM Virtualbox
ハイパバイザ型
サーバ上にハイパバイザという仮想化ソフトを動作させる.そのソフト上で別のゲストOSを動作させる.クラウドサービスで採用され,自由度は高いが別のマシンには移行性は低い.
- Vmware ESXi
- Linux KVM
- Microsoft Hyper-V
- Citrix Xen Server
- Red Hat Enterprise Virtualization(RHEV)
コンテナ型
OS上にコンテナエンジンの管理ソフトを動作させ,その上でコンテナと呼ばれる実行環境を動作させる.OSが共通になるため自由度は低いが移行性は高い.
- Docker
- Kubernetes
上記三つの方の違いの詳しい解説は下記を参照.
仮想化技術について解説ホスト・ハイパーバイザー・コンテナの違いとは?
https://www.itmanage.co.jp/column/virtualization-server-integration/
シンクライアントシステム
サーバ上でアプリケーションの処理やデータの管理を集中させることで,クライアントの端末(PC,スマホ等)では必要最低限の機能しかもたないシステムを構築する技術をシンクライアントシステムと呼ぶ.
クライアント側では入出力のみの機能を持たせることで,クライアント側の端末にデータが保存されることがなく,情報漏洩のリスクを減らすことができる.管理面においても,サーバ側でアプリケーションの一元管理ができるため運用コストを抑えることができる.
VDI(Virtual Desktop Infrastructure)
クライアント端末のデスクトップ環境を仮想化されたサーバに集約し,サーバ上で一元管理,稼働を行う技術.クライアントは端末からネットワーク経由でサーバ上の仮想マシンにアクセスし,デスクトップの画面を呼び出す.本来クライアント側で行う処理をサーバが担う.
コメント