(57)【要約】【課題】  サーバと複数のクライアント間において、非同期処理を要求するクライアントと非同期処理の内容変更を要求するクライアントとサーバとの間の状態を把握することの可能なシステムを提供することを目的とする。【解決手段】  第１のクライアント装置１０が要求した非同期処理に対して、第２のクライアント装置２０から要求された内容変更が完了した旨の通知をサーバ装置３０が第１のクライアント装置１０に通知し、さらに第１のクライアント装置１０が第２のクライアント装置２０に対して内容変更の完了を通知することができる。このような処理を行うことで、第２のクライアント装置２０は、非同期処理の内容に変更があることを第１のクライアント装置１０が認識しいているという保証の元で第１のクライアント装置１０との協調動作を行なうことができる。【選択図】  図１
2009230242.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ独立して動作すると共に、互いにサーバ装置と通信可能な第１のシステムと第２のシステムと、を有するクライアント装置であって、
前記第１のシステムから前記サーバへ処理要求を送信する手段と、
前記サーバが前記第１のシステムから受信した処理要求に対して、処理の内容変更を前記第２のシステムから送信する手段と、
前記サーバが前記第２のシステムから受信した要求処理の変更に従って実施した要求処理の変更が完了したことを、前記第１のシステムが前記サーバから受信する手段と、
前記要求処理の変更の完了を受信したことを前記第１のシステムが前記第２のシステムに送信する手段と、
前記変更された要求処理の実行が完了したことを前記第１のシステムが前記サーバから受信する手段と、
を備えることを特徴とするクライアント装置。
【請求項２】
他のクライアント装置と独立してサーバと通信可能なクライアント装置であって、
前記サーバへ処理要求を送信する手段と、
前記サーバが他のクライアント装置から受信した要求処理の変更に従って実施した要求処理の変更が完了したことを、前記サーバから受信する手段と、
前記要求処理の変更の完了を受信したことを前記他のクライアントに送信する手段と、
前記変更された要求処理の実行が完了したことを前記サーバから受信する手段と、
を備えることを特徴とするクライアント装置。
【請求項３】
他のクライアント装置と独立してサーバと通信可能なクライアント装置であって、
前記サーバが前記他のクライアント装置から受信した処理要求に対して、処理の内容変更を送信する手段と、
前記他のクライアント装置が、前記サーバが前記処理の内容変更に従って実施した要求処理の変更が完了した旨を前記サーバから受信したことを、前記他のクライアントから受信する手段と、
を備えることを特徴とするクライアント装置。
【請求項４】
複数のクライアント装置から独立して処理要求を受信可能なサーバ装置であって、
第１のクライアント装置から送信される処理要求を受信する手段と、
第２のクライアントから、前記第１のクライアント装置から送信された前記処理要求の内容を変更する内容変更要求を受信する手段と、
前記受信した内容変更要求に従って要求処理の内容変更を実施し、内容変更が完了した旨を前記第１のクライアント装置へ通知する手段と、
前記内容変更された要求処理を実行する手段と、
前記内容変更された要求処理が完了した旨を前記第１のクライアント装置へ通知する手段と、
を備えることを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のクライアントとサーバ間における非同期処理の制御に関する。
【背景技術】
【０００２】
一般に、ネットワーク等を介して接続された複数の装置間の通信のうち、各装置で実行されるアプリケーション間でメッセージを送受信し合うことをメッセージ通信またはメッセージングなどと呼ぶことがある。また、メッセージを送信して処理を依頼するアプリケーション、装置をクライアントと呼び、メッセージを受信して処理を実行するアプリケーション、装置をサーバと呼ぶことがある。
【０００３】
メッセージ通信には、同期メッセージングと非同期メッセージングとがある。同期メッセージングでは、サーバはクライアントから処理依頼を示したリクエストメッセージを受けると、この処理依頼に対する処理結果をリクエストメッセージに対するレスポンスメッセージに入れてクライアントに返却する。非同期メッセージングでは、サーバはクライアントから処理依頼を示したリクエストメッセージを受けると、この処理依頼に対する処理は行うが、処理結果はすぐには返却しない。そして、サーバはクライアントから処理結果の取得依頼を示したリクエストメッセージを受けたなら、このリクエストメッセージに対するレスポンスメッセージに上記の処理結果を入れてクライアントに返却する。
【０００４】
非同期メッセージを採用すると、サーバにおいて処理結果を管理しておく必要があるため、サーバアプリケーションの構成、実行する処理が複雑となる。特許文献１には、このような問題を解決する技術として、サーバアプリケーションにより同期メッセージングを行うべく処理結果が返却されても、この処理結果を記憶媒体へ一旦記憶した上で、クライアントアプリケーションからの依頼に応じてクライアントアプリケーションへ送信されるように構成したシステムが開示されている。非同期メッセージングをサーバアプリケーションに頼らず実行することを意図している。
【特許文献１】特開２００５−８５０６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の方式の場合、複数のクライアントとサーバ間における非同期処理の制御については何ら開示されていない。複数のクライアントが互いの存在を認識し合いながら、サーバに対してアクセスする場合、あるクライアントの出した処理要求を別のクライアントがキャンセルするといった状況が想定される。処理要求を出したクライアントは、別のクライアントによって自らの処理要求がキャンセルされたことが検知できず、また、処理要求をキャンセルするクライアントは、処理要求を出したクライアントが既にサーバから結果を受け取っているか否かを検知することができないため、互いの状態を把握することが出来ない。
【０００６】
そこで本発明の目的は、サーバと複数のクライアント間において、非同期処理を要求するクライアントと非同期処理の内容変更を要求するクライアントとサーバとの間の状態を把握することの可能なシステムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明に係るクライアント装置は、それぞれ独立して動作すると共に、互いにサーバ装置と通信可能な第１のシステムと第２のシステムと、を有するクライアント装置であって、前記第１のシステムから前記サーバへ処理要求を送信する手段と、前記サーバが前記第１のシステムから受信した処理要求に対して、処理の内容変更を前記第２のシステムから送信する手段と、前記サーバが前記第２のシステムから受信した要求処理の変更に従って実施した要求処理の変更が完了したことを、前記第１のシステムが前記サーバから受信する受信手段と、前記要求処理の変更の完了を受信したことを前記第１のシステムが前記第２のシステムに送信する手段と、前記変更された要求処理の実行が完了したことを前記第１のシステムが前記サーバから受信する受信手段と、を備えることを特徴とする。
【０００８】
上記目的を達成するために本発明に係るサーバ装置は、複数のクライアント装置から独立して処理要求を受信可能なサーバ装置であって、第１のクライアント装置から送信される処理要求を受信する手段と、第２のクライアントから、前記第１のクライアント装置から送信された前記処理要求の内容を変更する内容変更要求を受信する手段と、前記受信した内容変更要求に従って要求処理の内容変更を実施し、内容変更が完了した旨を前記第１のクライアント装置へ通知する手段と、前記内容変更された要求処理を実行する手段と、前記内容変更された要求処理が完了した旨を前記第１のクライアント装置へ通知する手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、サーバと複数のクライアント間において、非同期処理を要求するクライアントと非同期処理の内容変更を要求するクライアントとサーバとの間の状態を把握することの可能なシステムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下本発明に係る実施の形態を、図面を参照して説明する。
図１は本発明の実施形態に係るサーバ装置およびクライアント装置の構成を示すブロック図である。本実施形態では、サーバ装置と複数のクライアント装置により構成されるシステムを例に説明する。複数のクライアント装置は個別にサーバ装置にアクセスすることが可能であり、サーバ装置はクライアントから要求された処理を実行する。また、サーバ装置はクライアント装置から処理要求を受信した際に、クライアント装置に対して、要求した処理と無関係な処理を実行することを許可することが出来る。
【００１１】
なお、本実施形態では、ＣＰＵやメモリ等のハードウェアを実装した物理的な装置の他に、アプリケーションプログラムの中のモジュールも含め、メッセージを送信して処理を依頼するものをクライアント装置と呼ぶ。ＣＰＵやメモリ等のハードウェアを実装した物理的な装置の他に、アプリケーションプログラムの中のモジュールも含め、クライアント装置からメッセージを受信して処理を実行するものをサーバ装置と呼ぶ。
【００１２】
第１のクライアント装置１０は、処理要求送信部１１、処理結果受信部１２、主要処理部１３、処理実行部１４、要求処理管理部１７、変更通知送受信部１８、完了通知送受信部１９、を有する。
【００１３】
第２のクライアント装置２０は、処理要求送信部２１、処理結果受信部２２、主要処理部２３、処理実行部２４、要求処理管理部２７、変更通知送受信部２８、完了通知送受信部２９、を有する。
【００１４】
サーバ装置３０は、処理要求受信部３１、処理結果送信部３２、主要処理部３３、処理実行部３４、処理内容変更部３５、要求処理管理部３７、変更通知送受信部３８、完了通知送受信部３９、を有する。
【００１５】
クライアント装置１０の処理要求送信部１１は、サーバ装置３０に対して、非同期処理を行うための要求を送信する。主要処理部１３で必要だと判断された情報を得る為にサーバ装置３０に非同期処理の要求を送信する。結果を受信するまでの間、主要処理部１３はサーバ装置３０の行なう処理とは独立した処理を実行することができる。
【００１６】
サーバ装置３０の処理要求受信部３１は、クライアント装置１０から送信された非同期処理の要求を受信する。
【００１７】
サーバ装置３０の主要処理部３３は、クライアント装置１０から要求された非同期処理を行う。
【００１８】
サーバ装置３０の処理結果送信部３２は、主要処理部３３で行った非同期処理に対する結果を、クライアント装置１０に送信する。
【００１９】
クライアント装置１０の処理結果受信部１２は、サーバ装置３０の主要処理部３３で行った非同期処理に対する結果を受信する。
【００２０】
本実施形態では、第1のクライアント装置１０からサーバ装置３０への非同期処理要求に対して、第２のクライアント装置２０から内容変更を加える場合を考える。
【００２１】
第２のクライアント装置２０は処理要求送信部２１から、第1のクライアント装置１０からサーバ装置３０に対して要求された非同期処理の内容変更を要求する。
【００２２】
サーバ装置３０は処理要求受信部３１で第２のクライアント装置２０からの非同期処理の内容変更の要求を受け取る。処理内容変更部３５は、主要処理部３３の処理実行部３４で行っている非同期処理の内容変更を行う。非同期処理の内容変更を行なうと、要求処理管理部３７の変更通知送受信部３８は、第1のクライアント装置１０から要求された非同期処理に対して内容変更がされたことを、第１のクライアント装置１０に対して通知する。
【００２３】
要求処理管理部３７の完了通知送信部３９は、内容が変更された非同期処理の実行が完了したことを第1のクライアント装置１０に対して通知する。
【００２４】
第1のクライアント装置１０の要求処理管理部１７は、変更通知送受信部１８と完了通知送受信部１９とを有する。変更通知送受信部１８は、サーバ装置３０で非同期処理に対する内容変更がされた旨の通知を受信する。また、第1のクライアント装置１０が要求した非同期処理に対して内容変更がされた旨の通知を第1のクライアント装置１０が受信した、というメッセージを第２のクライアント装置２０に対して送信する。
【００２５】
完了通知送受信部１９は、内容が変更された非同期処理の実行がサーバ装置３０側で完了した旨の通知を受信する。
【００２６】
第２のクライアント装置２０の各構成に付された符号は第1のクライアント装置１０と異なるが、各構成要素の果たす機能、役割については第１のクライアント装置１０と特筆すべき差異はないため、第２のクライアント装置２０の各構成要素については詳細な説明を省略する。第２のクライアント装置２０がサーバ装置３０に非同期処理の要求を行い、要求された非同期処理に対して、第１のクライアント装置１０が内容変更を要求することもできる。
【００２７】
図２は本発明の実施形態に係る第１のクライアント装置、第２のクライアント装置、サーバ装置間の動作を示すフローチャートである。
【００２８】
第１のクライアント装置１０は、サーバ装置３０に対して、非同期処理を行うための要求を送信する（ステップ１−１）。サーバ装置３０は非同期処理の要求を受信する（ステップ１−２）。第１のクライアント装置１０が要求した非同期処理に対して第２のクライアント装置２０が内容変更を要求し（ステップ１−３）、サーバ装置３０が非同期処理の内容変更の要求を受信すると（ステップ１−４）、非同期処理の内容変更を実施する（ステップ１−５）。
【００２９】
なお、サーバ装置３０が第１のクライアント装置１０から処理要求を受信し、非同期処理を実施している間に、第２のクライアント装置２０から、非同期処理の内容変更要求を受信したら、サーバ装置３０は第１のクライアント装置１０から要求された非同期処理の実施を中止する。
【００３０】
サーバ装置３０が非同期処理の内容変更を実施して、変更が完了するとサーバ装置３０は第２のクライアント装置２０によって変更された内容に従って非同期処理を開始する（ステップ１−６）。サーバ装置３０は非同期処理を開始すると、非同期処理の内容変更が完了したことを第１のクライアント装置１０に通知する（ステップ１−７）。
【００３１】
なお、非同期処理の内容変更が完了したことを第１のクライアント装置１０に通知するのは、サーバ装置３０が変更された内容に従って非同期処理を開始する前であっても、同時であっても良い。
【００３２】
第１のクライアント装置１０が、サーバ装置３０から非同期処理の内容変更が完了したことを受信すると（ステップ１−８）、第１のクライアント装置１０は、非同期処理の内容変更が完了した旨の通知を受信したことを第２のクライアント装置２０に対して送信する（ステップ１−９）。
【００３３】
第２のクライアント装置２０は、非同期処理の内容変更が完了した旨の通知を第１のクライアント装置１０が受信した旨の通知を第１のクライアント装置１０から受信する（ステップ１−１０）。
【００３４】
サーバ装置３０は、第２のクライアント装置２０によって内容が変更された非同期処理の実行を開始し、処理が完了すると（ステップ１−１１）、要求処理の実行が完了した旨の通知を第１のクライアント装置１０に送信し（ステップ１−１２）、第１のクライアント装置１０は当該通知を受信する（ステップ１−１３）。
【００３５】
なお、第１のクライアント装置１０が処理要求を送信する（ステップ１−１）前に、第２のクライアント装置２０から要求処理の内容変更要求が第１のクライアント装置１０に送信された場合、第１のクライアント装置１０は、内容変更すべき要求処理そのものがないため、第２のクライアント装置２０に対して、非同期処理の内容変更要求が失敗した旨の通知を送信する。
【００３６】
本実施形態では、第１のクライアント装置１０が要求した非同期処理に対して、第２のクライアント装置２０から要求された内容変更が完了した旨の通知をサーバ装置３０が第１のクライアント装置１０に通知し、さらに第１のクライアント装置１０が第２のクライアント装置２０に対して内容変更の完了を通知することができる。このような処理を行うことで、第２のクライアント装置２０は、非同期処理の内容に変更があることを第１のクライアント装置１０が認識しいているという保証の元で第１のクライアント装置１０との協調動作を行なうことができる。すなわち、変更要求した第２のクライアント装置２０は、非同期処理の要求元である第１のクライアント装置１０とサーバ装置３０との関係を把握することができる。
【００３７】
以上の説明のように、本発明の実施形態によれば、サーバと複数のクライアント間において、非同期処理を要求するクライアントと非同期処理の内容変更を要求するクライアントとサーバとの間の状態を把握することの可能なシステムを提供することができる。
【００３８】
なお、上記のサーバ装置、クライアント装置は、例えば汎用のコンピュータを基本ハードウェアとして用いることができる。
【００３９】
そして、第１のクライアント装置１０、第２のクライアント装置２０、サーバ装置３０の有する各構成要素は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。各構成要素を１つのプログラムにより実現することもできるし、別々のプログラムによりそれぞれ実現することもできる。
【００４０】
サーバ装置、クライアント装置は、上記のプログラムをコンピュータに予めインストールされて実現されても良いし、磁気ディスク、光ディスク、半導体メモリなどのリムーバブルな記憶媒体に記録して、あるいはＬＡＮやインターネット等のネットワークを介して上記のプログラムを配布し、このプログラムをコンピュータに適宜インストールして実現されても良い。
【００４１】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェア等が本実施形態を実現するための各処理の一部を実行しても良い。
【００４２】
上記のコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。上記のコンピュータは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００４３】
また、上記の実施形態では、第１のクライアント装置、第２のクライアント装置、サーバ装置をそれぞれ独立したものとして説明したが、ひとつのクライアント装置に第１のクライアント装置と第２のクライアント装置を含む構成としても良い。例えば、ひとつのアプリケーションプログラムの中の第１のモジュールと第２のモジュールが含まれ、第１のモジュールが別のアプリケーションプログラムに要求した処理の内容を第２のモジュールが変更するような構成としても良い。
【００４４】
またひとつの装置に第１のクライアント装置と第２のクライアント装置とサーバ装置とを含む構成としても良い。例えば、ひとつのアプリケーションプログラムの中の第１のモジュールと第２のモジュールと第３のモジュールとが含まれ、第１のモジュールが第３のモジュールに要求した処理の内容を第２のモジュールが変更するような構成としても良い。
【００４５】
本発明ではその主旨を逸脱しない範囲であれば、上記の実施形態に限定されるものではなく種々の変形が可能である。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態に係るサーバ装置およびクライアント装置の構成を示すブロック図。
【図２】本発明の実施形態に係る第１のクライアント装置、第２のクライアント装置、サーバ装置間の動作を示すフローチャート。
【符号の説明】
【００４７】
１０…クライアント装置、１１…処理要求送信部、１２…処理結果受信部、１３…主要処理部、１４…処理実行部、１７…要求処理管理部、１８…変更通知送受信部、１９…完了通知送受信部、２０…クライアント装置、２１…処理要求送信部、２２…処理結果受信部、２３…主要処理部、２４…処理実行部、２７…    要求処理管理部、２８…変更通知送受信部、２９…完了通知送受信部、３０…サーバ装置、３１…処理要求受信部、３２…処理結果送信部、３３…主要処理部、３４…処理実行部、３５…処理内容変更部、３７…要求処理管理部、３８…変更通知送受信部
３９…完了通知送受信部
【図１】
2009230242.tif 000003
【図２】
2009230242.tif 000004