クライアントサーバシステムを図解で解説
クラサバ構成の考え方
システム開発担当になると中には、クラサバの開発を担当することになることも多いと思います。
クラサバのシステムについて理解していますか?
理解しないまま、作業を進めると新たな問題を生むだけなので良くありません。
クラサバのシステムについて、素人でも分かるように説明します。
クライアントサーバシステムとは?
クライアントサーバシステムとは、クライアントとサーバがやりとりをするシステムのことです。
クライアントサーバシステムを略して、クラサバと呼ぶことが多いです。
Webシステムもクラサバですが、一般的には、クライアントにアプリ(AP)をインストールしたものをクラサバと呼びます。
Webシステムについては下記で説明しています。
ここでは、一般的なクラサバについて説明していきます。
クラサバの処理の概要を下図に示します。
クライアントにインストールしたAPからサーバに処理を要求し、サーバがそれを処理します。
そして、処理結果をサーバがクライアントのAPに返却し、APの画面を更新します。
クラサバの仕組みについて
仕組みの前に、クラサバの特徴を説明します。
・各クライアントにAPをインストール
・クライアントのAPとサーバ側の処理に分けて実装する
・画面の作成を自由にできる
・不可分散が容易
クラサバの最も特徴的な部分は、各クライアントにAPをインストールして構築するところです。
クライアントAPの処理とサーバ側の処理をそれぞれ作成することになります。
その時、画面はフォーム内に自由にコントロールを配置でき、自由なデザインで製造できます。
クライアント側の処理とサーバ側の処理が分けられるため、実装によっては負荷を分散することができます。
クライアントAPでは、主に画面の編集やサーバからデータを取得して集計を行います。
集計処理など負荷がかかる部分をクライアントに構築すればサーバへの負荷を減らすことができます。
サーバ側の処理では、主にDBからのデータ登録・更新・削除を行います。
場合によっては、SQLやストアドプロシージャで集計処理やデータの加工(カンマ編集など)を行います。
それにより、クライアントでの負荷を減らすことができます。
クラサバ構成で、サーバに重い処理をさせるとサーバが遅くなってしまう可能性があるため、
クライアント側で重い処理をさせることが一般的です。
ですがクライアントの処理能力が低いとユーザの体感速度が遅くなってしまうため検討が必要です。
クラサバの処理の流れは下記になります。
事前準備として、各クライアントにAPをインストールすることが必須になります。
①で、クライアントAPのクリックイベント等でサーバに処理を要求します。
ここでのクライアントAPは、業務用パソコンのOSはWindowsであることが多いため、開発言語はWindowsであればVB.netやC#で開発をされることが多いです。VB.NETやC#で書かれた処理から、SQL文を作成してサーバにデータ取得の依頼を行います。
②で、サーバはクライアントAPからの処理を実行します。この時のサーバはAPサーバにDBを乗せた状態が多いです。
APサーバは、クライアントから渡されたデータを処理したり発行されたSQLを実行してDBのデータに登録・更新・削除、またはストアドプロシージャを実行することで集計などを行います。
そして処理終了後に、サーバからクライアントにデータを返します。
③で、サーバから受け取った情報をもとに、クライアントAPが画面の編集を行います。
WebアプリではWebサーバで画面を作成することが多いですが、クラサバ ではクライアントAPが画面を作成します。
そのため、画面の表示速度はクライアントのスペックによります。
また画面編集に関してはサーバは関与していないため、負荷が掛からなくなります。
まとめ
今回はクラサバの仕組みについて説明しました。
クライアントサーバ構成での、処理の製造を行う際に仕組みを理解して作業することが大切です。
どちらの処理を作成していて、処理の負荷がかかるのがクライアントなのかサーバなのか、その時どのような影響があるのかをしっかり考えておきましょう。
また、クライアントに処理をさせる場合には、スペックが充分足りているのかまで考慮しないといけないことも頭に入れておきましょう。
今回説明した下記の内容をしっかり理解しておきましょう。
・クラサバはクライアントのAPから操作を行う
・クライアント側、サーバ側で処理の分担をすることができる
・クライアントごとにAPのインストールが必要
・APを入れ替えるときに全クライアントで作業が必要なため、人数が少ないシステム向き
クライアントサーバシステムでよく起きる事象として、プログラムの修正を行なった際に新しいプログラムに入れ替わっておらず、古いAPのまま実行してい待ったということがあります。
この場合、修正内容によってはDB汚染をしている可能性も出てくるため、修正や新しいクライアントAPを追加した際には確実に追加・入れ替えを行うシステムを作成する必要があります。