第6回 最適な設計はホスト時代の流儀に同じ?


システム連携を集中管理する接続マネージャの考え方

  さて、一瞬にして大きな負荷のかかる処理をいかにしてうまくこなすか。このコントロール方法は、コンピュータアーキテクチャ的にいうと、コンピュータやサーバの台数を増やして負荷を分散させて軽減させる(負荷分散)か、あるいはアクセス数を制限する(流量制御)などの方法が基本になるでしょう。

 実際の方法は千差万別で一概にはいえません。しかしサーバ・サイドJavaでは、これらの方法を工夫して、一極集中するシステム連携の負荷を軽減する仕組みが考えられています。これが「接続マネージャ」という考え方です。接続マネージャというのはミドルソフトに対するアクセスを効率的にコントロールする仕組みのことです。

図5 接続マネージャ経由で基幹システムへアクセス(業務プログラムは必ず接続マネージャ経由で基幹システムへアクセスする)

  接続マネージャを使ってシステム連携を行う場合は、プログラムから直接、相手の基幹システムやミドルソフトに対してアクセスを行うのではありません。必ず接続マネージャを経由させて行います。この意味では、接続マネージャは、相手システムへのアクセスを中継するソフトウェアということになります。接続マネージャは、一般的に以下のような役目を持っています。

(1)事前にシステム接続を終了させ、接続負荷を軽減する役目

 システム連携で負荷がかかるのは、一番初めにプログラムが相手のシステムにアクセスするときに行う接続処理だといわれています。そこで接続マネージャは、連携したい基幹システムやミドルソフトに対して、事前に他システムへとの接続を完了しておきます。

 この接続作業は、例えばコンピュータ・システムを立ち上げた最初の初期処理などコンピュータ負荷の少ない時間を見計らって行われます。そしてプログラムが実際にミドルソフトにアクセスしたときに、接続マネージャが事前に接続済みの状態をプログラムに渡すことになります。負荷のかかる接続作業を接続マネージャが成り代わって行ってくれるわけですから、プログラムが複数処理されてもコンピュータ負荷が一挙に上がることが避けられます。

(2)保管した接続をプログラムに引渡し、性能アップさせる役目

 接続マネージャによる事前接続が、ただ1つだけしかないと、プログラムが同時に複数動くサーバ・サイドJavaの世界では、有効ではありません。そのため接続マネージャは、事前に複数の接続を他システムに対して行います。この接続は実際に使われるか使われないかは分かりません。

 しかし接続マネージャはプログラムから複数のアクセス要求がくることを見越して、接続状態を貯金しておき、プログラムが同時にアクセスを要求してくれば、順番に接続をプログラムに割り当てていきます。こうすることで、さらに接続の負荷を軽減させ全体のパフォーマンスをアップさせます。このような接続の保管機能を、接続プーリングなどともいいます。

(3)接続数をコントロールし極端な資源の利用を制限する役目

 他システムにも無制限に接続できるかといえばそうではありません。相手のシステムには許容できる接続数もありますし、接続できる数によってソフトウェアの料金が決められている場合もあります。そのため接続マネージャでは、他システムへの接続を常に、ある一定の数以下に制限するように監視しています。プログラムが他システムへアクセスするためには、必ず接続マネージャを経由することになりますから、この結果、サーバ・サイドJavaの世界では、無制限のプログラムからの接続要求から他システムを守ることができるようになります。例えば接続マネージャに、他システムへの接続を50まで許すように決めておきます。プログラムからのアクセス要求が増えてくると接続マネージャはプログラムの要求に応じて、どんどん接続をプログラムに渡します。しかしプログラムに渡した接続数が50になったところで、接続マネージャは、それ以降のプログラムの接続要求を待ち状態にします。また同時に、接続マネージャは、プログラムで必要としなくなったアクセスを把握しています。もしプログラムで不要になった接続が出てきた場合(接続マネージャに接続が戻されたとき、という表現をします)、待ち状態になっているプログラムに対して、この空いた接続を渡してアクセスを成功させる役目をするのです。

3/6

 INDEX

第6回 最適な設計はホスト時代の流儀に同じ?
  今回の目的は? 
  eビジネス・アプリケーションは基幹連携の方法に違いがある
プログラムが他の機能の恩恵を受ける、それは相手の資源を使うこと
システム連携処理には、ミドルソフトの存在が欠かせない
クライアント・サーバの基幹連携をサーブレットに置き換えてみると
システム連携を集中管理する接続マネージャの考え方
  接続マネージャは、誰が用意するのか
Webアプリケーションサーバを使った接続マネージャの作成
  eビジネス・アプリケーションは、お作法を守って記述されないといけない
悪いサーブレットを改善しましょう
  もっとパフォーマンスUPを狙った改造をする
まとめ


連載記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間