(57)【特許請求の範囲】
【請求項１】
コマンドを実行するサーバ装置と、前記サーバ装置に前記コマンドを実行させるクライアント装置を備え、
前記クライアント装置は、
実行させるコマンドのコマンドラインが正しいか否かの問い合わせを前記サーバ装置に送信するコマンドライン問い合わせ部と、
前記コマンドのコマンドデータを前記サーバ装置に送信するコマンドデータ送信部と、
前記コマンドのコマンド実行命令を前記サーバ装置に送信するコマンド実行命令送信部と、を有し、
前記コマンドライン問い合わせ部と前記コマンドデータ送信部の少なくともいずれかは、非同期通信で送信を実行し、
前記サーバ装置は、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信する、
コマンド実行システム。
【請求項２】
前記クライアント装置は、前記問い合わせ又は前記コマンドデータについて、正常なチェック処理又は受信処理ができなかったことを示す処理結果が前記サーバ装置から送信された場合に、前記コマンド実行命令送信部の処理を中止させる、
請求項１に記載のコマンド実行システム。
【請求項３】
前記コマンドライン問い合わせ部及び前記コマンドデータ送信部は、非同期通信で送信を実行する、
請求項１又は２に記載のコマンド実行システム。
【請求項４】
前記コマンドライン問い合わせ部は、非同期通信で送信を実行し、前記クライアント装置は、前記問い合わせについて正常なチェック処理ができなかったことを示す処理結果が前記サーバ装置から送信された場合に、前記コマンドデータ送信部の処理を中止させる、
請求項１又は２に記載のコマンド実行システム。
【請求項５】
前記コマンドデータ送信部は、前記コマンドライン問い合わせ部が前記問い合わせを前記サーバ装置に送信した後、前記コマンドデータを前記サーバ装置に送信し、
前記サーバ装置は、前記コマンドデータを受信した場合に、前記コマンドデータのコマンドについての前記問い合わせを以前に受信したか否かを判定し、前記問い合わせを以前に受信していない場合に、正常な受信処理ができなかったことを示す処理結果を前記クライアント装置に送信する、
請求項１ないし４のいずれか１項に記載のコマンド実行システム。
【請求項６】
前記コマンド実行命令送信部は、前記コマンドデータ送信部が前記コマンドデータを前記サーバ装置に送信した後、前記コマンドのコマンド実行命令を前記サーバ装置に送信し、
前記サーバ装置は、前記コマンド実行命令を受信した場合に、前記コマンド実行命令のコマンドについての前記コマンドデータを以前に受信したか否かを判定し、前記コマンドデータを以前に受信していない場合に、正常なコマンド実行処理ができなかったことを示す処理結果を前記クライアント装置に送信する、
請求項１ないし５のいずれか１項に記載のコマンド実行システム。
【請求項７】
前記コマンドライン問い合わせ部は、前記送信を同期通信で実行する、
請求項１ないし６のいずれか１項に記載のコマンド実行システム。
【請求項８】
サーバ装置にコマンドを実行させるクライアント装置であって、
実行させるコマンドのコマンドラインが正しいか否かの問い合わせを前記サーバ装置に送信するコマンドライン問い合わせ部と、
前記コマンドのコマンドデータを前記サーバ装置に送信するコマンドデータ送信部と、
前記コマンドのコマンド実行命令を前記サーバ装置に送信するコマンド実行命令送信部と、を備え、
前記コマンドライン問い合わせ部と前記コマンドデータ送信部の少なくともいずれかは、非同期通信で送信を実行し、
前記サーバ装置は、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信する、
クライアント装置。
【請求項９】
クライアント装置から要求されたコマンドを実行するサーバ装置であって、
前記サーバ装置には、前記クライアント装置から、実行するコマンドのコマンドラインが正しいか否かの問い合わせと、前記コマンドのコマンドデータと、前記コマンドのコマンド実行命令とが、前記問い合わせと前記コマンドデータの少なくともいずれかは非同期通信により送信されるように送信され、
前記サーバ装置は、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信する、
サーバ装置。
【請求項１０】
サーバ装置と、前記サーバ装置にコマンドを実行させるクライアント装置を備えたコマンド実行システムのコマンド実行方法であって、
前記クライアント装置が、実行させるコマンドのコマンドラインが正しいか否かの問い合わせを前記サーバ装置に送信するステップと、
前記クライアント装置が、前記コマンドのコマンドデータを前記サーバ装置に送信するステップと、
前記クライアント装置が、前記コマンドのコマンド実行命令を前記サーバ装置に送信するステップと、
前記サーバ装置が、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信するステップと、を備え、
前記クライアント装置は、前記問い合わせと前記コマンドデータの少なくともいずれかの送信は非同期通信で実行する、
コマンド実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコマンド実行システム、クライアント装置、サーバ装置及びコマンド実行方法に関する。
【背景技術】
【０００２】
クライアント装置とサーバ装置間において通信を行う際、通信の速度を速くするために、クライアント装置において非同期通信を行うことが提案されている。この非同期通信は、前処理の応答を待たずに通信を実行することをいい、クライアント装置側においてレスポンスを待っている間に他の処理を行えるという利点がある。他の処理を行っている際にサーバ装置からのレスポンスを受信すると、クライアント装置はレスポンスの受信処理を実行する。
【０００３】
例えば、特許文献１においては、リクエストを同期（主処理）と非同期（副処理）に分けて、同期リクエストの状態に応じて非同期リクエストの処理を制御する技術が開示されている。具体的には、クライアント装置からの主処理リクエスト時に、アプリケーション処理装置は、処理識別ＩＤの更新処理を行う。そして、クライアント装置からの副処理リクエスト時に、クライアント装置から受信した処理識別ＩＤがアプリケーション処理装置内に存在していない場合等において、アプリケーション処理装置は、エラー情報の通知を行わずに、要求された副処理を中止する。
【０００４】
また、関連技術として、特許文献２には、オペレーションシステムにおいて、端末装置から電子計算機に対し、特定のノードを対象としたコマンドを出力する技術が開示されている。ここで、電子計算機は、端末装置が１オペレーションで入力したコマンド情報について、対象となるノードに対するコマンド投入を並列に実行する。電子計算機は、投入先ノードアドレスに対応するコマンド投入タスクが全て処理済であれば、処理結果をコマンド投入元の端末装置に対して通知する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１８２０３号公報
【特許文献２】特開平６−０７５９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１においては、副処理リクエストの実行が失敗した場合に、アプリケーション処理装置は実行結果をクライアント装置に通知しない。そのため、クライアント側では、リクエスト実行が失敗した場合に、処理の正確な結果を知ることができなかった。また、特許文献２においても、電子計算機はコマンド投入タスクが全て処理済の場合にのみ処理結果を通知していたので、クライアント側では、処理が失敗の場合に、処理の正確な結果を知ることができなかった。
【０００７】
本発明は、このような問題点を解決するためになされたものであり、サーバ装置とクライアント装置間の通信時間を短縮するとともに、クライアント側でコマンド実行の結果を正確に知ることができるコマンド実行システム、クライアント装置、サーバ装置及びコマンド実行方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様におけるコマンド実行システムは、コマンドを実行するサーバ装置と、前記サーバ装置に前記コマンドを実行させるクライアント装置とを備える。前記クライアント装置は、実行させるコマンドのコマンドラインが正しいか否かの問い合わせを前記サーバ装置に送信するコマンドライン問い合わせ部と、前記コマンドのコマンドデータを前記サーバ装置に送信するコマンドデータ送信部と、前記コマンドのコマンド実行命令を前記サーバ装置に送信するコマンド実行命令送信部と、を有する。前記コマンドライン問い合わせ部と前記コマンドデータ送信部の少なくともいずれかは、非同期通信で送信を実行する。前記サーバ装置は、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信する。
【０００９】
本発明の第２の態様におけるクライアント装置は、サーバ装置にコマンドを実行させるクライアント装置であって、実行させるコマンドのコマンドラインが正しいか否かの問い合わせを前記サーバ装置に送信するコマンドライン問い合わせ部と、前記コマンドのコマンドデータを前記サーバ装置に送信するコマンドデータ送信部と、前記コマンドのコマンド実行命令を前記サーバ装置に送信するコマンド実行命令送信部と、を備える。前記コマンドライン問い合わせ部と前記コマンドデータ送信部の少なくともいずれかは、非同期通信で送信を実行する。前記サーバ装置は、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信する。
【００１０】
本発明の第３の態様におけるサーバ装置は、クライアント装置から要求されたコマンドを実行するサーバ装置である。前記サーバ装置には、前記クライアント装置から、実行するコマンドのコマンドラインが正しいか否かの問い合わせと、前記コマンドのコマンドデータと、前記コマンドのコマンド実行命令とが、前記問い合わせと前記コマンドデータの少なくともいずれかが非同期通信により送信されるように送信される。前記サーバ装置は、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信する。
【００１１】
本発明の第４の態様におけるコマンド実行方法は、サーバ装置と、前記サーバ装置にコマンドを実行させるクライアント装置とを備えたコマンド実行システムのコマンド実行方法であって、以下のステップ（ａ）〜（ｄ）を備える。
（ａ）前記クライアント装置が、実行させるコマンドのコマンドラインが正しいか否かの問い合わせを前記サーバ装置に送信するステップ、
（ｂ）前記クライアント装置が、前記コマンドのコマンドデータを前記サーバ装置に送信するステップ、
（ｃ）前記クライアント装置が、前記コマンドのコマンド実行命令を前記サーバ装置に送信するステップ、及び
（ｄ）前記サーバ装置が、前記問い合わせのチェック処理、前記コマンドデータの受信処理及び前記コマンド実行命令に基づくコマンドの実行処理を行い、各処理結果を前記クライアント装置に送信するステップ。
ここで、前記クライアント装置は、前記問い合わせと前記コマンドデータの少なくともいずれかを非同期通信で実行する。
【発明の効果】
【００１２】
本発明によれば、サーバ装置とクライアント装置間の通信時間を短縮するとともに、クライアント側でコマンド実行の結果を正確に知ることができるコマンド実行システム、クライアント装置、サーバ装置及びコマンド実行方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかるコマンド実行システムの一例を示した構成図である。
【図２】実施の形態１にかかるクライアント装置の一例を示したブロック図である。
【図３】実施の形態１にかかるコマンド実行システムの処理の一例を示したフローチャートである。
【図４】実施の形態２にかかるクライアント装置の一例を示したブロック図である。
【図５】実施の形態２にかかるサーバ装置の一例を示したブロック図である。
【図６】実施の形態２にかかるクライアント装置の非同期／同期通信制御部と、サーバ装置との間の通信処理の一例を示したシーケンス図である。
【図７】実施の形態２において、コマンドラインの正常な確認ができなかった場合におけるサーバ装置の処理例を示したシーケンス図である。
【図８】実施の形態２において、コマンドデータの正常な受信ができなかった場合におけるコマンド実行システムの処理例を示したシーケンス図である。
【図９】実施の形態２にかかるクライアント装置の処理例の詳細を示すフローチャートである。
【図１０】実施の形態２にかかるコマンドライン問い合わせ部及びコマンドデータ送信部の処理の詳細を示すフローチャートである。
【図１１Ａ】実施の形態２にかかるサーバ装置にリクエストが送信された場合における、サーバ装置の処理例の詳細を示すフローチャートである。
【図１１Ｂ】実施の形態２にかかるサーバ装置にリクエストが送信された場合における、サーバ装置の処理例の詳細を示すフローチャートである。
【図１２】実施の形態２にかかるコマンドセッション管理部が問い合わせを受けた際に実行する処理例を示したフローチャートである。
【図１３】実施の形態２にかかるセッション管理テーブルに構築されたＫｅｙ−Ｖａｌｕｅ形式の一例である。
【図１４】関連技術において、クライアントを有するクライアント装置とアプリケーションサーバを有するサーバ装置の処理をシーケンスで示したものである。
【図１５】関連技術において、サーバ装置が複数存在する場合のクライアント装置及びサーバ装置の接続関係を示したイメージ図である。
【図１６】関連技術において、クライアント及びアプリケーションサーバに修正があった状態を示したイメージ図である。
【図１７】関連技術において、クライアント装置に共通クライアント機能のみを保持させた状態を示したイメージ図である。
【図１８】関連技術において、共通クライアントを有するクライアント装置とアプリケーションサーバを有するサーバ装置の処理をシーケンスで示したものである。
【図１９】実施の形態３にかかるクライアント装置の一例を示したブロック図である。
【図２０】実施の形態３にかかるクライアント装置の非同期／同期通信制御部と、サーバ装置との間の通信処理の一例を示したシーケンス図である。
【図２１】実施の形態３において、コマンドラインの正常な確認ができなかった場合におけるコマンド実行システムの処理例を示したフローチャートである。
【発明を実施するための形態】
【００１４】
[実施の形態１]
以下、図面を参照して本発明の実施の形態について説明する。図１には、実施の形態１にかかるコマンド実行システム１の構成例が示されている。このコマンド実行システム１は、クライアント装置２とサーバ装置３を備える。クライアント装置２は、サーバ装置３にコマンドを実行させるため、ネットワーク（図示せず）を介した通信処理をサーバ装置３と実行する。サーバ装置３は、通信に応じて、コマンドを実行する。
【００１５】
図２には、クライアント装置２の一例が示されている。クライアント装置２は、コマンドライン問い合わせ部４と、コマンドデータ送信部５と、コマンド実行命令送信部６を有する。コマンドライン問い合わせ部４は、サーバ装置３に実行させるコマンドのコマンドラインが正しいか否かの問い合わせを、サーバ装置３に送信する。コマンドデータ送信部５は、実行させるコマンドのコマンドデータ（コマンドが必要とするデータ）を、サーバ装置３に送信する。コマンド実行命令送信部６は、実行させるコマンドのコマンド実行命令を、サーバ装置３に送信する。ここで、コマンドライン問い合わせ部４とコマンドデータ送信部５の少なくともいずれかは、送信を非同期通信で実行する。非同期通信とは、前処理の応答を待たずに通信を実行することをいう。
【００１６】
サーバ装置３は、コマンドライン問い合わせ部４から送信された問い合わせのチェック処理、コマンドデータ送信部５から送信されたコマンドデータの受信処理、及びコマンド実行命令送信部６から送信されたコマンド実行命令に基づくコマンドの実行処理を行う。サーバ装置３は、それぞれの処理結果をクライアント装置２に送信する。
【００１７】
なお、様々な処理を行う機能ブロックとして図２に記載されたクライアント装置２の各要素は、ハードウェア的には、メモリやその他のＩＣ（Integrated Circuit）等の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。これは、実施の形態２、３にかかる装置の各要素についても同様である。
【００１８】
図３は、実施の形態１にかかるコマンド実行システム１が実行する処理の一例を示したフローチャートである。以下、コマンド実行システム１の実行するフローについて説明する。
【００１９】
コマンドをサーバ装置３に実行させる際、コマンドライン問い合わせ部４は、サーバ装置３に実行させるコマンドのコマンドラインが正しいか否かの問い合わせを、サーバ装置３に送信する（ステップＳ１）。次に、コマンドデータ送信部５は、実行させるコマンドのコマンドデータを、サーバ装置３に送信する（ステップＳ２）。その後、コマンド実行命令送信部６は、実行させるコマンドのコマンド実行命令を、サーバ装置３に送信する（ステップＳ３）。なお、ステップＳ１とＳ２の少なくともいずれかは非同期通信で実行される。
【００２０】
サーバ装置３は、コマンドライン問い合わせ部４から送信された問い合わせのチェック処理、コマンドデータ送信部５から送信されたコマンドデータの受信処理、及びコマンド実行命令送信部６から送信されたコマンド実行命令に基づくコマンドの実行処理を行う。そして、サーバ装置３は、各処理結果をクライアント装置２に送信する（ステップＳ４）。例えば、サーバ装置３は、チェック処理、コマンドデータの受信処理、コマンドの実行処理の順に処理を実行するとともに、各処理結果をその順に送信してもよい。
【００２１】
ここで、クライアント装置２は、コマンドの実行が成功したか否かを、サーバ装置３から送信された各処理結果に基づいてユーザに通知してもよい。例えば、クライアント装置２は、送信された処理結果のうち、１つでも正常ではない結果を示す処理結果があった場合に、コマンドの実行が失敗であったことをユーザに通知してもよい。
【００２２】
以上のように、実施の形態１では、クライアント装置２において、コマンドラインが正しいか否かの問い合わせの送信とコマンドデータの送信の少なくともいずれかを、非同期通信の方法を用いて行っている。そのため、全ての送信処理を同期通信で行う場合と比較して、サーバ装置とクライアント装置間の通信時間を短縮することができる。
【００２３】
さらに、サーバ装置３は、チェック処理、コマンドデータの受信処理、コマンドの実行処理の各処理結果をクライアント装置２に送信しているため、クライアント側でコマンド実行の結果を正確に知ることができる。
【００２４】
なお、実施の形態１においては、クライアント装置、サーバ装置ともに１台ずつ設けられている例を示したが、同じ処理を実行するクライアント装置、サーバ装置ともに複数台設けられていてもよい。
【００２５】
[実施の形態２]
実施の形態２では、本発明にかかるコマンド実行システムの具体例について、さらに詳細に説明する。実施の形態２にかかるコマンド実行システム１は、図１に示した通り、クライアント装置２とサーバ装置３を備える。なお、サーバ装置３は、Ｊａｖａ（登録商標）プログラムが提供する情報管理基盤のＭＢｅａｎ（Managed Bean）サーバを有する、クライアントサーバモデルのＷｅｂサーバ又はアプリケーションサーバの装置である。
【００２６】
図４には、実施の形態２にかかるクライアント装置２の一例が示されている。クライアント装置２は、コマンドライン問い合わせ部１１と、コマンドデータ送信部１２と、コマンド実行通信命令部１３と、非同期／同期通信制御部１４を備える。このコマンドライン問い合わせ部１１〜非同期／同期通信制御部１４は、サーバ装置３を運用操作するクライアント機能を構成する。なお、図４における矢印は、リクエストの流れを示している。
【００２７】
コマンドライン問い合わせ部１１は、ユーザがコマンドの実行を指示した際に、コマンドラインの問い合わせを実行する。コマンドラインの問い合わせを実行する際に、コマンドライン問い合わせ部１１は、非同期通信管理部１７にそのリクエストを出力する。
【００２８】
コマンドデータ送信部１２は、実行されるコマンドにかかるコマンドデータの送信を実行する。また、コマンドデータ送信部１２は、後述の割り込み通知部２０からの割り込み通知を受信する割り込み受信部１５を有する。コマンドデータの送信を実行する際に、コマンドデータ送信部１２は、非同期通信管理部１７にそのリクエストを出力する。
【００２９】
コマンド実行通信命令部１３は、コマンドの実行命令を送信する処理を実行する。また、コマンド実行通信命令部１３は、割り込み通知部２０からの割り込み通知を受信する割り込み受信部１６を有する。コマンドの実行命令の送信を実行する際に、コマンド実行通信命令部１３は、同期通信管理部１８にそのリクエストを出力する。
【００３０】
非同期／同期通信制御部１４は、クライアント装置２がサーバ装置３に送信するデータに応じて、非同期通信と同期通信を切り替えて通信を実行する。非同期／同期通信制御部１４は、非同期通信管理部１７と、同期通信管理部１８と、ＭＢｅａｎサーバ通信部１９と、割り込み通知部２０を有する。非同期通信管理部１７は、コマンドライン問い合わせ部１１又はコマンドデータ送信部１２から出力されたリクエストを非同期通信でサーバ装置３に送信するように、ＭＢｅａｎサーバ通信部１９を制御してリクエストの送信を行う。同期通信管理部１８は、コマンド実行通信命令部１３から出力されたリクエストを同期通信でサーバ装置３に送信するように、ＭＢｅａｎサーバ通信部１９を制御してリクエストの送信を行う。ここで非同期通信とは、前処理の応答を待たずに通信を実行することをいい、同期通信とは、前処理の応答を待って通信を実行することをいう。
【００３１】
ＭＢｅａｎサーバ通信部１９は、非同期通信管理部１７又は同期通信管理部１８の制御に基づいて、サーバ装置３にリクエストを送信する。また、ＭＢｅａｎサーバ通信部１９は、非同期通信管理部１７又は同期通信管理部１８の制御に基づいて、サーバ装置３からリクエストの処理結果を受信する。割り込み通知部２０は、ＭＢｅａｎサーバ通信部１９が受信した処理結果に基づいて、割り込み通知を発行する。
【００３２】
図５には、サーバ装置３の一例が示されている。サーバ装置３は、ＭＢｅａｎサーバ２１と、コマンド実行処理制御部２２と、コマンドセッション管理部２３と、処理部２４を備える。このＭＢｅａｎサーバ２１〜処理部２４はアプリケーションサーバを構成する。なお、図５における矢印は、リクエストの流れを示している。サーバ装置３のアプリケーションサーバは、クライアントが複数ある場合に、各クライアントから送信されたリクエストを、クライアント毎に一意に管理する。
【００３３】
ＭＢｅａｎサーバ２１は、クライアント装置２のＭＢｅａｎサーバ通信部１９との通信を実行する。また、ＭＢｅａｎサーバ２１は、ＭＢｅａｎサーバ通信部１９から送信されるコマンドを受け付けるコマンド受付部２５を有する。
【００３４】
コマンド実行処理制御部２２は、ＭＢｅａｎサーバ２１から出力されたコマンドの実行を制御する。また、コマンド実行処理制御部２２は、リクエストを投入するための実行処理滞留キュー２６を複数有する。
【００３５】
コマンドセッション管理部２３は、コマンドのセッションの状態が現在どうであるかを管理する。また、コマンドセッション管理部２３は、コマンドのセッションの状態を格納するセッション管理テーブル２７を有する。
【００３６】
処理部２４は、コマンド実行処理制御部２２の制御に基づいて、クライアント機能を実行する。処理部２４は、コマンド確認処理部２８と、コマンドデータ受信部２９と、コマンド実行処理部３０を備える。
【００３７】
コマンド確認処理部２８は、クライアント装置２から送信されたコマンドラインを確認する。コマンドデータ受信部２９は、コマンドデータを受信する処理を実行する。コマンド実行処理部３０は、クライアント装置２から送信されたコマンド命令に基づいて、コマンドを実行する。
【００３８】
次に、コマンド実行システム１が実行する処理の流れの概略について説明する。図６は、クライアント装置２の非同期／同期通信制御部１４と、サーバ装置３との間の通信処理の一例を示したシーケンス図である。以下、図６に沿って処理の流れを説明する。
【００３９】
ユーザがクライアント装置２を操作することで、コマンドの実行が指示されると、コマンドライン問い合わせ部１１は、非同期／同期通信制御部１４の非同期通信管理部１７（図６中では「非同期」と記載）に、コマンドラインの問い合わせを出力する。非同期通信管理部１７は、ＭＢｅａｎサーバ通信部１９を制御して、コマンドラインの問い合わせを、非同期通信の手法を用いてサーバ装置３に送信する（ステップＳ１１）。
【００４０】
また、コマンドデータ送信部１２は、コマンドの実行指示に応じて、非同期通信管理部１７に、コマンドデータを出力する。非同期通信管理部１７は、ＭＢｅａｎサーバ通信部１９を制御して、コマンドデータを、非同期通信の手法を用いてサーバ装置３に送信する（ステップＳ１２）。この送信処理は、ステップＳ１１の後になされる。ここで、クライアント装置２は非同期通信を実行しているため、コマンドラインの問い合わせの確認結果をサーバ装置３から受信する前に、コマンドデータを送信することができる。また、コマンドライン問い合わせ部１１の処理とコマンドデータ送信部１２の処理は、別スレッドで実行されている。
【００４１】
サーバ装置３は、クライアント装置２が送信したコマンドラインの問い合わせを、コマンド受付部２５で受信する。その後、コマンド実行処理制御部２２は、コマンドセッション管理部２３にコマンドセッションの状態を問い合わせる。コマンドセッションの状態を問い合わせた後、コマンド実行処理制御部２２は、コマンド確認処理部２８を制御して、受信したコマンドラインの確認を実行させる（ステップＳ１３）。
【００４２】
コマンド確認処理部２８がコマンドラインを確認した後、サーバ装置３は、ＭＢｅａｎサーバ２１を用いて、コマンドラインの確認結果をクライアント装置２に送信する（ステップＳ１４）。
【００４３】
また、サーバ装置３は、クライアント装置２が送信したコマンドデータも、コマンド受付部２５で受信する。その後、コマンド実行処理制御部２２は、コマンドセッション管理部２３にコマンドセッションの状態を問い合わせる。コマンドセッションの状態を問い合わせた後、コマンド実行処理制御部２２は、コマンドデータ受信部２９を制御して、コマンドデータの受信を実行させる（ステップＳ１５）。
【００４４】
コマンドデータ受信部２９がコマンドデータを受信した後、サーバ装置３は、ＭＢｅａｎサーバ２１を用いて、コマンドデータの受信結果をクライアント装置２に送信する（ステップＳ１６）。この送信処理は、ステップＳ１４の後になされる。
【００４５】
ＭＢｅａｎサーバ通信部１９は、クライアント装置２から送信されたコマンドラインの確認結果及びコマンドデータの受信結果を受信する。非同期通信管理部１７は、受信した各処理結果が正常であるか否かを確認する（ステップＳ１７）。なお、非同期通信管理部１７は、コマンドラインの確認結果、コマンドデータの受信結果を受信する度に、それぞれの処理結果の確認を実行してもよい。
【００４６】
また、コマンド実行通信命令部１３は、コマンドの実行指示に応じて、同期通信管理部１８（図６中では「同期」と記載）に、コマンド実行命令を出力する。同期通信管理部１８は、ＭＢｅａｎサーバ通信部１９を制御して、コマンド実行命令を、同期通信の手法を用いてサーバ装置３に送信する（ステップＳ１８）。この送信処理は、非同期通信管理部１７の処理とは独立に（並列に）実行される。言い換えれば、同期通信管理部１８の処理は、コマンドライン問い合わせ部１１の処理やコマンドデータ送信部１２の処理とは別のスレッドで実行されている。そのため、非同期通信管理部１７が処理結果を確認するステップＳ１７の前に、コマンド実行命令の送信処理を実行することができる。
【００４７】
サーバ装置３は、クライアント装置２が送信したコマンド実行命令を、コマンド受付部２５で受信する。その後、コマンド実行処理制御部２２は、コマンドセッション管理部２３にコマンドセッションの状態を問い合わせる。コマンドセッションの状態を問い合わせた後、コマンド実行処理制御部２２は、コマンド実行処理部３０を制御して、コマンドの実行処理を行う（ステップＳ１９）。このように、サーバ装置３は、上位の処理の順（コマンドラインの確認、コマンドデータの受信、コマンド実行）に、各処理を実行する。
【００４８】
コマンド実行処理部３０がコマンドを実行した後、サーバ装置３は、ＭＢｅａｎサーバ２１を用いて、コマンド実行結果をクライアント装置２に送信する（ステップＳ２０）。
【００４９】
ＭＢｅａｎサーバ通信部１９は、クライアント装置２から送信されたコマンド実行結果を受信する。同期通信管理部１８は、その処理結果が正常であるか否かを確認する（ステップＳ２１）。
【００５０】
ここで、ステップＳ１７及びＳ２１において、処理結果が全て正常であると判定された場合に、同期通信管理部１８は、コマンドの実行が成功したことをクライアント装置２の画面に通知する（ステップＳ２２）。この処理を実行することで、ユーザに、コマンドの実行が成功したことを通知することができる。
【００５１】
図７に、ステップＳ１３において、コマンドラインの正常な確認ができなかった場合におけるサーバ装置３の処理例を示す。サーバ装置３は、ステップＳ１３においてコマンドラインの正常な確認ができなかった場合に、異常があることを示す確認結果をクライアント装置２に送信する（ステップＳ２３）。なお、図７におけるステップＳ１１及びＳ１２は、図６に示すステップＳ１１及びＳ１２と同じ処理であるため、説明を省略する。
【００５２】
ここで、サーバ装置３は、コマンドラインの正常な確認ができなかったため、クライアント装置２からコマンドデータが送信された場合でも、コマンドデータの受信処理を実行しない。同様に、サーバ装置３は、クライアント装置２からコマンド実行命令が送信された場合でも、コマンドの実行を行わない。換言すれば、サーバ装置３は、上位の処理で失敗した場合、それ以降の処理を実施しない。従って、コマンド実行ができないことが早期に判明した場合に、サーバ装置３が不要な処理を実行することを抑制している。
【００５３】
次に、図８に、ステップＳ１５において、コマンドデータの正常な受信ができなかった場合におけるコマンド実行システム１の処理例を示す。サーバ装置３は、ステップＳ１５においてコマンドデータの正常な受信ができなかった場合に、異常があることを示す受信結果をクライアント装置２に送信する（ステップＳ２４）。
【００５４】
非同期通信管理部１７は、受信したコマンドラインの確認結果及びコマンドデータの受信結果が正常であるか否かを確認する（ステップＳ２５）。ここで、コマンドデータの受信結果が異常であるため、非同期通信管理部１７は、同期通信管理部１８の処理を中止させるよう制御し、処理を終える（ステップＳ２６）。
【００５５】
同期通信管理部１８は、非同期通信管理部１７の制御に基づいて、処理を中止する（ステップＳ２７）。つまり、同期通信管理部１８は、ステップＳ２１に示すような処理結果の確認を実行しない。また、同期通信管理部１８は、コマンドの実行が失敗したことをユーザに通知する（ステップＳ２８）。
【００５６】
なお、サーバ装置３は、コマンドデータの正常な受信ができなかったため、クライアント装置２からコマンド実行命令が送信されているものの（ステップＳ１８）、コマンドの実行を行わない。
【００５７】
なお、ステップＳ１３において、コマンドラインの正常な確認ができなかった場合においても、同期通信管理部１８は同様に処理を中止し、コマンドの実行が失敗したことをユーザに通知する。
【００５８】
以上のように、実施の形態２の処理では、コマンドラインの確認、コマンドデータの送信、コマンドの実行の処理を１スレッドではなく複数のスレッドで分割して実行しているため、処理時間を圧縮することができる。さらに、コマンドラインの確認及びコマンドデータの送信を非同期通信で実行している。そのため、クライアント側でサーバ側へのデータ送信処理を実行した後、その処理に関するサーバ側の実行結果の受信を待つことなく、サーバ側で他の処理を実行することができる。以上のように処理を実行するため、コマンドを正常に実行した場合の動作において、コマンド実行システム１が通信に使用する時間を圧縮することができる。一例として、通信の所要時間を１／３にすることができる。
【００５９】
また、コマンド実行処理のみ同期通信を用いて実行されているため、クライアント側に正確な実行結果（コマンドの成功又は失敗）を表示することを保証している。
【００６０】
また、クライアント側には、通信機能として、ＭＢｅａｎサーバと通信可能なＭＢｅａｎサーバ通信部１９が実装されている。このため、既存のＭＢｅａｎサーバを有するＷｅｂサーバ又はアプリケーションサーバに対して、本発明の適用が可能となる。
【００６１】
図９は、クライアント装置２の処理例の詳細を示すフローチャートである。以下、図９を参照して、クライアント装置２の処理についてさらに詳しく説明する。なお、図９の処理は、ユーザがクライアント装置２においてコマンドの実行指示を入力することに応じて開始される。
【００６２】
ユーザがコマンドの実行指示を行うと、クライアント機能におけるコマンドライン問い合わせ部１１は、コマンドラインの問い合わせを実行する（ステップＳ３１）。
【００６３】
図１０は、コマンドライン問い合わせ部１１及びコマンドデータ送信部１２の処理の詳細を示すフローチャートである。以下、図１０に沿って、コマンドライン問い合わせ部１１の処理の詳細について説明する。
【００６４】
コマンドライン問い合わせ部１１は、非同期通信管理部１７に、データ（コマンドライン問い合わせ）を出力する。非同期通信管理部１７は、ＭＢｅａｎサーバ通信部１９を制御して、非同期通信でデータの送信を行う（ステップＳ４１）。ここで、コマンドライン問い合わせ部１１は、データとともに、コマンドのセッションを一意に定めるための識別子をリクエストに付与して、サーバ側に送信する。サーバ装置３は、この識別子を、コマンドセッション情報として取り扱う。
【００６５】
サーバ側に送信する識別子は、本実施形態では、「＜ホスト名＞：＜ＭＡＣアドレス＞：＜ＯＳユーザ名＞：＜アプリケーションサーバユーザ名＞：＜１６桁の任意の番号＞：＜機能名称＞」で構成される。なお、＜機能名称＞とは、通信機能を判別するための名称である。この場合、コマンドライン問い合わせ部１１は、ステップＳ４１において、以下のような識別子を一例として送信する。
「Ｔｅｓｔｈｏｓｔ：０８００２７４Ｆ４Ｂ６０：ｏｓｕｓｅｒ：ｕｓｅｒ：０００００００００００００００１：ＣＨＫ」・・・（１）
（１）において、＜ホスト名＞が「Ｔｅｓｔｈｏｓｔ」、＜ＭＡＣアドレス＞が「０８００２７４Ｆ４Ｂ６０」、＜ＯＳユーザ名＞が「ｏｓｕｓｅｒ」、＜アプリケーションサーバユーザ名＞が「ｕｓｅｒ」、＜１６桁の任意の番号＞が「０００００００００００００００１」、＜機能名称＞が「ＣＨＫ」である。なお、「ＣＨＫ」は、コマンド問い合わせ機能の機能名称である。
【００６６】
非同期通信管理部１７は、ＭＢｅａｎサーバ通信部１９がコマンドライン問い合わせについてサーバ側からの確認結果を受信した場合、返却値が正常であるか否かを判定する（ステップＳ４２）。つまり、非同期通信管理部１７は、サーバ装置３においてコマンドラインの確認が正常にできたか否かを判定する。
【００６７】
返却値が正常である場合、つまりサーバ装置３においてコマンドラインの確認が正常にできた場合には（ステップＳ４２のＹｅｓ）、非同期通信管理部１７は、割り込み通知部２０に割り込み通知を発行させない（ステップＳ４３）。返却値が異常である場合、つまりサーバ装置３においてコマンドラインの確認が正常にできなかった場合には（ステップＳ４２のＮｏ）、非同期通信管理部１７は、割り込み通知部２０に割り込み通知を発行させる（ステップＳ４４）。ここで、割り込み通知部２０は、割り込み受信部１５及び１６に対して割り込み通知を発行する。
【００６８】
図９に戻り、説明を続ける。コマンドライン問い合わせ部１１がデータ（コマンドデータ）の送信を完了した後、コマンドデータ送信部１２及びコマンド実行通信命令部１３は、それぞれが有する割り込み受信部１５及び１６に対し、割り込み通知が発行されていたか否かを判定する（ステップＳ３２）。なお、割り込み通知が発行されている場合とは、上述の通り、コマンドライン問い合わせの確認結果において、返却値が異常である場合をいう。割り込み通知が発行されていない場合とは、コマンドライン問い合わせの確認結果において返却値が正常であるか、又はサーバ側からコマンドライン問い合わせの確認結果を未だ受信していない場合をいう。
【００６９】
割り込み受信部１５に割り込み通知が発行されていた場合（ステップＳ３２のＹｅｓ）、コマンド実行通信命令部１３及び同期通信管理部１８は、割り込みがあったと判定し、コマンド実行通信の処理を終了する。このようにして、非同期通信管理部１７は割り込み通知を発行することで、同期通信管理部１８の処理を中止させるように制御している。ここで、同期通信管理部１８は、処理終了の際、コマンドの実行が失敗したことをユーザに通知する（ステップＳ３３）。ステップＳ３３の後、ＭＢｅａｎサーバ通信部１９がコマンド実行結果を受信しても、同期通信管理部１８は実行結果の判定を実行しない。
【００７０】
割り込み受信部１６に割り込み通知が発行されていた場合には、割り込み受信部１５にも割り込み通知が発行されている。このとき、コマンドデータ送信部１２は、割り込みがあったと判定し、コマンドデータ送信の処理を終了する。従って、クライアント装置２からサーバ装置３へコマンドデータは送信されない。
【００７１】
割り込み受信部１５及び１６に割り込み通知が発行されていない場合（ステップＳ３２のＮｏ）、コマンドデータ送信部１２は、非同期通信管理部１７を用いて、データ（コマンドデータ）の送信を行う（ステップＳ３４）。なお、サーバ側からコマンドライン問い合わせの確認結果を未だ受信していない場合、コマンドデータ送信部１２は、サーバ側からの確認結果の返信を待たずに、ステップＳ３４の処理を実行できる。また、コマンドライン問い合わせ部１１とコマンドデータ送信部１２とは、それぞれ別のスレッドで動作がなされる。
【００７２】
以下、図１０に沿って、コマンドデータ送信部１２の処理の詳細について説明する。コマンドデータ送信部１２は、非同期通信管理部１７に、データ（コマンドデータ）を出力する。非同期通信管理部１７は、ＭＢｅａｎサーバ通信部１９を制御して、非同期通信でデータの送信を行う（ステップＳ４２）。ここで、コマンドデータ送信部１２は、データとともに識別子をリクエストに付与してサーバ側に送信する。この識別子の詳細は、上述の通りである。なお、コマンドデータ送信部１２は、識別子の＜機能名称＞の部分を、コマンドデータ送信機能の機能名称「ＤＡＴＡ」として、識別子を送信する。
【００７３】
非同期通信管理部１７は、ＭＢｅａｎサーバ通信部１９がコマンドライン問い合わせについてサーバ側からの確認結果を受信した場合、返却値が正常であるか否かを判定する（ステップＳ４２）。つまり、非同期通信管理部１７は、サーバ装置３においてコマンドラインの確認が正常にできたか否かを判定する。
【００７４】
返却値が正常である場合、つまりサーバ装置３においてコマンドデータの受信が正常にできた場合には（ステップＳ４２のＹｅｓ）、非同期通信管理部１７は、割り込み通知部２０に対し、割り込み通知を発行させない（ステップＳ４３）。返却値が異常である場合、つまりサーバ装置３においてコマンドデータの受信が正常にできなかった場合には（ステップＳ４２のＮｏ）、非同期通信管理部１７は、割り込み通知部２０に対し、割り込み通知を発行させる（ステップＳ４４）。
【００７５】
図９に戻り、説明を続ける。コマンドデータ送信部１２がデータ（コマンドデータ）の送信を完了した後、コマンドデータ送信部１２及びコマンド実行通信命令部１３は、それぞれが有する割り込み受信部１５及び１６に対し、割り込み通知が発行されていたか否かを判定する（ステップＳ３５）。なお、割り込み通知が発行されている場合とは、コマンドライン問い合わせの確認結果及びコマンドデータについての受信結果の少なくともいずれかにおいて、返却値が異常である場合をいう。割り込み通知が発行されていない場合とは、異常な返却値を受信していない場合をいう。具体的には、以下の３つの場合が想定される。第１に、コマンドライン問い合わせの確認結果及びコマンドデータについての受信結果を受信していて、いずれの返却値も正常である場合である。第２に、コマンドライン問い合わせの確認結果について正常な返却値を受信していて、コマンドデータについての受信結果は受信していない場合である。第３に、コマンドライン問い合わせの確認結果及びコマンドデータについての受信結果を受信していない場合である。
【００７６】
割り込み受信部１６に割り込み通知が発行されていた場合（ステップＳ３５のＹｅｓ）、コマンド実行通信命令部１３及び同期通信管理部１８は、割り込みがあったと判定し、コマンド実行通信の処理を終了する。このとき、同期通信管理部１８は、コマンドの実行が失敗したことをユーザに通知する（ステップＳ３３）。
【００７７】
同様に、コマンドライン問い合わせ部１１は、コマンドライン問い合わせの処理を終了する。従って、ステップＳ３３の後、ＭＢｅａｎサーバ通信部１９がコマンドライン問い合わせの受信結果を受信しても、非同期通信管理部１７は受信結果の判定を実行しない。
【００７８】
割り込み受信部１５及び１６に対し、割り込み通知が発行されていない場合には（ステップＳ３５のＮｏ）、コマンド実行通信命令部１３の通信処理を開始する（ステップＳ３６）。ここで、コマンドデータ送信部１２及びコマンド実行通信命令部１３は、それぞれが有する割り込み受信部１５及び１６に対し、割り込み通知が発行されていたか否かを判定する（ステップＳ３７）。割り込み通知が発行されていた場合の処理（ステップＳ３３）は、上述と同様であるため、説明を省略する。割り込み通知が発行されている場合及び発行されていない場合の詳細は、ステップＳ３５と同様である。
【００７９】
割り込み通知が発行されていない場合（ステップＳ３７のＮｏ）、コマンド実行通信命令部１３は、同期通信管理部１８に、コマンド実行命令を出力する。同期通信管理部１８は、ＭＢｅａｎサーバ通信部１９を制御して、同期通信でコマンド実行命令の送信を行う（ステップＳ３８）。なお、サーバ側からコマンドデータの受信結果を未だ受信していない場合、コマンド実行通信命令部１３は、コマンドデータの受信結果の返信を待たずに、ステップＳ３８の処理を実行できる。
【００８０】
ここで、コマンド実行通信命令部１３は、コマンド実行命令とともに識別子をリクエストに付与してサーバ側に送信する。この識別子の詳細は、上述の通りである。なお、コマンド実行通信命令部１３は、識別子の＜機能名称＞の部分を、コマンド実行命令通信機能の機能名称「ＥＸＥ」として、識別子を送信する。
【００８１】
コマンドデータ送信部１２及びコマンド実行通信命令部１３は、それぞれが有する割り込み受信部１５及び１６に対し、割り込み通知が発行されていたか否かを判定する。割り込み通知が発行されている場合及び発行されていない場合の詳細は、ステップＳ３５と同様である。さらに、同期通信管理部１８は、ＭＢｅａｎサーバ通信部１９がコマンド実行結果についてサーバ側から実行結果を受信した場合、返却値が正常であるか否かを判定する（ステップＳ３９）。つまり、同期通信管理部１８は、サーバ装置３においてコマンド実行が正常にできたか否かを判定する。
【００８２】
割り込み通知が発行されているか、又は返却値が異常である場合（ステップＳ３９のＮｏ）、コマンド実行通信命令部１３及び同期通信管理部１８は、サーバ装置３においてコマンド実行が正常にできなかったと判定し、コマンド実行通信の処理を終了する。このとき、同期通信管理部１８は、コマンドの実行が失敗したことをユーザに通知する（ステップＳ３３）。
【００８３】
割り込み通知が発行されておらず、かつ返却値が正常である場合（ステップＳ３９のＹｅｓ）、コマンド実行通信命令部１３及び同期通信管理部１８は、サーバ装置３においてコマンド実行が正常にできたと判定し、コマンド実行通信の処理を終了する。なお、サーバ装置３は、マンドライン問い合わせの確認結果、コマンドデータについての受信結果、コマンド実行の実行結果の順に処理結果を返信する。従って、コマンド実行の実行結果の返却値が正常であり、かつ、コマンド実行の実行結果が返信されるまで割り込み通知が発行されていない場合には、サーバ装置３においてコマンド実行が正常にできたと判定することができる。このとき、同期通信管理部１８は、コマンドの実行が成功したことをユーザに通知する（ステップＳ４０）。
【００８４】
以上のように、クライアント装置２において、下位の処理が実行前又は実行中に、上位の処理において異常を示す値がサーバ装置３から返信された場合には、クライアント装置２は下位の処理の実行を中止する。この措置を行うため、クライアント装置２において不要な処理を実行する必要がなくなる。
【００８５】
図１１Ａ及び図１１Ｂは、サーバ装置３にリクエストが送信された場合における、サーバ装置３の処理例の詳細を示すフローチャートである。以下、図１１Ａ及び図１１Ｂを参照して、サーバ装置３の処理についてさらに詳しく説明する。
【００８６】
サーバ装置３では、コマンド受付部２５において、クライアント装置２から送信されたリクエストを受信する（ステップＳ５１）。コマンド受付部２５は、受信したリクエストをコマンド実行処理制御部２２に受け渡す（ステップＳ５２）。
【００８７】
コマンド実行処理制御部２２は、コマンドセッション管理部２３に対して、リクエストに付与された識別子に基づき、リクエストの問い合わせを行う（ステップＳ５３）。
【００８８】
図１２は、問い合わせを受けたコマンドセッション管理部２３が実行する処理例を示したフローチャートである。以下、図１２に沿って、コマンドセッション管理部２３が実行する処理を説明する。
【００８９】
コマンドセッション管理部２３は、受信したコマンドセッション情報（識別子）に基づいて問い合わせ処理を開始する（ステップＳ６３）。
【００９０】
コマンドセッション管理部２３は、受信したコマンドセッション情報において、機能名以外の部分をＫｅｙ部分、機能名をＶａｌｕｅ部分に分割する（ステップＳ６４）。このように分割した後、コマンドセッション管理部２３は、セッション管理テーブル２７を参照して確認を行う。ここで、セッション管理テーブル２７には、Ｋｅｙ−Ｖａｌｕｅ形式のテーブルが構築されている。
【００９１】
図１３は、セッション管理テーブル２７に構築されたＫｅｙ−Ｖａｌｕｅ形式の一例である。図１３においては、「Ｔｅｓｔｈｏｓｔ１：０８００２７４Ｆ４Ｂ６０：ｏｓＡｕｓｅｒ：ｕｓｅｒ：０００００００００００００００１」のＫｅｙに対して、Ｖａｌｕｅ「ＣＨＫ」がセッション管理テーブル２７に格納されている。また、「Ｔｅｓｔｈｏｓｔ２：０８００２７４Ｆ４Ｂ６１：ｏｓＢｕｓｅｒ：ｕｓｅｒ：０００００３００００００００１２」のＫｅｙに対して、Ｖａｌｕｅ「ＥＸＥ」がセッション管理テーブル２７に格納されている。このように、セッション管理テーブル２７は、複数のユーザ装置からのセッション情報を格納することができる。
【００９２】
図１２に戻り、説明を続ける。ステップＳ６４の後、コマンドセッション管理部２３は、リクエスト（受信したコマンドセッション情報）のＫｅｙに該当するセッションがセッション管理テーブル２７上に格納されているか否かを確認する（ステップＳ６５）。換言すれば、コマンドセッション管理部２３は、セッション管理テーブルに、リクエストのＫｅｙの記載があるか否かを確認する。
【００９３】
リクエストのＫｅｙに該当するセッションが格納されていない場合（ステップＳ６５のＮｏ）、リクエストのＶａｌｕｅ（格納対象となるＶａｌｕｅ）が「ＣＨＫ」であるか否かを判定する（ステップＳ６６）。つまり、コマンドセッション管理部２３は、サーバ装置３が受信したリクエストがコマンド問い合わせであるか否かを判定する。受信したリクエストがコマンド問い合わせ以外の処理であって、前の処理が正常に終了している場合には、該当するセッションがセッション管理テーブル２７に格納されている。従って、受信したリクエストがコマンド問い合わせ以外の処理である場合には、受信したリクエストについて、前の処理が正常に行われていないことを意味する。
【００９４】
リクエストのＶａｌｕｅが「ＣＨＫ」でない場合（ステップＳ６６のＹｅｓ）、コマンドセッション管理部２３は、セッション処理を中止する（ステップＳ６７）。そして、コマンドセッション管理部２３は、問い合わせの結果として、異常値を出力する（ステップＳ６８）。
【００９５】
リクエストのＶａｌｕｅが「ＣＨＫ」である場合（ステップＳ６６のＹｅｓ）、コマンドセッション管理部２３は、セッション管理テーブル２７を更新する（ステップＳ６９）。具体的には、コマンドセッション管理部２３は、受信したコマンドセッション情報を、セッション管理テーブル２７にＫｅｙ−Ｖａｌｕｅ形式で新たに書き込む。この処理を行うことで、コマンド問い合わせがあったことが、セッション管理テーブル２７に格納される。
【００９６】
また、コマンドセッション管理部２３は、問い合わせの結果として、正常値を出力する（ステップＳ７０）。
【００９７】
ステップＳ６５において、リクエストのＫｅｙに該当するセッションが格納されている場合（ステップＳ６５のＹｅｓ）、コマンドセッション管理部２３は、格納されている該当のセッションのＶａｌｕｅが、リクエストにおけるＶａｌｕｅの前の機能名であるか否かを判定する（ステップＳ７１）。
【００９８】
例えば、リクエストにおけるＶａｌｕｅが「ＤＡＴＡ」である場合、コマンドセッション管理部２３は、格納されている該当のセッションのＶａｌｕｅが「ＣＨＫ」であるか否かを判定する。また、リクエストにおけるＶａｌｕｅが「ＥＸＥ」である場合、コマンドセッション管理部２３は、格納されている該当のセッションのＶａｌｕｅが「ＤＡＴＡ」であるか否かを判定する。リクエストがあったユーザ装置に関して、前のリクエストが正常に実行されている場合、前のリクエストにおけるセッションがセッション管理テーブル２７に格納される。従って、コマンドセッション管理部２３は、前の処理が正常に行われたか否かを、ステップＳ７１で判定している。
【００９９】
格納されている該当のセッションのＶａｌｕｅが、リクエストにおけるＶａｌｕｅの前の機能名でない場合（ステップＳ７１のＮｏ）、コマンドセッション管理部２３は、セッション処理を中止するとともに（ステップＳ６７）、異常値を出力する（ステップＳ６８）。
【０１００】
格納されている該当のセッションのＶａｌｕｅが、リクエストにおけるＶａｌｕｅの前の機能名である場合（ステップＳ７１のＹｅｓ）、コマンドセッション管理部２３は、セッション管理テーブル２７に格納された該当のセッションのＶａｌｕｅを、リクエストにおけるＶａｌｕｅに更新する（ステップＳ７２）。そして、コマンドセッション管理部２３は、問い合わせの結果として、正常値を出力する（ステップＳ７３）。
【０１０１】
図１１Ａ及び図１１Ｂに戻り、サーバ装置３の処理の説明を続ける。コマンド実行処理制御部２２は、コマンドセッション管理部２３が出力した値が、正常値か異常値であるか（問い合わせ結果が正常か否か）を判定する（ステップＳ５４）。
【０１０２】
問い合わせ結果が異常であった場合には（ステップＳ５４のＮｏ）、コマンド実行処理制御部２２は、ＭＢｅａｎサーバ２１を用いて、クライアント装置２に対して、異常値を含む処理結果を返信する。そして、コマンド実行処理制御部２２は、処理を終了する（ステップＳ５５）。このため、コマンド実行処理制御部２２は、問い合わせたリクエストについての後続のリクエストがクライアント装置２から送信された場合であっても、処理部２４における処理を実行させない。後続のリクエストに対応するセッション情報について、セッション管理テーブル２７に格納された当該セッション情報が更新されていないため、コマンドセッション管理部２３は、後続のリクエストの問い合わせの結果として異常値を出力するためである。
【０１０３】
問い合わせ結果が正常であった場合には（ステップＳ５４のＹｅｓ）、コマンドセッション管理部２３は、実行処理滞留キュー２６に受信したリクエストを投入する（ステップＳ５６）。実行処理滞留キュー２６に投入されたリクエストは、リクエストの種類（Ｖａｌｕｅの値）に応じて、コマンド確認処理部２８、コマンドデータ受信部２９、コマンド実行処理部３０のいずれかで処理される。具体的には、リクエストのＶａｌｕｅの値が「ＣＨＫ」であればコマンド確認処理部２８で、値が「ＤＡＴＡ」であればコマンドデータ受信部２９で、値が「ＥＸＥ」であればコマンド実行処理部３０で、それぞれ処理される。
【０１０４】
実行処理滞留キュー２６にリクエストを投入後、コマンドセッション管理部２３は、投入したリクエストが正常に完了したか否かを判定する（ステップＳ５７）。
【０１０５】
リクエストが正常に完了しなかった場合（ステップＳ５７のＮｏ）、コマンドセッション管理部２３は、セッション管理テーブル２７に格納された、リクエストに対応するセッションを削除する（ステップＳ５８）。そして、コマンド実行処理制御部２２は、ＭＢｅａｎサーバ２１を用いて、クライアント装置２に対し、異常値を含む処理結果を返信して、処理を終了する（ステップＳ５５）。
【０１０６】
リクエストが正常に完了した場合（ステップＳ５７のＹｅｓ）、コマンドセッション管理部２３は、リクエストにおけるＶａｌｕｅが「ＥＸＥ」であるか（リクエストがコマンド実行処理であるか）否かを判定する（ステップＳ５９）。
【０１０７】
リクエストにおけるＶａｌｕｅが「ＥＸＥ」ではない（即ち「ＣＨＫ」又は「ＤＡＴＡ」である）場合（ステップＳ５９のＮｏ）、コマンド実行処理制御部２２は、ＭＢｅａｎサーバ２１を用いて、クライアント装置２に対し、正常値を含む処理結果を返信する。そして、コマンド実行処理制御部２２は、処理を終了する（ステップＳ６０）。
【０１０８】
リクエストにおけるＶａｌｕｅが「ＥＸＥ」である場合（ステップＳ５９のＹｅｓ）、コマンド実行処理制御部２２は、セッション管理テーブル２７から、リクエストに対応するセッションを削除する（ステップＳ６１）。この処理を行う理由は、セッションが最後まで正常に完了したため、セッション管理テーブル２７にそのセッション情報を保持する必要がないためである。そして、コマンド実行処理制御部２２は、ＭＢｅａｎサーバ２１を用いて、クライアント装置２に対し、正常値を含む処理結果を返信して、処理を終了する（ステップＳ６０）。
【０１０９】
クライアント装置２及びサーバ装置３が以上のように処理を実行するため、コマンド実行システム１は、図６〜図９に示す全体動作を実行することができる。
【０１１０】
クライアントサーバモデルのシステムにおいて、大規模ユーザ向けにシステムを構築する場合、サーバの実装は、ＪａｖａＥＥ（java Platform, Enterprise Edition）の仕様に則ったＪａｖａプログラムで構築されることが多い。このＪａｖａＥＥ仕様に則ったサーバは、サーバ上でユーザが作成した任意のアプリケーションを動作するものであり、一般にアプリケーションサーバと呼称される。
【０１１１】
このアプリケーションサーバは、アプリケーションサーバ毎にアプリケーション固有の運用操作を必要とする。この運用操作は、アプリケーションサーバが提供するクライアントを利用して行うことを想定している。実際に使用する場合、運用者はクライアントマシンにアプリケーションサーバの提供するクライアント機能をインストールして、そのクライアント機能を利用する。この使用ケースの一つに、ユーザがコマンドを実行するパターンがある。
【０１１２】
一般に、アプリケーションサーバを運用する場合、アプリケーションサーバの運用者は、アプリケーションサーバが用意した運用管理機能を有するクライアントを利用して、アプリケーションサーバに対して設定の変更を行っていた。このクライアントとアプリケーションサーバは、対で動作する。
【０１１３】
図１４は、クライアントを有するクライアント装置１０１と、アプリケーションサーバを有するサーバ装置１０２とにおいて、ユーザがコマンドを実行する場合の処理をシーケンスで示したものである。以下、各装置が実行する処理の概略について説明する。
【０１１４】
ユーザがクライアント装置１０１を操作することで、コマンドの実行が指示されると、クライアント装置１０１は、指示されたコマンドのコマンドラインを確認する（ステップＳ１０１）。コマンドラインの確認後、クライアント装置１０１は、コマンドの実行処理を開始する（ステップＳ１０２）。
【０１１５】
コマンドの実行処理を開始後、クライアント装置１０１は、サーバ装置１０２に対して、コマンドデータを送信する（ステップＳ１０３）。サーバ装置３は、送信されたコマンドデータを受信し（ステップＳ１０４）、その受信結果をクライアント装置１０１に送信する（ステップＳ１０５）。
【０１１６】
クライアント装置１０１は、サーバ装置３から返信された受信結果を確認し（ステップＳ１０６）、その後、サーバ装置１０２にコマンド実行命令を送信する（ステップＳ１０７）。サーバ装置３は、送信されたコマンド実行命令に基づいてコマンドを実行し（ステップＳ１０８）、コマンドの実行結果をクライアント装置１０１に送信する（ステップＳ１０９）。
【０１１７】
クライアント装置１０１は、送信されたコマンドの実行結果を確認し（ステップＳ１１０）、実行結果に基づいて、ユーザにコマンドの実行が成功したか否かを通知する（ステップＳ１１１）。
【０１１８】
以上の処理において、クライアント装置１０１とサーバ装置１０２間の通信は、同期通信を用いて実行されている。
【０１１９】
ただし、以上のようなクライアント装置１０１とサーバ装置１０２の構成には、以下のようなデメリットがあった。図１５は、サーバ装置が複数存在する場合の、サーバ装置及びクライアント装置Ｃの接続関係を示したイメージ図である。図１５において、サーバ装置は２台のサーバ装置Ａ及びＢが存在しており、サーバ装置ＡにはアプリケーションサーバＡが搭載されるとともに、サーバ装置ＢにはアプリケーションサーバＢが搭載されている。このように、アプリケーションサーバが複数存在すると、クライアント装置Ｃ（運用者の環境）に、アプリケーションサーバＡに対応するクライアントＡと、アプリケーションサーバＢに対応するクライアントＢの両方を用意する必要がある。
【０１２０】
また、図１６で示される通り、アプリケーションサーバＡ側で修正が行われると、対応するクライアントＡについても修正を行う必要がある。同様に、アプリケーションサーバＢ側で修正が行われると、対応するクライアントＢについても修正を行う必要がある。具体的には、アプリケーションサーバの修正の度に、パッチ又はバージョンアップという形式でアプリケーションサーバの修正がなされる必要があり、クライアントも同様の修正を行う必要があった。このように、アプリケーションサーバに対応するクライアントをクライアント装置側に搭載させると、アプリケーションサーバが複数存在する場合に、クライアントの用意及び更新等の管理に手間がかかってしまっていた。クライアントの更新が頻繁に行われる場合、このデメリットはさらに大きくなる。
【０１２１】
このため、昨今では、クライアント側には基盤となる機能しか保持させず、実際の処理機能をサーバ側に一括して持たせるように、クライアントとサーバの構成が変更されている。
【０１２２】
図１７は、クライアント装置Ｃに、サーバ装置Ａ及びＢに共通する共通クライアント機能（基板となる機能）のみを保持させるようにした状態を示している。サーバ装置Ａ及びＢは、クライアント装置Ｃからのコマンドに応じて、コマンドを実行可能なアプリケーションサーバＡ及びＢが、それぞれ格納されている。クライアントとサーバをこのように構成することで、クライアントの共通化が図られている。
【０１２３】
このようにクライアントとサーバを構成するとき、コマンドの実行処理は、クライアントとサーバとの間で、次の３つの処理がなされることで完了する。
（１）コマンドラインの確認
（２）コマンドデータの送信
（３）コマンドの実行
しかしながら、以上の処理を実行する際には、クライアント側にコマンドの処理機能が存在していた上述の場合と比較すると、データの送受信回数が増加する。そのため、結果として、コマンドの処理速度が遅くなることが課題となっていた。以下、この課題について詳細に説明する。
【０１２４】
図１８は、共通クライアントを有するクライアント装置１０１と、アプリケーションサーバを有するサーバ装置１０２において、ユーザがコマンドを実行する場合の処理をシーケンスで示したものである。以下、各装置が実行する処理の概略について説明する。
【０１２５】
ユーザがクライアント装置１０１を操作することで、コマンドの実行が指示されると、クライアント装置１０１は、指示されたコマンドのコマンドラインをサーバ装置１０２に確認させるため、コマンドラインをサーバ装置１０２に送信する（ステップＳ１１２）。サーバ装置３は、送信されたコマンドラインを確認し（ステップＳ１１３）、その確認結果をクライアント装置１０１に送信する（ステップＳ１１４）。
【０１２６】
クライアント装置１０１は、返信された確認結果を確認し（ステップＳ１１５）、その後、コマンドデータをサーバ装置１０２に送信する（ステップＳ１０３）。以降の処理は、図１４で示した処理と同様であるため、説明を省略する。このように、アプリケーションサーバ側でコマンドラインの確認処理を行う必要があるため、その処理に伴い、クライアントとアプリケーションサーバとの間で、ステップＳ１１２及びＳ１１４の通信が発生する。この通信のため、コマンド実行において、運用操作速度の低下が生ずる。
【０１２７】
これに対し、実施形態２にかかる発明では、クライアントとアプリケーションサーバ間の処理を、非同期／同期通信制御部１４が制御して実行する。このため、（１）〜（３）の処理において、（１）及び（２）の処理を非同期で行うことが可能となる。従って、コマンドの応答速度の向上が期待される。
【０１２８】
また、クライアント装置２は、非同期通信で送信を実行した問い合わせ又はコマンドデータについて、正常なチェック処理又は受信処理ができなかったことを示す処理結果がサーバ装置３から送信された場合に、コマンド実行通信命令部１３の処理を中止できる。具体的には、処理結果に応じて割り込み処理を行うことで、コマンド実行通信命令部１３の処理を中止させることができる。従って、コマンド実行処理が失敗した場合において、不要となったコマンド実行通信命令部１３の処理を行うことを抑制することができる。
【０１２９】
また、クライアント装置２は、問い合わせについて正常なチェック処理ができなかったことを示す処理結果がサーバ装置３から送信された場合に、コマンドデータ送信部１２の処理を中止させることができる。従って、コマンド実行処理が失敗した場合において、不要となったコマンドデータ送信部１２の処理を行うことを抑制することができる。
【０１３０】
また、サーバ装置３は、コマンド実行処理制御部２２及びコマンドセッション管理部２３を用いて、クライアント側から要求されたリクエストについてのセッション情報を確認し、処理を実行するか否かを判断している。このため、不要な処理をサーバ側で実行することを抑制することができる。また、非同期通信及び同期通信が混在していても、サーバ側で順序処理を実行することができる。
【０１３１】
また、サーバ装置３は、コマンドデータを受信した場合に、コマンドデータのコマンドについての問い合わせを以前に受信したか否かを判定する。以前に問い合わせを受信していない場合に、サーバ装置３は、正常な受信処理ができなかったことを示す処理結果をクライアント装置２に送信することができる。この処理を行うことで、クライアント側において、コマンド実行処理が失敗したことを知ることができる。
【０１３２】
また、サーバ装置３は、コマンド実行命令を受信した場合に、コマンド実行命令のコマンドについてのコマンドデータを以前に受信したか否かを判定する。サーバ装置３は、コマンドデータを以前に受信していない場合に、正常なコマンド実行処理ができなかったことを示す処理結果をクライアント装置２に送信することができる。この処理を行うことで、クライアント側において、コマンド実行処理が失敗したことを知ることができる。
【０１３３】
[実施の形態３]
実施の形態３では、非同期通信で行う処理内容を、実施の形態２から変更するバリエーションについて説明する。実施の形態２では、クライアント装置２において、コマンドラインの確認及びコマンドデータの送信を非同期通信を用いて実行し、コマンドの実行を同期通信を用いて実行した。しかしながら、コマンドラインの確認及びコマンドデータの送信のうち一方を非同期通信で実行し、他方を同期通信で実行してもよい。実施の形態３では、コマンドラインの確認を非同期通信を用いて実行し、コマンドデータの送信及びコマンドの実行を同期通信を用いて実行する例について説明する。
【０１３４】
なお、以下の説明においては、実施の形態２と同一の要素については同一の符号を付して説明を行う。また、実施の形態２と同一の説明については、適宜省略する。
【０１３５】
図１９には、実施の形態３にかかるクライアント装置２のブロック図の一例が示されている。図１９における矢印は、リクエストの流れを示している。ここで、実施の形態３にかかるコマンドデータ送信／コマンド実行通信命令部３１は、コマンドデータの送信及びコマンド実行命令を実行する際に、非同期通信管理部１７ではなく、同期通信管理部１８にそのリクエストを出力する。コマンドデータの送信及びコマンド実行命令の実行処理は、実施の形態２と異なり、１つのスレッドで実行される。
【０１３６】
コマンドデータ送信／コマンド実行通信命令部３１は、実施の形態２にかかるコマンドデータ送信部１２及びコマンド実行通信命令部１３に対応する。また、コマンドデータ送信／コマンド実行通信命令部３１は、割り込み受信部１５を備える。なお、その他のクライアント装置２の構成とサーバ装置３の構成については、実施の形態２に示した通りであるため、説明を省略する。
【０１３７】
次に、実施の形態３にかかるコマンド実行システム１が実行する処理の流れの概略について説明する。図２０は、クライアント装置２の非同期／同期通信制御部１４と、サーバ装置３との間の通信処理の一例を示したシーケンス図である。以下、図２０に沿って処理の流れを説明する。なお、図２０のステップＳ１１、Ｓ１３及びＳ１４の処理は図６と同じであるため、説明を省略する。
【０１３８】
ＭＢｅａｎサーバ通信部１９は、クライアント装置２から送信されたコマンドラインの確認結果を受信する。非同期通信管理部１７は、受信した処理結果が正常であるか否かを確認する（ステップＳ７１）。
【０１３９】
また、ユーザのコマンド実行指示に応じて、コマンドデータ送信／コマンド実行通信命令部３１は、同期通信管理部１８に、コマンドデータを出力する。ステップＳ１１のコマンドラインの送信後、同期通信管理部１８は、ＭＢｅａｎサーバ通信部１９を制御して、コマンドデータを、同期通信の手法を用いてサーバ装置３に送信する（ステップＳ７２）。ここで、コマンドラインの送信処理と、コマンドデータの送信及びコマンド実行命令の実行処理とは、異なるスレッドで実行される。また、コマンドデータの送信は、コマンドラインの問い合わせの確認結果をサーバ装置３から受信する前に（ステップＳ７１の処理の前に）実行することもできる。
【０１４０】
サーバ装置３のステップＳ１５及びＳ１６の処理は図６と同じであるため、説明を省略する。
【０１４１】
ＭＢｅａｎサーバ通信部１９は、クライアント装置２から送信されたコマンドデータの受信結果を受信する。同期通信管理部１８は、受信した処理結果が正常であるか否かを確認する（ステップＳ７３）。
【０１４２】
受信した処理結果が正常である場合、コマンドデータ送信／コマンド実行通信命令部３１は、同期通信管理部１８にコマンド実行命令を出力する。同期通信管理部１８は、ＭＢｅａｎサーバ通信部１９を制御して、コマンド実行命令を、同期通信の手法を用いてサーバ装置３に送信する（ステップＳ７４）。
【０１４３】
サーバ装置３のステップＳ１９及びＳ２０の処理は図６と同じであるため、説明を省略する。
【０１４４】
ＭＢｅａｎサーバ通信部１９は、クライアント装置２から送信されたコマンド実行結果を受信する。同期通信管理部１８は、その処理結果が正常であるか否かを確認する（ステップＳ７５）。ステップＳ２１において、処理結果が正常であると判定された場合に、同期通信管理部１８は、コマンドの実行が成功したことをクライアント装置２の画面に通知する（ステップＳ７６）。この処理を実行することで、ユーザに、コマンドの実行が成功したことを通知することができる。
【０１４５】
図２１は、ステップＳ１３において、コマンドラインの正常な確認ができなかった場合におけるコマンド実行システム１の処理例である。サーバ装置３は、ステップＳ１５においてコマンドデータの正常な受信ができなかった場合に、異常があることを示す確認結果をクライアント装置２に送信する（ステップＳ７７）。
【０１４６】
非同期通信管理部１７は、受信したコマンドラインの確認結果が正常であるか否かを確認する（ステップＳ７８）。ここで、コマンドラインの確認結果が異常であるため、非同期通信管理部１７は、同期通信管理部１８の処理を中止するように制御し、処理を終える（ステップＳ７９）。同期通信管理部１８は、非同期通信管理部１７の中止制御に基づいて、処理を中止する（ステップＳ８０）。
【０１４７】
より詳細には、非同期通信管理部１７は、割り込み通知部２０に割り込み通知を発行させることで、割り込み受信部１５に割り込み通知を受信させる。この割り込み通知の受信に応じて、コマンドデータ送信／コマンド実行通信命令部３１及び同期通信管理部１８は、割り込みがあったと判定し、処理を終了する。
【０１４８】
また、同期通信管理部１８は、コマンドの実行が失敗したことをユーザに通知する（ステップＳ８１）。
【０１４９】
以上の動作においては、コマンドデータの送信処理が非同期通信を用いて実行されるため、実施の形態２と比較すると、コマンド実行の全体の処理速度は低下する。ただし、コマンドラインの確認において問題が生じた場合、クライアント装置２におけるコマンドデータの送信及びコマンド実行の処理が両方とも中止される。また、コマンドデータの送信において問題が生じた場合、クライアント装置２におけるコマンド実行の処理が確実に中止される。そのため、コマンドラインの問い合わせ又はコマンドデータ受信のいずれかが失敗した場合に、実施の形態２と比較すると、クライアント装置２とサーバ装置３との間で通信されるデータの量を削減することが可能になる。そのため、ネットワークにかかる負荷を低減させることが出来る。
【０１５０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、クライアント装置２において、コマンドラインの確認を同期通信を用いて実行し、コマンドデータの送信を非同期通信を用いて実行し、コマンドの実行を同期通信を用いて実行してもよい。
【０１５１】
実施の形態２におけるサーバ装置は、ＭＢｅａｎサーバを有するＷｅｂサーバ装置又はアプリケーションサーバ装置として説明したが、サーバ装置はＪａｖａを使用するものに限られない。
【０１５２】
上述したクライアント装置及びサーバ装置の処理は、制御方法の１つとして、コンピュータに実行させることができる。例えば、実施の形態１に示した処理のフローを、制御プログラムとしてコンピュータに実行させてもよい。その他の処理フローについても同様にしてコンピュータに実行させることができる。
【０１５３】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１５４】
１  コマンド実行システム
２  クライアント装置
３  サーバ装置
４  コマンドライン問い合わせ部
５  コマンドデータ送信部
６  コマンド実行命令送信部
１１  コマンドライン問い合わせ部
１２  コマンドデータ送信部
１３  コマンド実行通信命令部
１４  非同期／同期通信制御部
１５、１６  割り込み受信部
１７  非同期通信管理部
１８  同期通信管理部
１９  ＭＢｅａｎサーバ通信部
２０  割り込み通知部
２１  ＭＢｅａｎサーバ
２２  コマンド実行処理制御部
２３  コマンドセッション管理部
２４  処理部
２５  コマンド受付部
２６  実行処理滞留キュー
２７  セッション管理テーブル
２８  コマンド確認処理部
２９  コマンドデータ受信部
３０  コマンド実行処理部
３１  コマンドデータ送信／コマンド実行通信命令部
【図１】
0006375803.tif 000002
【図２】
0006375803.tif 000003
【図３】
0006375803.tif 000004
【図４】
0006375803.tif 000005
【図５】
0006375803.tif 000006
【図６】
0006375803.tif 000007
【図７】
0006375803.tif 000008
【図８】
0006375803.tif 000009
【図９】
0006375803.tif 000010
【図１０】
0006375803.tif 000011
【図１１Ａ】
0006375803.tif 000012
【図１１Ｂ】
0006375803.tif 000013
【図１２】
0006375803.tif 000014
【図１３】
0006375803.tif 000015
【図１４】
0006375803.tif 000016
【図１５】
0006375803.tif 000017
【図１６】
0006375803.tif 000018
【図１７】
0006375803.tif 000019
【図１８】
0006375803.tif 000020
【図１９】
0006375803.tif 000021
【図２０】
0006375803.tif 000022
【図２１】
0006375803.tif 000023