第 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)