明 細 書 セ ッ シ ョ ン管理 Z分散管理機能を有するウ ェブアプリ ケー シ ョ ン シ ステムおよびその運用機構 技術の分野
本発明は、 セッ シ ョ ン管理ノ分散管理機能を有するゥ ブァプリ ケ一シ ヨ ンシステムに関し、 さ らには、 そのウ ェブアプリ ケ一シ ョ ン システムの稼動状況に対する閲覧、 処理サーバの稼動環境設定、 アプリ ケーシ ョ ンの稼動スケジュール設定、 ならびにロ グおよびパ フ ォ ーマンスの解析等の運用を行うための運用機構を含むゥ ヱプア プリ ケ一シ ヨ ン システムおよびその運用機構に関する。 背景技術
ゥヱブアプリ ケ一シ ョ ンシステムは、 クライアン 卜が処理サーバ へアクセスし、 処理をリ クエス トすると、 処理サーバは、 そのリ ク エス トされた処理を、 対応するアプリ ケ一シ ョ ンを使用 して処理す る。 さ らにその処理結果のデータを リ クエス 卜元の上記ク ライア ン トに返送する。
各企業はこのようなゥ ヱブアプリ ケーシ ョ ンシステムを、 各企業 の状況に応じて、 独自に構築している。 そ してゥ ブアプリ ケ一シ ヨ ン システムが、 閉じ られた環境下で構築されている場合 (例えば 、 一つの企業 (クライア ン ト) 内のみで構築されている場合) には 、 該システムに対する運営やメ ンテナ ンス等の管理は、 当該ク ライ ア ン ト対応にカスタマイズしておく ことで、 行う こ とが可能である しかしながら、 ゥ ヱ ブアプ リ ケ一 シ ョ ン システムで使用されるァ
プリ ケーシ ヨ ンは、 多様化し、 またそのライフサイ クルの短縮によ り、 一つの企業で業務上十分なアプリ ケーシ ョ ン環境を常時整備す るこ とは、 コス トおよびリ スクの面で非常に困難であり、 さ らに、 ウ ェブアプリ ケーシ ョ ンシステムで使用される各種アプリ ケーシ ョ ンは益々複雑化しかつ高度化しているこ とから、 そもそ も、 運営や メ ンテナ ンスの面で、 一つの企業 (クライアン ト) が独自のウ ェブ アプリ ケー シ ョ ンシステムを構築するこ と自体困難であるのが現状 である。
こ う した状況の中、 イ ンタ一ネ ッ ト等のネ ッ ト ワークが急速に発 展し拡大も相ま って、 複数の企業 (ク ライア ン ト) がそのネ ッ ト ヮ ー ク を通じて、 一つのゥ ヱブアプリ ケーシ ョ ンシステムを共有する という こ と (統合形のゥヱブアプリ ケー シ ョ ン システム) が行われ つつある。
ところで、 ( i ) 上述した、 統合形のゥ ヱブアプリ ケー シ ョ ンシ ステムを利用 して多数の企業等のクライアン トが対象とするアプリ ケーシ ヨ ンに、 連続してアクセスするという状況において、 ある ク ライア ン トによる処理についての前回のリ クエス 卜に続いて今回の リ クエス トを行う と、 処理サーバは、 前回のリ クエス ト と異なるセ ッ シ ヨ ンで処理をするのが普通である。 すなわち、 一旦、 セッ シ ョ ンは切れ、 新たなセッ シ ョ ンにつながる。
さ らに詳し く述べると、
ウ ェブアプリ ケ一シ ョ ンシステムでは、 クライアン 卜がサーバへ アクセスをし、 処理をリ クエス トすると、 サーバは、 依頼された処 理をアプリ ケーシ ョ ンを用いて処理し、 結果のデータをクライアン 卜に送付する力く、 従来のゥ ヱブアプリ ケ一シ ョ ンシステムにおいて は、 C G I ( Common Gateway Interface) を用いる H T T P (Hyper
Text Transfer Pro toco 1 )と呼ばれるプロ 卜 コルを使用する。 この
プロ ト コルでは、 クライアン ト力くリ クエス ト したデータをサーバが 送り返した時点でセ ッ シ ョ ンが切れる。 また、 セ ッ シ ョ ン管理が可 能な方法と しては、 拡張された独自 A P I (Application Programmi ng Interface) を用いる方法 (例えば、 Netscape Commun i cat i on¾ のゥヱブサーバや、 Microsof t 社のウ ェブサーバ) が知られている 上述したように、 多数の企業等のクライアン 卜が対象とするアブ リ ケーシ ヨ ンに、 連続してアクセスするという状況において、 ある クライアン トによる処理についての前回の リ クエス 卜に続いて今回 のリ クエス トを行う と、 一旦、 セッ シ ョ ンは切れ、 新たなセッ シ ョ ンにつながる。
その結果、 複数のゥ ヱブページにまたがる処理のよう に複数の リ クエス 卜に基づく 処理を行う場合、 クライア ン トは前回の リ クエス ト時での処理結果のデー夕を保持しておく 必要がある。 例えばビジ ネスシステムでは、 処理サーバとク ライアン ト ( P C ) との間の会 話により、 セ ッ シ ョ ン管理する情報や次の処理内容を、 全てのク ラ イ ア ン 卜が保持する必要があるため、 処理能力の限界を超えてしま つたり、 また所要時間が大となったりする、 という不都合が生じる また、 ( i i) 上述した統合形のゥ エブアプリ ケーシ ョ ンシステム を利用 して、 多数の企業等のクライアン 卜が多種多様なアプリ ケー シ ョ ンに対してアクセスする状況において、 1 台の処理サーバで一 元処理をすることから、 同時に多数のクライアン 卜からアクセスを 受けたときに備えて、 その処理サーバは大きな能力を有する大型サ ーバでなければならない。 しかしこのような 1 台の大型サーバのみ に処理を集中させることは、 システム全体の安全性ならびに信頼性 の面で、 またシステムの拡張性の面でも不都合がある。
上記の ( i ) および (i i ) に述べた不都合を解消することのでき る統合形のゥ ヱブアプリ ケ一シ ョ ンシステムを、 効率的かつ経済的 に実現し実際に運用されたものは現在では非常に少ない。
上述した技術背景のもとで、 以下に詳述するいく つかの問題 a ) 〜 d ) が存在する。
a ) 従来の C G I を用いる シ ステムでは、 既述のとおり、 同じク ラ イ ア ン 卜が次の リ クエス トを実行すると、 サーバは、 先の リ クェ ス トと異なるセ ッ シ ョ ンで処理をする。 すなわち、 一旦、 セ ッ シ ョ ンが切れ、 新たなセ ッ シ ョ ンにつながる。 結果、 複数のゥ ヱブベー ジにまたがる処理のような複数のリ クエス 卜からなる処理を行う場 合、 ク ライアン トは先の リ クエス ト結果を保持する必要がある。 例 えば、 企業システム ( ビジネス システム) で利用する場合、 サーバ と P C (ク ライアン ト) の間の会話で、 セ ッ シ ョ ンを管理する情報 や次の処理内容について全てク ラ イ ア ン トがその情報を保持するた め、 処理能力に限界があり、 また、 所要時間が大き く なるという問 題がある。
b ) さ らに、 ウ ェブサーバとアプリ ケー シ ョ ンプロセスとの情報 のやり と り においては、 常にすベての情報をやり と りする必要があ り、 効率が非常に悪く 、 ひいては、 応答速度の低下を招く こ とにな る。 また、 拡張された独自の A P I を用いる方法では、 ゥ ヱブザー バと同じプロセス上でアプリ ケーシ ョ ンが起動するので、 反応速度 は速く なる力く、 ゥ エブサーバ専用の A P I を用いなければならない ため、 他のアプリ ケー シ ョ ンを利用できず、 また、 アプリ ケ一シ ョ ンに問題が起ると全体に影響が広がるという問題がある。
c ) 一方、 1 台のサーバで一元処理を行う場合、 複数のク ライア ン トから同時にアクセスがあるときに備えて大きな能力のサーバが 設けられている。 また、 事故などによりサーバが使用できな く なる
と、 システム全体の処理が不可能となり、 安全性に問題がある。 上記 a ) 〜 c ) の問題を解決することのできるウ ェブアプリ ケー シ ョ ンシステムが仮に実現したとすると、 前述した統合形のウ ェブ アプ リ ケー シ ョ ン システム も容易に実現可能になる ものと考えられ る。
かく して、 そのような統合形のウェブアプリ ケー シ ョ ン システム が実用に供された場合、 アプリ ケー シ ョ ンが複雑化しかつ高度化す る状況において、 管轄権限をもった多数のク ライアン 卜のいずれも がウ ェブアプリ ケー シ ョ ン システムに対する運用を自由に行えるよ うにしておく こ とが必要となる。
d ) しかしながら、 その必要性を満たすべく 、 多数のク ライアン 卜が個々 に運用のための仕組みを持つこ とは、 運用のための仕組み がかなり大掛かりなものとなる。 このため、 メ ンテナンス、 コス ト 、 オペレータ等の観点から して相当不経済となり、 上記の統合形の ウ ェブアプリ ケー シ ョ ン システムが有する利点を相殺してしま う、 という問題がある。
こ こに上記の運用とは具体的には、 例えば、 各ク ライア ン トによ る、 統合形のゥ ヱブアプリ ケー シ ョ ン システムの稼動状況に対する 閲覧、 処理サーバの稼動環境設定、 アプリ ケー シ ョ ンの稼動スケジ ユール設定ならびに口 グおよびパフ オーマ ンスの解析のこ とを意味 し、 個々のク ライアン 卜がそれぞれ処理状況に応じた環境設定や各 種状況の閲覧が、 前述の大掛かりな仕組みを個々 のク ライア ン ト毎 に備えることなく 、 簡単に実現できるこ とが要求され、 加えて、 個 々 のク ラ イ ア ン トの秘密を保持しながら簡単な操作でその運用を実 行できるこ とが要求される。 発明の開示
そこで、 本発明者らは、 主と して上記問題 a ) 〜 c ) について鋭 意研究を重ねた結果、 セッ シ ョ ン管理と複数のサーバの分散管理が その問題を解決するために必要との着想を得て、 セッ シ ョ ン管理と 分散管理を行う新たなモ ジュールを開発し、 本発明を完成するに至 つた。
すなわち第 1 に、 本発明は、 ウェブアプリ ケー シ ョ ン システムに おいて、 ク ライア ン トの リ クエス トのセ ッ シ ョ ン管理を可能とする ことを目的とする ものである。
また第 2 に、 本発明は、 ウ ェブアプリ ケー シ ョ ン システムにおい て、 サーバの分散管理を可能とするこ とを目的とする ものである。
さ らに、 本発明者らは上記問題 d ) に着目 し、 統合形のウ ェブァ プリ ケー シ ョ ン システムの稼動状況に対する閲覧、 処理サーバの稼 動環境設定、 アプリ ケー シ ョ ンの稼動スケジ ュール設定、 ならびに ログおよびパフ ォ ーマ ンスの解析等の各種の運用機構について鋭意 研究を重ねた結果、 ウ ェブアプリ ケージ ョ ンシステムに運用モジュ ールおよび通信モジュールを導入することにより、 管轄権限をもつ た各クライアン トからの個々の指示によって簡単に個々の状況に応 じた運用ができる機構を構築し、 本発明を完成するに至った。
すなわち第 3 に、 本発明は、 ゥ ヱブアプリ ケー シ ョ ンに対し管轄 権限をもった各クライアン 卜が独自に各種状況の閲覧や環境設定等 の各種運用を容易に行う ことができるようにするこ とを目的とする ものである。
本発明は上記の第 1 および第 2 の目的を達成するために、 ウ ェブ アプリ ケ一シ ョ ンシステムにおいて、 サーバ上のゥ エブサーバとァ プリ ケ一シ ョ ンプロセスの間に、 セッ シ ョ ン管理のための情報を記 録する共有メ モリおよびセッ ショ ン管理サーバを設ける。
本発明は、 更に、 セ ッ シ ョ ン管理サーバが、 分散管理サーバの機
能を併せ持つこ とができる。
また上記の第 3 の目的を達成するための、 ウ ェブアプリ ケーシ ョ ン システムに対する運用を行うための運用機構は、 処理サーバに連 携しその運用に関する処理をクライア ン トからの指示に応じて行う 運用モ ジ ュールと、 クライア ン 卜からの指示を受けるための通信と 、 この指示による該運用モジュールの起動とを行う通信モ ジ ュール と、 を含んで構成される。 図面の簡単な説明
図 1 は、 ゥ ヱブアプリ ケーシ ョ ンシステムの全体構成を示す図、 図 2 は、 サーバを構成する コ ン ピュータの構成図、
図 3 は、 サーバのシステム構成を示す図、
図 4 は、 図 3 のシステムにおける D S Mサーバのモジ ュール構成 を示す図、
図 5 は、 図 3 のメ イ ン処理サーバにおける処理を示すフ ローチ ヤ 一ト、
図 6 は、 図 3 のサブ処理サーバにおける処理を示すフ ローチ ヤ一 卜ヽ
図 7 は、 本発明に基づく 運用機構を含むゥ ヱブアプリ ケーシ ョ ン システムの基本構成を示す図、
図 8 は、 サーバ側運用プロセスモ ジュールの具体的構成を示す図 図 9 は、 図 7 におけるゥ ヱブアプリ ケー シ ョ ン システム 1 の要部 を構成する基本モジュ ールの一例を示す図、
図 1 0 は、 運用機構を備えたウ ェブアプリ ケー シ ョ ン システムを 部分的に示す図 (その 1 ) 、
図 1 1 は、 運用機構を備えたゥ ヱブアプリ ケー シ ョ ン システムを
部分的に示す図 (その 2 ) 、
図 1 2 は、 図 1 0 および図 1 1 に示すシステムの要部構成をヮ一 クフローに沿って書き換えた図、
図 1 3 は、 ディ スプレイ上における第 1 の表示例 (画面構成) を 示す図 (上半分) 、
図 1 4 は、 ディ スプレイ上における第 1 の表示例 (画面構成) を 示す図 (下半分) 、
図 1 5 は、 ディ スプレイ上における第 2 の表示例 (状況モニタ) を示す図 (上半分) 、
図 1 6 は、 ディ スプレイ上における第 2 の表示例 (状況モニタ) を示す図 (下半分) 、
図 1 7 は、 ディ スプレイ上における第 3 の表示例 (アプリ ケ一シ ョ ン設定) を示す図、
図 1 8 は、 ディ スプレイ上における第 4 の表示例 (アプリ ケ一シ ヨ ン設定) を示す図、
図 1 9 は、 ディ スプレイ上における第 5 の表示例 (アプリ ケーシ ョ ン設定) を示す図、
図 2 0 は、 ディ スプレイ上における第 6 の表示例 (ロ グ情報の解 析) を示す図、
図 2 1 は、 ディ スプレイ上における第 7 の表示例 (パフ オーマン スの解析) を示す図、
図 2 2 は、 ディ スプレイ上における第 8 の表示例 (サーバ環境設 定) を示す図、
図 2 3 は、 ディ スプレイ上におけるユーザ認証のための表示例を 示す図、 および
図 2 4 は、 ディ スプレイ上における警告ウ ィ ン ドウの表示例を示 す図である。
本発明の実施の形態
本発明のセッ シ ョ ン管理システムにおいては、 セッ シ ョ ン管理モ ジュールは、 ク ラ イ ア ン トカヽら最初のア ク セスがあると、 そのユー ザ一に特定の I Dを設定し、 その情報とサーバで稼働するアプリ ケ —シ ョ ン情報とからなるセッ シ ョ ン情報を共有メ モ リ上に記録する 。 最初のアクセスによる処理が終了し、 ク ライア ン トが二回目以降 又は異なるアプリ ケーシ ョ ンにまたがる次の処理のリ クエス トをし た場合、 共有メ モ リ上に記録した情報に基づいて、 同じ I Dを持つ ユーザからのアクセスであると認識すると、 前回と同じアプリ ケ一 シ ョ ンプロセスでの処理を可能にする。 ク ライアン トのリ クエス ト とサーバ間での処理についてのセッ シ ョ ンを管理する当該セ ッ シ ョ ン管理システムは、 クライア ン 卜からのリ クエス トをセ ッ シ ョ ン保 持か非保持の状況により、 セ ッ シ ョ ン管理モ ジ ュールを通じて対応 する。 また、 共有メ モ リ を利用 してク ライアン ト とプロセスのセッ シ ョ ン管理情報を記録することで、 情報のやり とりの効率化が図れ る。 また、 この機能を利用することで、 クライアン トからの様々 な リ クエス トに対応するこ とが可能となる。 また、 ウ ェブサーバとァ プ リ ケー シ ョ ンプロセスとを切り離すこ と によ り 、 システムの保守 性を高めるこ とが可能となる。
本発明の他の態様では、 ゥ ヱブアプリ ケーシ ョ ンシステムにおい て、 サーバ上のゥ ヱブサーバとアプリ ケーショ ンプロセスの間に、 分散管理サーバを設ける。
本発明は、 更に、 ゥ ヱブサーバとアプリ ケーシ ョ ンプロセスの間 に共有メ モ リ を設け、 かつ、 分散管理サーバがセ ッ シ ョ ン管理サー バの機能も併せ持つこ とができる。
本発明の分散管理システムにおいては、 メ イ ンサーバでク ライア ン ト側からのアクセスを一元管理し、 状況に応じてその処理をサブ
サーバに割り振る。 メ イ ンサーバ上での設定情報により、 クライア ン 卜からのアクセスを監視し、 それぞれのサーバへ処理を分散する ための道案内をする。 各サーバ上でのアプリ ケーシ ョ ンプロセスの 種類や各サーバでの設定起動数等が共有メ モ リ の上に記憶され、 設 定条件に応じて、 サーバの分散処理を指示する。 複数のサーバをグ ループ化し、 1 台のメ ィ ンサーバと複数のサブサーバから構成され る当該分散管理システムは、 クライア ン 卜からの リ クエス トを設定 条件に応じて、 分散管理を行うモジュール機能により可能となる。
この分散管理システムによれば、 実行するアプリ ケーシ ョ ンプロ セスを複数のサーバに分散することができ、 複数のク ライアン 卜の 同時アクセスによって起こるサーバへの負荷を軽減するこ とができ る。 また、 サブサーバの 1 つが使用できない場合、 稼動している他 のサーバが処理を代行する。 これにより、 天災 · 人災時にも安全性 を上げるこ とができる。 さ らに、 1 台の高機能サーバ( 例えば、 大 型機サーバ) でウェブアプリ ケーシ ョ ンを行うより、 比較的低機能 な複数のサーバ( 例えば、 小型機サーバ) を分散サーバと して扱う こ とができる本システムは、 安全性およびコス ト面で有利である。 また、 本システムはメ イ ンサーバとサブサーバあるいは複数のサブ サーバについて異種のサーバを適用する こ とができ、 現有システム あるいは現有サーバの有効活用が容易となり、 新システム構築を柔 軟に行う こ とが可能となる。
以下、 図面を参照しながら、 本発明を詳細に説明する。
図 1 は、 本発明のウ ェブアプリ ケ一シ ョ ンシステム 1 の全体構成 を示す。 サーバは、 1 台のメ イ ン処理サーバ 2 と複数のサブ処理サ ーバ 2 ' から構成される。 メ イ ン処理サーバ 2 は、 ク ライアン ト ( ウェブブラウザ) 3 からのアクセスを一元管理し、 メ イ ンサーバ上 での設定情報により処理をサブ処理サーバに割り振る。 これにより
、 複数のクライアン ト 3 からのアクセスが集中した場合でも、 各サ ブ処理サーバ 2 ' に負荷を分散させるこ とができる。
図 2 は、 メ イ ン処理サーバ 2及びサブ処理サーバ 2 ' を構成する コ ン ピュータの構成図である。 コ ン ピ ュータ 4 は、 中央処理装置 ( C P U) 5 と、 アプリ ケー シ ョ ンプロセスの結果を格納する フ アイ ル装置 6 と、 メ イ ンメ モ リ 7 と、 デ一夕べ一ス 8 を具備し、 入出力 装置 9 と接続される。 メ イ ン メ モ リ 7上では、 分散セ ッ シ ョ ン管理 を行うための D S M(Distributed Session Manager) サーバプログ ラムが動作する。
図 3 は、 メ イ ン処理サーバ 2 とサブ処理サーバ 2 ' における シ ス テム構成を示す図である。
メ イ ン処理サーバ 2 は、 ク ライアン ト (ブラ ウザ) 3 と接続され るゥ ヱブサーバ 1 1 と複数のアプリ ケー シ ョ ン (A P P ) 1 5 を具 備する。 ウェブサーバ 1 1 とアプリ ケー シ ョ ン 1 5 との間に、 D S Mサーバ 1 2 とゥヱブサーバ 1 1 から起動する C G I 実行モ ジ ユ ー ノレ (dsmcg exe) 1 3 と共有メモ リ 1 4が設けられる。 D S Mサ一 バ 1 2 は、 セ ッ シ ョ ン管理サーバかつ分散管理サーバであり、 C G
I 実行モ ジ ュ ール 1 3 は ク ラ イ ア ン ト側とアプ リ ケ一 シ ョ ンのイ ン ターフ ヱイスプログラムである。 共有メ モ リ 1 4 は、 分散管理に関 する情報及びセッ シ ョ ン管理に関する情報を記憶している。
サブ処理サーバ 2 ' は、 メ イ ン処理サーバ 2 とほぼ同様の構成と なるが、 本発明では、 サブ処理サーバ 2 ' には C G I 実行モ ジ ュ 一 ノレ 1 3 は、 存在せずにメ イ ン処理サーバ側に設けられる。 図 3 では 、 1 台のサブ処理サーバ 2 ' のみを示している力く、 サブ処理サーバ
2 ' は複数台設けるこ とができる。 この場合、 メ イ ン処理サーバ 2 には、 サブ処理サーバ 2 ' を含めてクライアン ト力ヽらのリ クエス ト があるだけの C G I 実行モ ジ ュ ール 1 3がメ イ ン処理サーバ上の設
定情報を越えない範囲で設けられる。
図 4 は、 図 3 に示したシステムにおける D S Mサーバのモジュ一 ル構成を示す。 D S Mサーバモジ ュール 2 1 は、 D S M C G I プロ セス 2 2 と D S Mサーバプロセス 2 3 とアプリ ケーシ ョ ンプロセス 2 4 とカヽら構成される。 イ ンタ一フ ェ ースと して、 D S Mサ一ノく 1 2 と C G I 実行モジュ ール 1 3 と共有メ モ リ 1 4 に対する D S M C G I の中核ライブラ リ 2 5 と、 アプリ ケー シ ョ ン 1 5 に対する特定 言語の通信用拡張ライブラ リ 2 6が設けられる。 D S M C G I プロ セス 2 2 は、 C G I 実行モジュール 1 3 と D S M C G I 中核ライブ ラ リ 2 5 とから構成され、 セ ッ シ ョ ン管理機能をもつ。 D S Mサー バプロセス 2 3 は、 D S Mサーバ 1 2 と D S M C G I 中核ラ イ ブラ リ 2 5 とから構成され、 分散管理機能をもつ。 アプリ ケー シ ョ ンプ ロセス 2 4 は、 アプリ ケー シ ョ ン (A P P ) 1 5 と D S M C G I 中 核ライブラ リ 2 5 と通信用拡張ライブラ リ 2 6から構成される。 な お、 こ こでは、 通信用拡張ライブラ リ 2 6 は、 各種言語専用と して 、 中核ライブラ リ 2 5 と分離して構成した。 こ こで、 セ ッ シ ョ ン管 理においては、 D S M C G I 中核ライブラ リ 2 5 を通じて、 セ ッ シ ョ ン管理用の、 ク ラ イ ア ン 卜の I Dやク ラ イ ア ン 卜が接続 している アプリ ケー シ ョ ン 1 5等の情報が、 共有メ モ リ 1 4 に入り保管され る。
また、 分散管理においては、 同じ く D S M C G I 中核ライブラ リ 2 5を通じて、 メ イ ン処理サーバの状況、 サブ処理サーバの環境確 認、 サブ処理サーバとアプリ ケー シ ョ ン 1 5 との関係等の設定条件 力 <、 共有メ モ リ 1 4 に人り保管される。
図 5 は、 メ ィ ン処理サーバにおける処理を示すフ ローチ ヤ 一 ト、 図 6 は、 サブ処理サーバにおける処理を示すフ ローチ ヤ一トである
図中、 実線は正常時の流れを示し、 点線は異常処理時の流れを示 し、 破線はメ ッセージ通知の流れを示す。 また、 二重線で示したブ ロ ッ クは、 共有メ モ リ 1 4で管理する情報を示す。 縦に引かれた一 点鎖線より左側の部分は、 セ ッ シ ョ ン管理 ( D S M C G I プロセス ) の機能を、 右側のステップ S 3 3 の待機をはさんで上部分は、 分 散管理 ( D S Mサーバプロセス) と しての機能を、 右側のステ ップ S 3 3 の待機をはさんで下部分はアプリ ケーシ ョ ンプロセスと して の機能をそれぞれ表す。
最初に、 図 5 のメ イ ン処理サーバの処理を説明する。
メ イ ン処理サーバ 2 は、 クライアン 卜 3 からアクセスを受け付け ると、 C G I 実行モジ ュール (d smcg i . e x e ) 1 3 が起動をする (ス テ ツプ S 1 1 ) 。 C G I 実行モ ジ ュ ール 1 3 は、 共有メ モ リ 1 4 に 存在する情報や C G I パラメ ータを解析後、 セッ シ ョ ン管理用の I Dを作成し、 文字コー ドの変換等を行う。 今回のア ク セスがク ライ アン ト 3 からの最初のアクセスである場合は、 セッ シ ョ ン管理用の I Dは、 共有メ モ リ 1 4 に記録される。
C G I 実行モジュール 1 3 は、 次いで、 共有メ モ リ 1 4上の情報 に基づいて、 サブ処理サーバ 2 ' への割り振り に関する情報を確認 する (ステ ップ S 1 2 ) 。
ステップ S 1 2では、 共有メ モリ 1 4 の情報に基づいて、 メ イ ン 処理サーバかサブ処理サーバのいずれで処理を行なうかが判定され る。 メ イ ン処理サーバで処理を行なう場合 (N ) は、 メ イ ン処理サ ーバ 2 にて処理を行うため、 ステップ S 1 3 へ進む。 サブ処理サ一 バで処理を行なうべき場合 ( Y ) は、 当該サブ処理サーバ 2 ' に処 理を引き渡す (ステ ップ S 1 9 ) 。
ステップ S 1 2では、 また、 今回のアクセス力く、 2 回目以降のァ クセスでありセ ッ シ ョ ンが保持されている場合、 共有メ モ リ 1 4 に
は、 当該クライアン 卜 3 の I Dと関連するセッ シ ョ ン管理情報と分 散管理情報とが記録されているので、 前回のアクセスで稼働したサ —バが、 メ イ ン処理サーバ 2であるかサブ処理サーバ 2 ' であるか が判定される。 それがサブ処理サーバ 2であれば ( Y : Y e s ) 、 サブ処理サーバ 2 ' に処理を引き渡し (ステ ップ S 1 9 ) 、 メ イ ン 処理サーバ 2であれば (N : N o ) 、 メ イ ン処理サーバ 2 にて処理 を継続するためステップ S 1 3 へ進む。
ステップ S 1 2でメ イ ン処理サーバ 2 にて処理を行う こ ととなつ た場合 (N ) 、 共有メ モ リ 1 4上の情報に基づいて、 自身のアプリ ケ一シ ヨ ンプロセス 2 4 力く、 セッ シ ョ ンを保持しているか否かを確 認する (ステップ S 1 3 ) 。
ステップ S 1 3 では、 今回のアクセスが 2 回目以降のアクセスで 、 セ ッ シ ョ ンが保持されていれば ( Y ) ステップ S 1 5 へ進む。 今 回のアクセスが最初のアクセスである力、、 又は、 2 回目以降のァク セスであってもセ ッ シ ョ ンが保持されていない場合 (N ) は、 ステ ップ S 1 4 へ進む。
ステップ S 1 4 では、 共有メ モリ 1 4 上の情報に基づいて、 アブ リ ケ一シ ヨ ンプロセス 2 4 の稼働状況を確認する。 処理の前に必要 なアプリ ケー シ ョ ンプロセス 2 4が稼働していなければ ( N ) 、 D S Mサーバプロセス 2 3 に、 アプリ ケー シ ョ ンプロセス 2 4 を起動 させる指示を出す。
D S Mサーバプロセス 2 3 は、 アプ リ ケー シ ョ ンプロセス 2 4 の 起動と終了を管理する。 C G I 実行モ ジ ュール (d smc g i . e x e ) 1 3 からアプリ ケー シ ョ ンプロセス 2 4 の起動の指示を受けると、 ァプ リ ケーシ ヨ ンプロセス 2 4 を起動させ (ステップ S 3 1 、 3 2 ) 、 その旨を共有メ モ リ 1 4 に記録し、 次のプロセス実行のメ ッセージ が出されるまで待機をする (ステップ S 3 3 ) 。
C G I 実行モジュール 1 3では、 起動完了のメ ッセージを受け取 ると、 ステップ S 1 4 でアプリ ケーシ ョ ンプロセス 2 4 が稼働状況 にあると判定して、 ステップ S 1 5へ進む。
ステップ S 1 5で、 D S M C G I プロセス 2 2 の実行を指示する メ ッセージを通知し、 ステップ S 1 6で、 アプリ ケーシ ョ ンプロセ ス 2 4 の実行完了まで待機する。
アプリ ケーシ ョ ンプロセス 2 4 は、 待機中 (ステップ S 3 3 ) に プロセス実行開始のメ ッセージを受け取ると、 プロセスの実行を開 始する (ステップ S 3 4 ) 。 プロセス実行が終了すると、 処理の結 果を、 フ ァ イ ル装置 6 の結果フ ァ イ ルに格納し、 共有メ モ リ 1 4 に 処理の状況に関する情報を記録し、 C G I 実行モジ ュ ール 1 3 に処 理完了のメ ッセージを通知し、 待機する (ステップ S 3 5 ) 。
C G I 実行モジュール 1 3 は、 実行完了のメ ッ セー ジを受け取る と、 フ ァ イ ル装置 6 から結果のフ ァ イルを得て、 ウェブサーバ 1 1 にクライアン ト 3への送付依頼を行う (ステ ッ プ S 1 7 ) 。 その後 、 アプリ ケー シ ョ ンプロセス 2 4 に、 結果フ ァ イルの獲得が完了し た旨のメ ッセージを送り、 処理を終了する (ステップ S 1 8 ) 。 アプリ ケー シ ョ ンプロセス 2 4 は、 ステップ S 3 5 の待機中に、 結果フ ァ イル獲得完了のメ ッセージを受け取ると、 自動終了を行う か否かを判定する (ステップ S 3 6 ) 。 自動終了の判定のパラ メ 一 タと しては、 例えば、 アプリ ケーシ ョ ンプロセスのメ モリ ー常駐数 や前回の接続からの経過時間、 ク ライアン ト 3 からの総アクセス回 数などがある。 これらが所定値を超えた場合 (ステップ S 3 6 の Y
) には、 自動的にアプリ ケー シ ョ ンプロセス 2 4 を終了し、 共有メ モリ 1 4 に記憶してあるセ ッ シ ョ ン情報などの管理情報をク リ アす る (ステップ S 3 8 ) 。 また上記のパラメ ータを満たす場合でも、 セ ッ シ ョ ンを保持した状態のままで同一ユーザーからの処理が継続
される場合は、 自動終了のステップは、 次のセ ッ シ ョ ンを保持しな い処理かまたは、 別ユーザからのリ クエス トがく るまで実行されな い。
自動終了の要件を満たさない場合 (ステップ S 3 6 の N ) は、 ( Wa i t / e a d y ) のフラ グをセッ 卜 した (ステップ S 3 7 ) 後、 ステ ツ プ S 3 3 へ戻る。 こ こでは、 アプリ ケー シ ョ ンプロセス 2 4 の起動 を継続したまま、 次の処理実行のメ ッセージが通知されるまで待機 をする。 この自動終了のパラメ ータと しては、 例えば、 待機開始か らの経過時間がある。 自動終了にこのパラメ ータを使用 した場合、 処理の結果を送付してから所定時間経過してもク ライア ン 卜 3 から 次のアクセスが無い場合に、 サーバ側で自動終了を行う こ と となる 。 自動終了の場合は、 ステップ S 3 8へ進み、 アプリ ケー シ ョ ンプ 口セスの終了、 管理情報のク リ アを行う。
次に、 サブ処理サーバ 2 ' の処理について説明する。
図 5 のメ イ ン処理サーバ 2 のステップ S 1 2 でサブ処理サーバ 2 ' の環境確認を行う。 こ こで、 今回アクセス してきたク ライアン ト 3 とのセッ シ ョ ンが継続しているサブ処理サーバ 2 ' があれば、 当 該サブ処理サーバ 2 ' に処理が渡され、 セ ッ シ ョ ン継続の処理がさ れる。
図 6 において、 処理が引き渡されたサブ処理サーバ 2 ' では、 D S Mサーバプロセス 2 3 にて管理を行う (ステ ップ S 5 1 ) 。 D S Mサーバプロセス 2 3 は、 共有メ モ リ 1 4 に所定の書き込みを行い 、 次いで、 共有メ モリ 1 4上の情報に基づいて、 アプリ ケー シ ョ ン プロセス 2 4がセ ッ シ ョ ンを保持しているか否かを確認する (ステ ップ S 5 2 ) 。
ステップ S 5 2で、 今回のアクセスが 2 回目以降のア クセスで、 セ ッ シ ョ ンが保持されていれば ( Y ) ステ ップ S 5 4 へ進む。 今回
のアクセスが最初のアクセスである力、、 又は、 2 回目以降のァクセ スであっても保持されていない場合 ( N ) は、 ステップ S 5 3 へ進 む。
ステップ S 5 3では、 共有メ モ リ 1 4上の情報に基づいて、 アブ リ ケーシ ヨ ンプロセス 2 4 の稼働状況を確認する。 アプリ ケーシ ョ ンプロセス 2 4 が稼働していなければ ( N ) 、 アプリ ケー シ ョ ンプ ロセス 2 4 の起動を行う (ステップ S 7 1 ) 。 アプリ ケー シ ョ ンプ ロセス 2 4 は、 起動を完了すると、 その旨を共有メ モ リ 1 4 に記録 して、 起動完了のメ ッセージを D S Mサーバプロセス 2 3 に送り、 次のプロセス実行のメ ッセージが出されるまで待機をする (ステ ツ プ S 7 2 ) 。
D S Mサーバプロセス 2 3では、 起動完了のメ ッセージを受け取 ると、 ステップ S 5 3 でアプリ ケーショ ンプロセス 2 4 が稼働状況 にあると判定して、 ステップ S 5 4 へ進む。
ステップ S 5 4で、 D S M C G I プロセス 2 2 の実行開始を指示 するメ ッセージを通知し、 ステップ S 5 5で、 アプリ ケーシ ョ ンプ ロセス 2 4 の実行完了まで待機する。
アプ リ ケー シ ョ ンプロセス 2 4 は、 待機中 (ステ ッ プ S 7 2 ) に プロセス実行開始のメ ッセージを受け取ると、 アプリ ケー シ ョ ンプ ロセス 2 4 の実行を開始する (ステ ッ プ S 7 3 ) 。
プロセス実行が終了すると、 処理の結果をフ ァ イル装置 6 (図 2 ) の結果フ ァ イ ルに格納し、 共有メ モ リ 1 4 に処理の状況に関する 情報を記録し、 D S Mサーバプロセス 2 3 に実行完了のメ ッセー ジ を通知し、 待機する (ステップ S 7 4 ) 。
D S Mサーバプロセス 2 3 は、 ステップ S 5 5 の待機中にプロセ ス実行完了のメ ッセ一ジを受け取ると、 ステップ S 5 6 で、 フ アイ ル装置 6 から結果フ アイルを獲得し、 メ ィ ン処理サーバ 2 に結果の
データを戻し、 ステップ S 5 1 へ戻る。
メイ ン処理サ 一 ノく 2 (図 5 ) では、 C G I 実行モジュール (d smc g i . e x e ) 1 3のステップ S 1 7 で、 ウ ェブサー ノく 1 1 に、 サブ処理 サーバ 2 ' から戻された結果のデータをク ライア ン 卜 3 へ送付する こ との依頼を行う。
サブ処理サーバ 2 ' (図 6 ) のステップ S 7 4 の待機以降の処理 、 つま り、 自動終了の判定 (ステップ S 7 5 ) 、 アプリ ケー シ ョ ン プロセス 2 4終了の処理 (ステップ S 7 7 ) 、 フラ グのセ ッ ト (ス テツプ S 7 6 ) 、 次のプロセス実行への待機 (ステップ S 7 2 ) は 、 図 5 のメ イ ン処理サーバ 2での処理と同様であるので、 重複する 説明は省略する。
次に、 図 5 、 図 6 のフ ローチャー トにおいて、 異常が発生したと きの処理を説明する。 図 5 、 図 6では、 異常処理時の流れを点線で 示している。
メ イ ン処理サーバ 2 (図 5 ) では、 ステップ S 1 6 の待機中に所 定時間が経過すると、 つま り、 所定時間が経過してもアプリ ケー シ ョ ンプロセスの処理が終了しないときは、 D S M C G I プロセス 2 3 にアプリ ケー シ ョ ンプロセス 2 4 の強制終了を指示し、 ステ ップ S 1 8 およびステップ S 3 9で処理を終了する。 D S M C G I サー バプロセス 2 3 ではアプリ ケーシ ョ ンプロセス 2 4 の処理を終了す る (ステップ S 3 1 ) 。 サブ処理サーバ 2 ' (図 6 ) では、 ステツ プ S 5 5 の待機中に所定時間が経過すると、 アプリ ケー シ ョ ンプロ セス 2 4 を終了させ (ステップ S 5 7 ) 、 ステップ S 5 1 へ戻る。 以上説明したシステムによれば、 アプリ ケーシ ョ ンプロセス 2 4 が D S M C G I サーバプロセス 2 3 から独立してお互いに千渉しな いため、 システム全体の信頼性が高く なる。 また、 アプリ ケーシ ョ ン 1 5 を共有メ モ リ 1 4 に常駐でき、 小さいサイズの実行モ ジユ ー
ル (d s m c g K e x e ) だけからゥ ヱブサーバ 1 1 の リ クエス トを受ける ことにより、 レスポ ンスも早く なる。 またセ ッ シ ョ ン管理情報を共 有メ モリ 1 4 に置いたこ とにより、 高いアクセスパフ ォ ーマ ンスを 実現できる。
また、 複数のサーバをグループ化して分散対応と したこ とにより 、 負荷を分散でき、 複数のク ラ イ ア ン トの同時ア クセスによって起 こるサーバへの負荷を軽減するこ とができる。 サーバの 1 つが使用 不可能な場合でも、 他のサーバが稼働していれば、 処理を代行する ので、 天災 · 人災時における安全性を上げるこ とができ る。 1 台の 高機能サーバを購入し、 それ 1 台でゥ ヱブ管理を行うより、 比較的 低機能な複数の小型機サーバを分散サーバと して扱う こ とができ、 システムのコス ト削減にも結びつく という こ と もある。 また、 本ゥ エブアプリ ケ一ショ ンシステムはメ ィ ン処理サーバとサブ処理サー バあるいは複数のサブ処理サーバについて異種のサーバを適用する ことができ、 現有システムあるいは現有サーバの有効活用が容易と なり、 新システム構築を柔軟に行う こ とが可能となる。
以上、 本発明に基づく 、 セ ッ シ ョ ン管理 Z分散管理機能を有する ウ ェブアプ リ ケー シ ョ ン システム 1 について説明 したので、 次に、 そのゥ ヱブアプリ ケ一シ ョ ンシステム 1 に好適に組み込まれる運用 機構について説明する。
図 7 は本発明に基づく運用機構を含むウ ェブアプリ ケー シ ョ ンシ ステムの基本構成を示す図である。
本図において、 1 は、 前述と同様、 ゥ ヱブアプリ ケー シ ョ ン シス テムであり、 サーバをなすメ イ ンおよびサブ処理サーバ 2, 2 ' と
、 クライアン トをなすゥ ヱブブラウザ 3 とからなる。 本図では、 1 台のメ イ ン処理サーバ 2 と、 2 台のサブ処理サーバ 2 ' が示されて いるが、 これらの台数は全く 任意である。 また各処理サーバには、
クライア ン ト側からの リ クエス 卜に基づき処理すべきアプリ ケーシ ヨ ン ( A P P ) が備えられている。
図 7 における本発明の特徴は、 3 1 で示す運用機構をウ ェブアブ リ ケーシ ヨ ン システム 1 に対して設けたこ とにある。 運用機構 3 1 は、 各処理サーバ 2 , 2 ' 毎のサーバ側運用プロセスモ ジ ュール 3 2 と、 各該モ ジュール 3 2 と一対一対応で設けられるク ラ イ ア ン ト 側運用プログラム 3 3 とからなる。 これら運用プロセスモジュール 3 2 および運用プログラム 3 3 を介して、 各クライア ン トは、 ゥ ヱ ブアプリ ケーシ ョ ン システム 1 に対する各種状況の閲覧や環境設定 等の運用を、 対応のゥ iブブラウザ 3上でリ アルタイ ムに行う こ と ができる。
図 7 において、 このような運用機構 3 1 が適用されるゥ ヱブアブ リ ケ一シ ョ ンシステム 1 では、 メ イ ン処理サ 一ノく 2力くク ライアン 卜 (ウ ェブブラウザ 3 ) からのアクセスを一元管理し、 メ イ ン処理サ ーバ 2上での設定情報により、 処理を 2台のサブ処理サーバ 2 ' に 割り振る。 これにより複数のク ライアン ト ( 3 ) からのアクセスが 集中した場合でも、 いずれかのサブ処理サーバ 2 ' に負荷を分散さ せるこ とができ、 全体と して、 上述した統合形のゥ ヱブアプリ ケ一 シ ョ ンシステム 1 を構築する こ とができ る。
こ こで図 7 のサーバ側運用プロセスモジュール 3 2 についてさ ら に具体的に示す。
図 8 はサーバ側運用プロセスモジュールの具体的構成を示す図で ある。
本図において、 4 1 は処理サーバであって、 図 7 におけるメ イ ン 処理サーバ 2 およびサブ処理サーバ 2 ' を総称したものである。 こ の処理サーバ 4 1 と、 ク ライアン ト側運用プログラム 3 3 を含むク ラ イ ア ン ト 4 4 との間に設けられるのが、 本発明の特徴の 1 つをな
すサーバ側運用プロセスモ ジュール 3 2であり、 図示するとおり、 運用モジ ュール 4 2 と通信モジ ュール 4 3 と力、らなる。
かく して、 上記図 7 および図 8 を参照すると、 本発明の特徴の 1 つである運用機構 3 1 は、 クライアン トからのリ クエス トに基づい て処理サーバ 4 1 により処理すべきアプ リ ケー シ ョ ン ( A P P ) を 有してなるゥ ヱブアプリ ケーシ ョ ンシステム 1 、 に対する運用を行 うための運用機構である。 そ してこの運用機構 3 1 は、 く 1 〉処理 サーバ 4 1 に連携し上記の運用に関する処理をク ライアン ト 4 4 か らの指示に応じて行う運用モジュール 4 2 と、 く 2 〉 ク ライアン ト 4 4 からの指示を受けるための通信と、 その指示による運用モ ジ ュ —ル 4 2 の起動とを行う通信モジ ュール 4 3 と、 を含んで構成され る。
すなわち、 < 1 >の運用モ ジ ュ ール 4 2 は、 ウ ェブアプリ ケー シ ョ ン システム 1 の処理サーバ 4 1 に連携しゥ ヱ ブアプ リ ケ一 シ ョ ン システム 1 に対する運用に関する処理を、 ク ライアン ト 4 4 からの 指示に応じて行う ものである。
一方、 上記 < 2 >の通信モジュール 4 3 は、 ゥ ヱブアプリ ケ一 シ ヨ ン システム 1 の処理サーバ 4 1 に連携し、 ウ ェ ブアプ リ ケー シ ョ ンシステム 1 に対する運用に関する処理をク ライアン 卜 4 4 からの 指示に応じて行うための上記運用モジ ュール 4 2 を起動すると共に 、 クライアン ト 4 4 からの指示を受けるための通信を行う ものであ o
また図 8 に示すように、 運用モ ジュ ール 4 2 と通信モジュール 4 3 とは対になって形成され、 かつ、 該対は処理サーバ 4 1 の各々 と 一対一対応で設けられている。
かく して運用モジュール 4 2 は、 通信モジ ュール 4 3 を介したク ラ イ ア ン 卜 4 4 からの指示による上記の運用に関する処理と して、
例えば、 ウ ェブアプリ ケーシ ョ ン システム 1 の稼動状況に対する閱 覧、 処理サーバ 4 1 の稼動環境設定、 アプリ ケー シ ョ ン (A P P ) の稼動スケジュール設定ならびにログおよびパフ ォ ーマ ンスの解析 の少なく と も 1 つを、 各クライアン ト 4 4 が独自に、 処理サーバ 4 1 を介して実行するこ とができる。
図 9 は図 7 におけるウ ェブアプリ ケー シ ョ ン システム 1 の要部を 構成する基本モ ジュールの一例を示す図である。 この基本モ ジユー ルには、 本発明に基づく上記の運用機構 3 1 のモ ジュールは含まれ ていない。 したがって、 前述した図 4 とほぼ同じである力く、 付記的 事項を加えながら、 こ こで再度説明しておく 。
図 9 において、 D S Mサーバモ ジュ ール 2 1 は、 処理サーバ 4 1 (図 8 ) に相当 し、 D S M C G I プロセス 2 2 と、 D S Mサーバプ ロセス 2 3 と、 アプリ ケー シ ョ ンプロセス 2 4 とを含んで形成され る。 なお、 上記の D S Mは、 既に述べたよう に "Distributed Sess ion Manager " の略であり、 サーバ上で動く アプリ ケー シ ョ ンの実 行と管理を行う。 また上記の C G I は、 "Common Gateway Interfa ce" の略であり、 ウ ェブブラウザ 3 (図 7 ) 力、らのリ クエス トを受 け付けてアプリ ケー シ ョ ン ( A P P ) を呼び出 し、 その実行結果を リ クエス ト元のウ ェブブラウザ 3 に返す働きをする。
図 9 において、 D S M C G I プロセス 2 2 は C G I 実行モジユ ー ル (dsmcgし exe) 3 と D S M C G I 中核ライブラ リ 2 5 によって 実現される。 D S Mサーバプロセス 2 3 は、 D S Mサーバ 1 2 と上 記の D S M C G I 中核ライブラ リ 2 5 によ って実現される。 またァ プリ ケ一シ ヨ ンプロセス 2 4 は、 特定言語 (アプリ ケーシ ョ ンを動 かすための特定言語) の通信用の拡張ライブラ リ 2 6 と上記の D S M C G I 中核ライブラ リ 2 5 とアプリ ケー シ ョ ン ( A P P ) とによ つて実現される。
アプリ ケーシ ョ ンプロセス 2 4 と しては、 例えば、 顧客管理、 物 品受発注管理、 予算管理等が挙げられる。 なおアプリ ケー シ ョ ンは 、 特定言語通信用の拡張ライブラ リ 2 6 と連動して、 特に限定され ることなく 使用することができる。
ゥ ヱブサーバ (図 1 1 の 1 1 ) とアプリ ケー シ ョ ン ( A P P ) と の間に、 D S Mサーバ 1 2 と、 該ウ ェブサーバから起動する上記の C G I 実行モジュール 1 3 と、 共有メ モ リ 1 4 とが設け られる。 こ こに D S Mサーバ 1 2 は、 セッ ショ ン管理サーバであり、 また、 分 散管理サーバでもある。 C G I 実行モジュール 1 3 は、 ク ライア ン ト 4 4 とアプリ ケーシ ョ ン (A P P ) との間のイ ンタフ ヱースをと るプログラムである。 また共有メ モ リ 1 4 は、 分散管理に関する情 報とセ ッ シ ョ ン管理に関する情報等の管理情報を記憶する。 なお、 D S Mサーバ 1 2 と C G I 実行モジュール 1 3力く、 D S Mサーバモ ジュール 2 1 の中心的構成要素をなす。
図 9 において、 上記D S M C G I 中核ラィブラ リ 2 5 は、 D S M サーバ 1 2 と C G I 実行モジュール 1 3 と共有メ モリ 1 4 とに対す るイ ンタ フ ェ ースとなる。
D S M C G I プロセス 2 2 は、 上記のとおり、 実行モ ジ ュ ール 1 3 と D S M C G I 中核ライブラ リ 2 5 とからなり、 D S Mサーバ 1 2 と共にセッ シ ョ ン管理用のサーバと しての機能を果す。 また D S Mサーバプロセス 2 3 は、 D S Mサーバ 1 2 と D S M C G I 中核ラ イブラ リ 2 5 とからなり、 C G I 実行モジュール 1 3 と と もに分散 管理用のサーバと しての機能を果す。
上記セ ッ シ ョ ン管理においては、 D S M C G I 中核ライブラ リ 2
5を通じて、 セッ シ ョ ン管理用の、 ク ライアン トの I Dゃク ライア ン ト 4 4が接続しているアプリ ケー シ ョ ン (A P P ) 等の管理情報 が上記の共有メ モ リ 1 4 に格納される。
また、 上記分散管理においては、 D S M C G I 中核ライブラ リ 2 5 を通じて処理サーバ 4 1 ( 2 1 ) の状況やサブ処理サーバ 2 ' の 環境確認、 サブ処理サーバ 2 ' と該サーバ 2 ' のためのアプリ ケ一 シ ョ ンとの関係、 等の設定条件も共有メ モ リ 1 4 に管理情報と して 格納される。 なお、 図 9 には図示しない力 サブ処理サーバ 2 ' も 図 9 のモ ジュールと同様の構成を有し ( C G I 実行モ ジ ュ ール 1 3 はない) 、 このサブ処理サーバ 2 ' の D S Mサーバは、 図 9 の D S Mサーバ 1 2 と接続する (図 3参照) 。
統合形のゥヱブアプリ ケーシ ョ ンシステムに適合した上述の D S Mサーバモ ジュール 2 1 に対して協働する運用機構 3 1 をさ らに詳 し く 説明する。
図 1 0 は運用機構を備えたゥ ヱブアプリ ケ一シ ョ ン システムを部 分的に示す図 (その 1 ) であり、
図 1 1 は同図 (その 2 ) である。 こ こに図 1 0 は図 9 にほぼ相当 する。 したがって図 1 1 が運用機構 3 1 を主と して表している。 図 1 1 を参照すると、 運用機構 3 1 の一部を構成するサーバ側運 用プロセスモ ジュール 3 2 と、 該機構 3 1 の他の一部を構成するク ラ イ ア ン ト側運用プログラム 3 3 とが示されている。 サーバ側運用 プロセスモ ジュール 3 2 は、 運用モ ジュ ール 4 2 と通信モ ジュ ール 4 3 とを有する。
運用プロセスモジュールをなすモジュール 4 2 および 4 3 は、 上 記の D S M C G I 中核ライブラ リ 2 5 と共に、 運用プロセス 4 5 を 実現する。 運用モジュール 4 2 は、 また外部アプリ ケー シ ョ ンプロ セス 4 7 と も協働することができる。
また、 この運用モジュール 4 2 の動作を規定するための各種コマ ン ドを保有するの力 D S M管理ツール 4 6であり、 これは運用モ ジュールから処理サーバの状況を得て、 解析を行い、 その情報を運
用モジュールに返す。
図 1 1 の左側には、 既存のゥヱブサーバ 1 1 力く、 一方において C G I 実行モジュール 1 3 (図 1 0 ) と接続し、 他方で実施例におい て、 H T T P (Hyper Text Transfer Protocol) を用いてウ ェブブ ラウザ 3 と接続する場合が示されている。
図 1 1 の右側のサーバ側運用プロセスモ ジュール 3 2 について見 ると、 通信モジュール 4 3 は、 実施例において J A V A言語を用い て実現され、 R M I プロ ト コルを用いてク ラ イ ア ン ト側と通信し、 さ らに J N I プロ ト コルを用いて運用モジュール 4 2 に接続し起動 する場合が示されている。
図 1 2 は図 1 0 および図 1 1 に示すシステムの要部構成をワーク フローに沿って書き換えた図である。
本図において、 ワークフローはく 1 〉〜く 7 〉によって示される 。 なお、 図 1 0 には図示していないが、 設定フ ァ イ ル 5 1 と情報フ アイル 5 2 とが新たに示されている。
これらのフ ァ イ ル 5 1 , 5 2 について予め説明すると、 サーバ側 運用プロセスモジュール 3 2 は、 処理サーバ (D S Mサーバ 1 2 ) および運用モジュール 4 2 の起動時に、 予め設定フ ァ イ ル 5 1 に書 込まれた関連する情報を参照して、 該処理サーバの稼動環境設定お よびアプリ ケーシ ョ ン ( A P P ) の稼動スケジュール設定の少な く と も 1 つを実行する。
同様に、 処理サーバ ( D S Mサーバ 1 2 ) は、 ク ライアン トから のリ クエス トに応じてその結果を情報フ ァイル 5 2 に出力する。 サ ーバ側運用プロセスモジュール 3 2 は、 情報フ ァ イ ル 5 2 を参照し 、 ログやパフ ォ ーマ ンスをモニタ画面に表示する。
次に図 1 2 におけるワーク フローく 1 〉〜 < 7 >に沿って説明す る。
ワークフ ローく 1 〉では、 クライアン ト 4 4 と、 サーバ側の通信 モ ジュール 4 3 との間の通信を、 例えば R M I プロ ト コルを用いて 、 行う。
ワークフ ローく 2 〉では、 クライアン 卜側からの指示に基づき、 通信モジュ ール 4 3 を介し、 運用モジュール 4 2 を起動する。
ワークフローく 3 〉では、 上記の閲覧 (状況モニタ) の場合に、 アプリ ケー シ ョ ンプロセス (図 1 2 の右側の ( 1 ) 〜 ( n ) ) の情 報の取得を、 D S Mサーバ 1 2 に依頼する。 (なお、 D S M C G I 中核ライブラ リ 2 5 は省略してある。 )
ワーク フ ローく 4 〉では、 共有メ モ リ 1 4 と D S Mサーバ 1 2 と の間のやり と り、 特に共有メ モ リ 1 4 の内容を確認する。
さ らに詳し く は、 サーバ側において、 処理サーバ ( D S Mサーバ 1 2 ) に連携し、 かつ、 各種アプリ ケー シ ョ ン ( A P P ) を管理す るアプリ ケー シ ョ ン管理情報を格納する共有メ モ リ 1 4 を備え、 運 用モジュール 4 2 はそのアプリ ケー シ ョ ン管理情報を共有メ モ リ 1 4 から入手して、 関連するアプリ ケーシ ョ ンプロセスを検索する。 ワーク フ ローく 5 〉では、 前述したアプ リ ケー シ ョ ンプロセス ( 1 ) 〜 ( n ) の詳細情報を、 D S Mサーバ 1 2が取得する。
ワーク フ ローく 6 >では、 D S Mサーバ 1 2 の稼動環境設定ゃァ プリ ケ一シ ョ ンの稼動スケジュ ール設定を行う場合に、 設定フ アイ ル 5 1 からの情報の読出 しおよび書込みを行う。 D S Mサーバ 1 2 は設定フ ァ イ ル 5 1 に書込まれた、 サーバの稼動環境やアプリ ケー シ ョ ンの稼動スケジ ュ ールを参照する。
ワーク フ ローく 7 〉では、 ログやパフ ォ ーマ ンスの解析がク ライ ア ン ト側より要求されたとき、 運用モジュール 4 2 は当該情報を情 報フ アイノレ 5 2 より取り出す。 なおその解析のために該フ ァ イ ル 5
2 に書込むべき情報 (処理結果等) は、 0 3 1^サーバ 1 2が入力す
る
次に運用機構 3 1 による、 運用 (ゥ ヱブアプリ ケー シ ョ ン システ ム 1 の稼動状況に対する閲覧、 処理サーバ 4 1 の稼動環境設定、 ァ プリ ケ一シ ヨ ン ( A P P ) の稼動スケジュール設定、 ロ グならびに パフ オ ーマ ンスの解析) についての詳細例について述べる。
まず運用機構 3 1 による運用機能の代表例を以下の ( a ) 〜 ( f ) に示す。
( a ) 各処理サーバ 4 1 の構成を、 ク ライアン 卜からのサイ ンォ ン時、 ッ リ ー状に表示させて処理サーバの状況を閲覧するこ とがで きる
運用機構 3 1 で監視対象となる複数の処理サーバ間の関連を、 ク ライアン ト側ディ スプレイ上に、 ツ リ ー状に表示する。
これにより各ユーザは、 例えば、 どのアプリ ケーシ ョ ンがどのサ ーバにつながっているかという こ とを一目で知るこ とができる。
( b ) 権限ある各ユーザは、 アプリ ケー シ ョ ンの稼動状況をモニ 夕 (閲覧) することができる。
上記ツ リ ー状階層の部分で選択された処理サーバについてのアブ リ ケーシ ョ ン情報や外部アプリ ケーシ ョ ン情報を、 上記ディ スプレ ィ上に、 テーブルと して表示するこ とができる。
またその選択された処理サーバのメ モ リ使用量、 C P Uの使用率 および使用時間、 アプリ ケー シ ョ ンの稼動状況等も、 ディ スプレイ 上で見ることができる。
なお上記のモニタは、 各ユーザ毎に所定のサンプリ ング間隔でリ アルタイムに行う こ とができる。
上記のモニタは、 コ ンピュータ処理に何らかの異常が発生したと き、 その原因の究明に役立つ。
( c ) 各ユーザ毎にアプリ ケ一シ ョ ンの稼動スケジュール設定を
行う こ とができる。
すなわち、 アプリ ケー シ ョ ンの稼動を、 月、 日、 時間単位で設定 できる。 例えば、 企業の経理部門で月末に会計用のアプリ ケーシ ョ ンを集中的に使う場合、 その期間は、 その経理部門に対して独占的 に複数の処理サーバを使用するよう に設定するこ とができる。
( d ) 各処理サーバ毎にログ情報の解析を行う ことができる。 各ユーザにより選択された処理サーバのログ内容から、 D S M サーバ 1 2 の起動」 、 「 D S Mサーバ 1 2 の停止」 、 「 C G I 実行 モジュール 1 3 へのアクセス」 等に関する各処理毎の情報を解析し 、 前記ディ スプレイ上にテーブル形式で表示することができる。 例 えば、 1 日における時間単位のアクセス累計グラフを表示するこ と ができる。
( e ) 各ユーザのアプリ ケーシ ョ ン毎にパフ ォ 一マ ンス情報の解 析を行う ことができる。
すなわちパフ ォーマ ンスレポ一 卜の解析である。 1 つのアプリ ケ ーショ ンが実行された場合にどのプロ シー ジ ャ (アプリ ケ一シ ョ ン を実行するためのプログラム) を呼び出した力、、 どの リ モー トデー タベース (図示せず) にアクセスした力、、 等のアプリ ケー シ ョ ンの 流れの情報を、 ツ リ ー状階層で、 ディ スプレイ に出力し、 表示する ことができる。
( f ) 各処理サーバ毎にサーバ環境を設定するこ とができる。 各ユーザは、 メ イ ン処理サーバ 2 やサブ処理サーバ 2 ' について の動的な環境設定あるいは環境設定の変更を行う ことができる。 例えば、 保持しているアプリ ケー シ ョ ンの自動終了、 あるいは一 定回数のアクセスによるセッ シ ョ ンの保持の開放等の設定である。 上述した ( a ) 〜 ( ί ) に示すように、 運用機構 3 1 を用いる こ とにより、 前記ゥ ヱブアプリ ケー シ ョ ンシステム 1 の稼動状況に対
する閲覧、 前記処理サーバの稼動環境の設定、 アプリ ケー シ ョ ンの 稼動スケ ジュール設定ならびに、 ログおよびパフ ォ ーマ ンスの解析 等を、 各ユーザが、 対応のウ ェブブラウザ 3上で、 個々 に容易に行 う ことができる。 この場合、 各ユーザのディ スプレイ上での実際の 表示例を、 図を参照しながら、 上記 ( a ) 〜 ( f ) に即して説明す る。
図 1 3 はディ スプレイ上における第 1 の表示例 (画面構成) を示 す図 (上半分) であり、
図 1 4 は同図 (下半分) である。
図 1 3 および図 1 4 を参照すると、 ディ スプレイの画面 5 5 は大 き く 2 つの部分に分けるこ とができる。 その左側の Aにメ イ ン処理 サーバ 2 とサブ処理サーバ 2 ' との関係をツ リ ー状に表示している 。 その右側の Bに、 ツ リ ー状表示部分 Aで選択したサーバに関する 情報を表示する。 「状況モニタ」 、 「 A P P設定」 、 「ログ情報 j 、 「パフ ォ ーマ ンス情報」 、 「処理サーバの稼動環境設定」 の 5 つ のタブで切り替えるこ とにより、 それぞれの情報を表示する。
「状況モニタ」
アプ リ ケー シ ョ ンプロセスのセ ッ シ ョ ン状況、 外部アプ リ ケ一 シ ョ ンの稼動状態をテーブル表示する。 所定のサンプリ ング間隔毎に サーバより情報を取得し、 モニタ状況の画面 5 5 を更新する。 状況 表示と しては、 例えば、 保持、 待機、 接続中 (未ァクセ ス) の 4 つが挙げられる。
「 A P P設定」
アプリ ケ一シ ョ ン I Dの作成、 スケ ジ ュ ール情報の設定、 各サー バへのアプリ ケ一シ ョ ン I Dの割り振りを行う。 外部アプリ ケ一シ ョ ンのアプリ ケー シ ョ ン I Dの作成も こ こで行う。
また、 アプリ ケー シ ョ ン I Dにリ ソース設定 (アプリ ケー シ ョ ン
プロセスの予約) する場合もここで行う。
「口グ情報」
アプリ ケー シ ョ ンプロセスが吐き出すログを解析して閲覧する。 また、 アプ リ ケーショ ンプロセスの所定時間 (例えば 1 日) におけ る起動累積結果をグラフで表示する。
「パフ ォ ーマンス情報」
アプ リ ケーシ ョ ンプロセスが吐き出すパフ ォ ーマ ンス レポ一 トを 解析して閲覧する。 アプリ ケーシ ョ ンプロセスの実行の流れを、 ッ リ ー状にすなわち階層的に表示し、 各処理のパフ ォ ーマ ンスを表示 する。
「処理サーバの稼動環境設定」
D S M C G I の設定フ ァ イ ルの情報を取得または設定する。
図 1 5 はディ スプレイ上における第 2 の表示例 (状況モニタ) を 示す図 (上半分) であり、
図 1 6 は同図 (下半分) である。 ツ リ ー状階層の部分 (図 1 3 の A ) で選択されたサーバのアプリ ケー シ ョ ンプロセス情報や外部ァ プリ ケーシ ヨ ン情報を、 テーブルと して表示する。 これらの情報は 所定のサンプリ ング間隔 (図 1 6 の C ) により、 リ アルタイムに更 新される。
上記状況モニタ (閲覧) の主たる役割は次のとおりである。
所定のサンプリ ング間隔ごとに、 ユーザ (図 1 5 の Eに示すサー バ名) により選択されているサーバから、 情報 (アプリ ケー シ ョ ン プロセス情報、 外部アプ リ ケー シ ョ ン情報、 メ モ リ情報、 口 グ情報
) を取得し、 画面 5 5 の表示を更新する。
も し、 アプリ ケー シ ョ ンプロセスが保持あるいは接続状態または 待機状態 (図 1 5 の D ) から解放されない、 あるいは C P Uを占有 したまま一定時間が経過した、 というような警告が発生した場合、
テーブルの文字列の色を例えば赤に変える。
現在選択されているサーバのアプリ ケ一シ ョ ンプロセスセッ シ ョ ン情報や起動している外部アプリ ケー シ ョ ン情報がテーブルに表示 される。
図 1 7 はディ スプレイ上における第 3 の表示例 (アプ リ ケ一シ ョ ン設定) を示す図である。
この第 3 の表示例は、 アプリ ケーシ ョ ン設定の中で、 特にスケジ ユール設定機能について示す。 本図の Fの部分では、 アプリ ケ一シ ヨ ン I D毎に、 アプリ ケー シ ョ ン稼動スケジュールを設定し、 また Gの部分では、 設定された上記アプリ ケ一シ ョ ン I Dを反映するサ ーバを決定する。
指定のアプリ ケーシ ョ ン I Dが割り振られているアプリ ケ一シ ョ ンが呼ばれたときに、 アプリ ケーシ ョ ンプロセスをどのサブサーバ で優先的に処理させるかを指定する。
図 1 8 はディ スプレイ上における第 4 の表示例 (アプリ ケーシ ョ ン設定) を示す図である。
この第 4 の表示例は、 アプリ ケ一シ ョ ン設定画面の追加または編 集を押すと表示される設定ダイアログを表している。
ユーザがアプリ ケ一シ ョ ンを稼動させたい、 月や曜日の枠をマウ スで選択すると、 各月の日付と時間毎に、 グラ フ ィ カルな環境で稼 動スケジュールの設定をすることができる。 図 1 8 の例は、 アプリ ケーシ ヨ ンの運用を水曜日は停止させることを示している。
図 1 9 はディ スプレイ上における第 5 の表示例 (アプリ ケ一シ ョ ン設定) を示す図である。
この第 5 の表示例は、 アプリ ケ一シ ョ ンプロセス リ ソースの設定 を表している。
すなわちアプ リ ケ一 シ ョ ン I D毎に、 アプ リ ケー シ ョ ンプロセス
の予約設定をしたり、 プロ シ ジ ャーフ アイルサーチパスの指定をし たり、 H T M Lサーチパスの指定をする。
図 2 0 はディ スプレイ上における第 6 の表示例 (ログ情報の解析 ) を示す図である。
この第 6 の表示例は ログ情報の解析機能を表している。
本図の Hの部分では ログフ ァイルを 1 処理毎に分割し、 テープ ル形式で表示する。
各処理サーバ 2 , 2 のログ情報 (d smcg i . l o gの内容) を参照し て、 その解析結果をテーブルに表示する。 また指定日におけるアブ リ ケーシ ヨ ンプロセスの稼動数の累計をグラフ ( I ) と して表示す るこ と もできる。
また D S M C G I を実行した場合に、 エラーが発生したと き、 そ のエラ一情報も画面 5 5 に表示される。
図 2 1 はディ スプレイ上における第 7 の表示例 (パフ ォ ーマ ンス の解析) を示す図である。
この第 7 の表示例は、 パフ ォ ーマ ンスレポー トの解析機能を表し ている。
本図において、 J の部分では、 パフ ォ ーマ ンス . レポ一 ト フ アイ ルを 1 処理毎に分割して、 テーブル形式にて表示する。
Kの部分では 上記 Jのテーブルで選択された処理の内容を階層 的に表示する。
Lの部分では 上記 Kの部分で選択された処理についての詳細情 報を表示する。
Mの部分では 上記 Kの部分で選択された処理が含まれるプロ シ ジ ャ ーを表示する。
このパフ ォ ーマ ンスレポ一 卜の解析機能により、 あるアプリ ケー シ ヨ ンプロセスに関し、 例えば、 レスポンスが悪く メ モ リを大量に
消費する、 といったような状況のとき、 どのプロ シジャ一内のどの 部分が効率がよ く ない、 という解析をするこ とにより、 デバッ グと しての役割を果すこ とができる。
図 2 2 はディ スプレイ上における第 8 の表示例 (サーバ環境設定 ) を示す図である。
この第 8 の表示例では、 処理サーバの稼動環境の設定を表してお り、 これは設定フ ァ イ ル 5 1 (図 1 2 ) の編集機能でもある。
本図ではメ イ ン処理サーバ 2 についての稼動環境設定を示してい るが、 各サブ処理サーバ 2 ' 毎の設定フ ァイル ( 5 1 ) の編集も行 う ことができる。
処理サーバの稼動環境に関する設定は全てこの画面で、 各情報を 参照しな力くら、 行う。
その他本発明の運用機構 3 1 が有すべき機能と して、 ユーザ認証 機能と警告機能とを、 補足して説明する。
図 2 3 はディ スプレイ上におけるユーザ認証のための表示例を示 す図である。
本図において、 左上の Nがユーザ認証用のダイアログであり、 こ のダイアロ グに入力されたユーザ I Dおよびパスヮ一 ドが不正であ ると、 サーバ側運用プロセスモジュール 3 2 は起動されない。 なお 一般ユーザは情報の閲覧のみが可能であるが、 処理サーバの稼動環 境設定変更等のアクティ ブな操作はできない。 権限を有する特定ュ 一ザのみが、 これらの双方が可能である。
図 2 4 はディ スプレイ画面 5 5の左下の警告設定を押すと表示さ れるディ スプレイ上における警告ウ イ ン ドウの表示例である。
あるセ ッ シ ョ ンが指定の時間が経過しても保持あるいは接続また は待機の各状態のままで、 しかも、 サーバのメ モ リ残量が少ない、 等の条件を設定し、 警告を発するこ とができる。
本図において、 0の部分は警告を出すときの条件を指定する部分 、 Pの部分は警告が起きた場合のメ ッセージを示す部分である。 なお本発明は、 図 3 および図 4で示す統合形のゥ ブアプリ ケ一 シ ョ ン シ ステム 1 内に元々運用機構 3 1 を組み込んで市場に提供す るのが、 より好ま しい形態である。 ただし全体と しては、 図 1 に示 す構成と同じになる。
したがって、 かかるウ ェブアプリ ケー シ ョ ン システムは、 ク ライ アン 卜 4 4 からの リ クエス 卜に基づいて処理サーバにより処理すベ きアプリ ケー シ ョ ン ( A P P ) を有してなるゥ ヱブアプリ ケ一シ ョ ンシステムであって、 こ こに該システムは、 〔 1 〕 ウ ェブサーノく 1 1 と アプ リ ケ一 シ ョ ンプロ セ ス 2 4 と の間に設け られ、 セ ッ シ ョ ン 管理のための情報を記録する共有メ モ リ 1 4 , 1 4 ' および該セ ッ シ ヨ ン管理を行うセ ッ シ ョ ン管理サーバと、 〔 2〕 処理サーバ 2 , 2 ' に連携しゥ ヱブアプリ ケーショ ンシステムに対する運用に関す る処理をクライアン ト 4 4 力、らの指示に応じて行う運用モジュール 4 2 と、 〔 3〕 クライア ン ト 4 4 からの指示を受けるための通信と 、 該指示による運用モ ジ ュール 4 2 の起動とを行う通信モ ジ ュール 4 3 と、 を有して構成される。
この場合、 上記のセ ッ シ ョ ン管理サーバは、 分散管理機能を併せ 持つのが望ま しい。
また別の形態では、 ク ライアン 卜 4 4 力、らの リ クエス 卜に基づい て処理サーバにより処理すべきアプリ ケー シ ョ ン ( A P P ) を有し てなるウ ェブアプリ ケ一シ ョ ンシステムであって、 こ こに該システ ムは、 〔 1 〕 ウ ェブサーバとアプリ ケー シ ョ ンプロセス 2 4 との間 に設けられ、 複数の処理サーバ 4 1 の分散管理機能を果たす分散管 理サーバと、 〔 2〕 処理サーバ 2 , 2 ' に連携しゥヱブアプリ ケ一 シ ョ ンシステムに対する運用に関する処理をクライアン ト 4 4 カヽら
の指示に応じて行う運用モジュール 4 2 と、 〔 3〕 ク ライアン ト 4 4 からの指示を受けるための通信と、 該指示による運用モ ジュール 4 2 の起動とを行う通信モジュ ール 4 3 と、 を有して構成される。 この場合、 上記の分散管理サーバは、 セ ッ シ ョ ン管理機能を併せ 持つのが望ま しい。
以上のように本発明によれば、 図 1 〜図 6 により説明した構成の ウ ェブアプ リ ケーシ ョ ン システムによ って、 セ ッ シ ョ ン管理を可能 とするこ とができる。 また、 そのウ ェブアプリ ケー シ ョ ンシステム において、 サーバの分散管理を可能とするこ とができる。
さ らに図 7〜図 2 4 により説明した運用機構 3 1 の導入によって 、 各々が複雑かつ多様なアプリ ケ一シ ョ ンを有する多数の処理サー バが、 多数のユーザによって利用されるような統合形のウ ェブアブ リ ケーシ ョ ンシステムにおいて、 該システムの稼動状況に対する閲 覧、 処理サーバの稼動環境設定、 アプリ ケー シ ョ ンの稼動スケ ジ ュ ール設定、 ならびにログおよびパフ ォ一マ ンスの解析等を含む種々 の運用を、 大掛かりな仕組みを導入することなしに、 管轄権限をも つた個々のユーザが個々の状況に応じて、 自由にかつ容易に行う こ とができる。 また各ユーザの秘密も万全に保持される。