インターネットアプリケーション時代の企業ネットワーク再設計
アプリケーション形態の変革と物理ネットワークの再設計

アプリケーション形態の多様化

 今日の企業ネットワークで利用されるアプリケーションには,さまざまなものがある。しかし,それらを分類してみると,「クライアント/サーバー型」「三階層型」「Webベース型」「ターミナルサービス型」に大別できるといってよいだろう。物理ネットワーク設計では,利用するアプリケーションの形態によって考慮しなければならない点が異なってくる。ここではまず,各アプリケーション形態の概要と,ネットワークがアプリケーションに与える影響について解説しておこう。

クライアント/サーバー型アプリケーション

 企業ネットワークの創生期から存在するアプリケーション形態である。アプリケーションが実装するほとんどの処理はクライアントPC(エンドユーザーが使用するPC)上で実行され,サーバーにはデータベースシステムのみが稼動する。

 クライアント/サーバー型アプリケーションで発生する通信は,クライアントPCが発信するSQLベースのリクエストと,それに応じてサーバーから返される結果セット(たとえばデータベースの検索結果)で構成される。

Fig.1-1 クライアント/サーバー型アプリケーションの通信処理
fig

 アプリケーションとネットワークとの関係を考えるときには,トランザクションの概念を正しく理解する必要がある。まず,トランザクションとは何かについて説明しておこう。

 一般的なアプリケーションの更新処理では,1回の更新で複数のデータを変更する場合が多い。銀行業務の振替処理を例に考えてみよう。振替処理とは,口座Aから口座Bに金額を移す処理である。この場合,口座Aには出金処理(残高の減算)を,口座Bには入金処理(残高の加算)を施す必要がある。オペレータが振替処理の実行ボタンをクリックしたときには,口座Aと口座Bの2つのデータに変更を加えなければならない。たとえば,口座Aのデータベース更新が終了した時点で何らかの障害が発生し,口座Bの処理が実行されなかったとすると,データベースの内容には論理的な矛盾が生じることになる。このような事態を避けるため,データベースシステムには,複数の更新処理を1つの論理的な更新処理として捉え,万一,更新処理の途中で問題が生じたときには,それまでの更新内容を無効とする機能が搭載されている。前述の例では,口座Aに対する更新が終了したあと,口座Bの更新に失敗した時点で,データベースシステムが口座Aに対する更新内容を自動的に無効にするのである。このように,データベースシステムが意識する論理的な更新単位を,「トランザクション」と呼ぶ。

 アプリケーションにとって,トランザクションは最も重要な実行単位である。トランザクションを円滑に実行することは,アプリケーションの安定稼動に直結する。ネットワークのトラフィックが増大したことなどによりトランザクションの実行が妨げられた場合,データベースシステムは大きな負荷を受けることになる。本稿の執筆時点におけるコンピュータアーキテクチャでは,「どんな負荷を受けても安定稼動するシステム」を構築することはできない。安定稼動は,サーバー負荷を軽減することで実現されるのである。特に,ネットワークを起因とした障害は,その原因を把握しづらいため,発生させるべきではない。

 クライアント/サーバー型アプリケーションでは,クライアントPCが個々の更新処理ごとにSQLベースのリクエストを発行する。銀行業務の振替処理で例えると,口座Aに対する出金処理,口座Bに対する入金処理は,それぞれのクライアントPCから個別にリクエストされ,データベースシステムによって1つのトランザクションと認識されるのである。

Fig.1-2 クライアント/サーバー型アプリケーションのトランザクション
fig

 このことからもわかるように,クライアント/サーバー型アプリケーションでは,トランザクションを構成する通信が,クライアントPCとサーバーPCとのあいだで発生する。つまりトランザクションは,クライアントPCが属するネットワークからサーバーPCが属するネットワークに至るまでの経路を含めた全ネットワークの影響を受けるのである。

Prev 2/18 Next