JP2004021852A - アプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体 - Google Patents
アプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP2004021852A JP2004021852A JP2002179040A JP2002179040A JP2004021852A JP 2004021852 A JP2004021852 A JP 2004021852A JP 2002179040 A JP2002179040 A JP 2002179040A JP 2002179040 A JP2002179040 A JP 2002179040A JP 2004021852 A JP2004021852 A JP 2004021852A
- Authority
- JP
- Japan
- Prior art keywords
- module
- client system
- modules
- server system
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
【課題】アプリケーションプログラムの複製を防止しながら、そのアプリケーションプログラムの共有を可能にする。
【解決手段】通信回線2を介して接続されたサーバシステム3および少なくとも1つのクライアントシステム4間においてアプリケーションプログラムを共有するためのアプリケーション共有方法。アプリケーションプログラムを、少なくとも1つのクライアントシステム4が実行できる単位に分割して複数のモジュールP1〜P3を生成し、生成した複数のモジュールP1〜P3をサーバシステム3内の共有ディスク12に格納し、少なくとも1つのクライアントシステム4から通信回線2を介してサーバシステム3にアプリケーションプログラムの実行要求が送られた際に、サーバシステム3により、複数のモジュールP1〜P3の中から、実行要求に対応する第1のモジュールP1をその共有ディスク12から読み出し、通信回線2を介して少なくとも1つのクライアントシステム4のメモリ32へロードする。
【選択図】 図1
【解決手段】通信回線2を介して接続されたサーバシステム3および少なくとも1つのクライアントシステム4間においてアプリケーションプログラムを共有するためのアプリケーション共有方法。アプリケーションプログラムを、少なくとも1つのクライアントシステム4が実行できる単位に分割して複数のモジュールP1〜P3を生成し、生成した複数のモジュールP1〜P3をサーバシステム3内の共有ディスク12に格納し、少なくとも1つのクライアントシステム4から通信回線2を介してサーバシステム3にアプリケーションプログラムの実行要求が送られた際に、サーバシステム3により、複数のモジュールP1〜P3の中から、実行要求に対応する第1のモジュールP1をその共有ディスク12から読み出し、通信回線2を介して少なくとも1つのクライアントシステム4のメモリ32へロードする。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、アプリケーションプログラムを、通信回線を介して接続された少なくとも1つのクライアントシステムおよびサーバシステム間において共有するためのアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
従来、所定の目的のために開発されたプログラム(アプリケーションプログラム)をクライアント(クライアントコンピュータ)に対して配信(提供)する方法として、例えば、アプリケーションプログラムおよびそのアプリケーションプログラムの実行に必要なデータを、それぞれファイルとして複数のクライアントがアクセス可能な共有ディスク等に公開するファイル共有方法が知られている。
【0003】
また、アプリケーションプログラムの提供元のサーバ(サーバコンピュータ)に対してユーザのクライアントを介してアクセスし、サーバに格納されたアプリケーションプログラムおよびそのアプリケーションプログラムの実行時に利用するデータをそれぞれクライアントに対してダウンロードして、そのローカルディスク上に保存(インストール)する方法(ダウンロード方法)も知られている。
【0004】
【発明が解決しようとする課題】
しかしながら、従来のファイル共有方法では、アプリケーションプログラムおよびそのアプリケーションプログラムの実行時に利用するデータ(以下、利用データと略記する)をそれぞれファイルとして公開している。このため、アプリケーションプログラムおよび利用データそれぞれを容易に複製(コピー)することができ、アプリケーションプログラム配信元の利益を害する結果となっていた。
【0005】
また、従来のダウンロード方法においては、例えば、アプリケーションプログラムをバージョンアップした場合、ユーザは、そのバージョンアップを認識し、バージョンアップファイルを、そのユーザのクライアントにダウンロードしてインストールする必要があった。このため、バージョンアップ毎にユーザのダウンロード操作が必要になり、ユーザ側の負担が大きかった。
【0006】
さらに、上記ダウンロード方法では、アプリケーションプログラムおよび利用データそれぞれを一度にダウンロードしている。
【0007】
このため、利用データが巨大であった場合、使用する可能性の小さいデータも一度にダウンロードする結果となり、クライアント側メモリおよびディスクのデータ記憶容量の空きスペースの低減を招いていた。
【0008】
また、従来のダウンロード方法においては、アプリケーションプログラムおよび利用データそれぞれがクライアントのディスク上に保存される。このため、アプリケーションプログラムおよび利用データそれぞれを容易に複製することができ、アプリケーションプログラム配信元の利益を害する結果となっていた。
【0009】
本発明は上述した事情に鑑みてなされたもので、アプリケーションプログラムの複製を防止しながら、そのアプリケーションプログラムの共有を可能にしたアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第1の目的とする。
【0010】
また、本発明は上述した事情に鑑みてなされたもので、アプリケーションプログラムの実行に利用されるデータ(利用データ)の複製を防止しながら、その利用データの共有を可能にしたアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第2の目的とする。
【0011】
さらに、本発明は上述した事情に鑑みてなされたもので、ユーザ側のアプリケーションプログラム/利用データのダウンロードに係わる負担を低減し、クライアント側メモリのデータ記憶容量の空きスペースを増大させることが可能なアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第3の目的とする。
【0012】
【課題を解決するための手段】
上述した目的を達成するための請求項1記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有方法であって、前記アプリケーションプログラムを、前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納し、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることを要旨とする。
【0013】
請求項2記載の発明によれば、請求項1記載の発明において、前記複数のモジュールそれぞれは、前記少なくとも1つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位である。
【0014】
請求項1および2記載の発明においては、アプリケーションプログラムから、前記少なくとも1つのクライアントシステムが実行できる単位に分割されて複数のモジュールが生成され、生成された複数のモジュールは、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0015】
請求項3記載の発明によれば、請求項1記載の発明において、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納し、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムにより、前記第1のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることを要旨とする。
【0016】
請求項3記載の発明では、前記アプリケーションプログラムの実行に必要なデータは、前記複数のモジュールの実行に必要な単位に分割されて複数のデータ要素が生成され、生成された複数のデータ要素は、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在し、かつ未だロードされていない場合には、前記サーバシステムにより、データ全体ではなく、データ要素単位、すなわち、前記第1のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0017】
請求項4記載の発明によれば、請求項3記載の発明において、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも1つのクライアントシステムは、そのメモリにロードされた第1のモジュールを、当該第1のモジュールに対応するデータ要素に基づいて実行し、その第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードを読み出し、当該第1のモジュールに対して論理的に次に継続される第2のモジュールを認識し、第2のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信し、前記サーバシステムは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールを当該サーバシステムのメモリから読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードし、前記少なくとも1つのクライアントシステムは、そのメモリへの前記第2のモジュールのロードに応じて、当該メモリにロードされている第1のモジュールおよび対応するデータ要素を消去し、ロードされた第2のモジュールを実行することを要旨とする。
【0018】
請求項4記載の発明では、前記少なくとも1つのクライアントシステムにより、そのメモリにロードされた第1のモジュールは、当該第1のモジュールに対応するデータ要素に基づいて実行される。
【0019】
このとき、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれているため、第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードが読み出され、当該第1のモジュールに対して論理的に次に継続される第2のモジュールが認識される。
【0020】
そして、認識された第2のモジュールのロード要求が前記少なくとも1つのクライアントシステムにより前記通信回線を介して前記サーバシステムに送信される。
【0021】
前記サーバシステムでは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールが当該サーバシステムのメモリから読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0022】
このとき、前記少なくとも1つのクライアントシステムでは、そのメモリへの前記第2のモジュールのロードに応じて、当該メモリにロードされている実行済みの第1のモジュールおよび対応するデータ要素が消去され、ロードされた第2のモジュールが実行される。
【0023】
請求項5記載の発明によれば、請求項4記載の発明において、前記サーバシステムのロードステップは、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第2のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするステップをさらに備えており、前記少なくとも1つのクライアントシステムの実行ステップは、ロードされたデータ要素に基づいて、前記第2のモジュールを実行することを要旨とする。
【0024】
請求項5記載の発明では、前記サーバシステムのロードステップとして、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第2のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。このとき、前記少なくとも1つのクライアントシステムの実行ステップとして、ロードされたデータ要素に基づいて、前記第2のモジュールが実行される。
【0025】
請求項6記載の発明によれば、請求項1乃至5記載の発明において、前記少なくとも1つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続することを要旨とする。
【0026】
請求項6記載の発明では、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力された際に、前記少なくとも1つのクライアントシステムでは、入力されたロード要求が無視、すなわち、ローカル記憶部へのモジュールのセーブが拒否され、前記各モジュールの実行が継続される。
【0027】
上述した目的を達成するための請求項7記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有システムであって、前記サーバシステムは、前記アプリケーションプログラムを、前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する格納手段と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするロード手段とを備えたことを要旨とする。
【0028】
請求項8記載の発明によれば、請求項7記載の発明において、前記複数のモジュールそれぞれは、前記少なくとも1つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位である。
【0029】
請求項7および8記載の発明では、前記サーバシステムの格納手段により、アプリケーションプログラムから、前記少なくとも1つのクライアントシステムが実行できる単位に分割されて複数のモジュールが生成され、生成された複数のモジュールは、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムのロード手段により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0030】
請求項9記載の発明によれば、請求項7又は8記載の発明において、前記サーバシステムは、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を当該サーバシステム内の記憶部に格納するデータ格納手段と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記第1のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするデータロード手段とを備えたことを要旨とする。
【0031】
請求項9記載の発明では、前記アプリケーションプログラムの実行に必要なデータは、前記サーバシステムのデータ格納手段により、前記複数のモジュールの実行に必要な単位に分割されて複数のデータ要素が生成され、生成された複数のデータ要素は、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムのデータロード手段により、データ全体ではなく、データ要素単位、すなわち、前記第1のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0032】
請求項10記載の発明によれば、請求項9記載の発明において、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも1つのクライアントシステムは、そのメモリにロードされた第1のモジュールを、当該第1のモジュールに対応するデータ要素に基づいて実行し、その第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードを読み出して当該第1のモジュールに対して論理的に次に継続される第2のモジュールを認識する認識手段と、第2のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信する送信手段とを備え、前記サーバシステムは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールを当該サーバシステム内の記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするロード手段を備え、前記少なくとも1つのクライアントシステムは、そのメモリに対する前記第2のモジュールのロードに応じて、当該メモリにロードされている第1のモジュールおよび対応するデータ要素を消去する消去手段と、ロードされた第2のモジュールを実行する実行手段とをさらに備えたことを要旨とする。
【0033】
請求項10記載の発明では、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれているため、前記少なくとも1つのクライアントシステムのメモリにロードされた第1のモジュールが当該第1のモジュールに対応するデータ要素に基づいて実行されている際に、前記少なくとも1つのクライアントシステムの認識手段により、第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードが読み出され、当該第1のモジュールに対して論理的に次に継続される第2のモジュールが認識される。
【0034】
そして、送信手段により、認識された第2のモジュールのロード要求が前記少なくとも1つのクライアントシステムにより前記通信回線を介して前記サーバシステムに送信される。
【0035】
前記サーバシステムでは、送信されてきた第2のモジュールのロード要求に応じて、ロード手段により、前記複数のモジュールの中から前記第2のモジュールが当該サーバシステムのメモリから読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0036】
このとき、前記少なくとも1つのクライアントシステムでは、そのメモリへの前記第2のモジュールのロードに応じて、消去手段により、当該メモリにロードされている実行済みの第1のモジュールおよび対応するデータ要素が消去され、実行手段により、ロードされた第2のモジュールが実行される。
【0037】
請求項11記載の発明によれば、請求項10記載の発明において、前記サーバシステムのロード手段は、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第2のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする手段をさらに備えており、前記少なくとも1つのクライアントシステムの実行手段は、ロードされたデータ要素に基づいて、前記第2のモジュールを実行する手段であることを要旨とする。
【0038】
請求項11記載の発明では、前記サーバシステムのロード手段としての処理により、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第2のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。このとき、前記少なくとも1つのクライアントシステムの実行手段としての処理により、ロードされたデータ要素に基づいて、前記第2のモジュールが実行される。
【0039】
請求項12記載の発明によれば、請求項7乃至11の内の何れか1項記載の発明において、前記少なくとも1つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続する手段を備えたことを要旨とする。
【0040】
請求項12記載の発明では、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムにおける継続手段により、入力されたロード要求が無視、すなわち、ローカル記憶部へのモジュールのセーブが拒否され、前記各モジュールの実行が継続される。
【0041】
上述した目的を達成するための請求項13記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステム間において共有されるアプリケーションプログラムであって、前記少なくとも1つのクライアントシステムが実行できる単位に分割された複数のモジュールを備えており、前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも1つのクライアントシステムのメモリに前記複数のモジュールの中から1つの第1のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも1つのクライアントシステムに対して前記第1のモジュールよりも論理的に次に継続される第2のモジュールがロードされたとき、前記第1のモジュールは、前記少なくとも1つのクライアントシステムを、自モジュールを消去させる手段として機能させることを要旨とする。
【0042】
請求項13記載の発明において、前記アプリケーションプログラムには、前記少なくとも1つのクライアントシステムが実行できる単位に分割された複数のモジュールが含まれており、前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれている。
【0043】
このため、前記少なくとも1つのクライアントシステムのメモリに前記複数のモジュールの中から1つの第1のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも1つのクライアントシステムに対して前記第1のモジュールよりも論理的に次に継続される第2のモジュールがロードされたとき、前記第1のモジュールにより、前記少なくとも1つのクライアントシステムは、自モジュールを消去させる手段として機能する。
【0044】
上述した目的を達成するための請求項14記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムであって、前記アプリケーションプログラムを前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する処理と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする処理とを前記サーバシステムにそれぞれ実行させる。
【0045】
請求項14記載の発明において、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記アプリケーションプログラムが前記少なくとも1つのクライアントシステムが実行できる単位に分割され、複数のモジュールが生成される。そして、生成された複数のモジュールは、アプリケーション共有用プログラムに基づくサーバシステムの処理により、そのサーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0046】
上述した目的を達成するための請求項15記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムを記録する記録媒体であって、前記アプリケーション共有用プログラムは、前記アプリケーションプログラムを前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する手順と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする手順とを含むことを要旨とする。
【0047】
請求項15記載の発明では、記録媒体に記録されたアプリケーション共有用プログラムにおける格納手順に従ったサーバシステムの処理により、前記アプリケーションプログラムが前記少なくとも1つのクライアントシステムが実行できる単位に分割され、互いに論理的関連性を有する複数のモジュールが生成される。生成された複数のモジュールは、上記格納手順に従ったサーバシステムの処理により、そのサーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記記録媒体に記録されたアプリケーション共有用プログラムにおけるロード手順に従ったサーバシステムの処理により、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0048】
【発明の実施形態】
本発明に係るアプリケーション共有方法およびシステムの実施の形態について、添付図面を参照して説明する。
【0049】
図1は、本発明の実施の形態に係るアプリケーション共有システム1の全体構成を示す図である。
【0050】
図1に示すように、アプリケーション共有システム1は、クライアント/サーバシステムであり、電話回線、ADSL(Asymmetric Digital Subscriber Line)、光回線等の高速な通信回線(ネットワーク)2を介して接続されたサーバシステム3および少なくとも1つのクライアントシステム(以下、単にクライアントシステムと記載する)4を備えている。
【0051】
例えば、上記通信回線2は、インターネット{TCP/IP、HTTP(Hyper Text Link Transformer Protocol)等のプロトコルに基づいて相互リンクされたネットワークの集合体}の一部として構築されたものである。
【0052】
サーバシステム3は、各種のアプリケーションプログラム(本実施形態では、1つのアプリケーションプログラムPとする)を少なくとも1つのクライアントシステムに対応するユーザ側と共有するためのサービスを提供する側のコンピュータシステムである。
【0053】
すなわち、サーバシステム3は、通信回線2に接続されており、ルータ、ファイアウオール等の通信回線2上のルーティング処理用およびセキュリティ保持用のインタフェース10を備えている。
【0054】
また、サーバシステム3は、クライアントシステム4からの通信回線2を介したアクセスを制御するためのコンピュータ(サーバコンピュータ)本体としてのアクセス制御部11と、このアクセス制御部15と通信可能に接続されており、プログラムやデータ等をクライアントシステム4と共有して記憶するための共有ディスク12とを備えている。
【0055】
さらに、サーバシステム3は、アクセス制御部11に対して、クライアントシステム4からのアクセスに対する制御処理を実行させるためのプログラム15を記憶するとともに、アクセス制御部11の処理データを格納するためのメモリ(メインメモリ)16を備えている。
【0056】
なお、メモリ16は、プログラム15を記録した記録媒体の一例であるが、他の磁気記録媒体等の何れの記録媒体も、上記プログラム15を記録した記録媒体に含まれる。
【0057】
そして、サーバシステム3は、そのサーバシステム3へリモートでアクセスできる権限を有するクライアントシステムおよび対応するユーザに関するアクセス権限情報{認証情報(ID)、パスワード、情報が暗号化されている際の暗号鍵情報等}が登録されたアクセス権限ファイル20を備えている。
【0058】
一方、クライアントシステム4は、サーバシステム3により提供されるアプリケーション共有サービスを受ける側のコンピュータシステムである。
【0059】
すなわち、クライアントシステム4は、図1に示すように、例えばプロバイダ等を介して通信回線2に接続されており、ルータ、ファイアウオール等の通信回線2上のルーティング処理用およびセキュリティ保持用のインタフェース30を備えている。
【0060】
また、クライアントシステム4は、サーバシステム3からロードしたプログラム等を実行するためのCPU等のプログラム実行部31と、このプログラム実行部31の処理によりロードされたプログラムやデータを記憶するためのメモリ(メインメモリ)32とを備えている。
【0061】
さらに、クライアントシステム4は、対応するクライアントシステム4のユーザが操作してプログラム実行部31に対して所望の要求を入力するためのキーボード、マウス、音声入力機器等を含む入力部33と、クライアントシステム4のプログラム実行部4に直接、すなわち、インタフェース30および通信回線2を経由することなく接続されたローカルディスク34とを備えている。
【0062】
次に本実施形態に係わるアプリケーション共有システム1のアプリケーション共有処理について説明する。
【0063】
本実施形態において、クライアントシステム4と共有したいアプリケーションプログラムPおよびそのアプリケーションプログラムPの実行に必要なデータDが例えば通信回線2等を介してサーバシステム3に提供された際に、サーバシステム4のアクセス制御部11は、インタフェース10を介して提供されたアプリケーションプログラムPおよびデータDを受け取る。
【0064】
そして、アクセス制御部11は、受け取ったアプリケーションプログラムPを、クライアントシステム4が実行できる単位(例えば、クライアントシステム4がそのメモリ上にロードできる最小限の機能単位)に分割して、例えば互いに論理的関連性を有するシーケンシャルな複数(例えば本実施形態では3つ)のモジュールP1〜P3を生成し、生成したモジュールP1〜P3を共有ディスク12に格納する。
【0065】
このとき、各モジュールP1、P2、P3は、その単体では、アプリケーションプログラムPとして価値が無い(クライアントシステム4が実行できるプログラムではあるが、アプリケーションプログラムとしての目的を達成して効果を発生させることができない)ものとして生成されている。
【0066】
同様に、各データD1、D2、D3は、モジュールP1、P2、P3に対応する内容として分割されており、その単体では、データDとして価値が無いものとして生成されている。
【0067】
また、少なくとも論理的に最後のモジュールP3を除く各モジュールP1、P2は、例えばその終端部分に、その各モジュールP1、P2に対してそれぞれ論理的に次に継続されるモジュールP2、P3を指定する次モジュール指定コードSD1、SD2を含んでいる。
【0068】
次いで、アクセス制御部11は、データDを、複数のモジュールP1〜P3の実行に必要な単位に分割して複数のデータ要素D1〜D3を生成し、生成したモジュールP1〜P3を共有ディスク12に格納する(ステップS1)。
【0069】
本実施形態では、データD1およびD2は、モジュールP1の実行に必要なデータであり、データD3は、モジュールP3の実行に必要なデータとする。
【0070】
一方、サーバシステム3に対してリモートでアクセスできる権限を有するクライアントシステム4のユーザは、入力部33を介してアクセス権限情報(ID)、パスワード、暗号鍵情報等)をプログラム実行部31に対して入力し、サーバシステム3に対するアクセスを要求する。プログラム実行部31は、入力されたアクセス権限情報をインタフェース30および通信回線2を介してサーバシステム3に対し送信し、サーバシステム3にアクセスする(ステップS2)。
【0071】
サーバシステム3のアクセス制御部11は、送信されてきたアクセス権限情報をインタフェース10を介して受け取り、アクセス権限ファイル20を参照して、送信元のクライアントシステム4にアクセス権限が存在するか否か(ファイル20に登録されているか否か)を判断する(ステップS3)。
【0072】
このステップS3の判断の結果ノー(NO)、すなわち、送信されたアクセス権限情報が未登録の場合(クライアントシステム4にアクセス権限が存在しない場合)には、アクセス制御部11は、クライアントシステム4のアクセスを無視するか、あるいは、アクセス権限不所有を表すメッセージを作成してクライアントシステム4に向けて送信し、処理を終了する。
【0073】
一方、ステップS3の判断の結果イエス(YES)、すなわち、送信されたアクセス権限情報が登録済みの場合(クライアントシステム4にアクセス権限が存在する場合)には、アクセス制御部11は、クライアントシステム4との通信回線2を介した接続を確立する(ステップS4)。
【0074】
サーバシステム4との接続が確立された際、ユーザは、入力部33を介してアプリケーションプログラムPの実行要求をプログラム実行部31に対して入力し、プログラム実行部31は、入力されたアプリケーションプログラムPの実行要求をインタフェース30および通信回線2を介してサーバシステム3に対し送信する(ステップS5)。
【0075】
サーバシステム3のアクセス制御部11は、送信されてきたアプリケーションプログラムPの実行要求をインタフェース10を介して受け取り、アプリケーションプログラムPの実行要求に対応するモジュールとして、論理的に最初のモジュールP1および対応するデータ要素D1、D2を共有ディスク12から取り出し、取り出したモジュールP1およびデータ要素D1、D2をインタフェース30および通信回線2を介してクライアントシステム4に送信(ロード)する(ステップS6)。
【0076】
クライアントシステム4のプログラム実行部31は、通信回線2を介してロードされてきたモジュールP1およびデータD1、D2をインタフェース30を介して受け取り、受け取ったモジュールP1およびデータD1、D2をメモリ32にロードする(図4(a)参照)。そして、プログラム実行部31は、データD1およびD2に基づいて、モジュールP1を実行する(ステップS7)。
【0077】
このとき、プログラム実行部31は、モジュールP1実行処理と並行して、モジュールP1において次モジュール指定コードを検出したか否かを判断しており(ステップS8)、この判断の結果NO(未検出)の場合、モジュールP1の実行処理を継続する。
【0078】
そして、ステップS8の判断の結果YES、すなわち、プログラム実行部31が次モジュール指定コードSD1をモジュールP1から検出した場合には、プログラム実行部31は、次モジュールロード要求をインタフェース30および通信回線2を介してサーバシステム3に対し送信する(ステップS9)。
【0079】
サーバシステム3のアクセス制御部11は、送信されてきた次モジュールロード要求をインタフェース10を介して受け取り、共有ディスク12を参照して、対応する次モジュールP2の存在を認識する。
【0080】
このとき、アクセス制御部11は、次モジュールP2に対応するデータ要素D1、D2が既にクライアントシステム4側にロードされているため、次モジュールP2のみを共有ディスク12から取り出し、取り出したモジュールP2をインタフェース30および通信回線2を介してクライアントシステム4に送信(ロード)する(ステップS10)。
【0081】
クライアントシステム4のプログラム実行部31は、通信回線2を介してロードされてきたモジュールP2をインタフェース30を介して受け取り、受け取ったモジュールP2をメモリ32にロードし、さらに、メモリ32に現在格納されていたモジュールP1をメモリ32から消去する(ステップS11)。
【0082】
ステップS11の処理終了時のメモリ32の内部構成を図4(b)に示す。すなわち、図4(b)によれば、メモリ32には、既に実行済みのモジュールP1が消去され、次に実行されるモジュールP2およびそのモジュールP2の実行に必要なデータ要素D1、D2のみが格納されている。
【0083】
次いで、プログラム実行部31は、モジュールP1に継続し、データ要素D1およびD2に基づいてモジュールP2を実行する(ステップS12)。
【0084】
このとき、プログラム実行部31は、ステップS8の処理と同様に、モジュールP2において次モジュール指定コードを検出したか否かを判断しており(ステップS13)、この判断の結果NO(未検出)の場合、モジュールP2の実行処理を継続する。
【0085】
そして、ステップS13の判断の結果YES、すなわち、プログラム実行部31が次モジュール指定コードSD2をモジュールP2から検出した場合には、プログラム実行部31は、次モジュールロード要求をインタフェース30および通信回線2を介してサーバシステム3に対し送信する(ステップS14)。
【0086】
サーバシステム3のアクセス制御部11は、送信されてきた次モジュールロード要求をインタフェース10を介して受け取り、共有ディスク12を参照して、対応する次モジュールP3の存在を認識する。
【0087】
このとき、次モジュールP3に対応するデータ要素D3が共有ディスク12内に存在し、かつ未だクライアントシステム4側にロードされていないため、アクセス制御部11は、次モジュールP3および次モジュールP3に対応するデータ要素D3を共有ディスク12から取り出し、取り出したモジュールP3およびデータ要素D3をインタフェース30および通信回線2を介してクライアントシステム4に送信(ロード)する(ステップS15)。
【0088】
クライアントシステム4のプログラム実行部31は、通信回線2を介してロードされてきたモジュールP2をインタフェース30を介して受け取り、受け取ったモジュールP3およびデータ要素D3をメモリ32にロードし、さらに、メモリ32に現在格納されていたモジュールP2およびデータ要素D1、D2をメモリ32から消去する(ステップS16)。
【0089】
ステップS16の処理終了時のメモリ32の内部構成を図4(c)に示す。すなわち、図4(c)によれば、メモリ32には、既に実行済みのモジュールP2およびこのモジュールP2の実行に必要なデータ要素D1、D2がそれぞれ消去され、次に実行されるモジュールP3およびそのモジュールP3の実行に必要なデータD3のみが格納されている。
【0090】
次いで、プログラム実行部31は、モジュールP2に継続し、データ要素D3に基づいてモジュールP3を実行し(ステップS17)、処理を終了する。
【0091】
なお、図2および図3におけるサーバシステム3のアクセス制御部11の処理は、プログラム15に基づいて実行される。また、クライアントシステム4のプログラム実行部31の処理は、その際にメモリ32に格納されているモジュールに基づいて実行される。
【0092】
以上述べたように、本実施形態によれば、アプリケーションプログラムPおよびアプリケーションプログラムPの実行に必要なデータDを、クライアントシステム4が実行できる単位に分割して互いに論理的関連性を有するモジュールP1〜P3およびデータ要素D1〜D3を生成し、生成したモジュールP1〜P3およびデータ要素D1〜D3を共有ディスク12にそれぞれ格納している。
【0093】
すなわち、クライアントシステム4側から、共有ディスク12上のアプリケーションプログラムP全体およびデータD全体にアクセスして複製を作成することができず、アプリケーションプログラムPおよびデータDの配信元(サーバシステム3の所有者)の上記複製に係わる不利益を防止することができる。
【0094】
また、本実施形態によれば、クライアントシステム4からのアクセスに応じて、共有ディスク12上に格納されたモジュールP1〜P3およびデータ要素D1〜D3を、モジュール単位およびデータ要素単位でクライアントシステム4にロードしている。
【0095】
すなわち、クライアントシステム4側から、共有ディスク12上のアプリケーションプログラムP全体およびデータD全体をそれぞれダウンロードして自システム4に格納することができないため、アプリケーションプログラムPおよびデータDの複製を不正に作成することを防止することができる。
【0096】
また、アプリケーションプログラムPの実行に必要なデータDが巨大であった場合でも、実際に実行するモジュールの使用に必要なデータのみをダウンロードするように構成されている。このため、クライアントシステム4側メモリ32およびローカルディスク34のデータ記憶容量の空きスペースの無用な減少を防止することができる。
【0097】
さらに、本実施形態によれば、アプリケーションプログラムPをバージョンアップする際において、サーバシステム側では、共有ディスク12上の対応するモジュールを更新する処理のみにより、アプリケーションプログラムPのバージョンアップを行うことができる。
【0098】
すなわち、ユーザ側においては、アプリケーションプログラムPのバージョンアップを認識してバージョンアップファイルをクライアントシステム4へダウンロード・インストールする処理が不要となり、ユーザ側の負担を軽減することができる。
【0099】
さらに、本実施形態において、クライアントシステム4のメモリ32上には、常に、次の実行に必要なモジュールおよびそのモジュールの実行に必要なデータのみが格納されており、実行済みのモジュール/データや、現在格納中のモジュール以外の未実行のモジュール/データが同時に格納されることはない。
【0100】
このため、クライアントシステム4側において、ロードされた複数のモジュール/データ要素を組み合わせてアプリケーションプログラム/データを複製することも不可能であり、不正複製防止機能の信頼性を向上させることができる。
【0101】
次に、本実施形態の変形例として、クライアントシステム4のプログラム実行部31がモジュールを実行中において、ユーザが入力部33を介してモジュールのローカルディスク34へのロード要求を入力した場合のプログラム実行部31の処理について説明する。なお、上記プログラム実行部31の処理は、その際にメモリ32に格納されているモジュールに基づいて実行される。
【0102】
すなわち、プログラム実行部31は、現在メモリ32に格納されているモジュールを実行中において(ステップS7、S12、S17参照)、その実行処理と並列的に、入力部31からモジュールのセーブ要求が入力されてきたか否か判断している(ステップS20)。
【0103】
このステップS20の判断の結果、NO(ロード要求入力無し)の場合には、プログラム実行部31は、対応するモジュールの実行処理を継続する。
【0104】
一方、ステップS20の判断の結果、YES、すなわち、入力部31からモジュール/対応するデータ要素(“A/B”は、AおよびBの内の少なくとも一方の意味で用いている)のセーブ要求が入力されてきた場合においても、プログラム実行部31は、入力されたセーブ要求を無視して対応するモジュールの実行処理を継続する(ステップS21)。
【0105】
すなわち、本変形例によれば、クライアントシステム4側にロードされてきたモジュール/対応するデータ要素は、常にそのメモリ32にのみ格納され、そのシステム4におけるローカルディスク34にセーブされることがない。このため、ローカルディスク34上においてモジュール/対応するデータ要素を再構成してアプリケーションプログラムやデータを複製することもできず、アプリケーションプログラム/対応するデータの不正複製防止機能の信頼性をさらに向上させることができる。
【0106】
なお、本実施形態においては、説明を容易にするため、クライアントシステム4を1つとしたが、本発明はこれに限定されるものではなく、同一の構成・機能を有する複数のクライアントシステムを含むアプリケーション共有システムであってもよい。この場合には、クライアントシステム毎に上述した処理が実行されることになる。
【0107】
また、本実施形態においては、アプリケーションプログラムおよび対応するデータをそれぞれ3分割したが、本発明はこれに限定されるものではなく、分割後の単体(モジュール、データ要素)が分割前の全体(アプリケーションプログラム、対応するデータ)として価値が無いものであれば、何れの分割数であってもよい。
【0108】
さらに、本実施形態では、アプリケーションプログラムPおよびそのアプリケーションプログラムの実行に必要なデータDをそれぞれ分割したが、本発明はこの構成に限定されるものではなく、アプリケーションプログラムPのみを分割し、データDはそのまま共有ディスクに格納しておくことも可能である。
【0109】
そして、本実施形態では、アプリケーションプログラム/対応するデータを分割して格納する記憶部を、共有ディスク12としたが、本発明はこれに限定されるものではなく、共有メモリ、共有データベース等、何れの記憶媒体の形態も含むものである。
【0110】
さらに、本実施形態では、アプリケーションプログラムPを、クライアントシステム4が実行できる単位として、クライアントシステム4がそのメモリ上にロードできる最小限の機能単位に分割して、例えば互いに論理的関連性を有するシーケンシャルな複数のモジュールを生成したが、本発明はこの構成に限定されるものではない。
【0111】
すなわち、分割後の各モジュールが、その単体では、アプリケーションプログラムとして価値が無い(クライアントシステム4が実行できるプログラムではあるが、アプリケーションプログラムとしての目的を達成して効果を発生させることができない)ものであれば、分割単位をロード時の最小単位にする必要はなく、また、互いに論理的関連性を有するシーケンシャルな単位に分割する必要もない。
【0112】
【発明の効果】
以上述べたように、本発明に係わるアプリケーション共有方法およびシステム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体よれば、アプリケーションプログラムを、少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納している。
【0113】
このため、サーバシステムに対してアプリケーションプログラム実行要求を送信してきた少なくとも1つのクライアントシステムに対して、記憶部に格納された複数のモジュールの中から、アプリケーションプログラム全体ではなく、実行要求に対応する第1のモジュールを読み出して、通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることができる。
【0114】
すなわち、少なくとも1つのクライアントシステム側から、記憶部に格納されたアプリケーションプログラム全体をダウンロードして自クライアントシステムに格納することができない構成であるため、アプリケーションプログラムの複製を不正に作成することを防止することができる。
【0115】
また、本発明に係わるアプリケーション共有方法およびシステムによれば、アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納している。
【0116】
このため、サーバシステムに対してアプリケーションプログラム実行要求を送信してきた少なくとも1つのクライアントシステムに対して、上記第1のモジュールに対応するデータ要素が記憶部内に存在する場合には、サーバシステムにより、データ全体ではなく、上記第1のモジュールに対応するデータ要素をその記憶部から読み出し、通信回線を介して少なくとも1つのクライアントシステムのメモリへロードすることができる。
【0117】
すなわち、少なくとも1つのクライアントシステム側から、記憶部に格納されたデータ全体をダウンロードして自クライアントシステムに格納することができない構成であるため、データの複製を不正に作成することを防止することができる。
【0118】
さらに、本発明に係わるアプリケーション共有方法およびシステムによれば、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれている。このため、第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードに基づいて、その第1のモジュールに対して論理的に次に継続される第2のモジュールを認識することができる。
【0119】
そして、本発明に係わるアプリケーション共有方法およびシステム、ならびにアプリケーションプログラムによれば、少なくとも1つのクライアントシステムは、そのメモリに第1のモジュールおよび対応するデータ要素が格納されている際に、第1のモジュールに対して論理的に次に継続される第2のモジュールがロードされたとき、当該メモリにロードされている実行済みの第1のモジュールおよび対応するデータ要素を消去し、ロードされた第2のモジュールを実行することができる。
【0120】
このため、少なくとも1つのクライアントシステム側において、ロードされた複数のモジュール/データ要素を組み合わせてアプリケーションプログラム/データを複製することも不可能であり、不正複製防止機能の信頼性を向上させることができる。
【0121】
さらに、本発明に係わるアプリケーション共有方法およびシステムによれば、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力された際に、入力されたセーブ要求を無視、すなわち、ローカル記憶部へのモジュールのセーブを拒否して、前記各モジュールの実行を継続することができる。
【0122】
したがって、ローカル記憶部上においてモジュールを再構成してアプリケーションプログラムを複製することもできず、アプリケーションプログラムの不正複製防止機能の信頼性をさらに向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるアプリケーション共有システムの全体構成を示すブロック図。
【図2】図1に示すアプリケーション共有システムにおけるクライアントシステムおよびサーバシステムの処理の一例を示す概略フローチャート。
【図3】図1に示すアプリケーション共有システムにおけるクライアントシステムおよびサーバシステムの処理の一例を示す概略フローチャート。
【図4】図1に示すクライアントシステムにおけるメモリの内部構成を概念的に示す図。
【図5】本発明の実施の形態の変形例におけるクライアントシステムの処理の一例を示す概略フローチャート。
【符号の説明】
1 共有システム
2 通信回線
3 サーバシステム
4 クライアントシステム
10、30 インタフェース
11 アクセス制御部
12 共有ディスク
15 プログラム
16、32 メモリ
20 アクセス権限ファイル
31 プログラム実行部
33 入力部
34 ローカルディスク
モジュールP1、P2、P3
データ要素D1、D2、D3
【発明の属する技術分野】
本発明は、アプリケーションプログラムを、通信回線を介して接続された少なくとも1つのクライアントシステムおよびサーバシステム間において共有するためのアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
従来、所定の目的のために開発されたプログラム(アプリケーションプログラム)をクライアント(クライアントコンピュータ)に対して配信(提供)する方法として、例えば、アプリケーションプログラムおよびそのアプリケーションプログラムの実行に必要なデータを、それぞれファイルとして複数のクライアントがアクセス可能な共有ディスク等に公開するファイル共有方法が知られている。
【0003】
また、アプリケーションプログラムの提供元のサーバ(サーバコンピュータ)に対してユーザのクライアントを介してアクセスし、サーバに格納されたアプリケーションプログラムおよびそのアプリケーションプログラムの実行時に利用するデータをそれぞれクライアントに対してダウンロードして、そのローカルディスク上に保存(インストール)する方法(ダウンロード方法)も知られている。
【0004】
【発明が解決しようとする課題】
しかしながら、従来のファイル共有方法では、アプリケーションプログラムおよびそのアプリケーションプログラムの実行時に利用するデータ(以下、利用データと略記する)をそれぞれファイルとして公開している。このため、アプリケーションプログラムおよび利用データそれぞれを容易に複製(コピー)することができ、アプリケーションプログラム配信元の利益を害する結果となっていた。
【0005】
また、従来のダウンロード方法においては、例えば、アプリケーションプログラムをバージョンアップした場合、ユーザは、そのバージョンアップを認識し、バージョンアップファイルを、そのユーザのクライアントにダウンロードしてインストールする必要があった。このため、バージョンアップ毎にユーザのダウンロード操作が必要になり、ユーザ側の負担が大きかった。
【0006】
さらに、上記ダウンロード方法では、アプリケーションプログラムおよび利用データそれぞれを一度にダウンロードしている。
【0007】
このため、利用データが巨大であった場合、使用する可能性の小さいデータも一度にダウンロードする結果となり、クライアント側メモリおよびディスクのデータ記憶容量の空きスペースの低減を招いていた。
【0008】
また、従来のダウンロード方法においては、アプリケーションプログラムおよび利用データそれぞれがクライアントのディスク上に保存される。このため、アプリケーションプログラムおよび利用データそれぞれを容易に複製することができ、アプリケーションプログラム配信元の利益を害する結果となっていた。
【0009】
本発明は上述した事情に鑑みてなされたもので、アプリケーションプログラムの複製を防止しながら、そのアプリケーションプログラムの共有を可能にしたアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第1の目的とする。
【0010】
また、本発明は上述した事情に鑑みてなされたもので、アプリケーションプログラムの実行に利用されるデータ(利用データ)の複製を防止しながら、その利用データの共有を可能にしたアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第2の目的とする。
【0011】
さらに、本発明は上述した事情に鑑みてなされたもので、ユーザ側のアプリケーションプログラム/利用データのダウンロードに係わる負担を低減し、クライアント側メモリのデータ記憶容量の空きスペースを増大させることが可能なアプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体を提供することをその第3の目的とする。
【0012】
【課題を解決するための手段】
上述した目的を達成するための請求項1記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有方法であって、前記アプリケーションプログラムを、前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納し、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることを要旨とする。
【0013】
請求項2記載の発明によれば、請求項1記載の発明において、前記複数のモジュールそれぞれは、前記少なくとも1つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位である。
【0014】
請求項1および2記載の発明においては、アプリケーションプログラムから、前記少なくとも1つのクライアントシステムが実行できる単位に分割されて複数のモジュールが生成され、生成された複数のモジュールは、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0015】
請求項3記載の発明によれば、請求項1記載の発明において、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納し、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムにより、前記第1のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることを要旨とする。
【0016】
請求項3記載の発明では、前記アプリケーションプログラムの実行に必要なデータは、前記複数のモジュールの実行に必要な単位に分割されて複数のデータ要素が生成され、生成された複数のデータ要素は、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在し、かつ未だロードされていない場合には、前記サーバシステムにより、データ全体ではなく、データ要素単位、すなわち、前記第1のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0017】
請求項4記載の発明によれば、請求項3記載の発明において、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも1つのクライアントシステムは、そのメモリにロードされた第1のモジュールを、当該第1のモジュールに対応するデータ要素に基づいて実行し、その第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードを読み出し、当該第1のモジュールに対して論理的に次に継続される第2のモジュールを認識し、第2のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信し、前記サーバシステムは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールを当該サーバシステムのメモリから読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードし、前記少なくとも1つのクライアントシステムは、そのメモリへの前記第2のモジュールのロードに応じて、当該メモリにロードされている第1のモジュールおよび対応するデータ要素を消去し、ロードされた第2のモジュールを実行することを要旨とする。
【0018】
請求項4記載の発明では、前記少なくとも1つのクライアントシステムにより、そのメモリにロードされた第1のモジュールは、当該第1のモジュールに対応するデータ要素に基づいて実行される。
【0019】
このとき、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれているため、第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードが読み出され、当該第1のモジュールに対して論理的に次に継続される第2のモジュールが認識される。
【0020】
そして、認識された第2のモジュールのロード要求が前記少なくとも1つのクライアントシステムにより前記通信回線を介して前記サーバシステムに送信される。
【0021】
前記サーバシステムでは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールが当該サーバシステムのメモリから読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0022】
このとき、前記少なくとも1つのクライアントシステムでは、そのメモリへの前記第2のモジュールのロードに応じて、当該メモリにロードされている実行済みの第1のモジュールおよび対応するデータ要素が消去され、ロードされた第2のモジュールが実行される。
【0023】
請求項5記載の発明によれば、請求項4記載の発明において、前記サーバシステムのロードステップは、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第2のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするステップをさらに備えており、前記少なくとも1つのクライアントシステムの実行ステップは、ロードされたデータ要素に基づいて、前記第2のモジュールを実行することを要旨とする。
【0024】
請求項5記載の発明では、前記サーバシステムのロードステップとして、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第2のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。このとき、前記少なくとも1つのクライアントシステムの実行ステップとして、ロードされたデータ要素に基づいて、前記第2のモジュールが実行される。
【0025】
請求項6記載の発明によれば、請求項1乃至5記載の発明において、前記少なくとも1つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続することを要旨とする。
【0026】
請求項6記載の発明では、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力された際に、前記少なくとも1つのクライアントシステムでは、入力されたロード要求が無視、すなわち、ローカル記憶部へのモジュールのセーブが拒否され、前記各モジュールの実行が継続される。
【0027】
上述した目的を達成するための請求項7記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有システムであって、前記サーバシステムは、前記アプリケーションプログラムを、前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する格納手段と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするロード手段とを備えたことを要旨とする。
【0028】
請求項8記載の発明によれば、請求項7記載の発明において、前記複数のモジュールそれぞれは、前記少なくとも1つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位である。
【0029】
請求項7および8記載の発明では、前記サーバシステムの格納手段により、アプリケーションプログラムから、前記少なくとも1つのクライアントシステムが実行できる単位に分割されて複数のモジュールが生成され、生成された複数のモジュールは、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムのロード手段により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0030】
請求項9記載の発明によれば、請求項7又は8記載の発明において、前記サーバシステムは、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を当該サーバシステム内の記憶部に格納するデータ格納手段と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記第1のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするデータロード手段とを備えたことを要旨とする。
【0031】
請求項9記載の発明では、前記アプリケーションプログラムの実行に必要なデータは、前記サーバシステムのデータ格納手段により、前記複数のモジュールの実行に必要な単位に分割されて複数のデータ要素が生成され、生成された複数のデータ要素は、前記サーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムのデータロード手段により、データ全体ではなく、データ要素単位、すなわち、前記第1のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0032】
請求項10記載の発明によれば、請求項9記載の発明において、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも1つのクライアントシステムは、そのメモリにロードされた第1のモジュールを、当該第1のモジュールに対応するデータ要素に基づいて実行し、その第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードを読み出して当該第1のモジュールに対して論理的に次に継続される第2のモジュールを認識する認識手段と、第2のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信する送信手段とを備え、前記サーバシステムは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールを当該サーバシステム内の記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするロード手段を備え、前記少なくとも1つのクライアントシステムは、そのメモリに対する前記第2のモジュールのロードに応じて、当該メモリにロードされている第1のモジュールおよび対応するデータ要素を消去する消去手段と、ロードされた第2のモジュールを実行する実行手段とをさらに備えたことを要旨とする。
【0033】
請求項10記載の発明では、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれているため、前記少なくとも1つのクライアントシステムのメモリにロードされた第1のモジュールが当該第1のモジュールに対応するデータ要素に基づいて実行されている際に、前記少なくとも1つのクライアントシステムの認識手段により、第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードが読み出され、当該第1のモジュールに対して論理的に次に継続される第2のモジュールが認識される。
【0034】
そして、送信手段により、認識された第2のモジュールのロード要求が前記少なくとも1つのクライアントシステムにより前記通信回線を介して前記サーバシステムに送信される。
【0035】
前記サーバシステムでは、送信されてきた第2のモジュールのロード要求に応じて、ロード手段により、前記複数のモジュールの中から前記第2のモジュールが当該サーバシステムのメモリから読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0036】
このとき、前記少なくとも1つのクライアントシステムでは、そのメモリへの前記第2のモジュールのロードに応じて、消去手段により、当該メモリにロードされている実行済みの第1のモジュールおよび対応するデータ要素が消去され、実行手段により、ロードされた第2のモジュールが実行される。
【0037】
請求項11記載の発明によれば、請求項10記載の発明において、前記サーバシステムのロード手段は、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第2のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする手段をさらに備えており、前記少なくとも1つのクライアントシステムの実行手段は、ロードされたデータ要素に基づいて、前記第2のモジュールを実行する手段であることを要旨とする。
【0038】
請求項11記載の発明では、前記サーバシステムのロード手段としての処理により、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在する場合には、当該第2のモジュールに対応するデータ要素がその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。このとき、前記少なくとも1つのクライアントシステムの実行手段としての処理により、ロードされたデータ要素に基づいて、前記第2のモジュールが実行される。
【0039】
請求項12記載の発明によれば、請求項7乃至11の内の何れか1項記載の発明において、前記少なくとも1つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続する手段を備えたことを要旨とする。
【0040】
請求項12記載の発明では、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムにおける継続手段により、入力されたロード要求が無視、すなわち、ローカル記憶部へのモジュールのセーブが拒否され、前記各モジュールの実行が継続される。
【0041】
上述した目的を達成するための請求項13記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステム間において共有されるアプリケーションプログラムであって、前記少なくとも1つのクライアントシステムが実行できる単位に分割された複数のモジュールを備えており、前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、前記少なくとも1つのクライアントシステムのメモリに前記複数のモジュールの中から1つの第1のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも1つのクライアントシステムに対して前記第1のモジュールよりも論理的に次に継続される第2のモジュールがロードされたとき、前記第1のモジュールは、前記少なくとも1つのクライアントシステムを、自モジュールを消去させる手段として機能させることを要旨とする。
【0042】
請求項13記載の発明において、前記アプリケーションプログラムには、前記少なくとも1つのクライアントシステムが実行できる単位に分割された複数のモジュールが含まれており、前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれている。
【0043】
このため、前記少なくとも1つのクライアントシステムのメモリに前記複数のモジュールの中から1つの第1のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも1つのクライアントシステムに対して前記第1のモジュールよりも論理的に次に継続される第2のモジュールがロードされたとき、前記第1のモジュールにより、前記少なくとも1つのクライアントシステムは、自モジュールを消去させる手段として機能する。
【0044】
上述した目的を達成するための請求項14記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムであって、前記アプリケーションプログラムを前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する処理と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする処理とを前記サーバシステムにそれぞれ実行させる。
【0045】
請求項14記載の発明において、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記アプリケーションプログラムが前記少なくとも1つのクライアントシステムが実行できる単位に分割され、複数のモジュールが生成される。そして、生成された複数のモジュールは、アプリケーション共有用プログラムに基づくサーバシステムの処理により、そのサーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0046】
上述した目的を達成するための請求項15記載の発明によれば、通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムを記録する記録媒体であって、前記アプリケーション共有用プログラムは、前記アプリケーションプログラムを前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する手順と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする手順とを含むことを要旨とする。
【0047】
請求項15記載の発明では、記録媒体に記録されたアプリケーション共有用プログラムにおける格納手順に従ったサーバシステムの処理により、前記アプリケーションプログラムが前記少なくとも1つのクライアントシステムが実行できる単位に分割され、互いに論理的関連性を有する複数のモジュールが生成される。生成された複数のモジュールは、上記格納手順に従ったサーバシステムの処理により、そのサーバシステム内の記憶部に格納される。このとき、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記記録媒体に記録されたアプリケーション共有用プログラムにおけるロード手順に従ったサーバシステムの処理により、アプリケーション共有用プログラムに基づくサーバシステムの処理により、前記複数のモジュールの中から、アプリケーションプログラム全体ではなく、モジュール単位、すなわち、前記実行要求に対応する第1のモジュールがその記憶部から読み出され、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードされる。
【0048】
【発明の実施形態】
本発明に係るアプリケーション共有方法およびシステムの実施の形態について、添付図面を参照して説明する。
【0049】
図1は、本発明の実施の形態に係るアプリケーション共有システム1の全体構成を示す図である。
【0050】
図1に示すように、アプリケーション共有システム1は、クライアント/サーバシステムであり、電話回線、ADSL(Asymmetric Digital Subscriber Line)、光回線等の高速な通信回線(ネットワーク)2を介して接続されたサーバシステム3および少なくとも1つのクライアントシステム(以下、単にクライアントシステムと記載する)4を備えている。
【0051】
例えば、上記通信回線2は、インターネット{TCP/IP、HTTP(Hyper Text Link Transformer Protocol)等のプロトコルに基づいて相互リンクされたネットワークの集合体}の一部として構築されたものである。
【0052】
サーバシステム3は、各種のアプリケーションプログラム(本実施形態では、1つのアプリケーションプログラムPとする)を少なくとも1つのクライアントシステムに対応するユーザ側と共有するためのサービスを提供する側のコンピュータシステムである。
【0053】
すなわち、サーバシステム3は、通信回線2に接続されており、ルータ、ファイアウオール等の通信回線2上のルーティング処理用およびセキュリティ保持用のインタフェース10を備えている。
【0054】
また、サーバシステム3は、クライアントシステム4からの通信回線2を介したアクセスを制御するためのコンピュータ(サーバコンピュータ)本体としてのアクセス制御部11と、このアクセス制御部15と通信可能に接続されており、プログラムやデータ等をクライアントシステム4と共有して記憶するための共有ディスク12とを備えている。
【0055】
さらに、サーバシステム3は、アクセス制御部11に対して、クライアントシステム4からのアクセスに対する制御処理を実行させるためのプログラム15を記憶するとともに、アクセス制御部11の処理データを格納するためのメモリ(メインメモリ)16を備えている。
【0056】
なお、メモリ16は、プログラム15を記録した記録媒体の一例であるが、他の磁気記録媒体等の何れの記録媒体も、上記プログラム15を記録した記録媒体に含まれる。
【0057】
そして、サーバシステム3は、そのサーバシステム3へリモートでアクセスできる権限を有するクライアントシステムおよび対応するユーザに関するアクセス権限情報{認証情報(ID)、パスワード、情報が暗号化されている際の暗号鍵情報等}が登録されたアクセス権限ファイル20を備えている。
【0058】
一方、クライアントシステム4は、サーバシステム3により提供されるアプリケーション共有サービスを受ける側のコンピュータシステムである。
【0059】
すなわち、クライアントシステム4は、図1に示すように、例えばプロバイダ等を介して通信回線2に接続されており、ルータ、ファイアウオール等の通信回線2上のルーティング処理用およびセキュリティ保持用のインタフェース30を備えている。
【0060】
また、クライアントシステム4は、サーバシステム3からロードしたプログラム等を実行するためのCPU等のプログラム実行部31と、このプログラム実行部31の処理によりロードされたプログラムやデータを記憶するためのメモリ(メインメモリ)32とを備えている。
【0061】
さらに、クライアントシステム4は、対応するクライアントシステム4のユーザが操作してプログラム実行部31に対して所望の要求を入力するためのキーボード、マウス、音声入力機器等を含む入力部33と、クライアントシステム4のプログラム実行部4に直接、すなわち、インタフェース30および通信回線2を経由することなく接続されたローカルディスク34とを備えている。
【0062】
次に本実施形態に係わるアプリケーション共有システム1のアプリケーション共有処理について説明する。
【0063】
本実施形態において、クライアントシステム4と共有したいアプリケーションプログラムPおよびそのアプリケーションプログラムPの実行に必要なデータDが例えば通信回線2等を介してサーバシステム3に提供された際に、サーバシステム4のアクセス制御部11は、インタフェース10を介して提供されたアプリケーションプログラムPおよびデータDを受け取る。
【0064】
そして、アクセス制御部11は、受け取ったアプリケーションプログラムPを、クライアントシステム4が実行できる単位(例えば、クライアントシステム4がそのメモリ上にロードできる最小限の機能単位)に分割して、例えば互いに論理的関連性を有するシーケンシャルな複数(例えば本実施形態では3つ)のモジュールP1〜P3を生成し、生成したモジュールP1〜P3を共有ディスク12に格納する。
【0065】
このとき、各モジュールP1、P2、P3は、その単体では、アプリケーションプログラムPとして価値が無い(クライアントシステム4が実行できるプログラムではあるが、アプリケーションプログラムとしての目的を達成して効果を発生させることができない)ものとして生成されている。
【0066】
同様に、各データD1、D2、D3は、モジュールP1、P2、P3に対応する内容として分割されており、その単体では、データDとして価値が無いものとして生成されている。
【0067】
また、少なくとも論理的に最後のモジュールP3を除く各モジュールP1、P2は、例えばその終端部分に、その各モジュールP1、P2に対してそれぞれ論理的に次に継続されるモジュールP2、P3を指定する次モジュール指定コードSD1、SD2を含んでいる。
【0068】
次いで、アクセス制御部11は、データDを、複数のモジュールP1〜P3の実行に必要な単位に分割して複数のデータ要素D1〜D3を生成し、生成したモジュールP1〜P3を共有ディスク12に格納する(ステップS1)。
【0069】
本実施形態では、データD1およびD2は、モジュールP1の実行に必要なデータであり、データD3は、モジュールP3の実行に必要なデータとする。
【0070】
一方、サーバシステム3に対してリモートでアクセスできる権限を有するクライアントシステム4のユーザは、入力部33を介してアクセス権限情報(ID)、パスワード、暗号鍵情報等)をプログラム実行部31に対して入力し、サーバシステム3に対するアクセスを要求する。プログラム実行部31は、入力されたアクセス権限情報をインタフェース30および通信回線2を介してサーバシステム3に対し送信し、サーバシステム3にアクセスする(ステップS2)。
【0071】
サーバシステム3のアクセス制御部11は、送信されてきたアクセス権限情報をインタフェース10を介して受け取り、アクセス権限ファイル20を参照して、送信元のクライアントシステム4にアクセス権限が存在するか否か(ファイル20に登録されているか否か)を判断する(ステップS3)。
【0072】
このステップS3の判断の結果ノー(NO)、すなわち、送信されたアクセス権限情報が未登録の場合(クライアントシステム4にアクセス権限が存在しない場合)には、アクセス制御部11は、クライアントシステム4のアクセスを無視するか、あるいは、アクセス権限不所有を表すメッセージを作成してクライアントシステム4に向けて送信し、処理を終了する。
【0073】
一方、ステップS3の判断の結果イエス(YES)、すなわち、送信されたアクセス権限情報が登録済みの場合(クライアントシステム4にアクセス権限が存在する場合)には、アクセス制御部11は、クライアントシステム4との通信回線2を介した接続を確立する(ステップS4)。
【0074】
サーバシステム4との接続が確立された際、ユーザは、入力部33を介してアプリケーションプログラムPの実行要求をプログラム実行部31に対して入力し、プログラム実行部31は、入力されたアプリケーションプログラムPの実行要求をインタフェース30および通信回線2を介してサーバシステム3に対し送信する(ステップS5)。
【0075】
サーバシステム3のアクセス制御部11は、送信されてきたアプリケーションプログラムPの実行要求をインタフェース10を介して受け取り、アプリケーションプログラムPの実行要求に対応するモジュールとして、論理的に最初のモジュールP1および対応するデータ要素D1、D2を共有ディスク12から取り出し、取り出したモジュールP1およびデータ要素D1、D2をインタフェース30および通信回線2を介してクライアントシステム4に送信(ロード)する(ステップS6)。
【0076】
クライアントシステム4のプログラム実行部31は、通信回線2を介してロードされてきたモジュールP1およびデータD1、D2をインタフェース30を介して受け取り、受け取ったモジュールP1およびデータD1、D2をメモリ32にロードする(図4(a)参照)。そして、プログラム実行部31は、データD1およびD2に基づいて、モジュールP1を実行する(ステップS7)。
【0077】
このとき、プログラム実行部31は、モジュールP1実行処理と並行して、モジュールP1において次モジュール指定コードを検出したか否かを判断しており(ステップS8)、この判断の結果NO(未検出)の場合、モジュールP1の実行処理を継続する。
【0078】
そして、ステップS8の判断の結果YES、すなわち、プログラム実行部31が次モジュール指定コードSD1をモジュールP1から検出した場合には、プログラム実行部31は、次モジュールロード要求をインタフェース30および通信回線2を介してサーバシステム3に対し送信する(ステップS9)。
【0079】
サーバシステム3のアクセス制御部11は、送信されてきた次モジュールロード要求をインタフェース10を介して受け取り、共有ディスク12を参照して、対応する次モジュールP2の存在を認識する。
【0080】
このとき、アクセス制御部11は、次モジュールP2に対応するデータ要素D1、D2が既にクライアントシステム4側にロードされているため、次モジュールP2のみを共有ディスク12から取り出し、取り出したモジュールP2をインタフェース30および通信回線2を介してクライアントシステム4に送信(ロード)する(ステップS10)。
【0081】
クライアントシステム4のプログラム実行部31は、通信回線2を介してロードされてきたモジュールP2をインタフェース30を介して受け取り、受け取ったモジュールP2をメモリ32にロードし、さらに、メモリ32に現在格納されていたモジュールP1をメモリ32から消去する(ステップS11)。
【0082】
ステップS11の処理終了時のメモリ32の内部構成を図4(b)に示す。すなわち、図4(b)によれば、メモリ32には、既に実行済みのモジュールP1が消去され、次に実行されるモジュールP2およびそのモジュールP2の実行に必要なデータ要素D1、D2のみが格納されている。
【0083】
次いで、プログラム実行部31は、モジュールP1に継続し、データ要素D1およびD2に基づいてモジュールP2を実行する(ステップS12)。
【0084】
このとき、プログラム実行部31は、ステップS8の処理と同様に、モジュールP2において次モジュール指定コードを検出したか否かを判断しており(ステップS13)、この判断の結果NO(未検出)の場合、モジュールP2の実行処理を継続する。
【0085】
そして、ステップS13の判断の結果YES、すなわち、プログラム実行部31が次モジュール指定コードSD2をモジュールP2から検出した場合には、プログラム実行部31は、次モジュールロード要求をインタフェース30および通信回線2を介してサーバシステム3に対し送信する(ステップS14)。
【0086】
サーバシステム3のアクセス制御部11は、送信されてきた次モジュールロード要求をインタフェース10を介して受け取り、共有ディスク12を参照して、対応する次モジュールP3の存在を認識する。
【0087】
このとき、次モジュールP3に対応するデータ要素D3が共有ディスク12内に存在し、かつ未だクライアントシステム4側にロードされていないため、アクセス制御部11は、次モジュールP3および次モジュールP3に対応するデータ要素D3を共有ディスク12から取り出し、取り出したモジュールP3およびデータ要素D3をインタフェース30および通信回線2を介してクライアントシステム4に送信(ロード)する(ステップS15)。
【0088】
クライアントシステム4のプログラム実行部31は、通信回線2を介してロードされてきたモジュールP2をインタフェース30を介して受け取り、受け取ったモジュールP3およびデータ要素D3をメモリ32にロードし、さらに、メモリ32に現在格納されていたモジュールP2およびデータ要素D1、D2をメモリ32から消去する(ステップS16)。
【0089】
ステップS16の処理終了時のメモリ32の内部構成を図4(c)に示す。すなわち、図4(c)によれば、メモリ32には、既に実行済みのモジュールP2およびこのモジュールP2の実行に必要なデータ要素D1、D2がそれぞれ消去され、次に実行されるモジュールP3およびそのモジュールP3の実行に必要なデータD3のみが格納されている。
【0090】
次いで、プログラム実行部31は、モジュールP2に継続し、データ要素D3に基づいてモジュールP3を実行し(ステップS17)、処理を終了する。
【0091】
なお、図2および図3におけるサーバシステム3のアクセス制御部11の処理は、プログラム15に基づいて実行される。また、クライアントシステム4のプログラム実行部31の処理は、その際にメモリ32に格納されているモジュールに基づいて実行される。
【0092】
以上述べたように、本実施形態によれば、アプリケーションプログラムPおよびアプリケーションプログラムPの実行に必要なデータDを、クライアントシステム4が実行できる単位に分割して互いに論理的関連性を有するモジュールP1〜P3およびデータ要素D1〜D3を生成し、生成したモジュールP1〜P3およびデータ要素D1〜D3を共有ディスク12にそれぞれ格納している。
【0093】
すなわち、クライアントシステム4側から、共有ディスク12上のアプリケーションプログラムP全体およびデータD全体にアクセスして複製を作成することができず、アプリケーションプログラムPおよびデータDの配信元(サーバシステム3の所有者)の上記複製に係わる不利益を防止することができる。
【0094】
また、本実施形態によれば、クライアントシステム4からのアクセスに応じて、共有ディスク12上に格納されたモジュールP1〜P3およびデータ要素D1〜D3を、モジュール単位およびデータ要素単位でクライアントシステム4にロードしている。
【0095】
すなわち、クライアントシステム4側から、共有ディスク12上のアプリケーションプログラムP全体およびデータD全体をそれぞれダウンロードして自システム4に格納することができないため、アプリケーションプログラムPおよびデータDの複製を不正に作成することを防止することができる。
【0096】
また、アプリケーションプログラムPの実行に必要なデータDが巨大であった場合でも、実際に実行するモジュールの使用に必要なデータのみをダウンロードするように構成されている。このため、クライアントシステム4側メモリ32およびローカルディスク34のデータ記憶容量の空きスペースの無用な減少を防止することができる。
【0097】
さらに、本実施形態によれば、アプリケーションプログラムPをバージョンアップする際において、サーバシステム側では、共有ディスク12上の対応するモジュールを更新する処理のみにより、アプリケーションプログラムPのバージョンアップを行うことができる。
【0098】
すなわち、ユーザ側においては、アプリケーションプログラムPのバージョンアップを認識してバージョンアップファイルをクライアントシステム4へダウンロード・インストールする処理が不要となり、ユーザ側の負担を軽減することができる。
【0099】
さらに、本実施形態において、クライアントシステム4のメモリ32上には、常に、次の実行に必要なモジュールおよびそのモジュールの実行に必要なデータのみが格納されており、実行済みのモジュール/データや、現在格納中のモジュール以外の未実行のモジュール/データが同時に格納されることはない。
【0100】
このため、クライアントシステム4側において、ロードされた複数のモジュール/データ要素を組み合わせてアプリケーションプログラム/データを複製することも不可能であり、不正複製防止機能の信頼性を向上させることができる。
【0101】
次に、本実施形態の変形例として、クライアントシステム4のプログラム実行部31がモジュールを実行中において、ユーザが入力部33を介してモジュールのローカルディスク34へのロード要求を入力した場合のプログラム実行部31の処理について説明する。なお、上記プログラム実行部31の処理は、その際にメモリ32に格納されているモジュールに基づいて実行される。
【0102】
すなわち、プログラム実行部31は、現在メモリ32に格納されているモジュールを実行中において(ステップS7、S12、S17参照)、その実行処理と並列的に、入力部31からモジュールのセーブ要求が入力されてきたか否か判断している(ステップS20)。
【0103】
このステップS20の判断の結果、NO(ロード要求入力無し)の場合には、プログラム実行部31は、対応するモジュールの実行処理を継続する。
【0104】
一方、ステップS20の判断の結果、YES、すなわち、入力部31からモジュール/対応するデータ要素(“A/B”は、AおよびBの内の少なくとも一方の意味で用いている)のセーブ要求が入力されてきた場合においても、プログラム実行部31は、入力されたセーブ要求を無視して対応するモジュールの実行処理を継続する(ステップS21)。
【0105】
すなわち、本変形例によれば、クライアントシステム4側にロードされてきたモジュール/対応するデータ要素は、常にそのメモリ32にのみ格納され、そのシステム4におけるローカルディスク34にセーブされることがない。このため、ローカルディスク34上においてモジュール/対応するデータ要素を再構成してアプリケーションプログラムやデータを複製することもできず、アプリケーションプログラム/対応するデータの不正複製防止機能の信頼性をさらに向上させることができる。
【0106】
なお、本実施形態においては、説明を容易にするため、クライアントシステム4を1つとしたが、本発明はこれに限定されるものではなく、同一の構成・機能を有する複数のクライアントシステムを含むアプリケーション共有システムであってもよい。この場合には、クライアントシステム毎に上述した処理が実行されることになる。
【0107】
また、本実施形態においては、アプリケーションプログラムおよび対応するデータをそれぞれ3分割したが、本発明はこれに限定されるものではなく、分割後の単体(モジュール、データ要素)が分割前の全体(アプリケーションプログラム、対応するデータ)として価値が無いものであれば、何れの分割数であってもよい。
【0108】
さらに、本実施形態では、アプリケーションプログラムPおよびそのアプリケーションプログラムの実行に必要なデータDをそれぞれ分割したが、本発明はこの構成に限定されるものではなく、アプリケーションプログラムPのみを分割し、データDはそのまま共有ディスクに格納しておくことも可能である。
【0109】
そして、本実施形態では、アプリケーションプログラム/対応するデータを分割して格納する記憶部を、共有ディスク12としたが、本発明はこれに限定されるものではなく、共有メモリ、共有データベース等、何れの記憶媒体の形態も含むものである。
【0110】
さらに、本実施形態では、アプリケーションプログラムPを、クライアントシステム4が実行できる単位として、クライアントシステム4がそのメモリ上にロードできる最小限の機能単位に分割して、例えば互いに論理的関連性を有するシーケンシャルな複数のモジュールを生成したが、本発明はこの構成に限定されるものではない。
【0111】
すなわち、分割後の各モジュールが、その単体では、アプリケーションプログラムとして価値が無い(クライアントシステム4が実行できるプログラムではあるが、アプリケーションプログラムとしての目的を達成して効果を発生させることができない)ものであれば、分割単位をロード時の最小単位にする必要はなく、また、互いに論理的関連性を有するシーケンシャルな単位に分割する必要もない。
【0112】
【発明の効果】
以上述べたように、本発明に係わるアプリケーション共有方法およびシステム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体よれば、アプリケーションプログラムを、少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納している。
【0113】
このため、サーバシステムに対してアプリケーションプログラム実行要求を送信してきた少なくとも1つのクライアントシステムに対して、記憶部に格納された複数のモジュールの中から、アプリケーションプログラム全体ではなく、実行要求に対応する第1のモジュールを読み出して、通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることができる。
【0114】
すなわち、少なくとも1つのクライアントシステム側から、記憶部に格納されたアプリケーションプログラム全体をダウンロードして自クライアントシステムに格納することができない構成であるため、アプリケーションプログラムの複製を不正に作成することを防止することができる。
【0115】
また、本発明に係わるアプリケーション共有方法およびシステムによれば、アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納している。
【0116】
このため、サーバシステムに対してアプリケーションプログラム実行要求を送信してきた少なくとも1つのクライアントシステムに対して、上記第1のモジュールに対応するデータ要素が記憶部内に存在する場合には、サーバシステムにより、データ全体ではなく、上記第1のモジュールに対応するデータ要素をその記憶部から読み出し、通信回線を介して少なくとも1つのクライアントシステムのメモリへロードすることができる。
【0117】
すなわち、少なくとも1つのクライアントシステム側から、記憶部に格納されたデータ全体をダウンロードして自クライアントシステムに格納することができない構成であるため、データの複製を不正に作成することを防止することができる。
【0118】
さらに、本発明に係わるアプリケーション共有方法およびシステムによれば、前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールには、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードが含まれている。このため、第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードに基づいて、その第1のモジュールに対して論理的に次に継続される第2のモジュールを認識することができる。
【0119】
そして、本発明に係わるアプリケーション共有方法およびシステム、ならびにアプリケーションプログラムによれば、少なくとも1つのクライアントシステムは、そのメモリに第1のモジュールおよび対応するデータ要素が格納されている際に、第1のモジュールに対して論理的に次に継続される第2のモジュールがロードされたとき、当該メモリにロードされている実行済みの第1のモジュールおよび対応するデータ要素を消去し、ロードされた第2のモジュールを実行することができる。
【0120】
このため、少なくとも1つのクライアントシステム側において、ロードされた複数のモジュール/データ要素を組み合わせてアプリケーションプログラム/データを複製することも不可能であり、不正複製防止機能の信頼性を向上させることができる。
【0121】
さらに、本発明に係わるアプリケーション共有方法およびシステムによれば、前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力された際に、入力されたセーブ要求を無視、すなわち、ローカル記憶部へのモジュールのセーブを拒否して、前記各モジュールの実行を継続することができる。
【0122】
したがって、ローカル記憶部上においてモジュールを再構成してアプリケーションプログラムを複製することもできず、アプリケーションプログラムの不正複製防止機能の信頼性をさらに向上させることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるアプリケーション共有システムの全体構成を示すブロック図。
【図2】図1に示すアプリケーション共有システムにおけるクライアントシステムおよびサーバシステムの処理の一例を示す概略フローチャート。
【図3】図1に示すアプリケーション共有システムにおけるクライアントシステムおよびサーバシステムの処理の一例を示す概略フローチャート。
【図4】図1に示すクライアントシステムにおけるメモリの内部構成を概念的に示す図。
【図5】本発明の実施の形態の変形例におけるクライアントシステムの処理の一例を示す概略フローチャート。
【符号の説明】
1 共有システム
2 通信回線
3 サーバシステム
4 クライアントシステム
10、30 インタフェース
11 アクセス制御部
12 共有ディスク
15 プログラム
16、32 メモリ
20 アクセス権限ファイル
31 プログラム実行部
33 入力部
34 ローカルディスク
モジュールP1、P2、P3
データ要素D1、D2、D3
Claims (15)
- 通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有方法であって、
前記アプリケーションプログラムを、前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを前記サーバシステム内の記憶部に格納し、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、当該サーバシステムにより、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることを特徴とするアプリケーション共有方法。 - 前記複数のモジュールそれぞれは、前記少なくとも1つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位であることを特徴とする請求項1記載のアプリケーション共有方法。
- 前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を前記サーバシステム内の記憶部に格納し、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記サーバシステムにより、前記第1のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードすることを特徴とする請求項1又は2記載のアプリケーション共有方法。
- 前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、
前記少なくとも1つのクライアントシステムは、そのメモリにロードされた第1のモジュールを、当該第1のモジュールに対応するデータ要素に基づいて実行し、その第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードを読み出し、当該第1のモジュールに対して論理的に次に継続される第2のモジュールを認識し、第2のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信し、
前記サーバシステムは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールを当該サーバシステムのメモリから読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードし、
前記少なくとも1つのクライアントシステムは、そのメモリへの前記第2のモジュールのロードに応じて、当該メモリにロードされている第1のモジュールおよび対応するデータ要素を消去し、ロードされた第2のモジュールを実行することを特徴とする請求項3記載のアプリケーション共有方法。 - 前記サーバシステムのロードステップは、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第2のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするステップをさらに備えており、
前記少なくとも1つのクライアントシステムの実行ステップは、ロードされたデータ要素に基づいて、前記第2のモジュールを実行することを特徴とする請求項4記載のアプリケーション共有方法。 - 前記少なくとも1つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、
前記少なくとも1つのクライアントシステムによりそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続することを特徴とする請求項1乃至5の内の何れか1項記載のアプリケーション共有方法。 - 通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するためのアプリケーション共有システムであって、
前記サーバシステムは、前記アプリケーションプログラムを、前記少なくとも1つのクライアントシステムが実行できる単位に分割して互いに論理的関連性を有する複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する格納手段と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするロード手段とを備えたことを特徴とするアプリケーション共有システム。 - 前記複数のモジュールそれぞれは、前記少なくとも1つのクライアントシステムがそのメモリ上にロードできる最小限の機能単位であることを特徴とする請求項7記載のアプリケーション共有システム。
- 前記サーバシステムは、前記アプリケーションプログラムの実行に必要なデータを、前記複数のモジュールの実行に必要な単位に分割して複数のデータ要素を生成し、生成した複数のデータ要素を当該サーバシステム内の記憶部に格納するデータ格納手段と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記第1のモジュールに対応するデータ要素が前記記憶部内に存在する場合には、前記第1のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするデータロード手段とを備えたことを特徴とする請求項7又は8記載のアプリケーション共有システム。
- 前記複数のモジュールにおける少なくとも論理的に最後のモジュールを除く各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、
前記少なくとも1つのクライアントシステムは、そのメモリにロードされた第1のモジュールを、当該第1のモジュールに対応するデータ要素に基づいて実行し、その第1のモジュールの実行を終了する際に、その第1のモジュールに含まれるプログラムコードを読み出して当該第1のモジュールに対して論理的に次に継続される第2のモジュールを認識する認識手段と、第2のモジュールのロード要求を前記通信回線を介して前記サーバシステムに送信する送信手段とを備え、前記サーバシステムは、送信されてきた第2のモジュールのロード要求に応じて、前記複数のモジュールの中から前記第2のモジュールを当該サーバシステム内の記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードするロード手段を備え、
前記少なくとも1つのクライアントシステムは、そのメモリに対する前記第2のモジュールのロードに応じて、当該メモリにロードされている第1のモジュールおよび対応するデータ要素を消去する消去手段と、ロードされた第2のモジュールを実行する実行手段とをさらに備えたことを特徴とする請求項9記載のアプリケーション共有システム。 - 前記サーバシステムのロード手段は、前記第2のモジュールに対応するデータ要素が当該サーバシステムの記憶部に存在し、かつ未だロードされていない場合には、当該第2のモジュールに対応するデータ要素をその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする手段をさらに備えており、
前記少なくとも1つのクライアントシステムの実行手段は、ロードされたデータ要素に基づいて、前記第2のモジュールを実行する手段であることを特徴とする請求項10記載のアプリケーション共有システム。 - 前記少なくとも1つのクライアントシステムは、当該システムに直接接続されたローカル記憶部を有しており、
前記少なくとも1つのクライアントシステムにおいてそのメモリにロードされた各モジュールが実行されている際に、当該少なくとも1つのクライアントシステムに対して、前記各モジュールの前記ローカル記憶部に対するセーブ要求が入力されたとき、前記少なくとも1つのクライアントシステムは、入力されたセーブ要求を無視して前記各モジュールの実行を継続する手段を備えたことを特徴とする請求項7乃至11の内の何れか1項記載のアプリケーション共有システム。 - 通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステム間において共有されるアプリケーションプログラムであって、
前記少なくとも1つのクライアントシステムが実行できる単位に分割された複数のモジュールを備えており、
前記複数のモジュールの内の少なくとも論理的に最後のモジュール以外の各モジュールは、その各モジュールに対して論理的に次に継続されるモジュールを指定するプログラムコードを含んでおり、
前記少なくとも1つのクライアントシステムのメモリに前記複数のモジュールの中から1つの第1のモジュールがロードされている際に、当該サーバシステムから前記通信回線を介して前記少なくとも1つのクライアントシステムに対して前記第1のモジュールよりも論理的に次に継続される第2のモジュールがロードされたとき、
前記第1のモジュールは、前記少なくとも1つのクライアントシステムを、自モジュールを消去させる手段として機能させることを特徴とするアプリケーションプログラム。 - 通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムであって、
前記アプリケーションプログラムを前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する処理と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする処理とを前記サーバシステムにそれぞれ実行させることを特徴とするアプリケーション共有用プログラム。 - 通信回線を介して接続されたサーバシステムおよび少なくとも1つのクライアントシステムを備え、当該サーバシステムおよび少なくとも1つのクライアントシステム間においてアプリケーションプログラムを共有するための前記サーバシステムが実行可能なアプリケーション共有用プログラムを記録した記録媒体であって、
前記アプリケーション共有用プログラムは、前記アプリケーションプログラムを前記少なくとも1つのクライアントシステムが実行できる単位に分割して複数のモジュールを生成し、生成した複数のモジュールを当該サーバシステム内の記憶部に格納する手順と、前記少なくとも1つのクライアントシステムから前記通信回線を介して前記サーバシステムに前記アプリケーションプログラムの実行要求が送られた際に、前記複数のモジュールの中から、前記実行要求に対応する第1のモジュールをその記憶部から読み出し、前記通信回線を介して前記少なくとも1つのクライアントシステムのメモリへロードする手順とを含むことを特徴とするアプリケーション共有用プログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002179040A JP2004021852A (ja) | 2002-06-19 | 2002-06-19 | アプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002179040A JP2004021852A (ja) | 2002-06-19 | 2002-06-19 | アプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004021852A true JP2004021852A (ja) | 2004-01-22 |
Family
ID=31176589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002179040A Pending JP2004021852A (ja) | 2002-06-19 | 2002-06-19 | アプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004021852A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013020565A (ja) * | 2011-07-14 | 2013-01-31 | Mega Chips Corp | メモリシステム、メモリ装置、およびメモリシステムの動作方法 |
-
2002
- 2002-06-19 JP JP2002179040A patent/JP2004021852A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013020565A (ja) * | 2011-07-14 | 2013-01-31 | Mega Chips Corp | メモリシステム、メモリ装置、およびメモリシステムの動作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8230222B2 (en) | Method, system and computer program for deploying software packages with increased security | |
KR101098621B1 (ko) | 네트워킹된 환경에서 설치 컴포넌트들을 업데이트하는시스템 및 방법 | |
KR101150041B1 (ko) | 델타 압축 패칭을 이용하여 파일을 업데이트하기 위한시스템 및 방법 | |
KR101130367B1 (ko) | 소프트웨어 분산 서비스를 위한 시스템 및 방법 | |
KR101098745B1 (ko) | 소프트웨어 업데이트를 관리하고 통신하기 위한 시스템 및방법 | |
US10122792B2 (en) | Read-only storage device having network interface, a system including the device and a method of distributing files over a network | |
US9654548B2 (en) | Intelligent network streaming and execution system for conventionally coded applications | |
JP5061908B2 (ja) | プログラム実行制御方法および装置ならびに実行制御プログラム | |
US7840750B2 (en) | Electrical transmission system in secret environment between virtual disks and electrical transmission method thereof | |
US8831995B2 (en) | Optimized server for streamed applications | |
US6654888B1 (en) | Installing and controlling trial software | |
US7685594B2 (en) | Method and data structure for reconfiguring a software package | |
US20090328026A1 (en) | Update system, program execution device, and computer program | |
CN102034058B (zh) | 应用软件安全控制方法及终端 | |
JP4185346B2 (ja) | ストレージ装置及びその構成設定方法 | |
JP3917125B2 (ja) | 文書保安システム | |
US20240095402A1 (en) | Methods and Systems for Recursive Descent Parsing | |
JP2004021852A (ja) | アプリケーション共有方法およびシステム、アプリケーションプログラム、アプリケーション共有用プログラム、ならびにアプリケーション共有用プログラムを記録した記録媒体 | |
KR20150030047A (ko) | 애플리케이션 인증 방법 및 그 시스템 | |
JP5429280B2 (ja) | データ処理装置、そのコンピュータプログラムおよびデータ処理方法 | |
JPH10320287A (ja) | 計算機資源へのアクセス管理システム及びその方法 | |
CN117792792A (zh) | 通信系统 | |
CN118036026A (zh) | 基于MongoDB的透明数据加密方法及加密系统 | |
Elhajj | Deploying Microsoft Windows Server Update Services |