(57)【要約】  複数クライアント１から同時大量に発生する電文処理要求c1を、各クライアント接続装置２では複数の受付部A1で電文種別毎に一次集約すると共に電文処理要求c1の電文を入力電文記憶装置４に一括格納し、更に該一次集約した電文処理要求c2を電文処理要求部A2で二次集約して電文種別毎処理装置３に電文処理要求c3として転送する。電文種別毎処理装置３では複数のクライアント接続装置２から電文処理要求c3を、電文種別毎の電文処理要求受付部A3が受け付けて更に三次集約し、対応する電文種別毎の電文処理部A4に電文処理要求c4として電文処理の要求が発生したことを通知する。電文処理要求c4を受けた電文処理部A4は、入力電文記憶装置４から未処理の電文データを一括して読み出して対応した処理を行う。クライアントからは、受付部A1にて電文処理要求を受付けた際に通知した通番により、随時、電文の処理状態の確認や処理結果の取得を行う。【特許請求の範囲】
【請求項１】
複数のクライアントから同時に電文及びその電文処理要求を受け付けて該電文処理要求を集約すると共に、該電文処理要求に係る電文を、入力電文記憶装置に一括格納する第1手段と、
該第1手段で集約した電文処理要求を受けて更に一回以上集約すると共に、該集約した電文処理要求に基づき該電文処理要求に対応した電文を、該入力電文記憶装置から一括して読み出して対応した処理を行う第2手段と
を備え、
クライアントからの電文処理要求を受付けた時に通知した通番により、クライアントから電文処理状態や電文処理結果を随時、照会可能としたことを特徴とした電文処理装置。
【請求項２】
複数のクライアントから同時に電文処理要求を受け付けて該電文処理要求を電文種別毎に一次集約すると共に該電文処理要求に係る電文を入力電文記憶装置に電文種別毎に一括格納する複数の電文受付部、及び該一次集約した電文処理要求を受けて、該電文種別毎に更に二次集約する電文処理要求部を、各々が含む複数のクライアント接続装置と、
該電文処理要求に基づき各クライアント接続装置で生成された電文処理要求を受けて、それらを更に該電文種別毎に三次集約する電文処理要求受付部、及び該電文処理要求受付部から該三次集約した電文処理要求を受けて、該電文処理要求に対応した電文データを、該入力電文記憶装置から一括して読み出し該電文種別に対応した処理を行う電文処理部を、各々が含む複数の電文種別毎処理装置と、
を備えたことを特徴とした電文処理装置。
【請求項３】
請求の範囲２において、
該電文受付部が、該クライアントから新規に要求された電文及びその電文処理要求に通番を付加する通番処理と、予め定めた件数又は予め定めた時間になるまで該電文を一旦保存し、該件数又は該時間に達した時、それまで保存した電文を該通番と共に該入力電文記憶装置に一括して書き込み、要求元のクライアントには該通番を通知することを特徴とした電文処理装置。
【請求項４】
請求の範囲３において、
該電文受付部が、各クライアントから該通番を用いた電文種別毎の確認要求を受けた時、該入力電文記憶装置から該通番に対応する電文処理状態を読み出して該クライアントに応答することを特徴とした電文処理装置。
【請求項５】
請求の範囲２において、
該電文処理要求部及び該電文処理要求受付部が、それぞれ、該電文処理要求を受けて、それぞれに予め定められた時間まで待受処理を行うことにより各集約を行い、各々が集約した電文処理要求をそれぞれ該電文処理要求受付部及び該電文処理部へ送って処理対象の電文が発生したことを通知することを特徴とした電文処理装置。
【請求項６】
請求の範囲５において、
該電文処理要求部及び該電文処理要求受付部が、それぞれ、該電文処理要求を受けると、対応する電文処理要求が発生したことを示す電文発生フラグ、及び電文の処理要求が発生したことを示す処理発生フラグがOFF状態であることを各々が確認したときのみ該電文発生フラグ、及び該処理発生フラグをON状態に設定し予め定められた時間まで該待受処理を行い、各々が集約した電文処理要求をそれぞれ該電文処理要求受付部及び該電文処理部へ送って処理対象の電文が発生したことを通知すると共に、両フラグをOFF状態に戻すことを特徴とした電文処理装置。
【請求項７】
請求の範囲４において、
該電文処理部が、該電文処理要求を受けて、該入力電文記憶装置に格納されている未処理の電文を一括して読み出すと共に、管理情報記憶装置から各電文の処理に必要な情報を参照・更新をして、各電文を処理し、それらの処理結果を処理結果記憶装置に一括して格納し、更に該入力電文記憶装置中の対応する電文を、処理済として更新することを特徴とした電文処理装置。
【請求項８】
請求の範囲７において、
該電文受付部が、各クライアントから電文種別毎の結果取得要求を受けた時、該処理結果記憶装置から処理結果を読み出して該クライアントに応答することを特徴とした電文処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電文処理装置に関し、特にＷＥＢや金融・流通のオンライン処理、大規模ネットワークのオペレーションシステム等の多数のクライアントから同時に発生する処理要求やイベント通知等の電文をリアルタイムに処理する電文処理装置に関するものである。
【背景技術】
【０００２】
ネットワークに接続されたクライアント（エンドユーザー端末や装置等）から同時多発する大量の電文（処理の要求やイベント通知等）をリアルタイムに処理するシステムにおいては、電文単位にそれを処理するタスクを割り当てて、各電文に対する処理を同時並行で多重処理することになるが、この場合、処理の多重度に応じて、システム資源は比例して大きくしなければならなかった。【０００３】
また、電文の同時並行処理は、従来より、複数の処理装置を用いて負荷分散を行うシステムにより実現されているが、電文の処理過程において参照・更新するデータをファイルやデータベース等で一元管理する場合、その並行処理によるデータ参照・更新（アクセス）が相互に競合し合いボトルネックとなる。このため、分散処理の効果が得られずに処理能力が期待されたより向上しない場合が多く、参照・更新を行うファイルやデータベースの複製を多数設けて、同期化させるような複雑なシステム形態を採らなければならなかった。【０００４】
一方、マルチ・ユーザー・データ処理環境において使用される待機深さの制限並行制御として、競合関係を解決する際に考慮する待機木の深さを、予め決められた深さに制限する方法がある。これは、集中トランザクション処理システムへの実施例においては、実数関数によって代表されるトランザクション特有の情報が、予め決められた深さを超えたトランザクション間のコンフリクトの場合に、どのトランザクションを再始動するかを決めるのに使用され、分散トランザクション処理システムでは、トランザクションＴの現在の長さは，各大域トランザクションに割り当てられた開始時間に基づいており、この開始時間には各サブトランザクションのスタートアップ・メッセージも含んでいる並行制御方法である（例えば、特許文献１参照。）。【０００５】
さらに、所定数のスレッドが生成され、その情報がスレッド惰報記憶部に登録され、生成されたスレッドの内、空きスレッドが空きスレッドリストに登録され、外部からのスレッドを必要とする処理要求が待機リストに登録され空きスレッドリストを監視して空きスレッドの発生を待って処理を実行すると共に、外部からのスレッドを必要としない処理要求は待機リストを介さずに受け付けられ処理を実行するスレッド管理システム及び管理方法並びに管理プログラムを記録した記録媒体がある（例えば、特許文献２参照。）。
【特許文献１】特開平6-103132号公報
【特許文献２】特開2000-293385号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、並行処理でのファイルやデータベースへのアクセス競合が想定されるシステムにおいては、これらの競合を回避しなければ、例え複数の処理装置を設けて多重分散処理を行っても、その並行処理によるデ一タ参照・更新のためのアクセス競合がボトルネックとなるため、その多重分散処理の効果が得られなかった。【０００７】
また、そのアクセス競合を回避するためには、参照・更新を行うファイルやデータベースの複製を多数設けて、それらを自動的に同期化させるような複雑なシステム形態を採らなければならなかった。【０００８】
従って本発明は、複数の処理装置を設けた多重分散処理におけるアクセス競合の課題を解決することにより、同時多発する大量の電文をリアルタイムに処理でき、且つ、クライアント側のユーザ数やイベント数の増加、コンテンツの大容量化に対応可能な、スケーラビリティを確保した電文処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）上記の課題を解決するため、本発明に係る電文処理装置は、複数のクライアントから同時に電文及びその電文処理要求を受け付けて該電文処理要求を集約すると共に、該電文処理要求に係る電文を、入力電文記憶装置に一括格納する第1手段と、該第1手段で集約した電文処理要求を受けて更に一回以上集約すると共に、該集約した電文処理要求に基づき該電文処理要求に対応した電文を、該入力電文記憶装置から一括して読み出して対応した処理を行う第2手段とを備え、クライアントからの電文処理要求を受付けた時に通知した通番により、クライアントから電文処理状態や電文処理結果を随時、照会可能としたことを特徴としている。【００１０】
すなわち、第1手段では、複数のクライアントが同時に電文とその電文処理要求又は依頼（以下、「要求」と総称する。）を送出したとき、その電文処理要求を集約し、さらに各電文を入力電文記憶装置に一括して格納しておく。【００１１】
そして、第2手段では、上記第1手段で集約した電文処理要求をさらに集約する。この時の集約回数は１回以上であればよい。そして、このように集約した電文処理要求に基づいて対応した電文を、入力電文記憶装置から一括して読み出して処理を行う。【００１２】
そして、クライアントからの電文処理要求を受付けた時に通知した通番により、クライアントから電文処理状態や電文処理結果を随時、照会可能としたものである。【００１３】
このようにして、電文自体は入力電文記憶装置に格納しておき、電文処理要求のみを集約してから電文処理を行うので、入力電文記憶装置へのアクセス競合状態を排除することが可能になると共に、不要な電文の転送処理を排除することができる。【００１４】
（２）また、本発明では、複数のクライアントから同時に電文処理要求を受け付けて該電文処理要求を電文種別毎に一次集約すると共に、該電文処理要求に係る電文を入力電文記憶装置に電文種別毎に一括格納する複数の電文受付部、及び該一次集約した電文処理要求を受けて、電文種別毎に更に二次集約する電文処理要求部を、各々が含む複数のクライアント接続装置と、該電文処理要求に基づき各クライアント接続装置で生成された電文処理要求を受けて、それらを更に三次集約する電文処理要求受付部、及び該電文処理要求受付部から該三次集約した電文処理要求を受けて、該電文処理要求に対応した電文データを、該入力電文記憶装置から一括して読み出し該電文種別に対応した処理を行う電文処理部を、各々が含む複数の電文種別毎処理装置と、を備えた電文処理装置が提供される。【００１５】
ここで、上記（２）の原理を、図１を参照して以下に説明する。【００１６】
まず、本発明に係る電文処理装置は大略、各々が複数のクライアント1に接続された複数のクライアント接続装置2（以下、この装置を「サーバ」と呼ぶことがある。）と、各々が複数のクライアント接続装置2に接続された複数の電文種別毎処理装置3とで構成されており、次のように4階層から成っている。【００１７】
第1階層は電文受付部A1_1、A1_2、A1_n（以下、符号「A1」で総称することがある。）、第2階層は電文処理要求部A2、第3階層は電文処理要求受付部A3_1及びA3_2（以下、符号「A3」で総称することがある。）、そして最後の第4階層は電文処理部A4_1及びA4_2（以下、符号「A4」で総称することがある。）である。【００１８】
複数のクライアント１は、それぞれがクライアント接続装置2_1、2_2の電文受付部A1（第1階層）との間で電文処理要求やその応答等のイベントc1の授受ができるようになっている。【００１９】
また、各クライアント接続装置2の複数の電文受付部A1は、イベントc2を電文処理要求部A2（第2階層）に通知できるように接続されている。【００２０】
更に、各電文処理要求部A2は、イベントc3を、電文種別１処理装置3_1及び電文種別２処理装置3_2の各電文処理要求受付部A3（第3階層）に通知できるように接続されている。【００２１】
電文種別１処理装置3_1及び電文種別２処理装置3_2には、その電文種別に応じた電文処理部A4（第4階層）が設けられており、各電文処理部A4は対応する電文処理要求受付部A3からイベントc4を受けられるようになっている。【００２２】
一方、電文処理に係る電文データへのアクセスについては、各電文受付部A1（第1階層）が入力電文記憶装置4にアクセスd1、処理結果記憶装置5にアクセスd2を行い、各電文処理部A4（第4階層）が入力電文記憶装置4にアクセスd3、管理情報記憶装置6にアクセスd4、処理結果記憶装置5にはアクセスd5ができるように、それぞれが接続されている。【００２３】
上記の構成において、複数のクライアント1から電文処理要求のイベントc1があると、各クライアント接続装置2の複数の電文受付部A1が、そのイベントc1を受けて、それらの電文データ（以下、単に「電文」と呼ぶ場合がある。）を電文種別毎に集約して入力電文記憶装置4に一括して書き込む（アクセスd1）と共に、該電文処理要求が発生した事を電文種別毎に集約し（一次集約）、対応する電文処理要求部A2に向けて、電文処理要求のイベントc2を通知する。【００２４】
なお、集約とは、該電文処理要求があったことを示す情報に変換することであり、その件数を合計することでは無い。例えば、予め定めた時間内に100件の電文処理要求があったとすると、電文処理要求のイベントc2で100件と通知するのでは無く、
100件の電文処理要求があった事実のみを対応する電文処理要求部A2に知らせる。以下、集約についての定義は、同様である。【００２５】
各電文処理要求部A2は、複数の電文受付部A1から通知された電文処理要求のイベントc2を電文種別毎に更に集約し（二次集約）、その電文種別に応じて電文種別毎処理装置3の電文種別１処理装置3_1又は電文種別２処理装置3_2の電文処理要求受付部A3に向けて、電文処理要求のイベントc3を通知する。【００２６】
各クライアント接続装置2の電文処理要求部A2から電文処理要求のイベントc3を受けた各電文処理要求受付部A3は、各々がその要求の受付処理を行って更に集約し（三次集約）、対応する電文処理部A4に電文処理要求のイベントc4を通知してその電文の処理を要求する。【００２７】
該三次集約された電文処理要求のイベントc4を受けた各電文処理部A4は、該電文処理要求に基づき、入力電文記憶装置4から未処理の電文データを一括して読み出す（アクセスd3）。なお、その処理に必要な管理情報を管理情報記憶装置6から参照・更新（アクセスd4）して、それらの電文データを処理し、その処理結果を処理結果記憶装置5へ一括して格納（アクセスd5）する。【００２８】
従って、電文種別に対応した電文処理部A4は、該電文受付部A1が該電文処理要求に係る電文を電文種別毎に一括格納した該入力電文記憶装置4から、一度のアクセスで処理対象となる大量の電文データを一括して読み出して処理するので、段階的に集約して転送する経路での処理対象電文データの転送が不要となり、アクセス競合を極めて少なくすることができる。【００２９】
また、本発明に係る電文処理装置は、同時多発した大量の電文処理要求をクライアント接続装置の各受付部から電文種別毎処理装置の各電文処理部に伝える手段として、該電文処理要求を段階的に集約しながら、集約規模を拡大して通知することにより、スケーラビリティを確保すると共にアクセス競合の問題を解決している。【００３０】
従って、上記の大量の電文処理要求を各電文処理部に伝える手段、すなわち、各電文受付部の一次集約、各電文処理要求部の二次集約及び各電文処理要求受付部の三次集約は、機能的のみならず物理的境界等を考慮して段階的に集約する手段の一つであり、上記の原理説明に限定されるものではなく、その電文処理要求を、一括処理する電文処理部の機能に沿って、電文種別毎の他に、例えば、電文内容毎等で段階的に集約する構成を採ることでも同じ効果が得られる。【００３１】
（３）上記（２）における電文処理装置の各電文受付部は、該クライアントから新規に要求された電文及びその電文処理要求に通番を付加する通番処理と、予め定めた件数又は予め定めた時間になるまで該電文を一旦保存し、該件数又は該時間に達した時、それまで保存した電文を該通番と共に該入力電文記憶装置に一括して書き込み、要求元のクライアントには該通番を通知することができる。【００３２】
（４）上記（３）における電文処理装置の各電文受付部は、各クライアントから該通番を用いた電文種別毎の確認要求を受けた時、該入力電文記憶装置から該通番に対応する電文処理状態を読み出して該クライアントに応答することができる。【００３３】
ここで、上記（３）及び（４）の原理を、図２を参照して以下に説明する。【００３４】
各電文受付部A1は、複数のクライアント1から新規の電文処理要求c1_1をその電文と共に受けると、その電文に通番を付加する通番採番処理（以下、「処理」を省略することがある。）a1_1を行い、その電文を一時保存する。各電文受付部A1は、予め定めた受付件数又は予め定めた時間の何れかが先に達するまで、この通番採番a1_1を実行すると（一次集約）、それまで一時格納したその通番若しくはその通番に関連付けた情報を含んだ電文を入力電文記憶装置4へ一括格納a1_2する（電文格納d1_1）。【００３５】
次に、電文受付部A1はここで一次集約された新規要求c1_1の各クライアント１に対して、一斉に受付応答a1_3を行うことにより、それぞれの新規受付応答c1_2を返して対応する通番を通知し、続いて、電文受付部A1は電文処理要求a1_4を行い、電文処理要求部A2へ処理対象の電文が発生したことを電文処理要求c2で通知する。なお、この電文処理要求c2と新規受付応答c1_2の実行順序はどちらが先でもよい。【００３６】
このようにして、第1階層である電文受付部A1の各々は、各クライアント１から送られて来た新規要求c1_1を、通番採番a1_1を行いながら予め定められた一定時間内又は件数内で一次集約すると共に、その通番を含めて一時格納された電文を入力電文記憶装置4に一括して保存する。また、各クライアント１に対しては、その通番を通知する新規受付応答c1_2を返す。【００３７】
従って、その後、電文種別毎の確認要求を受けたとき、入力電文記憶装置4からその通番をキーとして、電文処理状態を読み出してクライアントに応答することで、クライアント側の要求内容と電文処理装置側の処理内容との同期処理が可能となる。【００３８】
（５）上記（２）における電文処理装置の電文処理要求部及び電文処理要求受付部は、それぞれ、該電文処理要求を受けて、それぞれに予め定められた時間まで待受処理を行うことにより各集約を行い、各々が集約した電文処理要求をそれぞれ該電文処理要求受付部及び該電文処理部へ送って処理対象の電文が発生したことを通知することができる。【００３９】
次に、上記（５）の原理を、図３を参照して説明する。【００４０】
各クライアント接続装置2の電文処理要求部A2は、同じクライアント接続装置2内の複数の電文受付部A1から電文種別毎に一次集約された複数の電文処理要求c2を受けると、それらを、予め定めた一定時間内で待受処理a2_1を行い、電文種別毎に更に集約（二次集約）し、その後、電文処理要求a2_2を実行することにより、電文種別に対応した電文種別毎処理装置3の電文処理要求受付部A3へ電文処理要求c3を通知する。【００４１】
次に、各々の電文種別毎処理装置3の電文処理要求受付部A3は、電文処理要求部A2で二次集約された電文処理要求c3を複数のクライアント接続装置2から受けると、それらを、予め定めた一定時間の待受処理a3_1を電文種別毎に行って更に集約（三次集約）し、その後、電文処理要求a3_2を実行することにより、その電文種別に対応した各々の電文処理部A4へ電文処理要求c4を通知する。【００４２】
このようにして、各電文処理要求部A2と各電文処理要求受付部A3は、各電文受付部A1で受け付けられ電文種別毎に一次集約された電文処理要求c2を電文種別毎に、二次及び三次と段階的に集約規模を拡大し、その電文種別に対応した各々の電文処理部A4へ電文処理要求c4として通知する。【００４３】
このようにして、大量のイベントc1は、各々の電文受付部A1、各電文処理要求部A2、更に各電文処理要求受付部A3によって段階的に集約し、一つの電文処理要求c4として対応する電文処理部A4に転送される。【００４４】
従って、その電文処理要求c4内の電文処理におけるアクセス競合が無くなると共に、処理件数当たりのファイルやデータベースへのアクセス回数が極めて少なくなり、アクセス効率が向上するので、クライアント数やイベント数の増加に柔軟に対応できる。【００４５】
（６）上記（５）における電文処理装置の電文処理要求部及び電文処理要求受付部は、それぞれ、該電文処理要求を受けると、対応する電文処理要求が発生したことを示す電文発生フラグ、及び電文の処理要求が発生したことを示す処理発生フラグがOFF状態であることを各々が確認したときのみ該電文発生フラグ、及び該処理発生フラグをON状態に設定し予め定められた時間まで該待受処理を行い、各々が集約した電文処理要求をそれぞれ該電文処理要求受付部及び該電文処理部へ送って処理対象の電文が発生したことを通知すると共に、両フラグをOFF状態に戻すことができる。【００４６】
（７）上記（４）における電文処理装置の電文処理部は、該電文処理要求を受けて、該入力電文記憶装置に格納されている未処理の電文を一括して読み出すと共に、管理情報記憶装置から各電文の処理に必要な情報を参照・更新して各電文を処理し、それらの処理結果を処理結果記憶装置に一括して格納し、更に該入力電文記憶装置中の対応する電文を、処理済として更新することができる。【００４７】
次に、上記（７）の原理を、図４を参照して説明する。【００４８】
電文種別毎処理装置3の電文処理部A4は、電文処理要求受付部A3から三次集約された電文処理要求c4を受けると、それをトリガーとして、未処理電文一括取得a4_1を実行し、入力電文記憶装置4に格納されている未処理の電文を一括して読み出す未処理電文読出d3_1を行う。次に、電文処理a4_2の実行に移り、管理情報記憶装置6から各電文の処理に必要な管理情報を参照・更新d4をして、各電文データを処理する。電文処理a4_2が終了すると、電文処理結果保存処理a4_3に移り、それらの処理結果を処理結果記憶装置5に一括して格納d5する。【００４９】
このようにして、電文種別毎に設けられた各々の電文処理部は、該電文処理要求を受けて、該入力電文記憶装置に格納されている未処理の電文を一括して読み出すと共に、該管理情報記憶装置から各電文の処理に必要な情報を参照・更新して、各電文を処理し、それらの処理結果を処理結果記憶装置に一括して格納し、更に該入力電文記憶装置中の対応する電文を、処理済として更新する。【００５０】
従って、電文受付部A1はクライアントからの状況確認要求や結果取得要求に応じて、入力電文記憶装置4と処理結果記憶装置5から読み出して要求元のクライアントに応答できる。【００５１】
上記のように、本発明に係る電文処理装置は、処理対象の大量の電文に一括してアクセスするので、アクセス競合は、その集約された単位内では無くなり、一件毎にアクセスする従来例に比べて極めて少なくなる。【００５２】
また、第1階層の電文受付部A1で電文データを一括保存し、最終階層である第4階層の電文種別毎処理部へは、三次集約した電文処理要求のみを転送し、途中、第2、第3階層での電文データの転送処理が必要ないので、電文の処理効率を更に向上させることができる。【００５３】
また、電文種別毎に集約した電文処理要求を受けることは必須ではなく、対応する電文処理部の機能に合わせて、処理内容毎に段階的に集約した電文処理要求を受ける構成としてもその効果が変わるものではない。【００５４】
（８）上記（７）における電文処理装置の電文受付部は、各クライアントから電文種別毎の結果取得要求を受けた時、該処理結果記憶装置から処理結果を読み出して該クライアントに応答することができる。【００５５】
これを、再び図２及び図３を参照して以下に説明する。【００５６】
まず、クライアント1からのポーリングなどにより、先の新規受付応答c1_2で通知した通番を含む状況確認要求c1_3が送られて来ると、電文受付部A1は処理状況取得a1_5を実行して、入力電文記憶装置4からその通番に対応する処理状態データの電文処理状態取得d1_2を行う。次に、電文受付部A1は、その取得した処理状態を基に処理状況応答a1_6を実行して、状況確認要求c1_3があったクライアント１に対して状況確認応答c1_4を返す。【００５７】
また、クライアント1から、先に通知した通番を含む結果取得要求c1_5が送られて来ると、電文受付部A1は処理結果取得a1_7を実行し、処理結果記憶装置5からその通番に対応する電文の電文処理結果取得d2を行う。次に、電文受付部A1は処理結果応答a1_8を実行して、その取得した電文の処理結果を基に結果取得要求c1_5があったクライアント１に対して結果取得応答c1_6を返す。【００５８】
このようにして、新規要求c1_1から始まり結果取得応答c1_6で終わる一つのトランザクションは、新規要求c1_1の電文処理要求が一次集約されて電文処理要求部A2に通知され、最終的には電文種別毎処理装置３の電文処理部で処理されるが、残る状況確認要求c1_3（上記（４）参照。）と結果取得要求c1_5の電文処理要求については、電文受付部A1が上記のようにして状況確認応答c1_4と結果取得応答c1_6の応答をすることで完結する。【００５９】
従って、新規要求c1_1とその後の状況確認要求c1_3及び結果取得要求c1_5、すなわち、電文処理の内容によって、その処理を該電文受付部A1と該電文処理部A4に局在化させることにより、電文受付部A1が処理する電文については、電文処理部A4がアクセスする必要が無くなるので、その処理に係るデータへのアクセス競合を更に低減することができる。
【発明の効果】
【００６０】
本発明に係る電文処理装置は、各受付部が同時多発する大量の電文処理要求を受け付けて、それらの電文を入力電文記憶装置に格納すると共に、その電文処理要求を集約して各電文処理部へ通知し、各電文処理部が、その集約された電文処理要求を受けて、未処理電文を入力電文記憶装置から一括して読み出して処理するので、電文処理件数当たりのファイルやデータベースへのアクセス回数が極少化され、アクセス効率が向上するという利点がある。【００６１】
また、受けた各電文処理部は、各受付部が入力電文記憶装置に格納した電文を、その電文処理要求に基づいて、処理対象となる電文をその同じ入力電文記憶装置から一括して読み出して処理するので、その電文処理要求を段階的に集約する過程においては、それらの電文データ転送処理が不要となる利点がある。【００６２】
更に、該電文受付部は、該クライアントから新規に要求された電文処理要求に通番を付加して該入力電文記憶装置に一括で書き込みを行うと共に、要求元のクライアントには該通番を通知するので、その通番をキーとしてその後の電文処理を進めることにより、クライアント側の要求内容と電文処理装置側の処理内容との同期処理が可能となる利点がある。【００６３】
また、各クライアントから新規に要求された電文処理要求を電文処理部が処理し、それに続く同じ通番を含む電文処理要求を電文受付部が処理することにより、電文受付部が処理する電文については、電文処理部がアクセスする必要がないので、その処理に係るデータへのアクセス競合を更に低減可能となる利点がある。【００６４】
また、該電文処理要求部及び該電文処理要求受付部は、各々が前階層で集約された電文処理要求を受けて、それぞれに予め定められた時間まで待受処理を行うことにより該二次集約又は三次集約を行うので、段階的に集約規模を拡大することが容易であるという利点がある。【００６５】
また、該電文処理部は、管理情報記憶装置から各電文の処理に必要な情報を参照・更新をして、各電文データを処理し、それらの処理結果を処理結果記憶装置に一括して格納し、更に入力電文記憶装置の対応する電文を、処理済として更新するので、電文受付部はクライアントからの状況確認要求や結果取得要求に応じて、入力電文記憶装置と処理結果記憶装置から読み出して要求元のクライアントに応答できるという利点がある。
【発明を実施するための最良の形態】
【００６６】
以下、本発明に係る電文処理装置の実施例を、チケット予約システムを例にとって、図５〜図１０を参照して説明する。【００６７】
まず、図５はそのシステム全体の構成例を示しており、その構成は、電文種別毎処理装置3の予約受付処理装置3_1と空席照処理装置3_2を除いて、既に説明した図１のシステム構成と同様である。すなわち、図1の電文種別１処理装置3_1及び電文種別２処理装置3_2が、図５では予約受付処理装置3_1及び空席照会処理装置3_2へと、それぞれ電文種別の具体的な例として名称が変更されている以外は同様であり、図５のシステム構成の説明は省略する。【００６８】
次に、図１〜図３及び図５に示した電文受付部A1の実施例を、図６及び図7に分割して示された処理フローブロック図を参照して以下に説明する。まず、図６に示す複数のクライアント１からの電文種別毎の電文処理要求である予約受付要求と空席照会要求に対する、受付からその応答までの処理フローを説明する。【００６９】
図６において、クライアント1_11、1_12及び1_13より同時に発生した各々の予約受付要求c1_1及び空席照会要求c1_3は、それぞれの電文と共に、それぞれに対応するクライアント応答スレッドa1_1によって同時並行して受信され、各要求とその電文に通番を付加するための通番採番a1_11の処理が施こされる。【００７０】
通番が付加された各電文は、一時格納a1_12によって電文種別毎に予約受付電文一時保存領域10_1と空席照会電文一時保存領域10_2（以下、「電文種別毎一時保存領域10_1、10_2」と呼ぶ場合がある。）にそれぞれ一時保存される。【００７１】
その後、各クライアント応答スレッドa1_1は待受起動a1_13に移り、電文種別毎に予約受付待受スレッドa1_2、又は空席照会待受スレッドa1_3に制御を渡すと共に、完了待合a1_14に移り、予約受付待受スレッドa1_2、又は空席照会待受スレッドa1_3から電文処理要求の送信完了を受けるまで待合わせ状態に入る。【００７２】
一方、待受起動a1_13で起動された予約受付待受スレッドa1_2、及び空席照会待受スレッドa1_3では、対応する電文種別毎一時保存領域10_1、10_2の保存件数をそれぞれの件数チェックa1_21、a1_31しており、その結果を一時待受a1_22、a1_32に渡す。各一時待受a1_22、a1_32では、その件数が予め定めた件数に達した時、及び予め定めた待受時間を超過した時の何れか早いタイミングで、電文書込a1_23、a1_33にそのタイミングを通知する。この通知を受けて、各電文書込a1_23、a1_33は対応する電文種別毎一時保存領域10_1、10_2にそれまで保存されていた電文を、一括して入力電文記憶装置4に書き込み（アクセスd1_w）、その後、対応する電文処理要求送信a1_24、a1_34に処理を移す。【００７３】
各電文処理要求送信a1_24、a1_34では、処理対象の電文があることを、予約受付電文処理要求c2_1、空席照会電文処理要求c2_2として、対応する電文処理要求部A2へ送って通知すると共に、完了待合a1_14状態にあるクライアント応答スレッドa1_1に電文処理要求送信a1_24、a1_34の完了を知らせる。【００７４】
その電文処理要求送信a1_24、a1_34の完了を受けて、クライアント応答スレッドa1_1は完了待合a1_14状態から受付応答a1_15に移り、クライアント1_11及び1_12に対しては予約受付応答c1_2を、クライアント1_13に対しては空席照会応答c1_4を、それぞれ、対応する通番と共に返す。【００７５】
このように、第1階層の電文受付部A1は、複数のクライアントから同時多発する大量の電文処理要求を、予め定めた件数、又は予め定めた時間内に受け付けた電文データを電文種別毎に設けられた一時保存領域10_1、10_2に通番を付けて一旦保持し、それらを一括して入力電文記憶装置4に格納（アクセスd1_w）すると共に、電文種別毎に一次集約した電文処理要求（予約受付電文処理要求c2_1、空席照会電文処理要求c2_2）を、対応する第2階層の電文処理要求部A2に通知する。【００７６】
また、電文受付部A1は、それらの通番を対応するそれぞれのクライアント１へ応答c1_2、c1_4して通知する。そして、それらの通番は一つのトランザクションが完了するまで、すなわち、その通番を取得したクライアント１が、次に説明する電文の処理状況確認や処理結果を取得して完了するまで使用される。【００７７】
このようにして、電文受付部A1は、各クライアントから新規に要求された電文処理要求を電文と共にその種別毎に通番を付加する通番処理と、予め定めた件数又は予め定めた時間になるまで該電文を待受ける待受処理とで一旦保存し、一定件数又は一定時間に達した時、それまで保存した電文を該通番と共に該入力電文記憶装置に一括で書き込みを行い、要求元のクライアントには該通番を返す。【００７８】
従って、各クライアント１が、既に電文処理要求が受け付けられた後の状況確認や結果取得を要求する場合は、新規受付応答c1_2で取得した通番を用いて行い、電文処理装置側はそれと同じ通番をキーとして電文処理を進めることにより、クライアント側の要求内容と電文処理装置側の処理内容との同期処理が可能となる。【００７９】
次に、図７を参照して、複数のクライアント１から既に要求された電文の処理状況の確認要求を同時並行して受けた時の、受付からその応答までの処理フローを説明する。【００８０】
各クライアント1_11、1_13が取得した通番を用いて予約状態確認c1_5、照会状態確認c1_9を各々が行うと、各クライアント応答スレッドa1_1が、状態読出a1_16を実行して入力電文記憶装置4からその通番に対応する処理状態を読み出し（アクセスd1_r）、次に状態応答a1_17を実行する。【００８１】
各状態応答a1_17では、予約状態確認c1_5があったクライアント1_11には予約状態応答c1_6、照会状態確認c1_9があったクライアント1_13には照会状態応答c1_10でそれぞれに応答し、処理経過を知らせる。【００８２】
既に処理が完了している応答を受けたクライアント1_11、1_13は、引き続きその通番を用いて予約結果取得c1_7や照会結果取得c1_11をそれぞれ要求することができる。【００８３】
各クライアント応答スレッドa1_1は、クライアント1_11、1_13から予約結果取得c1_7、照会結果取得c1_11を受け取ると、それぞれが結果読出a1_18を実行して処理結果記憶装置5からその通番に対応する予約処理結果を読み出し（アクセスd2_r）、次に結果応答a1_19を実行する。【００８４】
各結果応答a1_19では、対応するクライアント1_11、1_13に予約結果応答c1_8や照会結果応答c1_12で応答し、それぞれの結果を返す。【００８５】
このようにして、各クライアント１が、新たな電文処理を要求（新規トランザクション発生）した時に電文受付部A1からの新規受付応答c1_2で通番を取得し、その後の電文処理状況の問い合わせや結果取得などを要求する場合は、その通番を用いて行う。電文処理装置側はそれと同じ通番をキーとして電文処理を進めることにより、クライアント側の要求内容と電文処理装置側の処理内容との同期を保ちながら、一つの処理が終了するまで、その通番を用いて処理する。【００８６】
また、上記のように、電文受付部A1は、予約受付要求c1_1及び空席照会要求c1_3を電文種別毎に一次集約して次の階層に通知すると共に、その他の予約状態確認c1_5、予約結果取得c1_7や照会状態確認c1_9、照会結果取得c1_11については、電文受付部A1が、入力電文記憶装置4や処理結果記憶装置5からその通番に対応する処理状態又は結果を読み出して応答する。【００８７】
次に、図１〜図３及び図５に示した電文処理要求部A2の実施例を、図８に示した処理フローブロック図を参照して説明する。【００８８】
まず、電文処理要求部A2の受付スレッドa2_1は、電文受付部A1からの予約受付電文処理要求c2_10を受けると、予約受付電文が発生したことを示す発生フラグを発生フラグ設定a2_11が予約受付電文発生フラグ20_1に設定する。但し、発生フラグ設定a2_11は、予約受付待受スレッドa2_2の多重起動を避けるために、発生フラグを設定する前にその発生フラグがOFF状態であることを確認した上でON状態に設定（セット）すると共に待受起動a2_12に移行する。【００８９】
従って、待受起動a2_12は、発生フラグがOFF状態からON状態に設定された時のみ、予約受付待受スレッドa2_2の起動を行う。なお、発生フラグがON状態であった場合は、予約受付待受スレッドa2_2が既に起動されているので、起動しない。【００９０】
受付スレッドa2_3は、予約受付電文発生フラグ20_1がON状態の時に予約受付電文処理要求c2_11を受けた場合を示しており、受付スレッドa2_3の発生フラグ設定a2_11は実行せず、且つ予約受付待受スレッドa2_2も起動しないので、待受起動a2_12から予約受付待受スレッドa2_2への矢印付き実線は示されていない。【００９１】
一方、起動された予約受付待受スレッドa2_2は、一時待受a2_13を行い、予め定められた時間まで待受けてその時間が経過すると、電文処理要求送信a2_14に移行する。【００９２】
電文処理要求送信a2_14は、予約受付処理装置3_1の電文処理要求受付部A3_1（図５参照）へ処理対象の電文があることを通知し（イベントc3_1）、次にフラグ解除a2_15を起動する。フラグ解除a2_15は、予約受付電文発生フラグ20_1の発生フラグを解除（OFF）状態にする。【００９３】
次に、受付スレッドa2_4が、空席照会電文処理要求c2_20を受けると、空席照会電文が発生したことを示す発生フラグを発生フラグ設定a2_11が空席照会電文発生フラグ20_2に設定する。但し、発生フラグ設定a2_11は、空席照会待受スレッドa2_5の多重起動を避けるために、上記の予約受付待受スレッドa2_2起動時と同様に、発生フラグを設定する前にその発生フラグがOFF状態であることを確認した上でON状態に設定すると共に待受起動a2_12に移行する。【００９４】
受付スレッドa2_6は、空席照会電文発生フラグ20_2がON状態の時に空席照会電文処理要求c2_21を受けた場合を示しており、受付スレッドa2_6の発生フラグ設定a2_11は実行せず、且つ空席照会待受スレッドa2_5も起動しないので、待受起動a2_12から予約受付待受スレッドa2_2への矢印付き実線は示されていない。【００９５】
一方、起動された空席照会待受スレッドa2_5は、一時待受a2_13を行い、予め定められた時間まで待受けてその時間が経過すると、電文処理要求送信a2_14に移行する。【００９６】
電文処理要求送信a2_14は、空席照会処理装置3_2の電文処理要求受付部A3_2（図５参照）へ処理対象の電文があることを通知し（イベントc3_2）、次にフラグ解除a2_15を起動する。フラグ解除a2_15は、予約受付電文発生フラグ20_2の発生フラグを解除（OFF）状態にする。【００９７】
このように、電文処理要求部A2は、各電文受付部A1が電文種別毎に一次集約した電文処理要求（イベントc2）を、例えば予め定めた待受け時間（例えば0.5秒）を持つことにより更に集約（二次集約）して、電文種別毎に対応した電文処理要求受付部A3に電文処理要求（イベントc3）として通知する。【００９８】
次に、図１及び図３〜５に示した電文処理要求受付部A3_1、A3_2の実施例を図９に示した処理フローブロック図を参照して説明する。なお、本実施例では電文種別毎処理装置3に属するものとして、図５のシステム構成例に示したように、予約受付処理装置3_1と空席照会処理装置3_2の二つを挙げており、電文処理要求受付部A3_1とA3_2はそれぞれに対応して設けられている。【００９９】
まず、予約受付の電文処理要求を受け付ける処理フローから説明する。【０１００】
電文処理要求受付部A3_1の受付スレッドa3_1は、電文処理要求部A2からの電文処理要求c3_10を受けると、電文の処理要求が発生したことを示す発生フラグを、発生フラグ設定a3_11により予約受付処理発生フラグ30_1に設定すると共に、待受起動a3_12する。但し、発生フラグ設定a3_11は、予約受付待受スレッドa3_2の多重起動を避けるために、その発生フラグがOFF状態である場合に限りON状態に設定すると共に待受起動a3_12に移行する。【０１０１】
従って、待受起動a3_12は、発生フラグがOFF状態からON状態に設定された時のみ、予約受付処理待受スレッドa3_2の起動を行う。なお、予約受付処理発生フラグ30_1がON状態の場合は、予約受付処理待受スレッドa3_2が既に起動されているので、更に起動することはしない。【０１０２】
受付スレッドa3_3は、予約受付処理発生フラグ30_1がON状態の時、電文処理要求c3_11を受けた場合を示しており、この場合は予約受付処理待受スレッドa3_2を起動しないという意味で、待受起動a3_12から予約受付処理待受スレッドa3_2への矢印付き実線が除去されている。【０１０３】
起動された予約受付処理待受スレッドa3_2は、一時待受a3_13を行い、例えば予め定められた時間まで待受けてその時間が経過すると、電文処理要求送信a3_14に移行する。【０１０４】
電文処理要求送信a3_14は、予約受付処理装置3_1の電文処理部A4_1（図５参照）へ処理対象の電文があることを通知（イベントc4_1）すると、次にフラグ解除a3_15を起動する。フラグ解除a3_15は、予約受付電文発生フラグ30_1の予約受付処理発生フラグを解除してOFF状態にする。【０１０５】
次に、電文処理要求受付部A3_2において、空席照会の電文処理要求を受け付ける処理フローは上記の予約受付の電文処理要求を受けた場合（電文処理要求受付部A3_1）と一部を除き同様である。【０１０６】
すなわち、受付スレッドa3_4の発生フラグ設定a3_11処理が、空席照会電文が発生したことを示す発生フラグを空席照会処理発生フラグ30_2に設定することと、空席照会処理待受スレッドa3_5が空席照会の電文処理部A4_2（図５参照）へ処理対象の電文があることを通知（イベントc4_2）することを除き、上記の予約受付の電文処理要求を受け付ける処理と同様の処理フローとなる。また、受付スレッドa3_6が、空席照会処理発生フラグ30_2がON状態の時に電文処理要求c3_21を受けたため、空席照会処理待受スレッドa3_5を起動しないことを示している点も同様である。【０１０７】
このようにして、図８及び図９にそれぞれ示した電文処理要求部A2及び電文処理要求受付部A3は、それぞれ、該電文処理要求を受けると、対応する電文処理要求が発生したことを示す電文発生フラグ、及び電文の処理要求が発生したことを示す処理発生フラグがOFF状態であることを各々が確認した上で該電文発生フラグ、及び該処理発生フラグをON状態に設定し予め定められた時間まで待受処理を行い、各々が集約した電文処理要求をそれぞれ該電文処理要求受付部及び該電文処理部へ送って処理対象の電文が発生したことを通知すると共に、両フラグをOFF状態に戻す。【０１０８】
従って、各々の待受処理の多重起動を避けることができ、更に多くのクライアントやイベント数の増加に容易に対応できると共に、処理件数当たりのファイルやデータベースへのアクセス回数は更に少なくなり、アクセス効率が向上する。【０１０９】
次に、図１及び５に示した各電文処理部A4_1、A4_2の実施例を図１０に示した処理フローブロック図を参照して説明する。なお、本実施例では電文種別毎処理装置3に属するものとして、図５のシステム構成例に示したように、予約受付処理装置3_1と空席照会処理装置3_2の二つを挙げており、電文処理部A4_1は予約受付の電文処理部、電文処理部A4_2は空席照会の電文処理部にそれぞれ対応している。【０１１０】
まず、電文処理部A4_1は、電文処理要求受付部A3_1から状況確認要求や結果取得要求などの処理要求c4_1を受けると、未処理予約受付電文一括読出a4_11を行い、入力電文記憶装置4から未処理の予約受付電文を一括して読み出す（アクセスd3_r）。なお、その電文が処理済であるか否かは、各電文処理部A4が電文処理後に入力電文記憶装置4の処理状態を更新するなどによって知ることができる。【０１１１】
続いて、電文処理部A4_1は、予約情報読出a4_12で管理情報記憶装置6の予約情報を参照し（アクセスd4_r）、予約結果登録a4_13でそれを更新（アクセスd4_w）して電文の処理を行う。次に、その処理結果を電文処理結果登録a4_14で処理結果記憶装置5に格納（アクセスd5_w）し、次の電文処理状態更新a4_15で入力電文記憶装置4の対応する処理状態を更新（アクセスd3_w）して一連の処理フローを終了する。【０１１２】
次に、電文処理部A4_2が、電文処理要求受付部A3_2から処理要求c4_2を受けると、未処理空席照会電文一括読出a4_21を実行して入力電文記憶装置4から未処理の空席照会電文を一括して読み出す（アクセスd3_r）。続いて、空席情報読出a4_22で管理情報記憶装置6の空席情報を参照（アクセスd4_r）し、その処理結果を電文処理結果登録a4_23で処理結果記憶装置5に格納（アクセスd5_w）する。次に電文処理状態更新a4_24で入力電文記憶装置4の対応する処理状態を更新（アクセスd3_w）して一連の処理を終了する。【０１１３】
このようにして、電文処理部A4は、段階的に集約された電文処理要求を受けて、入力電文記憶装置4に格納されている未処理の電文を一括して読み出すと共に、管理情報記憶装置6から各電文の処理に必要な情報を参照・更新して、各電文データを処理し、それらの処理結果を処理結果記憶装置5に一括して格納し、更に入力電文記憶装置4の対応する電文を、処理済として更新する。【０１１４】
従って、電文受付部A1はクライアントからの状況確認要求や結果取得要求に応じて、入力電文記憶装置4と処理結果記憶装置5から一括して読み出して要求元のクライアントに応答できる。【０１１５】
以上のように、本発明に係る電文処理装置は、複数のクライアントから同時多発する大量の電文を集約して処理するので、ファイルやデータベースへのアクセス回数が極少化され、アクセス効率が向上し、電文を効率的に処理することができる。【０１１６】
従って、その並列処理によるデ一タ参照・更新のためのアクセス競合がボトルネックとはならず、その多重分散処理の効果が容易に得られる。【０１１７】
また、そのアクセス競合を回避するための参照・更新を行うファイルやデータベースの複製を多数設ける必要がないので、それらを自動的に同期化させるような複雑なシステム構成を採ることなく、経済的にスケーラビリティを確保した電文処理装置を実現することができる。【０１１８】
また、実施例のように電文種別毎に集約することは必須ではなく、対応する電文処理部の例えば処理機能別毎・処理内容別毎に段階的に集約してもその効果に変わりはない。【０１１９】
また、段階的に電文処理要求を集約することは、三次集約に限定されず、電文処理装置の要件に合わせて任意に集約規模を拡大縮小することでコストパフォーマンスを最適化することも可能である。【０１２０】
また、本発明に係る電文処理装置は、本実施例で示したチケット予約システムのみならず、ＷＥＢや金融・流通のオンライン処理、大規模ネットワークのオペレーションシステム等、多数のクライアントから同時に発生する処理要求やイベント通知等の電文をリアルタイムに処理する電文処理システムに適用できる。
【図面の簡単な説明】
【０１２１】
【図１】本発明に係る電文処理装置の原理（システム構成）を示すブロック図である。
【図２】本発明に係る電文処理装置の原理（電文受付部）を示すブロック図である。
【図３】本発明に係る電文処理装置の原理（電文処理要求部／電文処理要求受付部）を示すブロック図である。
【図４】本発明に係る電文処理装置の原理（電文処理部）を示すブロック図である。
【図５】本発明に係る電文処理装置の実施例（チケット予約システム構成）を示すブロック図である。
【図６】本発明に係る電文処理装置の実施例（電文受付部の1/2）を示すブロック図である。
【図７】本発明に係る電文処理装置の実施例（電文受付部の2/2）を示すブロック図である。
【図８】本発明に係る電文処理装置の実施例（電文処理要求部）を示すブロック図である。
【図９】本発明に係る電文処理装置の実施例（電文処理要求受付部）を示すブロック図である。
【図１０】本発明に係る電文処理装置の実施例（電文処理部）を示すブロック図である。
【符号の説明】
【０１２２】
1、1_11〜1_n3  クライアント
２、2_1、2_2  クライアント接続装置
３  電文種別毎処理装置
3_1  電文種別１処理装置、予約受付処理装置
3_2  電文種別２処理装置、空席照会処理装置
４  入力電文記憶装置
５  処理結果記憶装置
６  管理情報記憶装置
10_1  予約受付電文一次保存領域
10_2  空席照会電文一次保存領域
20_1  予約受付電文発生フラグ
20_2  空席照会電文発生フラグ
30_1  予約受付処理発生フラグ
30_2  空席照会処理発生フラグ
A1、A1_1〜A1_n  電文受付部
A2 電文処理要求部
A3、A3_1、A3_2  電文処理要求受付部
A4_1、A4_2  電文処理部
a1_1  クライアント応答スレッド
a1_2、a2_2  予約受付待受スレッド
a1_3、a2_5  空席照会待受スレッド
a2_1、a2_3、a2_4、a2_6、a3_1、a3_3、a3_4、a3_6  受付スレッド
a3_2  予約受付処理待受スレッド
a3_5  空席照会処理待受スレッド
a4_11  未処理予約受付電文一括読出
a4_12、a4_22  予約情報読出
a4_13、予約結果登録
a4_14、a4_23  電文処理結果登録
a4_15、a4_24  電文処理状態更新
a4_21  未処理空席照会受付電文一括読出
c1、c2、c3、c4  イベント（_1、_2などを付加した符号もある。）
d1、d2、d3、d4、d5  アクセス（_1、_2、_r、_wを付加した符号もある。）
図中、同一符号は同一又は相当部分を示す。
【図１】
2006080058.tif 000002
【図２】
2006080058.tif 000003
【図３】
2006080058.tif 000004
【図４】
2006080058.tif 000005
【図５】
2006080058.tif 000006
【図６】
2006080058.tif 000007
【図７】
2006080058.tif 000008
【図８】
2006080058.tif 000009
【図９】
2006080058.tif 000010
【図１０】
2006080058.tif 000011
【国際調査報告】
2006080058.tif 000012
2006080058.tif 000013
2006080058.tif 000014
2006080058.tif 000015