(57)【要約】【課題】  同時に処理する処理要求電文の数が過大となる前に電文中継処理機能の多重化の度合いを増加させることができるようにする。【解決手段】  クライアントから処理要求電文が電文中継処理手段１ａ，１ｂ，１ｃで受け付けられ、処理要求電文が所定のデータ形式に変換され、処理実行手段３ａ，３ｂ，３ｃに転送される。そして、電文中継処理手段１ａ，１ｂ，１ｃが処理実行手段３ａ，３ｂ，３ｃから処理要求電文に対する処理結果電文を受け取ると、処理結果電文がクライアントに転送される。この際、電文中継処理手段１ａ，１ｂ，１ｃが同時に処理している処理要求電文の数が増加用しきい値を超えると、所定数の電文中継処理手段が新たに起動される。【選択図】  図１
2005309519.tif 000002
【特許請求の範囲】
【請求項１】
コネクションで接続したクライアントからの電文を中継するためのコンピュータで用いられる電文中継プログラムにおいて、
前記コンピュータを、
前記クライアントから処理要求電文を受け付け、前記処理要求電文を所定のデータ形式に変換して、前記処理要求電文に応じた処理を実行する処理実行手段に転送すると共に、前記処理実行手段から前記処理要求電文に対する処理結果電文を受け取ると、前記処理結果電文を前記クライアントに転送する１以上の電文中継処理手段、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が増加用しきい値を超えた場合、所定数の前記電文中継処理手段を新たに起動する電文中継処理起動手段、
として機能させることを特徴とする電文中継プログラム。
【請求項２】
前記電文中継処理手段は、自己の状態が前記処理要求電文の処理中なのか否かの状態を示す状態フラグを有しており、
前記電文中継処理起動手段は、複数の前記電文中継処理手段の前記状態フラグを参照し、前記電文中継処理手段が同時に処理している前記処理要求電文の数を判断することを特徴とする請求項１記載の電文中継プログラム。
【請求項３】
さらに前記コンピュータを、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が減少用しきい値以下となった場合、所定数の前記電文中継処理手段を停止させる電文中継処理停止手段として機能させることを特徴とする請求項１記載の電文中継プログラム。
【請求項４】
前記電文中継処理手段は、停止要求を受け付けるための停止要求受付フラグを有しており、前記停止要求受付フラグに停止を指示する値が設定されると、前記電文中継処理手段は、既に受け付けた前記処理要求電文に対する処理が完了後、自己の機能を停止し、
前記電文中継処理停止手段は、所定数の前記電文中継処理手段を停止させる際には、停止すべき前記電文中継処理手段の前記停止要求フラグに対して、停止を指示する値を設定することを特徴とする請求項３記載の電文中継プログラム。
【請求項５】
コネクションで接続したクライアントからの電文を中継するための電文中継装置において、
前記クライアントから処理要求電文を受け付け、前記処理要求電文を所定のデータ形式に変換して、前記処理要求電文に応じた処理を実行する処理実行手段に転送すると共に、前記処理実行手段から前記処理要求電文に対する処理結果電文を受け取ると、前記処理結果電文を前記クライアントに転送する１以上の電文中継処理手段と、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が増加用しきい値を超えた場合、所定数の前記電文中継処理手段を新たに起動する電文中継処理起動手段と、
を有することを特徴とする電文中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム間で受け渡される電文を中継するためのコンピュータで用いられる電文中継プログラムおよび電文中継装置に関し、特に処理多重度の自己増減機能を持つ電文中継プログラムおよび電文中継装置に関する。
【背景技術】
【０００２】
コンピュータによる業務処理の拡大に伴い、個別に開発された機能を連携させる必要が生じる。ところが、各機能は、個別にデータ構造が定義された電文によって入出力が行われる。すなわち、入出力の電文のデータ構造が統一されていない。
【０００３】
そこで、各機能間で受け渡される電文を中継する電文中継装置が提案されている。電文中継装置は、送信元の機能から出力された電文のデータ構造を、送信先の機能で処理可能なデータ構造に変換して送信先の機能に対して入力する。これにより、個別に開発された２つの機能の間で電文の受け渡しが行われ、それぞれの機能を連携させた処理が可能となる。
【０００４】
電文中継装置は、たとえば、業務全体の処理を統括するサーバに隣接して設けられる。そのサーバと異なる形式の電文が定義されたクライアントは、電文中継装置に対して電文を送信する。すると、電文中継装置が受信した電文のデータ構造を変換してサーバに対して入力する。そして、サーバからの応答の電文を受け取った電文中継装置は、その電文のデータ構造を変換してクライアントに応答する。
【０００５】
このようにクライアントからの要求を受け付けて応答を返す電文中継装置では、複数のクライアントからの要求を同時に受け付けるために、電文中継機能が多重化される。この場合、多重化された個々の電文中継機能が個別にクライアントとの間でコネクションを確立し、クライアントからの処理要求電文を受け付ける。
【０００６】
ところで、予め設定している電文中継処理機能の多重度数を超える数の処理要求電文を同時に受け付けた場合、一般的には、電文中継装置は、処理要求電文を受け付けられない旨のエラーを呼び出し元のクライアントに返す。なお、電文中継処理機能が処理待ちキューを有している場合、処理要求電文はいったん処理待ちキューに格納される。電文中継処理機能がその時点で処理中の要求に対して応答を返して処理要求を受け付けることができる状態になったときに、処理待ちキューから処理要求電文を抽出し、処理を行う。
【０００７】
ただし、処理要求電文を処理待ちキューに格納すると、クライアント側では応答の待ち時間が長くなる。そのため、処理要求電文が処理待ちキューに格納される機会は、できるだけ少ないことが望まれる。処理待ちキューに処理要求電文を保持する時間が発生しないようにするためには、同時に処理できる最大の処理要求電文数を想定した多重度で電文中継処理部を動作させることが必要である。
【０００８】
なお、サーバで行う処理としては、クライアントからの要求に応じて適宜起動可能な処理機能もある。このような処理機能では、プロセスやスレッド数を可変にする技術が考えられている。
【０００９】
たとえば、クライアント計算機から発行される要求の数と、サーバ制御情報記憶部に定義された負荷条件とに基づいて、サーバプロセスの生成および削除を行うサーバ計算機が考えられている（たとえば、特許文献１参照）。
【００１０】
また別の手法では、クライアントからの要求に応じてマスタプロセスにおいて、その要求に処理するスレッドを生成する。マスタプロセス内のスレッド数が一定値を超えると、スレーブプロセスを生成し、それまで実行していた処理を引き継がせる。これにより、クライアントからの要求に応じて並列処理可能な処理機能の数を増加させることができる（たとえば、特許文献２参照）。
【特許文献１】特開平５−１２２２６号公報
【特許文献２】特開平７−１５２５９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、電文中継機能は予め起動され、クライアントからの要求の受付を待機する必要があるため、特許文献１，２の技術のように過大な処理要求を実際に受信してから、事後的にサーバ側の処理機能を増強する技術を適用することができない。すなわち、電文中継処理機能とクライアントとの間でコネクションが予め確立され、そのコネクションを利用して処理要求電文の受信、及び処理結果電文の送信が行われる。従って、クライアントから処理要求電文を送信する際には、事前に、コネクション確立の相手となる電文中継処理機能が存在している必要がある。
【００１２】
しかも、同時に発生した処理要求電文の数が過大となり、一部の処理要求電文が任意の電文中継処理機能に対する処理待ちキューに格納された場合、処理要求電文を受信したコネクションで処理結果電文を応答する必要がある。そのため、処理要求電文が処理待ちキューに格納されたその後、電文中継処理機能のプロセスを新たに起動しても、処理待ちキューに格納された処理要求電文の処理を、新たに起動した電文中継処理機能に実行させることができない。
【００１３】
このように、クライアントとの間のコネクションを確立する必要がある電文中継装置では、同時に処理する処理要求電文の数が過大となってから事後的に電文中継処理機能の数を増やしたのでは、処理要求電文が処理待ちキューに格納されてクライアントの待ち時間が長期化するのを防止できない。
【００１４】
なお、処理待ちキューに処理要求電文を保持する時間が発生しないようにするため、同時に入力される最大の処理要求電文数を想定した多重度で電文中継装置を動作させる方法もある。ただしこの場合、メモリ等の資源の使用効率が悪化してしまう。すなわち、同時に入力される処理要求電文数が最大数に達しない時間帯も、常に同時に入力される最大の処理要求電文数を待機する電文中継処理機能（スレッドまたはプロセス）が電文中継装置上で動作している。そのため、電文中継装置の記憶装置（メインメモリ等）を無駄に消費してしまう。
【００１５】
本発明はこのような点に鑑みてなされたものであり、同時に処理する処理要求電文の数が過大となる前に電文中継処理機能の多重化の度合いを増加させることができる電文中継プログラムおよび電文中継装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明では上記課題を解決するために、コンピュータを図１に示すように機能させる電文中継プログラムが提供される。本発明に係る電文中継プログラムは、コネクションで接続されたクライアントの電文を中継するためのものである。この電文中継プログラムにより、電文中継装置１上に図１に示すような機能が構築される。
【００１７】
１以上の電文中継処理手段１ａ，１ｂ，１ｃは、クライアントから処理要求電文を受け付け、処理要求電文を所定のデータ形式に変換して、処理要求電文に応じた処理を実行する処理実行手段３ａ，３ｂ，３ｃに転送すると共に、処理実行手段３ａ，３ｂ，３ｃから処理要求電文に対する処理結果電文を受け取ると、処理結果電文をクライアントに転送する。電文中継処理起動手段１ｊは、電文中継処理手段１ａ，１ｂ，１ｃが同時に処理している処理要求電文の数が増加用しきい値を超えた場合、所定数の電文中継処理手段を新たに起動する。
【００１８】
このような電文中継プログラムを実行するコンピュータにより、クライアントから処理要求電文が電文中継処理手段１ａ，１ｂ，１ｃで受け付けられ、処理要求電文が所定のデータ形式に変換され、処理実行手段３ａ，３ｂ，３ｃに転送される。そして、電文中継処理手段１ａ，１ｂ，１ｃが処理実行手段３ａ，３ｂ，３ｃから処理要求電文に対する処理結果電文を受け取ると、処理結果電文がクライアントに転送される。この際、電文中継処理手段１ａ，１ｂ，１ｃが同時に処理している処理要求電文の数が増加用しきい値を超えると、所定数の電文中継処理手段が新たに起動される。
【発明の効果】
【００１９】
以上説明したように本発明では、電文中継処理手段１ａ，１ｂ，１ｃが同時に処理している処理要求電文の数が増加用しきい値を超えたとき、所定数の電文中継処理手段を新たに起動するようにした。そのため、同時に実行する処理要求電文の数が少ないときは、少ない数の電文中継処理手段を起動しておくことでメモリ等の資源を効率的に利用できると共に、同時に実行する処理要求電文の数が増大したときは、電文中継処理手段の数が不足する前に新たな電文中継処理手段を起動することで、クライアントの待ち時間の増大化を防止できる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２１】
図１は、実施の形態に適用される発明の概念図である。本発明の電文中継装置１は、処理要求装置２と処理実行装置３との間に設けられている。電文中継装置１と処理要求装置２とはネットワーク４を介して接続されている。
【００２２】
ここで、電文中継装置１は、１以上の電文中継処理手段１ａ，１ｂ，１ｃと電文中継処理起動手段１ｊとを有する。電文中継処理手段１ａ，１ｂ，１ｃは、クライアント２ｂ，２ｃ，２ｄからの処理要求電文を所定のデータ形式に変換して、処理要求電文に応じた処理を実行する処理実行手段３ａ，３ｂ，３ｃに転送する。また、電文中継処理手段１ａ，１ｂ，１ｃは、処理実行手段３ａ，３ｂ，３ｃから処理要求電文に対する処理結果電文を受け取ると、処理結果電文をクライアントに転送する。
【００２３】
なお、電文中継処理手段１ａ，１ｂ，１ｃは、処理待ちキュー１ｄ，１ｅ，１ｆを備えることができる。処理待ちキュー１ｄ，１ｅ，１ｆ、はゲートウェイ２ａと電文中継処理手段１ａ，１ｂ，１ｃとの間の通信バッファ上に存在する。処理待ちキュー１ｄ，１ｅ，１ｆには、電文中継処理手段を最大数まで起動しても、電文中継処理手段の数以上の処理要求電文が同時に入力された際に、その処理要求電文が格納される。処理待ちキュー１ｄ，１ｅ，１ｆに格納された処理要求電文は、対応する電文中継処理手段１ａ，１ｂ，１ｃによって順次処理される。
【００２４】
また、電文中継処理手段１ａ，１ｂ，１ｃは、共有領域１ｇ，１ｈ，１ｉを備えることができる。共有領域１ｇ，１ｈ，１ｉは、電文中継処理起動手段１ｊとの間で共有可能な記憶領域である。共有領域１ｇ，１ｈ，１ｉには、電文中継処理手段１ａ，１ｂ，１ｃの動作状態（たとえば、処理要求電文に応じた処理を実行中か否か）を示す情報が設定される。
【００２５】
電文中継処理起動手段１ｊは、電文中継処理手段１ａ，１ｂ，１ｃが同時に処理している処理要求電文の数が増加用しきい値を超えた場合、所定数の電文中継処理手段を新たに起動する。たとえば、電文中継処理起動手段１ｊは、電文中継処理手段１ａ，１ｂ，１ｃの共有領域１ｇ，１ｈ，１ｉを監視することで、同時に処理している処理要求電文の数を把握できる。なお、増加用しきい値は、既に起動されている処理要求電文の数より少しだけ少ない数に設定される。
【００２６】
処理要求装置２は、ゲートウェイ２ａとクライアント２ｂ，２ｃ，２ｄとを有している。クライアント２ｂ，２ｃ，２ｄは、ユーザからの操作入力等に応答して、処理要求電文を出力する。ゲートウェイ２ａは、電文中継処理手段１ａ，１ｂ，１ｃとの間でコネクションを確立する。そして、ゲートウェイ２ａは、クライアント２ｂ，２ｃ，２ｄから出力された処理要求電文を、処理要求待ち状態の電文中継処理手段に対して送信する。
【００２７】
なお、ゲートウェイ２ａは、たとえば、電文中継処理手段１ａ，１ｂ，１ｃから処理要求電文に対する処理結果電文が返されたか否かによって、処理要求待ち状態の電文中継処理手段を知ることができる。すなわち、電文中継処理手段１ａ，１ｂ，１ｃに対して処理要求電文を送信してから処理結果電文が応答されるまでの間は、処理中と判断できる。
【００２８】
処理実行装置３は、複数の処理実行手段３ａ，３ｂ，３ｃを有している。処理実行手段３ａ，３ｂ，３ｃは、電文中継装置１から処理要求電文を受け取ると、その処理要求電文に応じた処理を実行する。そして、処理実行手段３ａ，３ｂ，３ｃは、実行結果を処理結果電文として電文中継装置１に渡す。
【００２９】
このようなシステムによれば、電文中継処理手段１ａ，１ｂ，１ｃは、最初に、これから形成する接続の名前がＸであることを通知して、ゲートウェイ２ａとの間でコネクションを接続する。その後、何れかのクライアントから名前Ｘを宛先として指定した処理要求電文がゲートウェイ２ａに渡される。すると、ゲートウェイ２ａは、処理要求待ち状態の電文中継処理手段を選択し、その電文中継処理手段とのコネクションを利用して処理要求電文を送信する。
【００３０】
処理要求電文を取得した電文中継処理手段は、その処理要求電文のデータ構造を処理実行手段３ａ，３ｂ，３ｃに応じたデータ構造に変換する。そして、電文中継処理手段からいずれかの処理実行手段に対して、データ構造変換後の処理要求電文が渡される。処理要求電文を受け取った処理実行手段は、処理要求電文に応じた処理を実行し、処理結果電文を電文中継処理手段に渡す。
【００３１】
処理結果電文を受け取った電文中継処理手段は、処理結果電文のデータ構造をクライアントに応じたデータ構造に変換する。そして、電文中継処理手段からクライアントに対して、データ構造変換後の処理結果電文が送信される。
【００３２】
また、電文中継処理起動手段１ｊは、電文中継処理手段１ａ，１ｂ，１ｃの動作状況を監視しており、同時に処理される処理要求電文の数が所定の増加用しきい値を超えていた場合、新たな電文中継処理手段を所定数だけ起動する。
【００３３】
処理要求電文が増加した際に新たな電文中継処理手段が起動される（多重度数が増える）ことで、その後、同時に処理される処理要求電文の数がさらに増加しても、処理要求待ち状態の電文中継処理手段を確保しておくことができる。その結果、処理要求電文が処理待ちキューに格納される可能性が低くなり、クライアント２ｂ，２ｃ，２ｄの待ち時間の長期化を防ぐことができる。しかも、同時に処理される処理要求電文の数が少ないときは、電文中継処理手段の数も少ないため、電文中継装置１のメモリ等の資源が有効に利用できる。
【００３４】
ここで、図１に示す本発明に係るシステムと従来技術とにおける電文中継処理手段の起動時期の違いについて説明する。
従来の電文中継装置は、１つの通信部と、複数の電文中継処理手段とから構成される。通信部はアドレスＸのポートをオープンしクライアントからの要求を待つ。クライアントはサーバに接続するためのポートアドレスＸを指定して通信する。この構成では、電文中継処理手段は、通信部とデータの受け渡しを行い外部との通信処理機能は実装していない。従って、要求を受信することがトリガとなって電文中継処理手段を起動するため、同時に要求が複数来ない限り電文中継処理部の多重度を増やすことができない。
【００３５】
しかも、従来は電文中継処理手段が行うトランザクションの状態管理が行われていない。そのため、予め電文中継処理手段を余分に起動した場合、同時に処理されている電文中継処理の数を計数する手段がない。そのため、予め電文中継処理手段を起動しておいたとしても、待ち状態の電文中継処理手段の有無を把握することができなかった。
【００３６】
一方、図１に示すように、本発明に係るシステムでは、電文中継処理手段１ａ，１ｂ，１ｃは、外部との通信機能が実装されている。この通信方式では、起動時に多重化してまとめて電文中継処理手段１ａ，１ｂ，１ｃを起動できる。さらに、共有領域を用いて電文中継処理手段１ａ，１ｂ，１ｃの状態を把握できるようにしたため、処理要求電文の処理中である電文中継処理手段の数を電文中継処理起動手段１ｊが把握できる。その結果、処理要求電文の処理中である電文中継処理手段の数が増加用しきい値を超えたときに、多重度を増やすために新たな電文中継処理手段を起動することが可能となる。この際、新たに電文中継処理手段を起動する際には、複数の電文中継処理手段をまとめて起動することも可能である。
【００３７】
以下、本発明の実施の形態について具体的に説明する。
［第１の実施の形態］
第１の実施の形態は、業務処理を行う２つのアプリケーションサーバを連携させる電文中継装置に本発明の機能を適用したシステムである。企業等の業務をコンピュータシステムで処理する場合、あるアプリケーションサーバにおける業務処理において、別のアプリケーションサーバの持つ業務処理機能を使用しなければならない場合がある。この場合、別のアプリケーションサーバに業務処理を要求する処理要求電文と、業務処理結果を受信する処理結果電文とを、電文中継装置を介して通信することができる。この形態をとるシステム連携では、要求を出力し結果を受信するシステム側の業務処理が、即時性を要求する場合が多い。
【００３８】
また、この形態で同時に大量の業務処理を処理しなければならない場合においても、個々の業務処理のレスポンスが劣化しないことを要求する場合が多い。そこで、電文中継装置に本発明を適用して電文中継機能の多重化数を制御することで、レスポンスの劣化を防止することができる。
【００３９】
図２は、本発明の第１の実施の形態のシステム構成例を示す図である。第１の発明の実施の形態は、電文中継装置１００、電文中継装置１００に接続されたアプリケーションサーバ２１０、アプリケーションサーバ２１０に接続されたデータベースサーバ２２０、ネットワーク１０を介して接続された複数のクライアント２１，２２，・・・２ｎと電文中継装置１００との間で設けられたアプリケーションサーバ２３０で構成される。
【００４０】
電文中継装置１００は、他のシステムから処理要求電文を受け付け、処理結果電文を呼び出し元に返す機能を持つ。この機能を実現するために電文中継装置１００は、複数の電文中継処理部１１１，１１２，・・・，１１ｎ、予め記憶装置に格納された環境定義ファイル１２０、電文中継処理起動部１３０、および電文中継処理停止部１４０で構成される。なお、電文中継処理部１１１，１１２，・・・，１１ｎ、電文中継処理起動部１３０、および電文中継処理停止部１４０は、アプリケーションプログラムを電文中継装置１００が実行することによって実現する機能である。すなわち、電文中継処理部１１１，１１２，・・・，１１ｎ、電文中継処理起動部１３０、及び電文中継処理停止部１４０それぞれが、電文中継装置１００内のプロセスとして存在する。なお、任意の数の電文中継処理部を、１プロセス内の複数のスレッドとして電文中継装置１００内に生成することもできる。
【００４１】
電文中継処理部１１１，１１２，・・・，１１ｎは、それぞれが電文の中継処理を行う。１以上の電文中継処理部１１１，１１２，・・・，１１ｎは同時に動作することができ、複数の処理要求電文を並列で処理できる。環境定義ファイル１２０は、電文中継書処理に対する設定内容が登録されたファイルである。電文中継処理起動部１３０は、電文中継処理の動作状況を監視し、必要に応じて新たに電文中継処理部を起動する。電文中継処理停止部１４０は、電文中継処理の動作状況を監視し、不要と判断された電文中継処理部の停止処理を行う。
【００４２】
クライアント２１，２２，・・・２ｎは、処理要求電文をアプリケーションサーバ２３０に送信する。また、クライアント２１，２２，・・・２ｎは、処理結果電文をアプリケーションサーバ２３０から受信する。
【００４３】
アプリケーションサーバ２１０は、業務処理を実行する。アプリケーションサーバ２１０には、複数のサービス提供部２１１，２１２，・・・，２１ｎが設けられている。サービス提供部２１１，２１２，・・・，２１ｎは、予め記憶装置に格納された業務処理のためのアプリケーションプログラムをアプリケーションサーバ２１０が実行することにより実現する機能である。
【００４４】
データベースサーバ２２０は、業務処理に必要な情報を格納するデータベース２２１を管理する。
アプリケーションサーバ２３０は、ゲートウェイ２３０ａとクライアント処理部２３１，２３２，・・・，２３ｎとが設けられている。各クライアント処理部２３１，２３２，・・・，２３ｎは、クライアント２１，２２，・・・２ｎからのリモートアクセスを受け付け、アプリケーションサーバ２３０で提供される処理機能を実行する。アプリケーションサーバ２３０と他のアプリケーションサーバ２１０との間で連携して行う処理が発生すると、クライアント処理部２３１，２３２，・・・，２３ｎからゲートウェイ２３０ａに処理要求電文が渡される。
【００４５】
ゲートウェイ２３０ａは、電文中継装置１００の各電文中継処理部１１１，１１２，・・・，１１ｎとの間でコネクションを確立している。また、ゲートウェイ２３０ａは、コネクションを介して電文中継処理部１１１，１１２，・・・，１１ｎの状態を把握している。そして、ゲートウェイ２３０ａは、クライアント処理部２３１，２３２，・・・，２３ｎから処理要求電文を受け取ると、その処理要求電文を処理待ち状態の電文中継処理部に対して送信する。
【００４６】
図３は、本発明の第１の実施の形態に用いる電文中継装置のハードウェア構成例を示す図である。電文中継装置１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ(ＨＤＤ:Hard Disk Drive)１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６，１０７が接続されている。
【００４７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００４８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００４９】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００５０】
通信インタフェース１０７は、アプリケーションサーバ２００に接続される。通信インタフェース１０７は、アプリケーションサーバ２００との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第１の実施の形態の処理機能を実現することができる。なお、図３には、電文中継装置１００のハードウェア構成を示したが、クライアント２１，２２，・・・，２ｎ、アプリケーションサーバ２１０、データベースサーバ２２０、およびアプリケーションサーバ２３０も同様のハードウェア構成で実現することができる。
【００５１】
図２、図３に示した構成により、クライアント２１，２２，・・・，２ｎと電文中継装置１００との間で電文の送受信が行われる。
図４は、電文中継処理部とクライアントとの間を流れる電文を示す図である。ゲートウェイ２３０ａは、業務処理を要求する際、電文中継装置１００との間でネットワーク１０を介してコネクション３０を形成する。そして、ゲートウェイ２３０ａは、コネクション３０を介して処理要求電文３１を電文中継装置１００に送信する。業務処理が終了すると、電文中継装置１００は、処理結果電文３２を、コネクション３０を介してゲートウェイ２３０ａに送信する。
【００５２】
電文中継装置１００内部では、複数の電文中継処理部１１１，１１２，・・・，１１ｎが処理要求電文３１に応じた処理を行う。電文中継処理部１１１，１１２，・・・，１１ｎは、予め所定の数だけ起動されており、稼働状況に応じて追加起動、または動作停止の処理が行われる。
【００５３】
図５は、電文中継処理部の構成図である。個々の電文中継処理部１１１，１１２，・・・，１１ｎは、電文中継処理起動部１３０により１または複数個生成される。個々の電文中継処理部１１１，１１２，・・・，１１ｎは、自らが受け付けた処理要求電文に応じた処理の実行中に新たに処理要求電文を受け付けた場合に、新たに受け付けた処理要求電文を現在処理中の処理が終了するまで格納するための処理待ちキュー１１１ａ，１１２ａ，・・・，１１ｎａを有する。なお、図５の例では、全ての電文中継処理部１１１，１１２，・・・，１１ｎが処理待ちキュー１１１ａ，１１２ａ，・・・，１１ｎａを有しているが、処理待ちキューを持たない電文中継処理部があってもよい。
【００５４】
電文中継処理停止部１４０は、動作中の電文中継処理部１１１，１１２，・・・，１１ｎを、処理要求電文に応じた処理の実行状況に応じて停止する。
また、各電文中継処理部１１１，１１２，・・・，１１ｎは、共有領域１１１ｂ，１１２ｂ，・・・，１１ｎｂを有している。共有領域１１１ｂ，１１２ｂ，・・・，１１ｎｂは、対応する電文中継処理部１１１，１１２，・・・，１１ｎと電文中継処理起動部１３０、および電文中継処理停止部１４０とが共有可能なメモリ上の記憶領域である。
【００５５】
共有領域１１１ｂ，１１２ｂ，・・・，１１ｎｂには、対応する電文中継処理部１１１，１１２，・・・，１１ｎの状態が設定される。具体的には、共有領域１１１ｂ内に状態フラグ４０と停止要求受付フラグ５０とが設けられる。
【００５６】
状態フラグ４０は、現在の電文中継処理部１１１の動作状態を示している。状態には、「停止」、「起動」、「処理中」がある。「停止」は、要求の受付が停止している状態である。たとえば、クライアントとの間のコネクションが未形成の状態である。「起動」は、処理要求電文を受付可能な状態である。クライアントとの間のコネクションが形成されると、「起動」状態となる。「処理中」は、処理要求電文に従って処理を実行している状態である。
【００５７】
停止要求受付フラグ５０は、電文中継処理部１１１に対する機能停止を伝えるためのフラグである。停止要求受付フラグ５０は、電文中継処理停止部１４０によって設定される。停止要求受付フラグ５０に対して機能停止を示す値が設定されると、電文中継処理部１１１は機能を停止する。
【００５８】
電文中継処理起動部１３０、および電文中継処理停止部１４０は、共有領域１１１ｂ，１１２ｂ，・・・，１１ｎｂに設定された状態を監視することで、電文中継処理部１１１，１１２，・・・，１１ｎにおいて実際に並列で処理されている電文の数を認識することができる。
【００５９】
なお、図５に示す構成を処理単位１１０ａとして、この処理単位１１０ａを電文中継装置１００内に複数設けることもできる。
図６は、電文中継処理部の状態遷移を示す図である。まず、ゲートウェイ２３０ａと電文中継処理部１１１との間でコネクション３０が確立すると、共有領域の状態フラグ４０には、停止を示す値４１が設定される。次に、ゲートウェイ２３０ａから電文中継処理部１１１に対して処理要求電文３１が送信されると、共有領域１１１ｂの状態フラグ４０は起動を示す値４２に遷移する。電文中継処理部１１１で処理が行われている最中は、共有領域１１１ｂの状態フラグ４０は処理中を示す値４３に遷移する。そして、電文中継処理部１１１からゲートウェイ２３０ａに対して処理結果電文３２が送信されると、共有領域１１１ｂの状態フラグ４０は起動を示す値４２に遷移する。
【００６０】
なお、状態フラグ４０の設定の変更は、電文中継処理部１１１によって行われる。図５，図６には、電文中継処理部１１１の共有領域１１１ｂについてのみ詳細に示しているが、同様の共有領域が各電文中継処理部に１つずつ割り当てられている。そして、各共有領域の状態フラグの更新は、所有者である電文中継処理部だけが可能である。
【００６１】
次に、電文中継処理部１１１による共有領域１１１ｂの更新および内容参照手順について説明する。電文中継処理部１１１は、ゲートウェイ２３０ａとの接続を確立した後、受信待ち関数をループ処理によって実行し続ける。
【００６２】
図７は、共有領域の更新及び参照のためのループ処理を示す図である。ここで受信待ち関数は、エラー発生時を除き、戻り値でリクエストありなしを通知する。具体的には、Δｔの間処理要求電文を受信していない場合、受信待ち関数の戻り値は「リクエストなし」となる。また、たとえば時刻Ｔ１に受信待ち関数が実行され、時刻Ｔ２（Ｔ２−Ｔ１＜Δｔ）に処理要求電文を受信した場合、戻り値は「リクエストあり」となる。
【００６３】
このように、受信待ち関数によって、処理要求電文を受信すると「リクエストあり」のイベントが発生する。この受信待ち関数の戻り値が「リクエストあり」、すなわち受信イベントが通知された場合、電文中継処理部１１１は、共有領域１１１ｂの状態フラグ４０を「処理中」に変更し、業務処理を実行する。業務処理が完了すると、電文中継処理部１１１は処理結果電文をゲートウェイ２３０ａに送信し、共有領域１１１ｂの状態フラグ４０を元の「起動」に変更する。
【００６４】
ここで、「電文中継処理の最中に停止することは許されない」という絶対条件が、電文中継処理部１１１にあり、本実施の形態で使用しているトランザクション状態監視のために使用した共有領域１１１ｂは、もともとは安全に停止するための停止要求受付フラグ５０を格納するために準備したものである。
【００６５】
電文中継処理部１１１を停止させる場合、電文中継処理停止部１４０が共有領域の停止要求受付フラグをＯＮにする。この場合、各電文中継処理部１１１は、受信待ち関数復帰後、リクエストがあれば業務処理を実行した後、停止要求受付フラグがＯＮなのでループを脱出する。リクエストがなく復帰した場合、何もせずループを脱出する。このように、直接電文中継処理部１１１を強制終了せずに停止要求受付フラグ５０を使うことで、安全に停止することができる。
【００６６】
この仕組みで使用した共有領域１１１ｂに、トランザクション状態監視用の領域を追加し、処理中状態を記述する図７で下線を引いている２行のステップを追加することにより、処理中である電文中継処理部１１１と待ち状態の電文中継処理部１１１の数を電文中継処理起動部１３１が計算でき、同時に処理されている要求の数を把握できる。
【００６７】
ところで、生成された電文中継処理部１１１，１１２，・・・，１１ｎは、環境定義ファイル１２０に定義された動作環境に従って処理を行う。
図８は、環境定義ファイルのデータ構造例を示す図である。環境定義ファイル１２０には、処理業務毎の環境変数が定義されている。環境変数は、以下の（１）から（７）に示すパラメタで構成される。
【００６８】
パラメタ（１）は、クライアント業務を識別するための名称である。クライアント業務が異なると、処理要求電文３１、処理結果電文３２の内容が異なり、電文発生頻度が異なるため識別する必要がある。
【００６９】
パラメタ（２）は、最初（電文中継装置１００の起動時）に起動する電文中継処理部１１１，１１２，・・・，１１ｎの個数である。
パラメタ（３）は、初期増加しきい値である。初期増加しきい値とは、電文中継処理部１１１，１１２，・・・，１１ｎを最初に増加させる際の判断基準となる処理実行中の電文中継処理部１１１，１１２，・・・，１１ｎの数（増加用しきい値）である。処理中の電文中継処理部１１１，１１２，・・・，１１ｎの個数が最初に初期増加しきい値を超えたときに、新たな電文中継処理部が生成される。
【００７０】
パラメタ（４）は、増し分である。増し分とは、電文中継処理部１１１，１１２，・・・，１１ｎを増加させる際に、新規に生成する電文中継処理部の数である。たとえば、処理中の電文中継処理部１１１，１１２，・・・，１１ｎの個数が最初に初期増加しきい値を超えたとき、増し分で示される数の電文中継処理部が新たに生成される。
【００７１】
なお、増加用しきい値は、初期増加しきい値＋増し分×ｎ（ｎは０以上の整数）で定義される。変数ｎは初期値が０であり、電文中継処理部が増し分だけ新たに起動される毎に１ずつカウントアップされ、電文中継処理部が増し分だけ新たに停止される毎に１ずつカウントダウンされる値である。すなわち、処理中の電文中継処理部の個数が初期増加しきい値＋増し分×ｎを超えたときに、増し分で示される数の電文中継処理部が新たに起動される。
【００７２】
また、減少用しきい値は、初期増加しきい値＋増し分×（ｎ−１）で定義される。すなわち、処理中の電文中継処理部の個数が初期増加しきい値＋増し分×（ｎ−１）以下となったときに、増し分で示される数の電文中継処理部が新たに停止される。
【００７３】
パラメタ（５）は、起動する電文中継処理部１１１，１１２，・・・，１１ｎの個数の最大値である。
パラメタ（６）は、電文中継処理部１１１，１１２，・・・，１１ｎの処理状態監視間隔である。たとえば、ミリ秒単位で設定される。
【００７４】
パラメタ（７）は、電文中継処理部１１１，１１２，・・・，１１ｎが所有する処理待ちキューの数（保持キュー数）である。
以下に、第１の実施の形態におけるシステムで実行される処理を具体的に説明する。電文中継装置１００は、システム起動時にまず電文中継処理起動部１３０を起動する。
【００７５】
図９は、電文中継処理起動部の起動時の処理を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］電文中継処理起動部１３０は、起動されると環境定義ファイル１２０を読み込む。そして、電文中継処理起動部１３０は、環境定義ファイル１２０のパラメタ（１）が操作入力等により指定され、指定されたパラメタ（１）で示された業務に属するパラメタ（２）〜（６）の情報を読み込む。
【００７６】
［ステップＳ１２］電文中継処理起動部１３０は、パラメタ（２）で指定された数分の電文中継処理部１１１，１１２，・・・，１１ｎを起動する。
［ステップＳ１３］電文中継処理起動部１３０は、電文中継処理部１１１，１１２，・・・，１１ｎ起動時に、電文中継処理部１１１，１１２，・・・，１１ｎが処理中であるかどうかを判定するための処理中フラグを格納する領域を作成する。この処理中フラグを格納する領域は電文中継処理プログラムが所有し、電文中継処理起動部１３０からも参照することができる領域である。
【００７７】
［ステップＳ１４］電文中継処理起動部１３０は、電文中継処理部１１１，１１２，・・・，１１ｎの起動が終了後、電文中継処理部１１１，１１２，・・・，１１ｎの処理状態を監視するために、電文中継装置１００のプロセスとしてメモリ空間上に常駐する。電文中継処理起動部１３０は、電文中継装置１００内の記憶領域に常駐して、環境定義ファイル１２０の処理状態監視間隔で指定された時間間隔で、自ら起動した電文中継処理部が持つ共有領域をすべて参照し、並列して処理されている処理要求電文の数を認識する。
【００７８】
なお、電文中継処理起動部１３０が起動されると同時に、電文中継処理停止部１４０も同時に起動され、それぞれ電文中継装置１００のプロセスとしてメモリ空間上に常駐する。
【００７９】
電文中継装置１００の起動後、クライアント２１，２２，・・・，２ｎからアプリケーションサーバ２３０に対して操作入力がありアプリケーションサーバ２１０に対する処理要求電文が出力されると、デートウェイ２３０ａによって処理要求電文の振り分けが行われる。
【００８０】
図１０は、処理要求電文を受け付けた際のゲートウェイの処理手順を示すフローチャートである。以下、図１０に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］ゲートウェイ２３０ａは、クライアント２１，２２，・・・，２ｎからの指示に基づいてクライアント処理部２３１，２３２，・・・，２３ｎで出力される処理要求電文を待つ。
【００８１】
［ステップＳ２２］ゲートウェイ２３０ａは、クライアント処理部２３１，２３２，・・・，２３ｎで出力される処理要求電文を受信する。
［ステップＳ２３］ゲートウェイ２３０ａは、処理待ち状態の電文中継処理部があるか否かを判断する。具体的には、ゲートウェイ２３０ａは、各電文中継処理部１１１，１１２，・・・，１１ｎの共有領域１１１ｂ，１１２ｂ，・・・，１１ｎｂの状態フラグを参照し、「起動」状態の電文中継処理部がある場合、処理待ち状態の電文中継処理部があると判断する。処理待ち状態の電文中継処理部がある場合、処理がステップＳ２４に進められる。処理待ち状態の電文中継処理部がない場合、処理がステップＳ２５に進められる。
【００８２】
［ステップＳ２４］ゲートウェイ２３０ａは、処理待ち状態の電文中継処理部に対して、ステップＳ２２で受信した処理要求電文を渡す。その後、処理がステップＳ２１に進められる。
【００８３】
［ステップＳ２５］ゲートウェイ２３０ａは、処理中の電文中継処理部のいずれかに対して、ステップＳ２２で受信した処理要求電文を渡す。なお、このとき送信される処理要求電文は、処理待ちキューへの格納対象となる。その後、処理がステップＳ２１に進められる。
【００８４】
図１１は、処理待ちキューへの格納対象の電文中継処理部を受け取った電文中継処理部の処理を示すフローチャートである。以下、電文中継処理部１１１が処理要求電文を受信した場合を想定して、図１１に示す処理をステップ番号に沿って説明する。
【００８５】
［ステップＳ２６］電文中継処理部１１１は、処理待ちキューを有するか否かを判断する。処理待ちキューを有していれば処理がステップＳ２７に進められる。処理待ちキューを有していなければ、処理がステップＳ２９に進められる。
【００８６】
［ステップＳ２７］電文中継処理部１１１は、処理待ちキューに空きがあるか否かを判断する。空きがあれば処理がステップＳ２８に進められる。空きがなければ処理がステップＳ２９に進められる。
【００８７】
［ステップＳ２８］電文中継処理部１１１は、空きのある処理待ちキューに対して、受信した処理要求電文を格納する。
［ステップＳ２９］電文中継処理部１１１は、受信した処理要求電文の処置結果がエラーであることを示す処置結果電文を、ゲートウェイ２３０ａに送信する。
【００８８】
図１０、図１１に示すように、処理要求電文が入力されたとき、処理待ち状態の電文中継処理部があればその電文中継処理部に処理要求電文が渡される。また、処理待ち状態の電文中継処理部がなければ、その処理要求電文は処理待機キューに格納される。
【００８９】
また、クライアントからの処理要求電文を受信した際に、処理待ちの電文中継処理部が存在せず、さらに処理待ちキューを持つ電文中継処理部も存在しない場合、クライアントに処理結果エラーが通知される。なお、電文中継処理部が処理待ちキューを持っていても、処理待ちキューの空きがない場合には、クライアントに処理結果エラーが通知される。処理待ちキューの空きがあれば、クライアントからの処理要求電文が処理待ちキューに格納される。
【００９０】
一方、起動された電文中継処理部は処理要求電文を受け取ると、その処理要求電文に応じた処理を実行する。
図１２は、電文中継処理部が行う処理の手順を示すフローチャートである。以下、図１２に示す各処理を電文中継処理部１１１が実行するものとして、図５を参照して説明する。
【００９１】
［ステップＳ３１］電文中継処理部１１１は、処理要求電文が入力されるのを待つ。
［ステップＳ３２］電文中継処理部１１１は、ゲートウェイ２３０ａから処理要求電文を取得する。
【００９２】
［ステップＳ３３］電文中継処理部１１１は、共有領域１１１ｂの状態フラグ４０を、「起動」から「処理中」に変更する。
［ステップＳ３４］電文中継処理部１１１は、アプリケーションサーバ２１０へ処理要求電文に応じたリクエストを送信する。すなわち、電文中継処理部１１１は、処理供給電文で示される要求の内容を、アプリケーションサーバ２１０で認識可能なデータ形式のリクエストに変換してアプリケーション２１０に送信する。
【００９３】
［ステップＳ３５］電文中継処理部１１１は、アプリケーションサーバ２１０からリプライを受信する。
［ステップＳ３６］電文中継処理部１１１は、クライアントへの処理結果電文を、ゲートウェイ２３０ａに対して送信する。すなわち、電文中継処理部１１１は、アプリケーションサーバ２１０からのリプライで示される処理結果を、アプリケーションサーバ２３０で認識可能なデータ形式の処理結果電文に変換してアプリケーションサーバ２３０に送信する。
【００９４】
［ステップＳ３７］電文中継処理部１１１は、共有領域１１１ｂの状態設定フラグ４０を「処理中」から「起動」に変更する。
［ステップＳ３８］電文中継処理部１１１は、処理待ちキュー１１１ａに処理要求電文があるか否かを判断する。処理要求電文が格納されていれば、処理がステップＳ３３に進められ、処理待ちキュー１１１ａの先頭に格納されている処理要求電文に応じた処理が行われる。処理要求電文が格納されていなければ、処理がステップＳ３９に進められる。
【００９５】
［ステップＳ３９］電文中継処理部１１１は、共有領域１１１ｂの停止要求受付フラグ５０がＯＮか否かを判断する。停止要求受付フラグ５０がＯＦＦであれば、処理がステップＳ３１に進められ、処理要求電文の入力待ちの状態に戻る。停止要求受付フラグ５０がＯＮであれば、電文中継処理部１１１の処理が終了する。電文中継処理部１１１が終了した場合、電文中継処理部１１１を実行するスレッドが電文中継装置１００から消去される。
【００９６】
このように、起動された電文中継処理部１１１は、取得した処理要求電文に応じた処理を順次実行する。また、処理中に他の処理要求電文が処理待ちキューに格納された場合、実行中の処理終了後、処理待ちキューに格納された処理要求電文の処理が実行される。そして、停止要求受付フラグがＯＮになると、実行中の処理が完了し、処理待ちキューに処理要求電文が格納されていないことを確認後、電文中継処理部１１１が停止する。
【００９７】
なお、電文中継装置１００に対して入力される処理要求電文が増加すると、処理待ち状態の電文中継処理部の数が減ってくる。このとき、電文中継処理起動部１３０が電文中継処理部の状態を監視し、全ての電文中継処理部の状態が処理中となる前に、新たに所定数の電文中継処理部を起動する。
【００９８】
図１３は、電文中継処理起動部による電文中継処理部の処理状態監視処理の手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。なお、図１３中のΔＴは電文中継処理部の処理状態監視間隔（図８のパラメタ（６））、ΔＸは増し分（図８のパラメタ（４））、ｑは初期増加しきい値（図８のパラメタ（３））、Ｘｍａｘは起動する電文中継処理部の個数の最大値（図８のパラメタ（５））を示す。
【００９９】
［ステップＳ４１］電文中継処理起動部１３０は、変数ｎ（ｎは０以上の整数）を０に設定する。
［ステップＳ４２］電文中継処理起動部１３０は、ΔＴの間待機する。
【０１００】
［ステップＳ４３］電文中継処理起動部１３０は、自らが起動した各電文中継処理部が所有する共有領域内の状態フラグを参照し、処理中の電文中継処理部の数を算出する。
［ステップＳ４４］電文中継処理起動部１３０は、処理中の電文中継処理部の数をＸとしたとき、その値が初期増加しきい値ｑに増し分のｎ倍を加算した値より大きいか（Ｘ＞ｑ＋ｎ×ΔＸ）か否かを判断する。処理中の電文中継処理部の数の方が大きければ、処理がステップＳ４５に進められ、そうでなければ処理がステップＳ４８に進められる。
【０１０１】
［ステップＳ４５］電文中継処理起動部１３０は、処理中の電文中継処理部の数Ｘと増し分ΔＸとを加算した値が、起動する電文中継処理部の個数の最大値Ｘｍａｘより少ないか（Ｘ＋ΔＸ＜Ｘｍａｘ）否かを判断する。最大値Ｘｍａｘより少ない場合、処理がステップＳ４７に進められる。そうでなければ処理がステップＳ４２に進められる。
【０１０２】
［ステップＳ４６］「Ｘ＋ΔＸ＜Ｘｍａｘ」の場合、電文中継処理起動部１３０は増し分ΔＸだけ新たに電文中継処理部を起動する。
［ステップＳ４７］電文中継処理起動部１３０は、変数ｎに１を加算する。その後、処理がステップＳ４４に進められる。
【０１０３】
［ステップＳ４８］電文中継処理停止部１４０は、生成した電文中継処理部の所定数停止処理を実行する。その後、処理がステップＳ４２に進められる。
このように第１の実施の形態では電文中継処理部の実行数に上限を設けている。すなわち、上記ステップＳ４５により、クライアントからの処理要求電文数が増えれば増えるほど、起動している電文中継処理プログラム数が増えていくのを避けるための処理が行われる。これにより電文中継装置１００が無限に電文中継処理部の数を増やし、電文中継装置１００のＲＡＭ１０２等の記憶装置を枯渇させることを防止することができる。
【０１０４】
さらに、ステップＳ４６でプロセスを増やしたことを考慮し、変数ｎをカウントアップすることで、次のしきい値「Ｘ＞ｑ＋ｎ×ΔＸ」がΔＸだけ増加する。変数ｎのカウントアップ後、ステップＳ４４に戻り、しきい値と処理中の電文中継処理部の数との比較が再度実行される。これによりＸが急激に増加した場合も増加の割合に応じた数の新たな電文中継処理起動部を起動することができる。
【０１０５】
また、ステップＳ４４でＮｏである場合、作成した電文中継処理部を減らす処理（ステップＳ４８）を実施する必要がある。この減らす処理を実施しなければ、クライアントから処理依頼数が減少した場合に、ステップＳ４６で増やした余分な電文中継処理部が電文中継装置１００の記憶装置を無駄に使用することになる。
【０１０６】
図１４は、電文中継処理部の停止処理手順を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］電文中継処理停止部１４０は、変数ｎが０より大きいかを判断する。変数ｎが０の場合は、減らすことのできる電文中継処理部が存在しないので、この処理を終了し、図１３に示すステップＳ４２に処理が戻される。変数ｎが１以上であれば、処理がステップＳ５２に進められる。
【０１０７】
［ステップＳ５２］電文中継処理停止部１４０は、「Ｘ≧ｑ＋（ｎ−１）×ΔＸ」が満たされるか否かを判断する。この式が満たされる場合、処理がステップＳ５３に進められる。満たされない場合、この処理を終了し、図１３に示すステップＳ４２に処理が戻される。
【０１０８】
［ステップＳ５３］電文中継処理停止部１４０は、状態フラグが「起動」である電文中継処理部をΔＸ個選択し、その電文中継処理部の停止要求受付フラグをＯＮに設定する。これにより、ΔＸ個の電文中継処理部が停止する。
【０１０９】
［ステップＳ５４］電文中継処理停止部１４０は、変数ｎの値を１だけ減算する。その後、処理がステップＳ５１に進められ、再度ステップＳ５１，Ｓ５２の判定が行われる。これにより「ｎ＝０」に達するか、「Ｘ＜ｑ＋ΔＸ×（ｎ−１）」に達するまで、電文中継処理の停止処理が繰り返される。
【０１１０】
このようにして、実行中の電文中継処理の数が減少した場合、それに応じて電文中継処理部が停止される。これにより、無駄にＲＡＭ等の資源が消費されずに済む。
以上説明したように、本発明で示す処理多重度の自己増減機能を持つ電文中継処理方式を用いると、要求を受け付けて応答を返す電文中継装置１００において、処理待ち状態の電文中継処理部が存在しない状況が発生するケースが少なくなる。これにより、エラーとなり処理が継続できない現象や、処理待ちキューへの処理要求電文の格納によるレスポンス低下という性能劣化現象が発生するケースが少なくなる。その結果、信頼性、ならびに性能の向上が実現できる。
【０１１１】
図１５は、処理待ちキュー待機時間の有無による性能劣化現象を示す図である。ここで、ゲートウェイ２３０ａが処理要求電文３１を送信する時刻をｔ１、処理結果電文３２を受信した時刻をｔ２とする。
【０１１２】
ゲートウェイ２３０ａのスループット時間ΔＴ（＝ｔ２−ｔ１）は、処理要求電文３１がネットワーク１０を通過する伝送時間ΔＴ１、電文中継処理プログラムの持つ処理待ちキュー待機時間ΔＴ２、および処理時間ΔＴ３を合計した値となる。処理時間ΔＴ３は、電文中継処理部１１１、アプリケーションサーバ２１０上のサービス提供部２１１、およびデータベースサーバ２２０のデータベース処理に必要な時間である。第１の実施の形態に示す機能を利用すれば、処理待ちキュー待機時間が発生する機会を少なくすることができ、最大ΔＴ２分のスループット時間の削減が可能になる。
【０１１３】
また、常時最大接続数を想定した多重度で電文中継装置１００上の電文中継処理部を動作させることにより性能を確保する必要がなく、電文中継装置１００の記憶装置を有効に使用することができる。以下、常時最大接続数を想定して電文中継処理部を多重化した場合と、第１の実施の形態によって電文中継処理部を多重化した場合とのメモリ使用容量について比較する。
【０１１４】
図１６は、常時最大接続数を想定して電文中継処理部を多重化した場合のメモリ使用量を示す図である。図１６において、横軸は同時に処理される処理要求電文の数であり、縦軸は、電文中継処理部が使用する記憶領域（メモリ容量）を示す。
【０１１５】
この例では、ゲートウェイ２３０ａから同時に要求電文送信が発生する数が５０リクエストまでは処理待ちキューを経由しないで電文中継処理を同時に実行できるように多重化を行っている。すなわち、５０個の電文中継処理部用のプロセスが電文中継装置１００上で常時動作しており、それぞれのプロセスが記憶領域を使用している。Ｙは、５０個の電文中継処理部を多重で動作させた場合に必要な電文中継装置１００上の記憶領域である。このように、ゲートウェイ２３０ａから同時に送られる処理要求電文の数が５０より少ない場合でも常にＹだけの記憶領域が使用されている。
【０１１６】
図１７は、第１の実施の形態によって電文中継処理部を多重化した場合のメモリ使用量を示す図である。図１７において、横軸は同時に処理される処理要求電文の数であり、縦軸は、電文中継処理部が使用する記憶領域（メモリ容量）を示す。
【０１１７】
図１７の例も図１６と同様に、ゲートウェイ２３０ａから同時に処理要求電文が送信される数が５０リクエストまでは処理待ちキューを経由しないで電文中継処理を実施できるように多重化した場合を示している。このグラフは、図８で示した環境定義ファイル１２０において、初期電文中継処理部の数を３０、初期増加しきい値を２５、増し分を１０とした場合を想定している。この場合、ゲートウェイ２３０ａから処理要求電文が同時に発生する数に応じて、電文中継処理部が使用する電文中継装置１００上の記憶領域が増減する。
【０１１８】
ａは最初に電文中継処理プログラムを３０個起動するのに必要な記憶容量、ｙは電文中継処理部を１０個新たに起動するのに必要な記憶容量を示す。図１７に示すように、同時に処理される処理要求電文の数が２５以下のとき、使用される記憶容量はａである。同時に処理される処理要求電文の数が２５を超え３５以下のとき、使用される記憶容量はａ＋ｙである。同時に処理される処理要求電文の数が３５を超え４５以下のとき、使用される記憶容量はａ＋２ｙである。同時に処理される処理要求電文の数が４５を超えたとき、使用される記憶容量はａ＋３ｙである。
【０１１９】
図１６と図１７とを比較すると、同時に処理する処理要求電文の数が４０までは、本方式を使用しない場合よりも使用する電文中継装置上の記憶領域が少ないことが分かる。
このように、第１の実施の形態では、増加時しきい値を超える数の処理要求電文を受け付けた際に、自動的に電文中継装置の多重度数を増やし、受け付け可能な数を増加する方式を実装した。これにより、予め設定している電文中継装置の多重度数を超える数の処理要求電文を受け付けた場合も処理要求電文を受け付けられない旨のエラーを出さずに処理できる。
【０１２０】
また、この場合、電文中継処理部が処理待ちキューを持っていても、処理待ちキューに処理要求電文を格納することなく処理できるため、処理性能の劣化は発生しない。
さらに、処理要求電文数が減少時しきい値以下になった場合、増加した電文中継装置１００の多重度数を元に戻すようにした。これにより、同時に来る処理要求電文数が最大数に達した時間帯のみ多重度数を増やして運用し、同時に来る処理要求電文数が最大数に達しない時間帯は通常の多重度数で運用することができる。その結果、電文中継装置１００の記憶装置を有効に使用することができる。
【０１２１】
しかも、電文中継処理部を起動や停止をする際には、増し分ΔＸだけ纏めて起動または停止をするようにしている。これにより、電文中継処理部の起動や停止処理の発生頻度を抑制することができ、処理の効率化が図られる。
【０１２２】
［第２の実施の形態］
第１の実施の形態では、アプリケーションサーバ２３０で発生した処理要求電文を電文中継装置に送信していたが、電文中継装置内でクライアント機能を司るプロセス（クライアント処理部）が実行される場合もある。
【０１２３】
図１８は、第２の実施の形態のシステム構成例を示す図である。第２の実施の形態では、クライアントの機能（他の装置からのリモートアクセスに応じた情報の入出力機能）を実行するクライアント処理部３６１，３６２，・・・，３６ｎが電文中継装置３００内に設けられている。さらに、電文中継装置３００は第１の実施の形態と同様に、複数の電文中継処理部３１１，３１２，・・・，３１ｎ、環境定義ファイル３２０、電文中継処理起動部３３０、電文中継処理停止部３４０、及びゲートウェイ３５０を有している。電文中継処理部３１１，３１２，・・・，３１ｎ、環境定義ファイル３２０、電文中継処理起動部３３０、電文中継処理停止部３４０、及びゲートウェイ３５０の機能は、図２に示した第１の実施の形態の同名の要素と同じである。このように、電文中継装置３００内にクライアント処理部３６１，３６２，・・・，３６ｎを設けることで、電文中継装置３００が端末制御装置を兼ねることができる。
【０１２４】
［第３の実施の形態］
第３の実施の形態は、業務処理を連携させるシステムの具体例である。以下、企業の購買業務を支援するシステムに本発明を適用した場合の例を用いて、第３の実施の形態の構成を説明する。
【０１２５】
図１９は、第３の実施の形態のシステム構成例を示す図である。図１９に示すように、電文中継装置４００は、他の業務処理サーバ５００に接続されている。電文中継装置４００には、電文中継処理部４１１，４１２，・・・４１ｎ、環境定義ファイル４２０、電文中継処理起動部４３０、及び電文中継処理停止部４４０が設けられている。電文中継装置４００内の各要素の機能は、図２に示す第１の実施の形態の電文中継装置１００内の同名の要素と同じである。ただし、各電文中継処理部４１１，４１２，・・・４１ｎは用途が決められている。図１９の例は、電文中継処理部４１１，４１２は購買業務用に利用され、電文中継処理部４１ｎは経理業務用に利用される。
【０１２６】
また、アプリケーションサーバ２４０は、購買業務処理部２４１，２４２，・・・や経理業務処理部２４ｎを有しておりデータベースサーバ２２０のデータベース２２１を利用して、購買や経理業務を支援する。
【０１２７】
業務処理サーバ５００には、ゲートウェイ５１０、購買業務用クライアント処理部５２１，５２２，・・・，経理業務用クライアント処理部５２ｎが設けられている。ゲートウェイ５１０は、電文中継装置４００上で動作する電文中継処理部４１１，４１２，・・・，４１ｎと、複数の接続を持つことができる。また、ゲートウェイ５１０は、電文中継処理部４１１，４１２，・・・，４１ｎにおいて個々の接続で取り扱う電文を識別するための業務名称を指定することができる。さらに、ゲートウェイ５１０は、購買業務用クライアント処理部５２１，５２２，・・・や経理業務用クライアント処理部５２ｎからの要求を受け付け、購買業務用クライアント処理部５２１，５２２，・・・や経理業務用クライアント処理部５２ｎが要求する業務を識別し、相当する電文中継処理部に振り分けて、その電文中継処理部に処理要求電文を転送する。
【０１２８】
購買業務用クライアント処理部５２１，５２２，・・・は、購買部門担当者４１からの操作入力に応答して、購買業務の処理要求電文を出力する。また、購買業務用クライアント処理部５２１，５２２，・・・は、処理結果電文を受け取ると処理結果を表示する。経理業務用クライアント処理部５２ｎは、経理部門担当者４２からの操作入力に応答して、経理部門の処理要求電文を出力する。また、経理業務用クライアント処理部５２ｎは、処理結果電文を受け取ると処理結果を表示する。
【０１２９】
このように、業務処理サーバ５００内に種別の業務を持つクライアントが存在するとき、ゲートウェイ５１０は、クライアントからの要求に応じた業務を処理することのできる電文中継処理部に処理要求電文を転送する。また、ゲートウェイ５１０は、電文中継処理部からの処理結果電文を要求したクライアントに転送する。このように、ゲートウェイ５１０によって業務の内容に応じた電文の振り分けを行うことにより、電文中継装置４００では、業務の内容毎の電文中継処理部の数の制御が行われる。
【０１３０】
なお、第３の実施の形態は、図５と同様の構成を処理単位１１０ａとして、１以上の処理単位１１０ａで電文中継処理を行うことができる。すなわち、図５に示した１つの処理単位１１０ａを１つ使用し、複数の電文中継処理部を起動してもよいし、複数の処理単位１１０ａを使用し、個々の処理単位１１０ａが１つまたは複数の電文中継処理部を起動してもよい。
【０１３１】
処理単位１１０ａの数がいくつであっても、処理内容毎に複数の電文中継処理部を対応付けておくことで、ある特定の業務に対するクライアントからの処理依頼を、複数の電文中継処理で待機することができる。これにより、複数のクライアントからの処理依頼を同時に受け付けた場合でも、並行に処理することができる。
【０１３２】
［第４の実施の形態］
第４の実施の形態は、不停止型のシステムに本発明を適用した場合の例である。すなわち、電文中継装置を含むシステムを運用する場合、クライアント数の増加、個々のクライアントにおける要求数の増加等の理由から、システム構築後に環境定義ファイルのパラメタを変更しなければならない状況になることが考えられる。
【０１３３】
この場合、環境定義ファイルのパラメタを修正した後、修正した環境定義ファイルのパラメタを電文中継処理部に読み込ませるために、動作している電文中継処理部をすべて停止し、再度起動する必要がある。動作している電文中継処理部をすべて停止すると、電文中継処理部を停止してから再度起動するまでの間に、クライアントからの処理要求を処理することができなくなる。しかしながら、２４時間無停止稼動を前提としているシステムでは、このわずかな間のシステム停止も許されない場合がある。そこで、第４の実施の形態では、複数の処理単位を起動しておき、処理単位毎に再起動処理を行う。
【０１３４】
図２０は、第４の実施の形態のシステム構成例を示す図である。第４の実施の形態では、電文中継装置６００の内部構成が図２に示した第１の実施の形態と異なる。
電文中継装置６００は、電文中継処理部６１１，６１２，・・・，６１ｎ、環境定義ファイル６２０、電文中継処理起動部６３０、電文中継処理停止部６４０、及び環境定義更新部６６０を有する。電文中継処理部６１１，６１２，・・・，６１ｎ、環境定義ファイル６２０、電文中継処理起動部６３０、及び電文中継処理停止部６４０は、それぞれ図２に示した第２の実施の形態の同名の要素と同じ機能を有している。また、電文中継処理部６１１，６１２，・・・，６１ｎ、電文中継処理起動部６３０、及び電文中継処理停止部６４０が組となって処理単位６１０ａを構成しており、この処理単位６１０ａが複数設けられている。また、個々の処理単位６１０ａが１つまたは複数の電文中継処理部を起動する。
【０１３５】
環境定義更新部６６０は、電文中継装置６００による電文中継機能を停止せずに環境定義ファイル６２０の内容を更新する。また、環境定義更新部６６０は、更新された環境定義ファイル６２０の内容を、処理単位６１０ａに読み込ませる。
【０１３６】
このようなシステムによって、電文中継機能を停止せずに環境設定の変更が行われる。  図２１は、第４の実施の形態における環境定義ファイル更新処理を示すフローチャートである。ここで、電文中継装置６００上で動作している処理単位６１０ａの個数をｐ（ｐは１以上の整数）とし、電文中継装置６００上で動作している複数の処理単位６１０ａに１，２，・・・，ｐの識別番号（処理単位番号）を割り当てる。以下、図２０に示す処理をステップ番号に沿って説明する。
【０１３７】
［ステップＳ６１］環境定義更新部６６０は、ユーザからの操作入力等に応答して環境定義ファイル６２０の内容を変更する。
［ステップＳ６２］環境定義更新部６６０は、変数ｍに１を設定する。
【０１３８】
［ステップＳ６３］環境定義更新部６６０は、処理単位番号がｍ番の処理単位を停止する。
［ステップＳ６４］環境定義更新部６６０は、処理単位番号がｍ番の処理単位を起動する。起動の際に、処理単位番号によって更新後の環境定義ファイル６２０が読み込まれ、変更後の環境によって処理単位が動作する。
【０１３９】
［ステップＳ６５］環境定義更新部６６０は、変数ｍに１を加算する。
［ステップＳ６６］環境定義更新部６６０は、変数ｍがｐより大きいか否かを判断する。ｐより大きい場合、処理が終了する。ｐ以下の場合、処理がステップＳ６３に進められ、他の処理単位の再起動が実行される。
【０１４０】
このように、処理単位を１つずつ停止し、再起動する処理が、処理単位の個数分繰り返し行われる。これにより、たとえば、処理単位（ｍ）の電文中継処理部が停止していても、他の処理単位が動作しているため、システムが停止する時間、すなわちクライアントから見て処理要求を出すことができなくなる時間がゼロとなる。しかも、各処理単位が再起動されることで、電文中継処理部の環境が変更される。
【０１４１】
［他の応用例］
上記の処理機能は、コンピュータによって実現することができる。その場合、電文中継装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disk)などがある。
【０１４２】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４３】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４４】
（付記１）  コネクションで接続したクライアントからの電文を中継するためのコンピュータで用いられる電文中継プログラムにおいて、
コンピュータを、
前記クライアントから処理要求電文を受け付け、前記処理要求電文を所定のデータ形式に変換して、前記処理要求電文に応じた処理を実行する処理実行手段に転送すると共に、前記処理実行手段から前記処理要求電文に対する処理結果電文を受け取ると、前記処理結果電文を前記クライアントに転送する１以上の電文中継処理手段、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が増加用しきい値を超えた場合、所定数の前記電文中継処理手段を新たに起動する電文中継処理起動手段、
として機能させることを特徴とする電文中継プログラム。
【０１４５】
（付記２）  前記電文中継処理起動手段は、前記電文中継処理手段を新たに起動する度に、前記増加用しきい値に所定の値を加算することを特徴とする付記１記載の電文中継プログラム。
【０１４６】
（付記３）  前記電文中継処理手段は、自己の状態が前記処理要求電文の処理中なのか否かの状態を示す状態フラグを有しており、
前記電文中継処理起動手段は、複数の前記電文中継処理手段の前記状態フラグを参照し、前記電文中継処理手段が同時に処理している前記処理要求電文の数を判断することを特徴とする付記１記載の電文中継プログラム。
【０１４７】
（付記４）  前記電文中継処理手段は、前記電文中継処理起動手段と共有可能な記憶領域に、前記状態フラグを格納していることを特徴とする付記３記載の電文中継プログラム。
【０１４８】
（付記５）  さらに前記コンピュータを、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が減少用しきい値以下となった場合、所定数の前記電文中継処理手段を停止させる電文中継処理停止手段として機能させることを特徴とする付記１記載の電文中継プログラム。
【０１４９】
（付記６）  前記電文中継処理停止手段は、前記電文中継処理手段を停止させる度に、前記減少用しきい値から所定の値を減算することを特徴とする付記５記載の電文中継プログラム。
【０１５０】
（付記７）  前記電文中継処理手段は、停止要求を受け付けるための停止要求受付フラグを有しており、前記停止要求受付フラグに停止を指示する値が設定されると、前記電文中継処理手段は、既に受け付けた前記処理要求電文に対する処理が完了後、自己の機能を停止し、
前記電文中継処理停止手段は、所定数の前記電文中継処理手段を停止させる際には、停止すべき前記電文中継処理手段の前記停止要求フラグに対して、停止を指示する値を設定することを特徴とする付記５記載の電文中継プログラム。
【０１５１】
（付記８）  前記電文中継処理起動手段は、前記電文中継処理手段の同時起動数が予め設定された最大値を超えない範囲で前記電文中継処理手段を起動することを特徴とする付記１記載の電文中継プログラム。
【０１５２】
（付記９）  １以上の前記電文中継処理手段、及び前記電文中継処理起動手段の組が処理単位として複数起動され、
さらに前記コンピュータを、
前記増加用しきい値と増加時に同時に起動される前記電文中継処理手段の数とを含み、前記処理単位の起動時に読み込まれる環境定義が変更されたとき、前記処理単位を順番に再起動する環境定義変更手段として機能させることを特徴とする付記１記載の電文中継プログラム。
【０１５３】
（付記１０）  コネクションで接続したクライアントからの電文を中継するための電文中継方法において、
前記電文中継処理起動手段が、所定数の電文中継処理手段を起動し、
前記電文中継処理手段が、前記クライアントから処理要求電文を受け付け、前記処理要求電文を所定のデータ形式に変換して、前記処理要求電文に応じた処理を実行する処理実行手段に転送すると共に、前記処理実行手段から前記処理要求電文に対する処理結果電文を受け取ると、前記処理結果電文を前記クライアントに転送し、
前記電文中継処理起動手段が、前記電文中継処理手段が同時に処理している前記処理要求電文の数が増加用しきい値を超えた場合、所定数の前記電文中継処理手段を新たに起動することを特徴とする電文中継方法。
【０１５４】
（付記１１）  コネクションで接続したクライアントからの電文を中継するための電文中継装置において、
前記クライアントから処理要求電文を受け付け、前記処理要求電文を所定のデータ形式に変換して、前記処理要求電文に応じた処理を実行する処理実行手段に転送すると共に、前記処理実行手段から前記処理要求電文に対する処理結果電文を受け取ると、前記処理結果電文を前記クライアントに転送する１以上の電文中継処理手段と、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が増加用しきい値を超えた場合、所定数の前記電文中継処理手段を新たに起動する電文中継処理起動手段と、
を有することを特徴とする電文中継装置。
【０１５５】
（付記１２）  コネクションで接続したクライアントからの電文を中継するためのコンピュータで用いられる電文中継プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータを、
前記クライアントから処理要求電文を受け付け、前記処理要求電文を所定のデータ形式に変換して、前記処理要求電文に応じた処理を実行する処理実行手段に転送すると共に、前記処理実行手段から前記処理要求電文に対する処理結果電文を受け取ると、前記処理結果電文を前記クライアントに転送する１以上の電文中継処理手段、
前記電文中継処理手段が同時に処理している前記処理要求電文の数が増加用しきい値を超えた場合、所定数の前記電文中継処理手段を新たに起動する電文中継処理起動手段、
として機能させることを特徴とする電文中継プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０１５６】
【図１】実施の形態に適用される発明の概念図である。
【図２】本発明の第１の実施の形態のシステム構成例を示す図である。
【図３】本発明の第１の実施の形態に用いる電文中継装置のハードウェア構成例を示す図である。
【図４】電文中継処理部とクライアントとの間を流れる電文を示す図である。
【図５】電文中継処理部の構成図である。
【図６】電文中継処理部の状態遷移を示す図である。
【図７】共有領域の更新及び参照のためのループ処理を示す図である。
【図８】環境定義ファイルのデータ構造例を示す図である。
【図９】電文中継処理起動部の起動時の処理を示すフローチャートである。
【図１０】処理要求電文を受け付けた際のゲートウェイの処理手順を示すフローチャートである。
【図１１】処理待ちキューへの格納対象の電文中継処理部を受け取った電文中継処理部の処理を示すフローチャートである。
【図１２】電文中継処理部が行う処理の手順を示すフローチャートである。
【図１３】電文中継処理起動部による電文中継処理部の処理状態監視処理の手順を示すフローチャートである。
【図１４】電文中継処理部の停止処理手順を示すフローチャートである。
【図１５】処理待ちキュー待機時間の有無による性能劣化現象を示す図である。
【図１６】常時最大接続数を想定して電文中継処理部を多重化した場合のメモリ使用量を示す図である。
【図１７】第１の実施の形態によって電文中継処理部を多重化した場合のメモリ使用量を示す図である。
【図１８】第２の実施の形態のシステム構成例を示す図である。
【図１９】第３の実施の形態のシステム構成例を示す図である。
【図２０】第４の実施の形態のシステム構成例を示す図である。
【図２１】第４の実施の形態における環境定義ファイル更新処理を示すフローチャートである。
【符号の説明】
【０１５７】
１  電文中継装置
１ａ，１ｂ，１ｃ  電文中継処理手段
１ｄ，１ｅ，１ｆ  処理待ちキュー
１ｇ，１ｈ，１ｉ  共有領域
１ｊ  電文中継処理起動手段
２  処理要求装置
２ａ  ゲートウェイ
２ｂ、２ｃ、２ｄ  クライアント
３  処理実行装置
３ａ，３ｂ，３ｃ  処理実行手段
【図１】
2005309519.tif 000003
【図２】
2005309519.tif 000004
【図３】
2005309519.tif 000005
【図４】
2005309519.tif 000006
【図５】
2005309519.tif 000007
【図６】
2005309519.tif 000008
【図７】
2005309519.tif 000009
【図８】
2005309519.tif 000010
【図９】
2005309519.tif 000011
【図１０】
2005309519.tif 000012
【図１１】
2005309519.tif 000013
【図１２】
2005309519.tif 000014
【図１３】
2005309519.tif 000015
【図１４】
2005309519.tif 000016
【図１５】
2005309519.tif 000017
【図１６】
2005309519.tif 000018
【図１７】
2005309519.tif 000019
【図１８】
2005309519.tif 000020
【図１９】
2005309519.tif 000021
【図２０】
2005309519.tif 000022
【図２１】
2005309519.tif 000023