(57)【要約】【課題】複数のアプリケーションが同じモジュールを共有する構造のプログラムが組み込まれたクライアント装置において、複数のアプリケーションを同時に起動させた場合に、起動した複数のアプリケーションの並行処理を可能とするクライアント装置を提供すること。【解決手段】複数のアプリケーションプログラム９、１０の実行によって、モジュールプログラム１１が重複して呼び出された場合には、ネットワーク１２、１７に対する処理動作は最初の呼び出しに対してのみ実行し、その他の呼び出しに対してはネットワーク１２、１７に対する処理動作を省略して実行する手段と、ネットワーク１２、１７に対する処理動作が完了した時に、その処理結果を記憶するテーブルＴと、前記その他の呼出を行ったアプリケーションプログラム１０に前記処理結果を渡す手段と、を備えるクライアント装置１。【選択図】図４
2005182453.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに対して処理動作を行う手段としてコンピュータを機能させるモジュールプログラムと、前記モジュールプログラムを呼び出して実行する１又は複数のアプリケーションプログラムと、が組み込まれたクライアント装置であって、１のアプリケーションプログラムの複数回の実行によって、又は複数のアプリケーションプログラムの実行によって、モジュールプログラムが重複して呼び出された場合には、ネットワークに対する処理動作は最初の呼び出しに対してのみ実行し、その他の呼び出しに対しては前記ネットワークに対する処理動作を省略して実行する手段と、前記ネットワークに対する処理動作が完了した時に、その処理結果を記憶する手段と、前記その他の呼出を行ったアプリケーションプログラムに前記処理結果を渡す手段と、を備えることを特徴とするクライアント装置。
【請求項２】
ネットワークに対して処理動作を行う手段としてクライアント装置を機能させるモジュールプログラムと、
前記モジュールプログラムを呼び出して実行する１又は複数のアプリケーションプログラムと、
１のアプリケーションプログラムの複数回の実行によって、又は複数のアプリケーションプログラムの実行によって、モジュールプログラムが重複して呼び出された場合には、ネットワークに対する処理動作は最初の呼び出しに対してのみ実行し、その他の呼び出しに対しては前記ネットワークに対する処理動作を省略して実行する手段、前記ネットワークに対する処理動作が完了した時に、その処理結果を記憶する手段、前記その他の呼出を行ったアプリケーションプログラムに前記処理結果を渡す手段、としてコンピュータを機能させるプログラムと、を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークに接続されたクライアント装置及び該クライアント装置に組み込まれるプログラムに関し、詳しくは、複数のアプリケーションプログラムを起動させた場合或いは同じアプリケーションプログラムを重複して複数回起動させた場合に、それらを並行して円滑に実行処理するクライアント装置及びプログラムに関する。
【背景技術】
【０００２】
複数のアプリケーションプログラムが同じモジュールを共有する構造のプログラムにおいては、複数のアプリケーションプログラムによる共有モジュールの奪い合いが発生しないように排他制御が行われる。排他制御は、例えばミューテクス（Ｍｕｔｅｘ）などを利用することによって、１個のアプリケーションプログラムが共有モジュールを呼び出して実行している最中に、他のアプリケーションプログラムが実行中の共有モジュールを呼び出すことができないようにするものであり、これにより共有モジュールが多重起動されないようになっている。
【０００３】
図５に示すように、ミューテクスにより共有モジュールの多重起動を防止する構造のプログラムが組み込まれたクライアント装置においては、アプリケーションプログラムＡが実行されると、アプリケーションプログラムＡは共有モジュールを呼び出す際に当該共有モジュールの識別情報が対応つけられたミューテクス資源を確保する。ミューテクス資源は、複数のアプリケーションプログラムが共有することができないようになっており、一方で、ミューテクス資源を確保しなければ共有モジュールを呼び出すことができないようになっている。したがって、アプリケーションプログラムＡがミューテクス資源を確保しているときに、アプリケーションプログラムＢによって共有モジュールが呼び出されても、共有モジュールに係るミューテクス資源はプログラムＡが確保しているために、アプリケーションプログラムＢは当該共有モジュールを起動させるこができない。そして、アプリケーションプログラムＢが共有モジュールを起動することができない場合は、アプリケーションプログラムＢの処理を完了することができないので、通常は、アプリケーションプログラムＢの処理は、途中で自動的に終了するようにプログラミングされている。
【０００４】
なお、特許文献１には、分散オブジェクト指向システムのメソッド起動方式に関する技術として、サーバがクライアントからの１のリクエストを処理して処理結果を取得した際、同じリクエストが複数ある場合には、取得した処理結果をそれら全てのリクエストに対して返信することによって、複数のリクエストをまとめて処理するメソッド起動方式が開示されている。
【特許文献１】特開２００１−１４７８１１（段落番号００１５）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、アプリケーションプログラムＡが実行中にアプリケーションプログラムＢが起動されると、アプリケーションプログラムＢは、処理を完了することなく途中で自動的に終了するようになっているので、クライアント装置において、アプリケーションプログラムＡの処理が完了するまで、アプリケーションプログラムＢを実行させることができないという問題があった。
【０００６】
本発明は、かかる課題に鑑みてなされたものであり、複数のアプリケーションプログラムを同時に起動させた場合或いは同じアプリケーションプログラムを重複して複数回起動させた場合に、それらの並行処理を可能とするクライアント装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１記載のクライアント装置は、ネットワークに対して処理動作を行う手段としてコンピュータを機能させるモジュールプログラムと、前記モジュールプログラムを呼び出して実行する１又は複数のアプリケーションプログラムと、が組み込まれたクライアント装置であって、１のアプリケーションプログラムの複数回の実行によって、又は複数のアプリケーションプログラムの実行によって、モジュールプログラムが重複して呼び出された場合には、ネットワークに対する処理動作は最初の呼び出しに対してのみ実行し、その他の呼び出しに対しては前記ネットワークに対する処理動作を省略して実行する手段と、前記ネットワークに対する処理動作が完了した時に、その処理結果を記憶する手段と、前記その他の呼出を行ったアプリケーションプログラムに前記処理結果を渡す手段と、を備えることを特徴としている。
【０００８】
請求項２記載のプログラムは、ネットワークに対して処理動作を行う手段としてクライアント装置を機能させるモジュールプログラムと、前記モジュールプログラムを呼び出して実行する１又は複数のアプリケーションプログラムと、１のアプリケーションプログラムの複数回の実行によって、又は複数のアプリケーションプログラムの実行によって、モジュールプログラムが重複して呼び出された場合には、ネットワークに対する処理動作は最初の呼び出しに対してのみ実行し、その他の呼び出しに対しては前記ネットワークに対する処理動作を省略して実行する手段、前記ネットワークに対する処理動作が完了した時に、その処理結果を記憶する手段、前記その他の呼出を行ったアプリケーションプログラムに前記処理結果を渡す手段、としてコンピュータを機能させるプログラムと、を備えることを特徴としている。
【発明の効果】
【０００９】
請求項１記載のクライアント装置によれば、同じモジュールを共有する複数のアプリケーションプログラムを並行して実行することや同じアプリケーションプログラムを重複して複数回実行させることが可能となるので、ユーザは、アプリケーションプログラム同士の干渉を気にすることなくクライアント装置を利用することができる。
【００１０】
請求項２記載のプログラムによれば、該プログラムをコンピュータに組み込むことにより、上記効果が得られる。
【発明を実施するための最良の形態】
【００１１】
以下本発明の実施の形態に係るクライアント装置及びプログラムについて図面に基づき説明する。図１に本発明の実施の形態に係るプログラムがパーソナルコンピュータに組み込まれてなるクライアント装置の構成例を示す。図示するように、クライアント装置１は、ＣＰＵ（中央処理装置）２、ＲＡＭ（ランダムアクセスメモリー）３、ＲＯＭ（リードオンリーメモリー）４、ＨＤＤ（ハードディスクドライブ）Ｈ、表示部５、操作部６、ＬＡＮインターフェース７等を備えている。
【００１２】
ＣＰＵ２は、ＲＯＭ４に格納された起動プログラム等やハードディスクドライブＨに格納されたプログラム８に基づいて、このクライアント装置１を構成する各部を制御する。ＲＡＭ３は、ＣＰＵ２の主メモリ、ワークエリア、後述する処理結果テーブルＴ等の記憶手段として機能する。ハードディスクドライブＨに格納されているプログラム８には、複数のアプリケーションプログラム９、１０、これらアプリケーションプログラム９、１０が共有するモジュールプログラム１１（以下「モジュール１１」という。）等が含まれている。
【００１３】
表示部５は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）からなり、各種の画面情報を表示する。操作部６は、例えば、キーボード６ａ、マウス６ｂ等の情報入力手段を備える。
【００１４】
ＬＡＮインターフェース７は、ＬＡＮ（ローカル・エリア・ネットワーク）１２とクライアント装置１とを通信可能に接続するインターフェースである。ＬＡＮ１２には、他のクライアント装置１、各種のサーバ装置１３乃至１５、ルータ１６が設置されており、クライアント装置１から各種のサーバ装置１３乃至１５の機能を利用したり他のクライアント装置１と通信したり、インタネット１７上の端末と通信することができるようになっている。
【００１５】
つぎに、上記構成を備えるクライアント装置１において、複数のアプリケーションプログラム９、１０が実行される場合の処理動作について、図２及び図３のフローチャートに基づいて説明する。これらフローチャートに基づいて説明するクライアント装置１の処理動作は、ハードディスクドライブＨに格納されているプログラム８に基づいてＣＰＵ２が発行する命令に従って行われる。なお、共有モジュール１１は、アプリケーションプログラム９、１０から引数を受けない類の処理を実行するものであり、何れのアプリケーションプログラム９又は１０に呼び出されても、処理結果として同一のものを返す処理を実行するものである。そのような処理としては、例えば、ネットワーク１２、１７に対して行うブロードキャスト（Ｂｒｏａｄｃａｓｔ）処理、サーバ検索処理等がある。また、そのような共有モジュールを有するアプリケーションプログラム９、１０としては、ネットワーク１２、１７上のサーバ装置１３乃至１５における新着エージェントのチェックや、プリンタ検索処理を行うものなどがある。
【００１６】
図２に示すように、１のアプリケーションプログラム９（本明細書では、１のアプリケーションプログラムをアプリケーションプログラム９、その他のアプリケーションプログラムをアプリケーションプログラム１０として説明するが、当然にこれらは逆であってもよい。）が実行されて、共有モジュール１１を呼び出す段階まで処理動作が進むと、共有モジュールが実行中であるか否かが判断される（Ｓ１）。該判断は、当該共有モジュール１１の識別情報が付されたミューテクス資源がその他のアプリケーションプログラム１０によって確保されているか否かに基づいて行われる。つまり、その他のアプリケーションプログラム１０によってミューテクス資源が確保されている場合には、共有モジュール１１は他のアプリケーションプログラム１０の呼び出しに応じて実行中であると判断され、前記ミューテクス資源が開放されている場合には、何れのアプリケーションプログラム１０によっても共有モジュール１１は実行されていないと判断される。なお、本実施の形態においては、上記判断手段としてミューテクスを例に挙げて説明するが、同様の動作が実現可能であれば当然にミューテクス以外のものを採用してもよい。
【００１７】
前記Ｓ１において、肯定判断がなされると（Ｓ１：ＹＥＳ）、アプリケーションプログラム９によって共有モジュール１１が呼び出され（Ｓ２）、アプリケーションプログラム９は、その共有モジュール１１の実行が完了するまで待機する（Ｓ３）。共有モジュール１１の処理が完了すると、先に実行された共有モジュール１１の処理の完了により、処理結果テーブルＴに格納された処理結果（処理結果については後述する。）がアプリケーションプログラム９に渡され、アプリケーションプログラム９の処理が最後まで遂行され完了される（Ｓ５）。
【００１８】
前記Ｓ１において、否定判断がなされると（Ｓ１：ＮＯ）、共有モジュール１１がアプリケーションプログラム９によって呼び出されるとともに（Ｓ６）、当該共有モジュール１１の識別情報が付されたミューテクス資源がアプリケーションプログラム９によって確保される（Ｓ７）。つまり、否定判断がなされた場合は、共有モジュール１１の識別情報が付されたミューテクス資源は開放されている状態にあり、何れのアプリケーションプログラム９、１０によっても共有モジュール１１が実行されていない状態にある。
【００１９】
アプリケーションプログラム９によって呼び出された共有モジュール１１の実行が完了すると（Ｓ８：ＹＥＳ）、共有モジュール１１の処理結果がアプリケーションプログラム９に渡され（Ｓ９）、アプリケーションプログラム９の処理が最後まで遂行され完了される（Ｓ１０）。そして、前記Ｓ７でアプリケーションプログラム９によって確保されたミューテクス資源は解放される（Ｓ１１）。
なお、これらＳ１０、Ｓ１１の処理は順番を入れ替えてもよい。
【００２０】
次に、前記Ｓ２、Ｓ６等の呼び出しに対応する共有モジュール１１の処理動作について図３に基づき説明すると、アプリケーションプログラム９の実行によって共有モジュール１１が呼び出されたときに（Ｓ２１：ＹＥＳ）、他のアプリケーションプログラム１０の実行によって、共有モジュール１１が実行されているか否かが判断される（Ｓ２２：ＹＥＳ）。該判断は前記Ｓ１と同様にミューテクス資源が他のアプリケーションプログラム１０に確保されているか否かに基づいて行われる。
【００２１】
前記Ｓ２２において、肯定判断がなされた場合は（Ｓ２２：ＹＥＳ）、共有モジュールによって、ネットワーク１２、１７に対する処理動作（例えば、ブロードキャスト等のコマンドの実行が行われない。）を除く処理動作が実行され（Ｓ２３）、処理が完了すると呼出を行ったアプリケーションプログラム９に対して処理完了を指定する（Ｓ２４）。
【００２２】
前記Ｓ２２において、否定判断がなされた場合は（Ｓ２２：ＮＯ）、ネットワーク１２、１７に対する処理動作を含めた全ての処理動作が実行され（Ｓ２５）、処理が完了される（Ｓ２６）。そして、呼び出しを行ったアプリケーションプログラム９に対して処理結果が渡されるとともに（Ｓ２７）、処理結果テーブルＴに処理結果が格納される（Ｓ２８）。
【００２３】
つぎに、上述のように、クライアント装置１において処理動作が実行された場合に形成される全体の手順の流れを図４の説明図に基づいて説明する。すなわち、１のアプリケーションプログラム９が共有モジュール１１を呼び出して（Ｓ５１）、共有モジュール１１が実行されている最中に（Ｓ５２）、同じ共有モジュール１１が他のアプリケーションプログラム１０の実行により呼び出されると（Ｓ５３）、共有モジュール１１は先に実行されている処理とは別に処理を開始するものの、ネットワークに対する処理動作は実行されない（Ｓ５４）。
【００２４】
そして、先に処理が開始された共有モジュールの実行処理が完了すると（Ｓ５５）、その処理結果がアプリケーションプログラム９に渡され（Ｓ５６）、アプリケーションプログラム９は自身の実行処理を完了する（Ｓ５７）。また、共有モジュールの処理結果は、アプリケーションプログラム９のほか、前述した処理結果テーブルＴにも格納され（Ｓ５８）、その後別途実行された共有モジュールの処理が完了した際（Ｓ５９）に、処理結果テーブルＴに格納された処理結果がアプリケーションプログラム１０に渡され（Ｓ６０）、アプリケーションプログラム１０の実行処理も完了される（Ｓ６１）。
【００２５】
以上においては、クライアント装置１において、複数のアプリケーションプログラム９、１０が実行される場合の処理動作について説明したが、クライアント装置１において、１のアプリケーションプログラム９又は１０が複数回実行され、共有モジュール１１が同一のアプリケーションプログラム９又は１０の実行によって重複して呼び出された場合にも同様の処理動作が実行される。例えば、クライアント装置１において、アプリケーションプログラム９が実行され、その実行が完了しない間に再び同じアプリケーションプログラム９が実行された場合には、先に実行されたアプリケーションプログラムはＳ１、Ｓ６乃至Ｓ１１の処理動作を実行し、後に実行されたアプリケーションプログラムはＳ１乃至Ｓ５の処理動作を実行する。これを図４に当てはめると、先に実行されたアプリケーションプログラムは、図示する「アプリケーションプログラム９」に相当する処理動作を実行し、後に実行されたアプリケーションプログラムは、図示する「アプリケーションプログラム１０」に相当する処理動作を実行する。
【００２６】
以上の説明から明らかなように、本実施の形態に係るプログラム８が組み込まれたクライアント装置１によれば、同じモジュールプログラム１１を共有する複数のアプリケーションプログラム９、１０を同時に起動したり、１個のアプリケーションプログラム９又は１０を重複して複数回起動したりしても、アプリケーションプログラム同士の処理が並行して円滑に行われるようになる。したがって、従来のように最初に起動したアプリケーションプログラムのみが実行され、後に起動したアプリケーションプログラムが実行されないという不都合が解消される。
【００２７】
なお、本実施の形態においては、１個のアプリケーションプログラムが複数回実行される場合と２個のアプリケーションプログラムが同時に実行される場合を例に挙げて説明したが、モジュール１１を共有するアプリケーショの数を３個以上としても、勿論、同様に３個以上のアプリケーションプログラムは全て並行して円滑に処理される。
【産業上の利用可能性】
【００２８】
本発明は、例えば、複数のアプリケーションプログラムとそれらの共有モジュールプログラムとが組み込まれたクライアント装置に適用することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態に係るクライアント装置の構成例及び該クライアント装置が設置されるネットワークの構成例を示した図である。
【図２】本発明の実施の形態に係るクライアント装置において、１又は複数のアプリケーションプログラムが実行される際に形成される処理を示したフローチャートである。
【図３】本発明の実施の形態に係るクライアント装置において、１又は複数のアプリケーションプログラムが実行される際に形成される処理を示したフローチャートである。
【図４】本発明の実施の形態に係るクライアント装置において、同じモジュールを共有する複数のアプリケーションプログラムが実行される際に形成される処理を示した説明図である。
【図５】従来例に係るパーソナルコンピュータにおいて、同じモジュールを共有する複数のアプリケーションプログラムが実行される際に形成される処理を示した説明図である。
【符号の説明】
【００３０】
Ｔ    処理結果テーブル
１    クライアント装置
２    ＣＰＵ
３    ＲＡＭ
４    ＲＯＭ
８    プログラム
９、１０    アプリケーションプログラム
１１    モジュールプログラム
１２    ＬＡＮ（ネットワーク）
１７    インターネット（ネットワーク）
【図１】
2005182453.tif 000003
【図２】
2005182453.tif 000004
【図３】
2005182453.tif 000005
【図４】
2005182453.tif 000006
【図５】
2005182453.tif 000007