(57)【要約】【課題】アプリケーションプログラムの複製を防止しながら、そのアプリケーションプログラムの共有を可能にする。【解決手段】通信回線２を介して接続されたサーバシステム３および少なくとも１つのクライアントシステム４間においてアプリケーションプログラムを共有するためのアプリケーション共有方法。アプリケーションプログラムを、少なくとも１つのクライアントシステム４が実行できる単位に分割して複数のモジュールＰ１〜Ｐ３を生成し、生成した複数のモジュールＰ１〜Ｐ３をサーバシステム３内の共有ディスク１２に格納し、少なくとも１つのクライアントシステム４から通信回線２を介してサーバシステム３にアプリケーションプログラムの実行要求が送られた際に、サーバシステム３により、複数のモジュールＰ１〜Ｐ３の中から、実行要求に対応する第１のモジュールＰ１をその共有ディスク１２から読み出し、通信回線２を介して少なくとも１つのクライアントシステム４のメモリ３２へロードする。【選択図】　　　図１
2004021852.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有方法であって、
前記アプリケーションプログラムを、前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納し、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードすることを特徴とするアプリケーション共有方法。
【請求項２】
前記複数のモジュールそれぞれは、前記少なくとも１つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位であることを特徴とする請求項１記載のアプリケーション共有方法。
【請求項３】
前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納し、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第１のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムにより、前記第１のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードすることを特徴とする請求項１又は２記載のアプリケーション共有方法。
【請求項４】
前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、
前記少なくとも１つのクライアントシステムは、そのメモリにロードされた第１のモジュールを、当該第１のモジュールに対応するデータ要素に基づいて実行し、その第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードを読み出し、当該第１のモジュールに対して論理的に次に継続される第２のモジュールを認識し、第２のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信し、
前記サーバシステムは、送信されてきた第２のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第２のモジュールを当該サーバシステムのメモリから読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードし、
前記少なくとも１つのクライアントシステムは、そのメモリへの前記第２のモジュールのロードに応じて、当該メモリにロードされている第１のモジュールおよび対応するデータ要素を消去し、ロードされた第２のモジュールを実行することを特徴とする請求項３記載のアプリケーション共有方法。
【請求項５】
前記サーバシステムのロードステップは、前記第２のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第２のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするステップをさらに備えており、
前記少なくとも１つのクライアントシステムの実行ステップは、ロードされたデータ要素に基づいて、前記第２のモジュールを実行することを特徴とする請求項４記載のアプリケーション共有方法。
【請求項６】
前記少なくとも１つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、
前記少なくとも１つのクライアントシステムによりそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも１つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続することを特徴とする請求項１乃至５の内の何れか１項記載のアプリケーション共有方法。
【請求項７】
通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステムを備え、当該サーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有システムであって、
前記サーバシステムは、前記アプリケーションプログラムを、前記少なくとも１つのクライアントシステムが実行できる単位に分割して互いに論理的関連性を有する複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する格納手段と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするロード手段とを備えたことを特徴とするアプリケーション共有システム。
【請求項８】
前記複数のモジュールそれぞれは、前記少なくとも１つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位であることを特徴とする請求項７記載のアプリケーション共有システム。
【請求項９】
前記サーバシステムは、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を当該サーバシステム内の記憶部に格納するデータ格納手段と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第１のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記第１のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするデータロード手段とを備えたことを特徴とする請求項７又は８記載のアプリケーション共有システム。
【請求項１０】
前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、
前記少なくとも１つのクライアントシステムは、そのメモリにロードされた第１のモジュールを、当該第１のモジュールに対応するデータ要素に基づいて実行し、その第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードを読み出して当該第１のモジュールに対して論理的に次に継続される第２のモジュールを認識する認識手段と、第２のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信する送信手段とを備え、前記サーバシステムは、送信されてきた第２のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第２のモジュールを当該サーバシステム内の記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするロード手段を備え、
前記少なくとも１つのクライアントシステムは、そのメモリに対する前記第２のモジュールのロードに応じて、当該メモリにロードされている第１のモジュールおよび対応するデータ要素を消去する消去手段と、ロードされた第２のモジュールを実行する実行手段とをさらに備えたことを特徴とする請求項９記載のアプリケーション共有システム。
【請求項１１】
前記サーバシステムのロード手段は、前記第２のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第２のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードする手段をさらに備えており、
前記少なくとも１つのクライアントシステムの実行手段は、ロードされたデータ要素に基づいて、前記第２のモジュールを実行する手段であることを特徴とする請求項１０記載のアプリケーション共有システム。
【請求項１２】
前記少なくとも１つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、
前記少なくとも１つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも１つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続する手段を備えたことを特徴とする請求項７乃至１１の内の何れか１項記載のアプリケーション共有システム。
【請求項１３】
通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステム間において共有されるアプリケーションプログラムであって、
前記少なくとも１つのクライアントシステムが実行できる単位に分割された複数のモジュールを備えており、
前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、
前記少なくとも１つのクライアントシステムのメモリに前記複数のモジュールの中から１つの第１のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも１つのクライアントシステムに対して前記第１のモジュールよりも論理的に次に継続される第２のモジュールがロードされたとき、
前記第１のモジュールは、前記少なくとも１つのクライアントシステムを、自モジュールを消去させる手段として機能させることを特徴とするアプリケーションプログラム。
【請求項１４】
通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステムを備え、当該サーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムであって、
前記アプリケーションプログラムを前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する処理と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードする処理とを前記サーバシステムにそれぞれ実行させることを特徴とするアプリケーション共有用プログラム。
【請求項１５】
通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステムを備え、当該サーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムを記録した記録媒体であって、
前記アプリケーション共有用プログラムは、前記アプリケーションプログラムを前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する手順と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードする手順とを含むことを特徴とするアプリケーション共有用プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションプログラムを、通信回線を介して接続された少なくとも１つのクライアントシステムおよびサーバシステム間において共有するためのアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来、所定の目的のために開発されたプログラム（アプリケーションプログラム）をクライアント（クライアントコンピュータ）に対して配信（提供）する方法として、例えば、アプリケーションプログラムおよびそのアプリケーションプログラムの実行に必要なデータを、それぞれファイルとして複数のクライアントがアクセス可能な共有ディスク等に公開するファイル共有方法が知られている。
【０００３】
また、アプリケーションプログラムの提供元のサーバ（サーバコンピュータ）に対してユーザのクライアントを介してアクセスし、サーバに格納されたアプリケーションプログラムおよびそのアプリケーションプログラムの実行時に利用するデータをそれぞれクライアントに対してダウンロードして、そのローカルディスク上に保存（インストール）する方法（ダウンロード方法）も知られている。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のファイル共有方法では、アプリケーションプログラムおよびそのアプリケーションプログラムの実行時に利用するデータ（以下、利用データと略記する）をそれぞれファイルとして公開している。このため、アプリケーションプログラムおよび利用データそれぞれを容易に複製（コピー）することができ、アプリケーションプログラム配信元の利益を害する結果となっていた。
【０００５】
また、従来のダウンロード方法においては、例えば、アプリケーションプログラムをバージョンアップした場合、ユーザは、そのバージョンアップを認識し、バージョンアップファイルを、そのユーザのクライアントにダウンロードしてインストールする必要があった。このため、バージョンアップ毎にユーザのダウンロード操作が必要になり、ユーザ側の負担が大きかった。
【０００６】
さらに、上記ダウンロード方法では、アプリケーションプログラムおよび利用データそれぞれを一度にダウンロードしている。
【０００７】
このため、利用データが巨大であった場合、使用する可能性の小さいデータも一度にダウンロードする結果となり、クライアント側メモリおよびディスクのデータ記憶容量の空きスペースの低減を招いていた。
【０００８】
また、従来のダウンロード方法においては、アプリケーションプログラムおよび利用データそれぞれがクライアントのディスク上に保存される。このため、アプリケーションプログラムおよび利用データそれぞれを容易に複製することができ、アプリケーションプログラム配信元の利益を害する結果となっていた。
【０００９】
本発明は上述した事情に鑑みてなされたもので、アプリケーションプログラムの複製を防止しながら、そのアプリケーションプログラムの共有を可能にしたアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第１の目的とする。
【００１０】
また、本発明は上述した事情に鑑みてなされたもので、アプリケーションプログラムの実行に利用されるデータ（利用データ）の複製を防止しながら、その利用データの共有を可能にしたアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第２の目的とする。
【００１１】
さらに、本発明は上述した事情に鑑みてなされたもので、ユーザ側のアプリケーションプログラム／利用データのダウンロードに係わる負担を低減し、クライアント側メモリのデータ記憶容量の空きスペースを増大させることが可能なアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第３の目的とする。
【００１２】
【課題を解決するための手段】
上述した目的を達成するための請求項１記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有方法であって、前記アプリケーションプログラムを、前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納し、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードすることを要旨とする。
【００１３】
請求項２記載の発明によれば、請求項１記載の発明において、前記複数のモジュールそれぞれは、前記少なくとも１つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位である。
【００１４】
請求項１および２記載の発明においては、アプリケーションプログラムから、前記少なくとも１つのクライアントシステムが実行できる単位に分割されて複数のモジュールが生成され、生成された複数のモジュールは、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第１のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００１５】
請求項３記載の発明によれば、請求項１記載の発明において、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納し、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第１のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムにより、前記第１のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードすることを要旨とする。
【００１６】
請求項３記載の発明では、前記アプリケーションプログラムの実行に必要なデータは、前記複数のモジュールの実行に必要な単位に分割されて複数のデータ要素が生成され、生成された複数のデータ要素は、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第１のモジュールに対応するデータ要素が前記記憶部内に存在し、かつ未だロードされていない場合には、前記サーバシステムにより、データ全体ではなく、データ要素単位、すなわち、前記第１のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００１７】
請求項４記載の発明によれば、請求項３記載の発明において、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも１つのクライアントシステムは、そのメモリにロードされた第１のモジュールを、当該第１のモジュールに対応するデータ要素に基づいて実行し、その第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードを読み出し、当該第１のモジュールに対して論理的に次に継続される第２のモジュールを認識し、第２のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信し、前記サーバシステムは、送信されてきた第２のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第２のモジュールを当該サーバシステムのメモリから読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードし、前記少なくとも１つのクライアントシステムは、そのメモリへの前記第２のモジュールのロードに応じて、当該メモリにロードされている第１のモジュールおよび対応するデータ要素を消去し、ロードされた第２のモジュールを実行することを要旨とする。
【００１８】
請求項４記載の発明では、前記少なくとも１つのクライアントシステムにより、そのメモリにロードされた第１のモジュールは、当該第１のモジュールに対応するデータ要素に基づいて実行される。
【００１９】
このとき、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれているため、第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードが読み出され、当該第１のモジュールに対して論理的に次に継続される第２のモジュールが認識される。
【００２０】
そして、認識された第２のモジュールのロード要求が前記少なくとも１つのクライアントシステムにより前記通信回線を介して前記サーバシステムに送信される。
【００２１】
前記サーバシステムでは、送信されてきた第２のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第２のモジュールが当該サーバシステムのメモリから読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００２２】
このとき、前記少なくとも１つのクライアントシステムでは、そのメモリへの前記第２のモジュールのロードに応じて、当該メモリにロードされている実行済みの第１のモジュールおよび対応するデータ要素が消去され、ロードされた第２のモジュールが実行される。
【００２３】
請求項５記載の発明によれば、請求項４記載の発明において、前記サーバシステムのロードステップは、前記第２のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第２のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするステップをさらに備えており、前記少なくとも１つのクライアントシステムの実行ステップは、ロードされたデータ要素に基づいて、前記第２のモジュールを実行することを要旨とする。
【００２４】
請求項５記載の発明では、前記サーバシステムのロードステップとして、前記第２のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第２のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。このとき、前記少なくとも１つのクライアントシステムの実行ステップとして、ロードされたデータ要素に基づいて、前記第２のモジュールが実行される。
【００２５】
請求項６記載の発明によれば、請求項１乃至５記載の発明において、前記少なくとも１つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、前記少なくとも１つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも１つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続することを要旨とする。
【００２６】
請求項６記載の発明では、前記少なくとも１つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力された際に、前記少なくとも１つのクライアントシステムでは、入力されたロード要求が無視、すなわち、ローカル記憶部へのモジュールのセーブが拒否され、前記各モジュールの実行が継続される。
【００２７】
上述した目的を達成するための請求項７記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステムを備え、当該サーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有システムであって、前記サーバシステムは、前記アプリケーションプログラムを、前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する格納手段と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするロード手段とを備えたことを要旨とする。
【００２８】
請求項８記載の発明によれば、請求項７記載の発明において、前記複数のモジュールそれぞれは、前記少なくとも１つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位である。
【００２９】
請求項７および８記載の発明では、前記サーバシステムの格納手段により、アプリケーションプログラムから、前記少なくとも１つのクライアントシステムが実行できる単位に分割されて複数のモジュールが生成され、生成された複数のモジュールは、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムのロード手段により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第１のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００３０】
請求項９記載の発明によれば、請求項７又は８記載の発明において、前記サーバシステムは、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を当該サーバシステム内の記憶部に格納するデータ格納手段と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第１のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記第１のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするデータロード手段とを備えたことを要旨とする。
【００３１】
請求項９記載の発明では、前記アプリケーションプログラムの実行に必要なデータは、前記サーバシステムのデータ格納手段により、前記複数のモジュールの実行に必要な単位に分割されて複数のデータ要素が生成され、生成された複数のデータ要素は、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第１のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムのデータロード手段により、データ全体ではなく、データ要素単位、すなわち、前記第１のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００３２】
請求項１０記載の発明によれば、請求項９記載の発明において、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも１つのクライアントシステムは、そのメモリにロードされた第１のモジュールを、当該第１のモジュールに対応するデータ要素に基づいて実行し、その第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードを読み出して当該第１のモジュールに対して論理的に次に継続される第２のモジュールを認識する認識手段と、第２のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信する送信手段とを備え、前記サーバシステムは、送信されてきた第２のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第２のモジュールを当該サーバシステム内の記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードするロード手段を備え、前記少なくとも１つのクライアントシステムは、そのメモリに対する前記第２のモジュールのロードに応じて、当該メモリにロードされている第１のモジュールおよび対応するデータ要素を消去する消去手段と、ロードされた第２のモジュールを実行する実行手段とをさらに備えたことを要旨とする。
【００３３】
請求項１０記載の発明では、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれているため、前記少なくとも１つのクライアントシステムのメモリにロードされた第１のモジュールが当該第１のモジュールに対応するデータ要素に基づいて実行されている際に、前記少なくとも１つのクライアントシステムの認識手段により、第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードが読み出され、当該第１のモジュールに対して論理的に次に継続される第２のモジュールが認識される。
【００３４】
そして、送信手段により、認識された第２のモジュールのロード要求が前記少なくとも１つのクライアントシステムにより前記通信回線を介して前記サーバシステムに送信される。
【００３５】
前記サーバシステムでは、送信されてきた第２のモジュールのロード要求に応じて、ロード手段により、前記複数のモジュールの中から前記第２のモジュールが当該サーバシステムのメモリから読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００３６】
このとき、前記少なくとも１つのクライアントシステムでは、そのメモリへの前記第２のモジュールのロードに応じて、消去手段により、当該メモリにロードされている実行済みの第１のモジュールおよび対応するデータ要素が消去され、実行手段により、ロードされた第２のモジュールが実行される。
【００３７】
請求項１１記載の発明によれば、請求項１０記載の発明において、前記サーバシステムのロード手段は、前記第２のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第２のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードする手段をさらに備えており、前記少なくとも１つのクライアントシステムの実行手段は、ロードされたデータ要素に基づいて、前記第２のモジュールを実行する手段であることを要旨とする。
【００３８】
請求項１１記載の発明では、前記サーバシステムのロード手段としての処理により、前記第２のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第２のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。このとき、前記少なくとも１つのクライアントシステムの実行手段としての処理により、ロードされたデータ要素に基づいて、前記第２のモジュールが実行される。
【００３９】
請求項１２記載の発明によれば、請求項７乃至１１の内の何れか１項記載の発明において、前記少なくとも１つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、前記少なくとも１つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも１つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続する手段を備えたことを要旨とする。
【００４０】
請求項１２記載の発明では、前記少なくとも１つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも１つのクライアントシステムにおける継続手段により、入力されたロード要求が無視、すなわち、ローカル記憶部へのモジュールのセーブが拒否され、前記各モジュールの実行が継続される。
【００４１】
上述した目的を達成するための請求項１３記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステム間において共有されるアプリケーションプログラムであって、前記少なくとも１つのクライアントシステムが実行できる単位に分割された複数のモジュールを備えており、前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも１つのクライアントシステムのメモリに前記複数のモジュールの中から１つの第１のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも１つのクライアントシステムに対して前記第１のモジュールよりも論理的に次に継続される第２のモジュールがロードされたとき、前記第１のモジュールは、前記少なくとも１つのクライアントシステムを、自モジュールを消去させる手段として機能させることを要旨とする。
【００４２】
請求項１３記載の発明において、前記アプリケーションプログラムには、前記少なくとも１つのクライアントシステムが実行できる単位に分割された複数のモジュールが含まれており、前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれている。
【００４３】
このため、前記少なくとも１つのクライアントシステムのメモリに前記複数のモジュールの中から１つの第１のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも１つのクライアントシステムに対して前記第１のモジュールよりも論理的に次に継続される第２のモジュールがロードされたとき、前記第１のモジュールにより、前記少なくとも１つのクライアントシステムは、自モジュールを消去させる手段として機能する。
【００４４】
上述した目的を達成するための請求項１４記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステムを備え、当該サーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムであって、前記アプリケーションプログラムを前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する処理と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードする処理とを前記サーバシステムにそれぞれ実行させる。
【００４５】
請求項１４記載の発明において、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記アプリケーションプログラムが前記少なくとも１つのクライアントシステムが実行できる単位に分割され、複数のモジュールが生成される。そして、生成された複数のモジュールは、アプリケーション共有用プログラムに基づくサーバシステムの処理により、そのサーバシステム内の記憶部に格納される。このとき、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第１のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００４６】
上述した目的を達成するための請求項１５記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも１つのクライアントシステムを備え、当該サーバシステムおよび少なくとも１つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムを記録する記録媒体であって、前記アプリケーション共有用プログラムは、前記アプリケーションプログラムを前記少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する手順と、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第１のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードする手順とを含むことを要旨とする。
【００４７】
請求項１５記載の発明では、記録媒体に記録されたアプリケーション共有用プログラムにおける格納手順に従ったサーバシステムの処理により、前記アプリケーションプログラムが前記少なくとも１つのクライアントシステムが実行できる単位に分割され、互いに論理的関連性を有する複数のモジュールが生成される。生成された複数のモジュールは、上記格納手順に従ったサーバシステムの処理により、そのサーバシステム内の記憶部に格納される。このとき、前記少なくとも１つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記記録媒体に記録されたアプリケーション共有用プログラムにおけるロード手順に従ったサーバシステムの処理により、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第１のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードされる。
【００４８】
【発明の実施形態】
本発明に係るアプリケーション共有方法およびシステムの実施の形態について、添付図面を参照して説明する。
【００４９】
図１は、本発明の実施の形態に係るアプリケーション共有システム１の全体構成を示す図である。
【００５０】
図１に示すように、アプリケーション共有システム１は、クライアント／サーバシステムであり、電話回線、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ　Ｄｉｇｉｔａｌ　Ｓｕｂｓｃｒｉｂｅｒ　Ｌｉｎｅ）、光回線等の高速な通信回線（ネットワーク）２を介して接続されたサーバシステム３および少なくとも１つのクライアントシステム（以下、単にクライアントシステムと記載する）４を備えている。
【００５１】
例えば、上記通信回線２は、インターネット｛ＴＣＰ／ＩＰ、ＨＴＴＰ（Ｈｙｐｅｒ　Ｔｅｘｔ　Ｌｉｎｋ　Ｔｒａｎｓｆｏｒｍｅｒ　Ｐｒｏｔｏｃｏｌ）等のプロトコルに基づいて相互リンクされたネットワークの集合体｝の一部として構築されたものである。
【００５２】
サーバシステム３は、各種のアプリケーションプログラム（本実施形態では、１つのアプリケーションプログラムＰとする）を少なくとも１つのクライアントシステムに対応するユーザ側と共有するためのサービスを提供する側のコンピュータシステムである。
【００５３】
すなわち、サーバシステム３は、通信回線２に接続されており、ルータ、ファイアウオール等の通信回線２上のルーティング処理用およびセキュリティ保持用のインタフェース１０を備えている。
【００５４】
また、サーバシステム３は、クライアントシステム４からの通信回線２を介したアクセスを制御するためのコンピュータ（サーバコンピュータ）本体としてのアクセス制御部１１と、このアクセス制御部１５と通信可能に接続されており、プログラムやデータ等をクライアントシステム４と共有して記憶するための共有ディスク１２とを備えている。
【００５５】
さらに、サーバシステム３は、アクセス制御部１１に対して、クライアントシステム４からのアクセスに対する制御処理を実行させるためのプログラム１５を記憶するとともに、アクセス制御部１１の処理データを格納するためのメモリ（メインメモリ）１６を備えている。
【００５６】
なお、メモリ１６は、プログラム１５を記録した記録媒体の一例であるが、他の磁気記録媒体等の何れの記録媒体も、上記プログラム１５を記録した記録媒体に含まれる。
【００５７】
そして、サーバシステム３は、そのサーバシステム３へリモートでアクセスできる権限を有するクライアントシステムおよび対応するユーザに関するアクセス権限情報｛認証情報（ＩＤ）、パスワード、情報が暗号化されている際の暗号鍵情報等｝が登録されたアクセス権限ファイル２０を備えている。
【００５８】
一方、クライアントシステム４は、サーバシステム３により提供されるアプリケーション共有サービスを受ける側のコンピュータシステムである。
【００５９】
すなわち、クライアントシステム４は、図１に示すように、例えばプロバイダ等を介して通信回線２に接続されており、ルータ、ファイアウオール等の通信回線２上のルーティング処理用およびセキュリティ保持用のインタフェース３０を備えている。
【００６０】
また、クライアントシステム４は、サーバシステム３からロードしたプログラム等を実行するためのＣＰＵ等のプログラム実行部３１と、このプログラム実行部３１の処理によりロードされたプログラムやデータを記憶するためのメモリ（メインメモリ）３２とを備えている。
【００６１】
さらに、クライアントシステム４は、対応するクライアントシステム４のユーザが操作してプログラム実行部３１に対して所望の要求を入力するためのキーボード、マウス、音声入力機器等を含む入力部３３と、クライアントシステム４のプログラム実行部４に直接、すなわち、インタフェース３０および通信回線２を経由することなく接続されたローカルディスク３４とを備えている。
【００６２】
次に本実施形態に係わるアプリケーション共有システム１のアプリケーション共有処理について説明する。
【００６３】
本実施形態において、クライアントシステム４と共有したいアプリケーションプログラムＰおよびそのアプリケーションプログラムＰの実行に必要なデータＤが例えば通信回線２等を介してサーバシステム３に提供された際に、サーバシステム４のアクセス制御部１１は、インタフェース１０を介して提供されたアプリケーションプログラムＰおよびデータＤを受け取る。
【００６４】
そして、アクセス制御部１１は、受け取ったアプリケーションプログラムＰを、クライアントシステム４が実行できる単位（例えば、クライアントシステム４がそのメモリ上にロードできる最小限の機能単位）に分割して、例えば互いに論理的関連性を有するシーケンシャルな複数（例えば本実施形態では３つ）のモジュールＰ１〜Ｐ３を生成し、生成したモジュールＰ１〜Ｐ３を共有ディスク１２に格納する。
【００６５】
このとき、各モジュールＰ１、Ｐ２、Ｐ３は、その単体では、アプリケーションプログラムＰとして価値が無い（クライアントシステム４が実行できるプログラムではあるが、アプリケーションプログラムとしての目的を達成して効果を発生させることができない）ものとして生成されている。
【００６６】
同様に、各データＤ１、Ｄ２、Ｄ３は、モジュールＰ１、Ｐ２、Ｐ３に対応する内容として分割されており、その単体では、データＤとして価値が無いものとして生成されている。
【００６７】
また、少なくとも論理的に最後のモジュールＰ３を除く各モジュールＰ１、Ｐ２は、例えばその終端部分に、その各モジュールＰ１、Ｐ２に対してそれぞれ論理的に次に継続されるモジュールＰ２、Ｐ３を指定する次モジュール指定コードＳＤ１、ＳＤ２を含んでいる。
【００６８】
次いで、アクセス制御部１１は、データＤを、複数のモジュールＰ１〜Ｐ３の実行に必要な単位に分割して複数のデータ要素Ｄ１〜Ｄ３を生成し、生成したモジュールＰ１〜Ｐ３を共有ディスク１２に格納する（ステップＳ１）。
【００６９】
本実施形態では、データＤ１およびＤ２は、モジュールＰ１の実行に必要なデータであり、データＤ３は、モジュールＰ３の実行に必要なデータとする。
【００７０】
一方、サーバシステム３に対してリモートでアクセスできる権限を有するクライアントシステム４のユーザは、入力部３３を介してアクセス権限情報（ＩＤ）、パスワード、暗号鍵情報等）をプログラム実行部３１に対して入力し、サーバシステム３に対するアクセスを要求する。プログラム実行部３１は、入力されたアクセス権限情報をインタフェース３０および通信回線２を介してサーバシステム３に対し送信し、サーバシステム３にアクセスする（ステップＳ２）。
【００７１】
サーバシステム３のアクセス制御部１１は、送信されてきたアクセス権限情報をインタフェース１０を介して受け取り、アクセス権限ファイル２０を参照して、送信元のクライアントシステム４にアクセス権限が存在するか否か（ファイル２０に登録されているか否か）を判断する（ステップＳ３）。
【００７２】
このステップＳ３の判断の結果ノー（ＮＯ）、すなわち、送信されたアクセス権限情報が未登録の場合（クライアントシステム４にアクセス権限が存在しない場合）には、アクセス制御部１１は、クライアントシステム４のアクセスを無視するか、あるいは、アクセス権限不所有を表すメッセージを作成してクライアントシステム４に向けて送信し、処理を終了する。
【００７３】
一方、ステップＳ３の判断の結果イエス（ＹＥＳ）、すなわち、送信されたアクセス権限情報が登録済みの場合（クライアントシステム４にアクセス権限が存在する場合）には、アクセス制御部１１は、クライアントシステム４との通信回線２を介した接続を確立する（ステップＳ４）。
【００７４】
サーバシステム４との接続が確立された際、ユーザは、入力部３３を介してアプリケーションプログラムＰの実行要求をプログラム実行部３１に対して入力し、プログラム実行部３１は、入力されたアプリケーションプログラムＰの実行要求をインタフェース３０および通信回線２を介してサーバシステム３に対し送信する（ステップＳ５）。
【００７５】
サーバシステム３のアクセス制御部１１は、送信されてきたアプリケーションプログラムＰの実行要求をインタフェース１０を介して受け取り、アプリケーションプログラムＰの実行要求に対応するモジュールとして、論理的に最初のモジュールＰ１および対応するデータ要素Ｄ１、Ｄ２を共有ディスク１２から取り出し、取り出したモジュールＰ１およびデータ要素Ｄ１、Ｄ２をインタフェース３０および通信回線２を介してクライアントシステム４に送信（ロード）する（ステップＳ６）。
【００７６】
クライアントシステム４のプログラム実行部３１は、通信回線２を介してロードされてきたモジュールＰ１およびデータＤ１、Ｄ２をインタフェース３０を介して受け取り、受け取ったモジュールＰ１およびデータＤ１、Ｄ２をメモリ３２にロードする（図４（ａ）参照）。そして、プログラム実行部３１は、データＤ１およびＤ２に基づいて、モジュールＰ１を実行する（ステップＳ７）。
【００７７】
このとき、プログラム実行部３１は、モジュールＰ１実行処理と並行して、モジュールＰ１において次モジュール指定コードを検出したか否かを判断しており（ステップＳ８）、この判断の結果ＮＯ（未検出）の場合、モジュールＰ１の実行処理を継続する。
【００７８】
そして、ステップＳ８の判断の結果ＹＥＳ、すなわち、プログラム実行部３１が次モジュール指定コードＳＤ１をモジュールＰ１から検出した場合には、プログラム実行部３１は、次モジュールロード要求をインタフェース３０および通信回線２を介してサーバシステム３に対し送信する（ステップＳ９）。
【００７９】
サーバシステム３のアクセス制御部１１は、送信されてきた次モジュールロード要求をインタフェース１０を介して受け取り、共有ディスク１２を参照して、対応する次モジュールＰ２の存在を認識する。
【００８０】
このとき、アクセス制御部１１は、次モジュールＰ２に対応するデータ要素Ｄ１、Ｄ２が既にクライアントシステム４側にロードされているため、次モジュールＰ２のみを共有ディスク１２から取り出し、取り出したモジュールＰ２をインタフェース３０および通信回線２を介してクライアントシステム４に送信（ロード）する（ステップＳ１０）。
【００８１】
クライアントシステム４のプログラム実行部３１は、通信回線２を介してロードされてきたモジュールＰ２をインタフェース３０を介して受け取り、受け取ったモジュールＰ２をメモリ３２にロードし、さらに、メモリ３２に現在格納されていたモジュールＰ１をメモリ３２から消去する（ステップＳ１１）。
【００８２】
ステップＳ１１の処理終了時のメモリ３２の内部構成を図４（ｂ）に示す。すなわち、図４（ｂ）によれば、メモリ３２には、既に実行済みのモジュールＰ１が消去され、次に実行されるモジュールＰ２およびそのモジュールＰ２の実行に必要なデータ要素Ｄ１、Ｄ２のみが格納されている。
【００８３】
次いで、プログラム実行部３１は、モジュールＰ１に継続し、データ要素Ｄ１およびＤ２に基づいてモジュールＰ２を実行する（ステップＳ１２）。
【００８４】
このとき、プログラム実行部３１は、ステップＳ８の処理と同様に、モジュールＰ２において次モジュール指定コードを検出したか否かを判断しており（ステップＳ１３）、この判断の結果ＮＯ（未検出）の場合、モジュールＰ２の実行処理を継続する。
【００８５】
そして、ステップＳ１３の判断の結果ＹＥＳ、すなわち、プログラム実行部３１が次モジュール指定コードＳＤ２をモジュールＰ２から検出した場合には、プログラム実行部３１は、次モジュールロード要求をインタフェース３０および通信回線２を介してサーバシステム３に対し送信する（ステップＳ１４）。
【００８６】
サーバシステム３のアクセス制御部１１は、送信されてきた次モジュールロード要求をインタフェース１０を介して受け取り、共有ディスク１２を参照して、対応する次モジュールＰ３の存在を認識する。
【００８７】
このとき、次モジュールＰ３に対応するデータ要素Ｄ３が共有ディスク１２内に存在し、かつ未だクライアントシステム４側にロードされていないため、アクセス制御部１１は、次モジュールＰ３および次モジュールＰ３に対応するデータ要素Ｄ３を共有ディスク１２から取り出し、取り出したモジュールＰ３およびデータ要素Ｄ３をインタフェース３０および通信回線２を介してクライアントシステム４に送信（ロード）する（ステップＳ１５）。
【００８８】
クライアントシステム４のプログラム実行部３１は、通信回線２を介してロードされてきたモジュールＰ２をインタフェース３０を介して受け取り、受け取ったモジュールＰ３およびデータ要素Ｄ３をメモリ３２にロードし、さらに、メモリ３２に現在格納されていたモジュールＰ２およびデータ要素Ｄ１、Ｄ２をメモリ３２から消去する（ステップＳ１６）。
【００８９】
ステップＳ１６の処理終了時のメモリ３２の内部構成を図４（ｃ）に示す。すなわち、図４（ｃ）によれば、メモリ３２には、既に実行済みのモジュールＰ２およびこのモジュールＰ２の実行に必要なデータ要素Ｄ１、Ｄ２がそれぞれ消去され、次に実行されるモジュールＰ３およびそのモジュールＰ３の実行に必要なデータＤ３のみが格納されている。
【００９０】
次いで、プログラム実行部３１は、モジュールＰ２に継続し、データ要素Ｄ３に基づいてモジュールＰ３を実行し（ステップＳ１７）、処理を終了する。
【００９１】
なお、図２および図３におけるサーバシステム３のアクセス制御部１１の処理は、プログラム１５に基づいて実行される。また、クライアントシステム４のプログラム実行部３１の処理は、その際にメモリ３２に格納されているモジュールに基づいて実行される。
【００９２】
以上述べたように、本実施形態によれば、アプリケーションプログラムＰおよびアプリケーションプログラムＰの実行に必要なデータＤを、クライアントシステム４が実行できる単位に分割して互いに論理的関連性を有するモジュールＰ１〜Ｐ３およびデータ要素Ｄ１〜Ｄ３を生成し、生成したモジュールＰ１〜Ｐ３およびデータ要素Ｄ１〜Ｄ３を共有ディスク１２にそれぞれ格納している。
【００９３】
すなわち、クライアントシステム４側から、共有ディスク１２上のアプリケーションプログラムＰ全体およびデータＤ全体にアクセスして複製を作成することができず、アプリケーションプログラムＰおよびデータＤの配信元（サーバシステム３の所有者）の上記複製に係わる不利益を防止することができる。
【００９４】
また、本実施形態によれば、クライアントシステム４からのアクセスに応じて、共有ディスク１２上に格納されたモジュールＰ１〜Ｐ３およびデータ要素Ｄ１〜Ｄ３を、モジュール単位およびデータ要素単位でクライアントシステム４にロードしている。
【００９５】
すなわち、クライアントシステム４側から、共有ディスク１２上のアプリケーションプログラムＰ全体およびデータＤ全体をそれぞれダウンロードして自システム４に格納することができないため、アプリケーションプログラムＰおよびデータＤの複製を不正に作成することを防止することができる。
【００９６】
また、アプリケーションプログラムＰの実行に必要なデータＤが巨大であった場合でも、実際に実行するモジュールの使用に必要なデータのみをダウンロードするように構成されている。このため、クライアントシステム４側メモリ３２およびローカルディスク３４のデータ記憶容量の空きスペースの無用な減少を防止することができる。
【００９７】
さらに、本実施形態によれば、アプリケーションプログラムＰをバージョンアップする際において、サーバシステム側では、共有ディスク１２上の対応するモジュールを更新する処理のみにより、アプリケーションプログラムＰのバージョンアップを行うことができる。
【００９８】
すなわち、ユーザ側においては、アプリケーションプログラムＰのバージョンアップを認識してバージョンアップファイルをクライアントシステム４へダウンロード・インストールする処理が不要となり、ユーザ側の負担を軽減することができる。
【００９９】
さらに、本実施形態において、クライアントシステム４のメモリ３２上には、常に、次の実行に必要なモジュールおよびそのモジュールの実行に必要なデータのみが格納されており、実行済みのモジュール／データや、現在格納中のモジュール以外の未実行のモジュール／データが同時に格納されることはない。
【０１００】
このため、クライアントシステム４側において、ロードされた複数のモジュール／データ要素を組み合わせてアプリケーションプログラム／データを複製することも不可能であり、不正複製防止機能の信頼性を向上させることができる。
【０１０１】
次に、本実施形態の変形例として、クライアントシステム４のプログラム実行部３１がモジュールを実行中において、ユーザが入力部３３を介してモジュールのローカルディスク３４へのロード要求を入力した場合のプログラム実行部３１の処理について説明する。なお、上記プログラム実行部３１の処理は、その際にメモリ３２に格納されているモジュールに基づいて実行される。
【０１０２】
すなわち、プログラム実行部３１は、現在メモリ３２に格納されているモジュールを実行中において（ステップＳ７、Ｓ１２、Ｓ１７参照）、その実行処理と並列的に、入力部３１からモジュールのセーブ要求が入力されてきたか否か判断している（ステップＳ２０）。
【０１０３】
このステップＳ２０の判断の結果、ＮＯ（ロード要求入力無し）の場合には、プログラム実行部３１は、対応するモジュールの実行処理を継続する。
【０１０４】
一方、ステップＳ２０の判断の結果、ＹＥＳ、すなわち、入力部３１からモジュール／対応するデータ要素（“Ａ／Ｂ”は、ＡおよびＢの内の少なくとも一方の意味で用いている）のセーブ要求が入力されてきた場合においても、プログラム実行部３１は、入力されたセーブ要求を無視して対応するモジュールの実行処理を継続する（ステップＳ２１）。
【０１０５】
すなわち、本変形例によれば、クライアントシステム４側にロードされてきたモジュール／対応するデータ要素は、常にそのメモリ３２にのみ格納され、そのシステム４におけるローカルディスク３４にセーブされることがない。このため、ローカルディスク３４上においてモジュール／対応するデータ要素を再構成してアプリケーションプログラムやデータを複製することもできず、アプリケーションプログラム／対応するデータの不正複製防止機能の信頼性をさらに向上させることができる。
【０１０６】
なお、本実施形態においては、説明を容易にするため、クライアントシステム４を１つとしたが、本発明はこれに限定されるものではなく、同一の構成・機能を有する複数のクライアントシステムを含むアプリケーション共有システムであってもよい。この場合には、クライアントシステム毎に上述した処理が実行されることになる。
【０１０７】
また、本実施形態においては、アプリケーションプログラムおよび対応するデータをそれぞれ３分割したが、本発明はこれに限定されるものではなく、分割後の単体（モジュール、データ要素）が分割前の全体（アプリケーションプログラム、対応するデータ）として価値が無いものであれば、何れの分割数であってもよい。
【０１０８】
さらに、本実施形態では、アプリケーションプログラムＰおよびそのアプリケーションプログラムの実行に必要なデータＤをそれぞれ分割したが、本発明はこの構成に限定されるものではなく、アプリケーションプログラムＰのみを分割し、データＤはそのまま共有ディスクに格納しておくことも可能である。
【０１０９】
そして、本実施形態では、アプリケーションプログラム／対応するデータを分割して格納する記憶部を、共有ディスク１２としたが、本発明はこれに限定されるものではなく、共有メモリ、共有データベース等、何れの記憶媒体の形態も含むものである。
【０１１０】
さらに、本実施形態では、アプリケーションプログラムＰを、クライアントシステム４が実行できる単位として、クライアントシステム４がそのメモリ上にロードできる最小限の機能単位に分割して、例えば互いに論理的関連性を有するシーケンシャルな複数のモジュールを生成したが、本発明はこの構成に限定されるものではない。
【０１１１】
すなわち、分割後の各モジュールが、その単体では、アプリケーションプログラムとして価値が無い（クライアントシステム４が実行できるプログラムではあるが、アプリケーションプログラムとしての目的を達成して効果を発生させることができない）ものであれば、分割単位をロード時の最小単位にする必要はなく、また、互いに論理的関連性を有するシーケンシャルな単位に分割する必要もない。
【０１１２】
【発明の効果】
以上述べたように、本発明に係わるアプリケーション共有方法およびシステム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体よれば、アプリケーションプログラムを、少なくとも１つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納している。
【０１１３】
このため、サーバシステムに対してアプリケーションプログラム実行要求を送信してきた少なくとも１つのクライアントシステムに対して、記憶部に格納された複数のモジュールの中から、アプリケーションプログラム全体ではなく、実行要求に対応する第１のモジュールを読み出して、通信回線を介して前記少なくとも１つのクライアントシステムのメモリへロードすることができる。
【０１１４】
すなわち、少なくとも１つのクライアントシステム側から、記憶部に格納されたアプリケーションプログラム全体をダウンロードして自クライアントシステムに格納することができない構成であるため、アプリケーションプログラムの複製を不正に作成することを防止することができる。
【０１１５】
また、本発明に係わるアプリケーション共有方法およびシステムによれば、アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納している。
【０１１６】
このため、サーバシステムに対してアプリケーションプログラム実行要求を送信してきた少なくとも１つのクライアントシステムに対して、上記第１のモジュールに対応するデータ要素が記憶部内に存在する場合には、サーバシステムにより、データ全体ではなく、上記第１のモジュールに対応するデータ要素をその記憶部から読み出し、通信回線を介して少なくとも１つのクライアントシステムのメモリへロードすることができる。
【０１１７】
すなわち、少なくとも１つのクライアントシステム側から、記憶部に格納されたデータ全体をダウンロードして自クライアントシステムに格納することができない構成であるため、データの複製を不正に作成することを防止することができる。
【０１１８】
さらに、本発明に係わるアプリケーション共有方法およびシステムによれば、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれている。このため、第１のモジュールの実行を終了する際に、その第１のモジュールに含まれるプログラムコードに基づいて、その第１のモジュールに対して論理的に次に継続される第２のモジュールを認識することができる。
【０１１９】
そして、本発明に係わるアプリケーション共有方法およびシステム、ならびにアプリケーションプログラムによれば、少なくとも１つのクライアントシステムは、そのメモリに第１のモジュールおよび対応するデータ要素が格納されている際に、第１のモジュールに対して論理的に次に継続される第２のモジュールがロードされたとき、当該メモリにロードされている実行済みの第１のモジュールおよび対応するデータ要素を消去し、ロードされた第２のモジュールを実行することができる。
【０１２０】
このため、少なくとも１つのクライアントシステム側において、ロードされた複数のモジュール／データ要素を組み合わせてアプリケーションプログラム／データを複製することも不可能であり、不正複製防止機能の信頼性を向上させることができる。
【０１２１】
さらに、本発明に係わるアプリケーション共有方法およびシステムによれば、前記少なくとも１つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも１つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力された際に、入力されたセーブ要求を無視、すなわち、ローカル記憶部へのモジュールのセーブを拒否して、前記各モジュールの実行を継続することができる。
【０１２２】
したがって、ローカル記憶部上においてモジュールを再構成してアプリケーションプログラムを複製することもできず、アプリケーションプログラムの不正複製防止機能の信頼性をさらに向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係わるアプリケーション共有システムの全体構成を示すブロック図。
【図２】図１に示すアプリケーション共有システムにおけるクライアントシステムおよびサーバシステムの処理の一例を示す概略フローチャート。
【図３】図１に示すアプリケーション共有システムにおけるクライアントシステムおよびサーバシステムの処理の一例を示す概略フローチャート。
【図４】図１に示すクライアントシステムにおけるメモリの内部構成を概念的に示す図。
【図５】本発明の実施の形態の変形例におけるクライアントシステムの処理の一例を示す概略フローチャート。
【符号の説明】
１　共有システム
２　通信回線
３　サーバシステム
４　クライアントシステム
１０、３０　インタフェース
１１　アクセス制御部
１２　共有ディスク
１５　プログラム
１６、３２　メモリ
２０　アクセス権限ファイル
３１　プログラム実行部
３３　入力部
３４　ローカルディスク
モジュールＰ１、Ｐ２、Ｐ３
データ要素Ｄ１、Ｄ２、Ｄ３
【図１】
2004021852.tif 000003
【図２】
2004021852.tif 000004
【図３】
2004021852.tif 000005
【図４】
2004021852.tif 000006
【図５】
2004021852.tif 000007