• 検索結果がありません。

第 3 章 マルチアーキテクチャへ対応可能なソフトウェア構造の提案

3.1.2 機器間の機能分担

36 できる.

以下,利用者サイドに近い機器をX(component X),データベースが接続されている機

器をY (component Y)として実装ケースを考える.

37

図3-4 Xに機能が偏重する分散アプリケーション(基本構成B) Figure 3-4 Distributed application that function overemphasizes to X.

(Basic configuration B)

90年代前半では,パフォーマンスの観点から一台のYでまかなえるXの台数は数十台 が限界であった.しかし,サーバの性能向上とLANの性能も同期して向上し,90年代後 半には100台を超えるXを接続可能となった[24].

また複数サーバをLANで高速につないでデータベースへのアクセス負荷が分散可能な ほどに性能が向上した.データベース処理をフロントとバックエンドで分担して行うクラ イアント・サーバ型のデータベース,またバックエンドのサーバを複数台にしてアクセス をパラレル化することにより,大量データアクセスの負荷分散や,相互アクティブ型の

HA (High Availability)構成による信頼性向上などが可能になってきた.このような構成も

このころより一般に利用されるようになった.

このように(a-1)のパターンは現在,

・ 2層型クライアント・サーバパターン(基本構成B)

・ 負荷分散を意識したデータベースサーバのクライアント・サーバ構成 として利用されている.

Display Input

device

Visual programming language execution environment

Component X

Communication middleware

RDBMS Component Y

Communication middleware

Database

Application program RDBMS client API

SQL

! Result

!

38

図3-5 クライアント・サーバ型データベースを利用したバッチ処理(基本構成C) Figure 3-5 Batch processing using client server type data base.

(Basic configuration C)

2層型クライアント・サーバはバッチ処理でも一般に利用されている(基本構成C).

(a-2)Yに機能が偏重する分散アプリケーション

Yに機能が偏重する分散アプリケーションはX側に特徴がある.典型的な例は過去であ れば端末エミュレータやXクライアント,近年であればWebブラウザが該当する.また 画面のドットイメージを送るという意味では前者2つとは方式が異なるもののシンクライ アントやVDI(Virtual Display Infrastructure)もここに類型できる.

図3-6 Yに機能が偏重する分散アプリケーション

Figure 3-6 Distributed application that function overemphasizes to Y.

端末エミュレータも Web ブラウザもプログラマブルな切り口を持ち,画面との入出力

Component X

Communication middleware

RDBMS Component Y

Communication middleware

Database SQL

! Result RDBMS client API !

JOB control language or Batch control middleware

Application program

Display Input

device

Input & display control middleware

Component X

Communication middleware

Component Y

Communication middleware

Database

Application program Events & display control API Event

! Display data

!

RDBMS

39

処理の延長上にカスタムな処理を仕込めるが,Yとの通信手段はイベント通知と画面デー タの受信に限られる.

Web ブラウザ,シンクライアント,VDI などは今現在広く利用されている技術だが,

端末エミュエータも使われ続けている.端末エミュエータを利用したメインフレームを中 核としたシステム構成(基本構成D)を示す.メインフレームによる集中処理の場合には,

(a-3)にみられるOLTPモニタがコンポーネントY(メインフレーム)に実装され,

アプリケーションの制御(起動)を行う.

図3-7 過去によく見られたメインフレームのオンライン処理構成(基本構成D) Figure 3-7 On-line processing architecture of mainframe seen well in the past.

(Basic configuration D)

(a-2)に分類されたこれらの技術は,利用者サイドの実装を軽くする処理形態として,

セキュリティの確保やメンテナンス性の向上などの利点から,今後も姿,形は変化してい くだろうが,広く利用され続けると考える.

(a-3)XとYで役割分担する分散アプリケーション

XとYで役割分担してアプリケーションを実装するケースとしては,XにVisualな開発 環境を持つ言語を利用し,YにOTLPモニタ等のトランザクションヘビーな処理に耐えう る環境を持つ場合が典型例である.

XとYで役割分担する上でもっとも重要なのは,XからYへ渡すリクエストの粒度をど

Display Input

device

Input & display control middleware

Communication middleware

RDBMS

Communication middleware

Database

Application program Events & display control API Event

! Display data

! OLTP monitor

40 う決めるかということである.

少なくとも2000 年代の前半までは機器間をつなぐ公衆ネットワークのパフォーマンス が低く,大規模システムにおいて,(a-1)のようにデータベースへのアクセスの度にリ クエストを渡す方式や,(a-2)のように,画面を操作する度にXとY間で通信が発生す る方式ではリッチなデータを送り合うと処理が集中するサーバも心配だが,それ以前に ネットワークがパンクした.

図3-8 XとYで機能分担する分散アプリケーション

Figure 3-8 Distributed application to which role is allotted by X and Y.

しかし,90年代後半になるとルーティング技術,続いてスイッチング技術が発展し,ト ラフィックを分散させて全体のスループットを向上させることが可能となり,2000年代に 入ると公衆網でも高速なLAN間接続が次第に安価に提供されるようになり,加えてLAN 自身の性能も向上してきた.

(a-2)の典型的な構成例となるシンクライアントでは,今日企業内で数万台を接続す るケースはざらにあり,負荷の集中するY側でもデータベースを利用するアプリケーショ ンでなければ負荷を分散させる手立ては多い.

今日(a-1)のモデルで大規模なシステムを作る例はないが,Y側に巨大なサーバを導 入することがコスト的に可能であれば,数千台のXを接続可能な大規模システムを,性能 要件を満たすよう構築することは技術的に十分可能である.

(a-3)のモデルを利用する価値は,現在主に大規模システム向けであり,コスト的に

Display Input

device

Visual programming language execution environment

Component X

Communication middleware

RDBMS Component Y

Communication middleware

Database

Application program X Transaction control client

Transaction

! Result

!

Application program Y OLTP monitor

41

許容可能なサイズの機器Yで大量のトランザクションを処理する必要性から生じている.

当然ながらXとYとの通信回数,通信データ量共に少ない方がコストパフォーマンスの 観点からもレスポンスの観点からも優れている.

(a-Mix)3つのモデルの組合せ

これまで紹介した3つのモデルは,それぞれ単独でもシステムとして成立するが,組合 せも可能である.

(a-1)は先にも述べたように,いまや典型的なデータベースのスケールアウト手段で もあるので如何なるモデルとも組合せ可能である.たとえば,

(a-1)+(a-2)は,フロントをWebブラウザと仮定すると旧来のCGI,Perlや PHP,JSPを使った2層Webモデルが典型例である(基本構成E).

図3-9 小規模なWebシステム構成(基本構成E) Figure 3-9 Small-scale Web system architecture.

(Basic configuration E)

(a-1)+(a-3)は,典型的な3層クライアント・サーバモデルである(基本構成F).

RDBMS Component Z

Communication middleware

Database SQL

! Result

! Display

Input device

Input & display control middleware

Component X

Communication middleware

Component Y

Communication middleware Application program Event

! Display data

!

Events

& display control API

RDBMS client API

Web browser Web

server

42

図3-10 3層クライアント・サーバシステム構成(基本構成F) Figure 3-10 Three layer client server system architecture.

(Basic configuration F)

(a-2)+(a-3)は,端末エミュレータとOLTPを使った3層クライアント・サーバ のオンラインシステムが該当する(基本構成G)が,近年は少数派と言える.

(a-1)+(a-2)+(a-3)とすると,フロントを Web ブラウザとみれば,典型的 なWeb3層モデルとなる(基本構成H).

図3-11 3層Webシステム構成(基本構成H) Figure 3-11 Three layer Web system architecture.

(Basic configuration H)