(57)【要約】  ＡＳＰサーバの負荷を軽減する技術を提供する。  ユーザ端末６に、ＡＳＰサーバ３内で実行されるアプリケーションをインストールする。ユーザ端末６にインストールされたアプリケーションは、サテライトＡＳＰ５として機能し、ＡＳＰサーバ３と同様の機能を実現する。ユーザがＡＳＰサーバ３のＡＳＰサービスを受けるために、ＡＳＰサーバ３へリクエストを送信しようとすると、サテライトＡＳＰ５がそのリクエストを受け取って、ＡＳＰサーバ３の代わりにアプリケーションを実行する。【特許請求の範囲】
【請求項１】
サーバがサービスを提供するために実行するアプリケーションと同等又は一部の機能を有するアプリケーションをネットワークを介してサーバから取得し、インストールする手段と、
前記サーバへのリクエストを取得し、前記サーバの代わりに前記アプリケーションを実行する手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記アプリケーションは、クライアントの端末の内部にインストールされることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記アプリケーションは、クライアントの端末と前記サーバとの間に接続された装置にインストールされることを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードするモジュール取得部と、
ユーザからの操作入力を受け付けるための入力画面を表示させる入力画面表示部と、
入力画面に対するユーザの操作入力を検出する操作検出部と、
操作入力に応じたデータ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、
実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させるローカル実行制御部と、
実行主体としてリモートモジュールが選択されたとき、前記外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、前記外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、
ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させる結果表示部と、を備え、
前記実行主体選択部は、入力画面に対するユーザの操作入力が受け付けられるときに、データ処理の実行主体としてリモートモジュールとローカルモジュールのいずれかを特定するための情報が入力されなくても、ローカルモジュールかリモートモジュールの少なくともいずれかを選択することを特徴とするデータ処理装置。
【請求項５】
ローカルモジュールとしてダウンロードの対象となる機能モジュールのうちの少なくとも一部の機能モジュールは、前記外部装置と自装置のいずれにおいても実行可能であることを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記入力画面表示部は、前記外部装置に処理要求情報を送信するための画面として入力画面を表示させ、
前記実行主体選択部は、入力画面を介してその処理要求情報を取得し、その処理要求情報に応じたデータ処理を実行可能なローカルモジュールが存在するときには、そのローカルモジュールを実行主体として選択することを特徴とする請求項４に記載のデータ処理装置。
【請求項７】
前記実行主体選択部は、前記外部装置に対する通信状態がオフラインとなっているときには、実行主体としてローカルモジュールを優先的に選択することを特徴とする請求項４から６のいずれかに記載のデータ処理装置。
【請求項８】
前記入力画面表示部は、リモートモジュールに対する操作入力を受け付けるための入力画面とローカルモジュールに対する操作入力を受け付けるための入力画面を、実質的に同一の入力画面として表示することを特徴とする請求項４から７のいずれかに記載のデータ処理装置。
【請求項９】
実行対象となるべきアプリケーションソフトウェアを選択するためのユーザによる入力を検出するアプリケーション選択部を更に備え、
前記モジュール取得部は、選択されたアプリケーションソフトウェアに含まれる機能モジュールを前記外部装置からのダウンロード対象とすることを特徴とする請求項４から８のいずれかに記載のデータ処理装置。
【請求項１０】
アプリケーションソフトウェアに含まれる複数の機能モジュールのうち、ダウンロード対象となる機能モジュールを選択するためのユーザによる入力を検出するモジュール選択部を更に備え、
前記モジュール取得部は、選択された機能モジュールを前記外部装置からのダウンロード対象とすることを特徴とする請求項４から９のいずれかに記載のデータ処理装置。
【請求項１１】
前記外部装置においてリモートモジュールが更新された旨を示す更新情報を受信する更新情報受信部を更に備え、
前記モジュール取得部は、更新情報の受信を契機として、更新後のリモートモジュールを前記外部装置から新たにダウンロードすることを特徴とする請求項４から１０のいずれかに記載のデータ処理装置。
【請求項１２】
請求項４から１１のいずれかに記載のデータ処理装置と、
請求項４から１１のいずれかに記載の外部装置としてのサーバ装置と、を備え、
前記サーバ装置は、
アプリケーションソフトウェアを構成する複数の機能モジュールを保持するモジュール保持部と、
前記データ処理装置に保持されるべきローカルモジュールとして、それら複数の機能モジュールのうち、少なくとも一部の機能モジュールを前記データ処理装置に送信するモジュール送信部と、
前記データ処理装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、
保持されている機能モジュールに指示されたデータ処理を実行させる実行制御部と、
データ処理の結果を処理結果情報として前記データ処理装置に送信する処理結果送信部と、
を含むことを特徴とするデータ処理システム。
【請求項１３】
アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを第１の外部装置からダウンロードするモジュール取得部と、
第２の外部装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、
データ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記第１の外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、
実行主体としてローカルモジュールが選択されたとき、指示されたデータ処理をローカルモジュールに実行させるローカル実行制御部と、
実行主体としてリモートモジュールが選択されたとき、前記第１の外部装置に対して、指示されたデータ処理の実行を指示するための処理要求情報を送信し、前記第１の外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、
ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を処理結果情報として前記第２の外部装置に送信する処理結果送信部と、
を備えることを特徴とするデータ処理中継装置。
【請求項１４】
アプリケーションソフトウェアの一部の機能を前記第２の外部装置において実行可能とするために、前記第１の外部装置からダウンロードされた機能モジュールのうちの少なくとも一部の機能モジュールを前記第２の外部装置に送信するモジュール送信部を更に備えることを特徴とする請求項１３に記載のデータ処理中継装置。
【請求項１５】
アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードするステップと、
ユーザからの操作入力を受け付けるための入力画面を表示させるステップと、
入力画面に対するユーザの操作入力を検出するステップと、
操作入力に応じたデータ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択するステップと、
実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させるステップと、
実行主体としてリモートモジュールが選択されたとき、前記外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、前記外部装置からデータ処理の結果を示す結果情報を受信するステップと、
ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させるステップと、を備え、
入力画面に対するユーザの操作入力が受け付けられるときに、データ処理の実行主体としてリモートモジュールとローカルモジュールのいずれかを特定するための情報が入力されなくても、ローカルモジュールかリモートモジュールの少なくともいずれかを選択することを特徴とするデータ処理方法。
【請求項１６】
アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードする機能と、
ユーザからの操作入力を受け付けるための入力画面を表示させる機能と、
入力画面に対するユーザの操作入力を検出する機能と、
操作入力に応じたデータ処理の実行主体として、実行主体を特定するための情報がユーザにより入力されていなくても、自装置にダウンロードされた機能モジュールであるローカルモジュールか、前記外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する機能と、
実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させる機能と、
実行主体としてリモートモジュールが選択されたとき、前記外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、前記外部装置からデータ処理の結果を示す結果情報を受信する機能と、
ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させる機能と、
をコンピュータに発揮させることを特徴とするデータ処理プログラム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特に、アプリケーションサービスを提供するデータ処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータや携帯電話端末が広く普及し、誰もがインターネットを利用できる環境が整いつつある。インターネットを介したウェブサービスも広く利用されるようになっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
アプリケーションサービスプロバイダ（ＡＳＰ）のサーバが各種のサービスを提供している。ＡＳＰサーバでは、サービスを提供するためのアプリケーションが実行されるが、ＡＳＰサーバに対するアクセスが集中すると、負荷により動作速度が低下したり、システムダウンを起こす恐れがある。理想的には、一時的なアクセスの極大にも耐えうるようにシステムを構築すべきであるが、費用対効果の面からは効率的とはいえない。【０００４】
本発明はこうした状況に鑑みてなされたものであり、その主たる目的は、アプリケーションサービスを提供するサーバの負荷を軽減し、サーバクライアントモデルにおいて効率的にアプリケーションを制御するための技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、サーバがサービスを提供するために実行するアプリケーションと同等又は一部の機能を有するアプリケーションをネットワークを介してサーバから取得し、インストールする手段と、前記サーバへのリクエストを取得し、前記サーバの代わりに前記アプリケーションを実行する手段と、を備えることを特徴とする。【０００６】
前記アプリケーションは、クライアントの端末の内部にインストールされてもよい。前記アプリケーションは、クライアントの端末と前記サーバとの間に接続された装置にインストールされてもよい。【０００７】
本発明の別の態様もデータ処理装置である。
この装置は、アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを外部装置からダウンロードするモジュール取得部と、ユーザからの操作入力を受け付けるための入力画面を表示させる入力画面表示部と、入力画面に対するユーザの操作入力を検出する操作検出部と、操作入力に応じたデータ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、実行主体としてローカルモジュールが選択されたとき、操作入力に応じたデータ処理をローカルモジュールに実行させるローカル実行制御部と、実行主体としてリモートモジュールが選択されたとき、外部装置に対して、操作入力に応じたデータ処理の実行を指示するための処理要求情報を送信し、外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を画面表示させる結果表示部と、を備える。
実行主体選択部は、入力画面に対するユーザの操作入力が受け付けられるときに、データ処理の実行主体としてリモートモジュールとローカルモジュールのいずれかを特定するための情報が入力されなくても、ローカルモジュールかリモートモジュールの少なくともいずれかを選択する。【０００８】
この装置において、ローカルモジュールとしてダウンロードの対象となる機能モジュールのうちの少なくとも一部の機能モジュールは、外部装置と自装置のいずれにおいても実行可能であってもよい。【０００９】
入力画面表示部は、外部装置に処理要求情報を送信するための画面として入力画面を表示させ、実行主体選択部は、入力画面を介してその処理要求情報を取得し、その処理要求情報に応じたデータ処理を実行可能なローカルモジュールが存在するときには、そのローカルモジュールを実行主体として選択してもよい。【００１０】
実行主体選択部は、外部装置に対する通信状態がオフラインとなっているときには、実行主体としてローカルモジュールを優先的に選択してもよい。【００１１】
入力画面表示部は、リモートモジュールに対する操作入力を受け付けるための入力画面とローカルモジュールに対する操作入力を受け付けるための入力画面を、実質的に同一の入力画面として表示してもよい。【００１２】
この装置は、実行対象となるべきアプリケーションソフトウェアを選択するためのユーザによる入力を検出するアプリケーション選択部を更に備えてもよい。このとき、モジュール取得部は、選択されたアプリケーションソフトウェアに含まれる機能モジュールを外部装置からのダウンロード対象としてもよい。【００１３】
この装置は、アプリケーションソフトウェアに含まれる複数の機能モジュールのうち、ダウンロード対象となる機能モジュールを選択するためのユーザによる入力を検出するモジュール選択部を更に備えてもよい。このとき、モジュール取得部は、選択された機能モジュールを外部装置からのダウンロード対象としてもよい。【００１４】
この装置は、外部装置においてリモートモジュールが更新された旨を示す更新情報を受信する更新情報受信部を更に備えてもよい。このとき、モジュール取得部は、更新情報の受信を契機として、更新後のリモートモジュールを外部装置から新たにダウンロードしてもよい。【００１５】
本発明の更に別の態様は、データ処理システムである。
このデータ処理システムは、上記したようなデータ処理装置とサーバ装置を備える。
サーバ装置は、アプリケーションソフトウェアを構成する複数の機能モジュールを保持するモジュール保持部と、データ処理装置に保持されるべきローカルモジュールとして、それら複数の機能モジュールのうち、少なくとも一部の機能モジュールをデータ処理装置に送信するモジュール送信部と、データ処理装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、保持されている機能モジュールに指示されたデータ処理を実行させる実行制御部と、データ処理の結果を処理結果情報としてデータ処理装置に送信する処理結果送信部と、を含む。【００１６】
本発明の更に別の態様は、データ処理中継装置である。
この装置は、アプリケーションソフトウェアを構成する複数の機能モジュールのうち、少なくとも一部の機能モジュールを第１の外部装置からダウンロードするモジュール取得部と、第２の外部装置からデータ処理の実行を指示するための処理要求情報を受信する処理要求受信部と、データ処理の実行主体として、自装置にダウンロードされた機能モジュールであるローカルモジュールか、第１の外部装置に格納される機能モジュールであるリモートモジュールの少なくともいずれかを、そのデータ処理を実行可能なローカルモジュールが存在するか否かに応じて選択する実行主体選択部と、実行主体としてローカルモジュールが選択されたとき、指示されたデータ処理をローカルモジュールに実行させるローカル実行制御部と、実行主体としてリモートモジュールが選択されたとき、第１の外部装置に対して、指示されたデータ処理の実行を指示するための処理要求情報を送信し、第１の外部装置からデータ処理の結果を示す結果情報を受信するリモート実行制御部と、ローカルモジュール、または、リモートモジュールの少なくともいずれかによるデータ処理の結果を処理結果情報として第２の外部装置に送信する処理結果送信部と、を備える。【００１７】
この装置は、アプリケーションソフトウェアの一部の機能を第２の外部装置において実行可能とするために、第１の外部装置からダウンロードされた機能モジュールのうちの少なくとも一部の機能モジュールを第２の外部装置に送信するモジュール送信部を更に備えてもよい。【００１８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１９】
本発明によれば、アプリケーションサービスを提供するサーバの負荷を軽減する技術を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施の形態に係るデータ処理システムの構成を示す図である。
【図２】第２の実施の形態に係るデータ処理システムの構成を示す図である。
【図３】第１の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。
【図４】ＡＳＰサーバの機能ブロック図である。
【図５】ユーザサテライトＡＳＰの機能ブロック図である。
【図６】ユーザサテライトＡＳＰにインストールされた路線検索アプリケーションについての路線検索入力画面を示す画面図である。
【図７】ユーザサテライトＡＳＰにインストールすべきアプリケーションを選択するためのアプリケーション選択画面を示す画面図である。
【図８】ユーザサテライトＡＳＰにインストールすべきモジュールを選択するためのモジュール選択画面を示す画面図である。
【図９】第１の実施の形態において、ユーザサテライトＡＳＰにおけるデータ処理過程を示すフローチャートである。
【図１０】第１の実施の形態において、ユーザサテライトＡＳＰがローカルモジュールを更新する過程を示すシーケンス図である。
【図１１】第２の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。
【図１２】中継サテライトＡＳＰの機能ブロック図である。
【図１３】第２の実施の形態において、中継サテライトＡＳＰにおけるデータ処理過程を示すフローチャートである。
【図１４】第２の実施の形態において、中継サテライトＡＳＰやユーザサテライトＡＳＰがモジュールを更新する過程を示すシーケンス図である。
【符号の説明】
【００２１】
１  データ処理システム、２  インターネット、３  ＡＳＰサーバ、４  ルータ装置、５  サテライトＡＳＰ、６  ユーザ端末、８  中継サテライトＡＳＰ、９  ユーザサテライトＡＳＰ、１００  ダウンロード処理部、１０２  ダウンロード要求受信部、１０４  モジュール送信部、１０６  更新情報送信部、１１０  データ処理制御部、１１２  実行指示受信部、１１４  処理結果送信部、１１６  実行部、１２０  モジュール保持部、１３０  ダウンロード処理部、１３２  ダウンロード要求送信部、１３４  モジュール受信部、１３６  更新情報受信部、１４０  ユーザインタフェース処理部、１４２  入力部、１４４  表示部、１５０  データ処理制御部、１５２  実行主体選択部、１５４  ローカル実行部、１５６  リモート実行部、１５８  通信状態検出部、１６０  アプリケーション選択部、１６２  モジュール選択部、１７０  モジュール保持部、２４０  ダウンロード処理部、２４２  ダウンロード要求送信部、２４４  ダウンロード要求受信部、２４６  モジュール送信部、２４８  モジュール受信部、２５０  更新情報受信部、２５２  更新情報送信部、２６０  データ処理制御部、２６２  実行指示受信部、２６４  実行主体選択部、２６８  ローカル実行部、２７０  リモート実行部、２７２  通信状態検出部、２７４  処理結果送信部、２８０  モジュール保持部。
【発明を実施するための最良の形態】
【００２２】
（第１の実施の形態）
図１は、第１の実施の形態に係るデータ処理システムの構成を示す。データ処理システム１は、ＡＳＰサーバ３およびユーザ端末６を備える。ＡＳＰサーバ３とユーザ端末６は、インターネット２を介して接続されており、ＡＳＰサーバ３は、ユーザ端末６に対して、通販システム、アクセスログ解析などのＡＳＰサービスを提供する。【００２３】
本実施の形態では、ユーザ端末６に、ＡＳＰサーバ３内で実行されるアプリケーションをインストール可能とする。たとえば、ＡＳＰサーバ３が提供するウェブページに、アプリケーションをユーザ端末６にインストールするためのＵＩを用意し、ユーザがアプリケーションのインストールを要求すると、ＡＳＰサーバ３がユーザ端末６にアプリケーションを送信してインストールさせる。ユーザ端末６にインストールされたアプリケーションは、ＡＳＰサーバ３と同様の機能を実現することができる。これを、以下、サテライトＡＳＰ５とよぶ。【００２４】
ユーザがＡＳＰサーバ３のＡＳＰサービスを受けるために、ＡＳＰサーバ３へリクエストを送信すると、サテライトＡＳＰ５がそのリクエストを受け取って、ＡＳＰサーバ３の代わりにアプリケーションを実行する。すなわち、サテライトＡＳＰ５は、アプリケーションのプロキシサーバとして機能する。従来のプロキシサーバは、ＨＴＭＬ文書や画像などのコンテンツをキャッシュしていたが、サテライトＡＳＰ５は、言わばアプリケーションのローカルキャッシュとして機能する。【００２５】
このような構成により、ＡＳＰサーバ３の機能をユーザのローカルな環境に移すことができるので、ＡＳＰサーバ３の負荷を軽減することができる。また、ＡＳＰサーバ３に障害が発生した場合や、ユーザ端末６とＡＳＰサーバ３との間の通信が遮断されている場合であっても、ユーザ端末６はＡＳＰサービスの提供を受けることができる。また、ＡＳＰサーバ３のセキュリティ性を向上させることができる。サテライトＡＳＰ５のセキュリティ性や信頼性を向上させるために、制限された領域内で完全にアプリケーションを実行させるサンドボックス技術、アプリケーションの出自や非改竄を証明する電子署名技術を利用してもよい。サテライトＡＳＰ５では、アプリケーションがユーザ端末６内で動作するので、ＡＳＰサーバ３とは異なり、アプリケーションがユーザ端末６内の構成やユーザ端末６に接続された構成などにアクセスすることも可能であるという効果もある。たとえば、ユーザ端末６にＵＳＢ接続されたデジタルカメラにアクセスして、デジタルカメラの写真を取得するようなアプリケーションをインストールすることもできる。【００２６】
アプリケーションのインストールは、ユーザが行う以外にも、ＡＳＰサーバ３又はユーザ端末６のシステムが自動で行ってもよい。【００２７】
（第２の実施の形態）
図２は、第２の実施の形態に係るデータ処理システムの構成を示す。本実施の形態のデータ処理システム１では、サテライトＡＳＰ５が、ユーザ端末６内ではなくルータ装置４内にインストールされている。これにより、ルータ装置４に接続されている複数のユーザ端末６がサテライトＡＳＰ５を利用することができる。【００２８】
以下、実施の形態１および２に関連して、更に付言する。
（第１の実施の形態）
図３は、第１の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。
ここでは、モジュールＡ〜Ｄの４つのモジュールによって構成されるアプリケーションについて説明する。これら複数のモジュールが協働することにより、アプリケーション全体としての機能が発揮される。たとえば、出発地から目的地までの路線を検索するアプリケーションには、入力された地名の場所を検索するためのモジュール、入力された地名に応じて好適な路線を特定するモジュール、特定された路線における所要時間を計算するモジュールなど、さまざまなモジュールが含まれている。そして、ユーザからの入力に応じて、１以上のモジュールがさまざまなデータ処理を実行することにより、最終的なアウトプットが生成される。
モジュール自体は、ライブラリ形式にて提供されてもよいし、実行ファイル形式にて提供されてもよい。また、モジュールは複数のアプリケーションによって共有されてもよい。【００２９】
アプリケーションを構成するモジュールＡ〜Ｄのデータは、ＡＳＰサーバ３に保持されている。ユーザ端末６には、ユーザサテライトＡＳＰ９というソフトウェアが導入されている。ここでいうユーザサテライトＡＳＰ９は、図１においては、サテライトＡＳＰ５に相当するソフトウェアである。ユーザサテライトＡＳＰ９は、ＡＳＰサーバ３に保持されるモジュールのうち、モジュールＡとモジュールＢを保持している。ユーザサテライトＡＳＰ９は、ＡＳＰサーバ３からこれらのモジュールをインターネット２を介して取得する。同図に示す態様においては、基本的に、ユーザサテライトＡＳＰ９のモジュールＡ、ＢおよびＡＳＰサーバ３のモジュールＣ、Ｄによって、このアプリケーションソフトウェアが実行される。
なお、ユーザサテライトＡＳＰ９からみて、自装置に保持されているモジュールであるか、外部装置に保持されているモジュールであるかを区別するために、ユーザサテライトＡＳＰ９が保持するモジュールＡ、Ｂのようなモジュールを「ローカルモジュール」、ＡＳＰサーバ３が保持するモジュールＡ〜Ｄのようなモジュールを「リモートモジュール」とよぶ。【００３０】
同図におけるモジュールＡ〜Ｄのうち、モジュールＡは、ユーザサテライトＡＳＰ９でのみ実行可能なモジュールである。そのため、ユーザサテライトＡＳＰ９は、このアプリケーションを実行するためにモジュールＡを必ずダウンロードする。このような、ユーザサテライトＡＳＰ９でのみ実行可能なモジュールのことを、「端末専用モジュール」とよぶ。ＡＳＰサーバ３は、ユーザサテライトＡＳＰ９に対するダウンロードのために、モジュールＡを保持している。そのため、ＡＳＰサーバ３自体がモジュールＡを実行することはない。従来のＡＳＰモデルと異なり、このモジュールＡによってユーザ端末６のリソースにアクセスすることが可能となっている。
モジュールＢとＣは、ＡＳＰサーバ３とユーザサテライトＡＳＰ９のどちらでも実行可能なモジュールである。そのため、ユーザサテライトＡＳＰ９は、モジュールＢやＣをダウンロードしてもよいし、しなくてもよい。このような、ＡＳＰサーバ３とユーザサテライトＡＳＰ９のどちらでも実行可能なモジュールのことを、「共用モジュール」とよぶ。
モジュールＤは、ＡＳＰサーバ３でのみ実行可能なモジュールである。ＡＳＰサーバ３において一元的に管理されるべきデータは、モジュールＤによって管理される。このようなＡＳＰサーバ３でのみ実行可能なモジュールのことを、「サーバ専用モジュール」とよぶ。
なお、ＡＳＰサーバ３は単一である必要はなく、複数のＡＳＰサーバ３によって、各リモートモジュールが実行されてもよい。モジュールＡやＤなどは、このデータ処理システム１を実現するにあたって必須の構成要素ではないことも付言しておく。【００３１】
図４は、ＡＳＰサーバの機能ブロック図である。
ここに示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。図５および図１２に示す機能ブロック図についても同様である。
ここでは、主として各ブロックの発揮すべき機能について述べ、その具体的な作用については、図６以降に関連して説明する。【００３２】
ＡＳＰサーバ３は、ダウンロード処理部１００、データ処理制御部１１０およびモジュール保持部１２０を含む。
モジュール保持部１２０は、各モジュールを保持する。図３の例にしたがえば、モジュール保持部１２０は、モジュールＡ〜Ｄの各データを保持する。ダウンロード処理部１００は、ユーザサテライトＡＳＰ９に対してモジュールのデータを送信するためのダウンロード処理を担当する。データ処理制御部１１０は、ユーザサテライトＡＳＰ９からの実行指示に応じたデータ処理を実行する。【００３３】
ダウンロード処理部１００は、ダウンロード要求受信部１０２、モジュール送信部１０４および更新情報送信部１０６を含む。
ダウンロード要求受信部１０２は、ユーザサテライトＡＳＰ９からモジュールのダウンロードを要求するためのダウンロード要求情報を受信する。ダウンロード要求情報は、ユーザ端末６を特定するための端末ＩＤと、モジュールを特定するためのモジュールＩＤが含まれている。モジュール送信部１０４は、ダウンロード要求情報において指定されたモジュールをモジュール保持部１２０から読み出し、ユーザサテライトＡＳＰ９に送信する。更新情報送信部１０６は、モジュール保持部１２０におけるモジュールのデータが更新されたときには、その更新された旨を示す更新情報をユーザサテライトＡＳＰ９に送信する。更新情報には、更新対象となったモジュールのモジュールＩＤが含まれている。モジュール保持部１２０のモジュールは、バージョンアップや、バグの修正にともなって適宜更新されてもよい。更新情報送信部１０６は、このようにモジュールのデータが変更されたときに、更新情報をユーザサテライトＡＳＰ９に送信する。【００３４】
データ処理制御部１１０は、実行指示受信部１１２、処理結果送信部１１４および実行部１１６を含む。
実行指示受信部１１２は、ユーザサテライトＡＳＰ９からモジュールによりタスク実行を指示するための処理要求情報を受信する。ユーザサテライトＡＳＰ９において、ユーザによる操作入力にともなって実行されるべきデータ処理は、１以上のタスクによって構成される。タスクは、各モジュールのメソッド（method）に対するアクセスを単位として定義されてもよい。タスクは、いずれかのモジュールによって実行される。たとえば、ある操作入力によって実行されるべきデータ処理は、モジュールＡのメソッド１、モジュールＢのメソッド３、モジュールＣのメソッド５、モジュールＡのメソッド２に対する一連のアクセスによって実現されるかもしれない。モジュール、メソッド、および、メソッドに渡すパラメータの指定に応じて、タスクが実行される。そのため、処理要求情報には、端末ＩＤ、アプリケーションを特定するアプリケーションＩＤ、タスクの実行主体となるべきモジュールのモジュールＩＤや、タスク実行のためのメソッド、タスク実行に必要なパラメータなどが含まれる。実行部１１６は、処理要求情報にしたがって、モジュール保持部１２０の該当モジュールにタスクを実行させる。処理結果送信部１１４は、その処理結果を示す処理結果情報をユーザサテライトＡＳＰ９に送信する。
実行指示受信部１１２は、ユーザサテライトＡＳＰ９から連続的に複数の処理要求情報を受信してもよい。また、実行部１１６は、可能であればこれら複数の処理要求情報による書くタスクを受信順序とは異なる順序にて実行してもよい。【００３５】
図５は、ユーザサテライトＡＳＰの機能ブロック図である。
ユーザサテライトＡＳＰ９は、ダウンロード処理部１３０、ユーザインタフェース処理部１４０、データ処理制御部１５０およびモジュール保持部１７０を含む。
ダウンロード処理部１３０は、ＡＳＰサーバ３から所望のモジュールをダウンロードするための処理を担当する。モジュール保持部１７０は、ダウンロードされたモジュールを保持する。図３の例の場合、ユーザサテライトＡＳＰ９のモジュール保持部１７０は、モジュールＡ、Ｂの各データを保持しているといえる。ユーザインタフェース処理部１４０は、ユーザ端末６におけるユーザとのユーザインタフェース処理を担当する。データ処理制御部１５０は、ユーザからの指示に応じて、各種データ処理を実行する。また、データ処理制御部１５０は、ダウンロード処理部１３０、ユーザインタフェース処理部１４０およびモジュール保持部１７０の間におけるインタフェースとしての役割も果たす。【００３６】
ユーザインタフェース処理部１４０は、入力部１４２と表示部１４４を含む。
入力部１４２は、ユーザからの操作入力を検出する。表示部１４４は、ユーザに対して各種画面を表示する。
ダウンロード処理部１３０は、ダウンロード要求送信部１３２、モジュール受信部１３４および更新情報受信部１３６を含む。
ダウンロード要求送信部１３２は、ＡＳＰサーバ３に対してモジュールのダウンロードを要求するためのダウンロード要求情報を送信する。モジュール受信部１３４は、ＡＳＰサーバ３からモジュールのデータをダウンロードする。ダウンロードされたモジュールは、モジュール保持部１７０に保持される。更新情報受信部１３６は、ＡＳＰサーバ３から更新情報を受信する。【００３７】
データ処理制御部１５０は、実行主体選択部１５２、ローカル実行部１５４、リモート実行部１５６、通信状態検出部１５８、アプリケーション選択部１６０およびモジュール選択部１６２を含む。
実行主体選択部１５２は、入力部１４２がユーザからの操作入力を検出したときに、その操作入力に応じたデータ処理の実行主体となるべきモジュールを特定する。実行主体選択部１５２は、ユーザ端末６にインストールされている通常のブラウザのネットワークアクセスをインターセプトすることにより、実行主体となるべきモジュールを特定してもよい。データ処理は１以上のタスクによって構成される。そのため、実行主体として特定されるモジュールは１つである必要はない。たとえば、モジュールＡに所定のタスクを実行させたあと、モジュールＢに別のタスクを実行させてもよいし、あるいは、これらのタスクは非同期的に実行されてもよい。通信状態検出部１５８は、ユーザ端末６とＡＳＰサーバ３の通信状態を検出する。詳しくは後述するが、実行主体選択部１５２は、通信状態が好適でないときには、実行主体としてリモートモジュールよりもローカルモジュールを優先的に選択する。【００３８】
ローカル実行部１５４は、実行主体選択部１５２によってローカルモジュールが選択されたときに、モジュール保持部１７０において該当するモジュールにタスクを実行させる（以下、ローカルモジュールによりタスクを実行させることを「ローカル実行」とよぶ）。リモート実行部１５６は、実行主体選択部１５２によってリモートモジュールが選択されたときに、ＡＳＰサーバ３に処理要求情報を送信し、ＡＳＰサーバ３から処理結果情報を受信する（以下、リモートモジュールによりタスクを実行させることを「リモート実行」とよぶ）。アプリケーション選択部１６０は、ユーザの選択に応じて、ダウンロード対象となるアプリケーションを選択する。モジュール選択部１６２は、ユーザの選択に応じて、ダウンロード対象となるモジュールを選択する。詳しくは、図７および図８に関連して後述する。【００３９】
ユーザサテライトＡＳＰ９は、ＯＳ（オペレーティングシステム）上におけるプラットフォームとして、インストールされる。この、プラットフォームとしてのユーザサテライトＡＳＰ９上に必要なモジュールなど各種のソフトウェアがインストールされる。これらのモジュールやローカルインストールされるソフトウェアがＵＲＬなどの通信アドレスを指定して外部装置にアクセスしようとするときには、ユーザサテライトＡＳＰ９は、そのＵＲＬをインターセプトする。ＡＳＰサーバ３のＵＲＬが指定されているときには、実行主体選択部１５２がローカルモジュールかリモートモジュールを選択する。ＡＳＰサーバのＵＲＬでなければ、ＯＳなどにそのまま処理を移管する。ＡＳＰサーバ３は、複数種類あってもよいので、インターセプトすべきＵＲＬも複数種類設定されてもよい。【００４０】
図６は、ユーザサテライトＡＳＰにインストールされた路線検索アプリケーションについての路線検索入力画面を示す画面図である。
ここでは、ユーザサテライトＡＳＰ９において、出発地から目的地までの路線を検索するためのアプリケーションである路線検索ソフトＡがインストールされているとする。ここで、ＡＳＰサーバ３のＵＲＬは、仮に「http://www.ASP-A.com」であるとする。また、このＡＳＰサーバ３にインストールされている路線検索ソフトＡのアドレスは、仮に、「http://www.ASP-A.com/route」であるとする。アドレス入力領域１８２において、同図に示すように「http://www.ASP-A.com/route/home.html」が指定されると、ＡＳＰサーバ３における路線検索ソフトＡが提供する路線検索入力画面１８０が表示される。なお、本明細書中に示すＵＲＬはすべて説明のための仮のアドレスであることを付言しておく。【００４１】
月指定領域１８４は、到着日時のうち、月を指定するための領域である。日指定領域１８６は、日付を指定するための領域であり、時刻指定領域１８８は時刻を指定するための領域である。出発地指定領域１９０は、出発地を指定するための領域であり、到着地指定領域１９２は目的地を指定するための領域である。ユーザは、これらの検索条件を各領域に入力する。【００４２】
ユーザが路線検索ボタン１９４をオンすると、指定された条件にて路線検索が実行される。同図に示す検索条件の場合、電車や航空機などの交通機関による「横浜」から「西明石」までの路線情報が画面表示される。このとき、横浜から西明石までの移動に要する時間や費用なども計算される。この路線検索に関わる処理を構成する各タスクの実行主体は、ローカルモジュールであってもよいし、リモートモジュールであってもよい。ユーザが路線検索ボタン１９４をオンすると、ユーザサテライトＡＳＰ９の実行主体選択部１５２は、１以上のタスクの実行主体となるべき各モジュールを特定する。そして、ローカル実行部１５４によるローカル実行、または、リモート実行部１５６によるリモート実行がなされ、最終的な処理結果は表示部１４４によって画面表示されることになる。【００４３】
実行主体がローカルモジュールとリモートモジュールのいずれであっても、路線検索入力画面１８０として表示される画面の入力インタフェースに特段の差違はない。ユーザは、路線検索入力画面１８０において、ローカルモジュールとリモートモジュールのいずれがデータ処理を実行するのかを意識する必要がない。
アドレス入力領域１８２において、ＡＳＰサーバ３のＵＲＬが指定されていても、実際のデータ処理はローカルモジュールによって実行されるかもしれない。すなわち、ユーザが実行主体となるモジュールの所在を指定しなくても、ユーザサテライトＡＳＰ９の実行主体選択部１５２は、自動的に実行主体を選択する。実行主体選択部１５２による実行主体の選択ポリシについては、図９等に関連して後に詳述する。【００４４】
図７は、ユーザサテライトＡＳＰにインストールすべきアプリケーションを選択するためのアプリケーション選択画面を示す画面図である。
ユーザはこのアプリケーション選択画面２００においてサービスを受けたいアプリケーションを選択することになる。アドレス入力領域２０２において、同図に示すように「http://www.ASP-A.com/download.htm」が指定されると、アプリケーション選択画面２００が表示される。同図によれば、ＡＳＰサーバ３は、路線検索ソフトＡ、地図検索ソフトＢ、シミュレーションゲームソフトＣ、書店発注ソフトＤおよび数学計算ソフトＥの５つのアプリケーションを提供可能であることがわかる。このうち、導入済アプリケーション表示領域２０４に示す路線検索ソフトＡと地図検索ソフトＢのモジュールは、ユーザサテライトＡＳＰ９に既にインストールされている。一方、導入可能アプリケーション表示領域２０６に示すシミュレーションゲームソフトＣ、書店発注ソフトＤおよび数学計算ソフトＥは、ユーザサテライトＡＳＰ９にインストールされていない。【００４５】
導入済アプリケーション表示領域２０４において、ユーザはアンインストール対象のアプリケーションを選択できる。選択後、削除ボタン２０８がオンされると、そのアプリケーションについてインストールされているローカルモジュールのうち、ユーザサテライトＡＳＰ９から削除すべきモジュールを選択する画面（図示せず）が表示される。この画面において、ユーザはローカルモジュールの一部をユーザサテライトＡＳＰ９のモジュール保持部１７０から削除できる。たとえば、インストール済みの路線検索ソフトＡについて端末専用モジュールが削除指示されると、路線検索ソフトＡはユーザサテライトＡＳＰ９から完全にアンインストールされる。このため、次回から路線検索ソフトＡは導入可能アプリケーション表示領域２０６の欄に表示されることになる。【００４６】
導入可能アプリケーション表示領域２０６において、ユーザは新規インストールの対象となるアプリケーションを選択できる。選択後、ダウンロードボタン２１０がオンされると、その選択されたアプリケーションをユーザサテライトＡＳＰ９にインストールするための入力画面が表示される。この画面については、次の図８に関連して説明する。【００４７】
図８は、ユーザサテライトＡＳＰにインストールすべきモジュールを選択するためのモジュール選択画面を示す画面図である。
ユーザサテライトＡＳＰ９の表示部１４４は、アプリケーション選択画面２００においてダウンロードボタン２１０がオンされたときにモジュール選択画面２２０を表示させる。ユーザは、モジュール選択画面２２０において、ダウンロード対象のモジュールを選択する。ここでは、アプリケーション選択画面２００に示した書店発注ソフトＤを新たにダウンロードするときのモジュール選択画面２２０について説明する。【００４８】
アドレス表示領域２２２は、ＡＳＰサーバ３において書店発注ソフトＤのモジュール選択画面２２０を表示させるためのＵＲＬ「http://www.ASP-A.com/bookshop/modules.htm」が表示されている。書店発注ソフトＤは、図３に関連して説明したタイプのアプリケーションと同様に、モジュールＡ〜Ｄの４つのモジュールによって構成されている。サーバ専用モジュール表示領域２２４に示すモジュールＤは、サーバ専用モジュールであるため、ダウンロード不可である。端末専用モジュール表示領域２２６に示すモジュールＡは、端末専用モジュールであるため、書店発注ソフトＤをインストールする場合には、必ず、ダウンロードの対象となる。共用モジュール表示領域２２８に示すモジュールＢとモジュールＣは、ＡＳＰサーバ３とユーザサテライトＡＳＰ９のいずれにおいても実行可能な共用モジュールである。ユーザは、ユーザ端末６の処理能力や記憶容量、通信容量などの処理環境に応じて、共用モジュール表示領域２２８からダウンロードすべき共用モジュールを選択する。
選択後、ＯＫボタン２３０がオンされると、共用モジュール表示領域２２８にて選択されたモジュールがＡＳＰサーバ３からユーザサテライトＡＳＰ９にダウンロードされる。一方、キャンセルボタン２３２がオンされると、ダウンロード処理が実行されることなくアプリケーション選択画面２００に戻る。【００４９】
図９は、第１の実施の形態において、ユーザサテライトＡＳＰにおけるデータ処理過程を示すフローチャートである。
ユーザサテライトＡＳＰ９の入力部１４２は、路線検索入力画面１８０などに示した各種入力画面に対するユーザからの入力を検出する（Ｓ１０）。このとき、ユーザサテライトＡＳＰ９の実行主体選択部１５２は、アドレス入力領域１８２などにおいて指定されているＵＲＬが、ＡＳＰサーバ３のＵＲＬであるかを判定する（Ｓ１２）。ＡＳＰサーバ３のＵＲＬが指定されていなければ（Ｓ１２のＮ）、通常のデータ処理が実行される（Ｓ３２）。ここでいう通常のデータ処理とは、ユーザサテライトＡＳＰ９によりＡＳＰサーバ３と協働しない一般的な処理である。一方、ＡＳＰサーバ３のＵＲＬが指定されていれば（Ｓ１２のＹ）、ユーザサテライトＡＳＰ９の実行主体選択部１５２は実行対象となるアプリケーションを特定する（Ｓ１４）。たとえば、図６に関連して説明したように、ＵＲＬが「http://www.ASP-A.com/route」であれば、路線検索ソフトＡが特定される。【００５０】
実行主体選択部１５２は、特定されたアプリケーションにおいてデータ処理の実行主体となるモジュールを特定する（Ｓ１６）。入力にともなってデータ処理が実行される場合、Ｓ１６からＳ３０に示す各処理は、指定されたデータ処理を構成するすべてのタスクについて実行される。各タスクは、基本的に順番に実行されるとして説明する。
まず、最初のタスクの実行主体が特定されたあと（Ｓ１６）、ユーザサテライトＡＳＰ９の通信状態検出部１５８は、ＡＳＰサーバ３との通信が可能な状態にあるかを検出する（Ｓ１８）。通信可能な状態にあれば（Ｓ１８のＹ）、実行主体選択部１５２はタスクの実行主体として特定されたモジュールがローカルモジュールとして存在するかを判定する（Ｓ２０）。ローカルモジュールとして保持されていれば（Ｓ２０のＹ）、ローカル実行部１５４は該当するローカルモジュールにタスクをローカル実行させる（Ｓ２２）。保持されていなければ（Ｓ２０のＮ）、リモート実行部１５６は、ＡＳＰサーバ３に処理要求情報を送信することによりタスクをリモート実行させる（Ｓ２４）。
Ｓ２４において、ＡＳＰサーバ３の実行指示受信部１１２が、処理要求情報を受信すると、ＡＳＰサーバ３の実行部１１６は該当モジュールによりタスクを実行する。そして、ＡＳＰサーバ３の処理結果送信部１１４は、処理結果情報をユーザサテライトＡＳＰ９に送信する。ユーザサテライトＡＳＰ９のリモート実行部１５６は、この処理結果情報を受信する。こうして、リモートモジュールによりタスクが実行される。【００５１】
一方、Ｓ１８において通信可能な状態になければ（Ｓ１８のＮ）、ユーザサテライトＡＳＰ９の実行主体選択部１５２は実行主体として特定されたモジュールがローカルモジュールとして保持されているか判定する（Ｓ２６）。保持されていれば（Ｓ２６のＹ）、処理はＳ２２に移行してローカル実行される。保持されていなければ（Ｓ２６のＮ）、実行待機となる（Ｓ２８）。この場合、通信可能となるまでタスクの実行が待機されるとしてもよい。あるいは、このタスクの実行順序を後回しにして、別のタスクを先に実行してもよい。通信状態に応じて、リモート実行対象となるタスクとローカル実行対象となるタスクの処理順序を入れ替えることにより、通信可能な状態にないときにはローカル実行を優先できるため、全体としてデータ処理がより効率的に実行されることになる。【００５２】
Ｓ１０の操作入力にともなう一連のタスクが実行され、データ処理が完了していなければ（Ｓ３０のＮ）、処理はＳ１６に戻り、更にタスクの実行主体が特定される。このとき、たとえば、Ｓ２８において実行待機とされ、後回しとなっていたリモート実行対象のタスクが再試行されてもよい。データ処理が完了していれば（Ｓ３０のＹ）、表示部１４４はその処理結果を画面表示させる（Ｓ３４）。こうして、複数のタスクが順次実行されることにより、入力にともなうデータ処理が実行されることになる。【００５３】
図１０は、第１の実施の形態において、ユーザサテライトＡＳＰがローカルモジュールを更新する過程を示すシーケンス図である。
ＡＳＰサーバ３が保持するモジュールは、バージョンアップなどにより適宜更新される（Ｓ４０）。このとき、ＡＳＰサーバ３の更新情報送信部１０６は、更新がなされたモジュールのモジュールＩＤを含む更新情報をユーザサテライトＡＳＰ９に送信する（Ｓ４２）。ユーザサテライトＡＳＰ９の更新情報受信部１３６は、更新情報を受信し、更新の対象となったモジュールがローカルモジュールとして保持されているかを判定する（Ｓ４４）。保持されていなければ（Ｓ４４のＮ）、ローカルモジュールの更新は実行されない。保持されていれば（Ｓ４４のＹ）、ユーザサテライトＡＳＰ９のダウンロード要求送信部１３２は、ＡＳＰサーバ３に対して更新後のモジュールのダウンロードを要求するためのダウンロード要求情報を送信する（Ｓ４６）。ＡＳＰサーバ３のダウンロード要求受信部１０２がダウンロード要求情報を受信すると、モジュール送信部１０４は要求されたモジュールのデータをユーザサテライトＡＳＰ９に送信する（Ｓ４８）。ユーザサテライトＡＳＰ９のモジュール受信部１３４は、モジュールデータを受信し、モジュール保持部１２０における該当モジュールをこの新たに受信されたデータにて更新する（Ｓ５０）。
このようにして、ＡＳＰサーバ３におけるモジュールの更新が、ユーザサテライトＡＳＰ９のモジュールに反映される。【００５４】
（第２の実施の形態）
図１１は、第２の実施の形態に係るデータ処理システムにおいて、アプリケーションソフトウェアの構成を示す図である。
第１の実施の形態と異なり、ＡＳＰサーバ３とユーザ端末６を仲介するためのルータ装置４が構成として追加されている。第２の実施の形態においては、ルータ装置４には中継サテライトＡＳＰ８、ユーザ端末６にはユーザサテライトＡＳＰ９が導入される。そして、ＡＳＰサーバ３、中継サテライトＡＳＰ８、ユーザサテライトＡＳＰ９の協働によりアプリケーションが実行される。【００５５】
アプリケーションを構成するモジュールＡ〜Ｄのデータは、ＡＳＰサーバ３に保持されている。このうち、ルータ装置４に導入されるソフトウェアである中継サテライトＡＳＰ８は、モジュールＡ、Ｂ、ＣをＡＳＰサーバ３からダウンロードしている。更に、ユーザサテライトＡＳＰ９は、中継サテライトＡＳＰ８が保持するモジュールＡ、Ｂ、Ｃのうち、モジュールＡとモジュールＢをダウンロードしている。同図に示す態様においては、基本的に、ユーザサテライトＡＳＰ９のモジュールＡ、Ｂ、中継サテライトＡＳＰ８のモジュールＣ、ＡＳＰサーバ３のモジュールＤによって、このアプリケーションソフトウェアが実行される。【００５６】
ここでは、モジュールＡ〜Ｄのうち、モジュールＡは、ユーザサテライトＡＳＰ９でのみ実行可能な端末専用モジュールである。モジュールＢとＣは、ＡＳＰサーバ３、中継サテライトＡＳＰ８、ユーザサテライトＡＳＰ９のどこでも実行可能な共用モジュールである。また、モジュールＤは、ＡＳＰサーバ３でのみ実行可能なサーバ専用モジュールである。ＡＳＰサーバ３において一元的に管理されるべきデータは、モジュールＤによって管理される。
なお、単一のＡＳＰサーバ３ではなく、複数のＡＳＰサーバ３によって、各モジュールが実行されてもよいことは、第１の実施の形態と同様である。また、単一のルータ装置４ではなく、複数のルータ装置４によって、各モジュールが実行されてもよい。【００５７】
図１２は、中継サテライトＡＳＰの機能ブロック図である。
中継サテライトＡＳＰ８は、ダウンロード処理部２４０、データ処理制御部２６０およびモジュール保持部２８０を含む。
モジュール保持部２８０は、各モジュールを保持する。図１１の例にしたがえば、モジュール保持部２８０は、モジュールＡ、Ｂ、Ｃの各データを保持する。ダウンロード処理部２４０は、ＡＳＰサーバ３やユーザサテライトＡＳＰ９とのモジュールデータの送受信を担当する。データ処理制御部２６０は、ユーザサテライトＡＳＰ９からのデータ処理実行要求に応じてデータ処理を実行する。
なお、ここでは、中継サテライトＡＳＰ８からみて、中継サテライトＡＳＰ８が保持するモジュールのことを「ローカルモジュール」、中継サテライトＡＳＰ８の上位にあたるＡＳＰサーバ３が保持するモジュールのことを「リモートモジュール」とよぶ。【００５８】
ダウンロード処理部２４０は、ダウンロード要求送信部２４２、ダウンロード要求受信部２４４、モジュール送信部２４６、モジュール受信部２４８、更新情報受信部２５０および更新情報送信部２５２を含む。
ダウンロード要求送信部２４２は、ＡＳＰサーバ３に対してダウンロード要求情報を送信する。ダウンロード要求受信部２４４は、ユーザサテライトＡＳＰ９からのルータ装置４に対するダウンロード要求情報を受信する。モジュール送信部２４６は、ユーザサテライトＡＳＰ９に対してダウンロード要求されたモジュールを送信する。モジュール受信部２４８は、ＡＳＰサーバ３からモジュールを受信する。更新情報受信部２５０は、ＡＳＰサーバ３から更新情報を受信する。更新情報送信部２５２は、ＡＳＰサーバ３から受信された更新情報をユーザサテライトＡＳＰ９に転送する。【００５９】
データ処理制御部２６０は、実行指示受信部２６２、実行主体選択部２６４、ローカル実行部２６８、リモート実行部２７０、通信状態検出部２７２および処理結果送信部２７４を含む。
実行指示受信部２６２は、ユーザサテライトＡＳＰ９から処理要求情報を受信する。実行主体選択部２６４は、この処理要求情報により、タスクの実行主体となるべきモジュールを選択する。ローカル実行部２６８は、ローカルモジュールが実行主体として選択されたときに、モジュール保持部２８０のローカルモジュールにタスクを実行させる。リモート実行部２７０は、リモートモジュールが実行主体として選択されたときに、ＡＳＰサーバ３に保持されるリモートモジュールに対して、処理要求情報によって指示されたタスクを実行させ、その処理結果を処理結果情報として受信する。通信状態検出部２７２は、ルータ装置４とＡＳＰサーバ３が通信可能な状態にあるかを検出する。処理結果送信部２７４は、ローカル実行部２６８またはリモート実行部２７０によるタスク実行の結果を処理結果情報としてユーザサテライトＡＳＰ９に送信する。
なお、第２の実施の形態においても、ＡＳＰサーバ３やユーザサテライトＡＳＰ９の機能ブロックは図４や図５に関連して説明した内容と同様である。【００６０】
図１３は、第２の実施の形態において、中継サテライトＡＳＰにおけるデータ処理過程を示すフローチャートである。
ユーザサテライトＡＳＰ９は、図９に関連して説明したように、ユーザサテライトＡＳＰ９に保持されるモジュールによってデータ処理が実行可能であれば、ユーザサテライトＡＳＰ９だけですべての処理を実行することも可能である。一方、ユーザサテライトＡＳＰ９に保持されているモジュールだけでは、所望のデータ処理が実行できないときには、ルータ装置４に対して適宜処理要求情報が送信される。第２の実施の形態においても、データ処理は、１以上のタスクによって構成される。各タスクは、いずれかのモジュールによって実行される。【００６１】
中継サテライトＡＳＰ８の実行指示受信部２６２は、まず、ユーザサテライトＡＳＰ９から処理要求情報を受信する（Ｓ６０）。実行主体選択部２６４は実行対象のアプリケーションを特定する（Ｓ６２）。次に、実行主体選択部２６４は、特定されたアプリケーションにおいて指定されたタスクの実行主体となるモジュールを特定する（Ｓ６４）。【００６２】
中継サテライトＡＳＰ８のリモート実行部２７０は、ＡＳＰサーバ３との通信が可能な状態にあるかを検出する（Ｓ６６）。通信可能な状態にあれば（Ｓ６６のＹ）、実行主体選択部２６４は実行主体として特定されたモジュールがローカルモジュールとして保持されているかを判定する（Ｓ６８）。保持されていれば（Ｓ６８のＹ）、ローカル実行部２６８は該当するローカルモジュールにタスクのローカル実行を指示する（Ｓ７２）。保持されていなければ（Ｓ６８のＮ）、リモート実行部２７０は、ＡＳＰサーバ３に処理要求情報を送信することによりリモートモジュールの実行を指示する（Ｓ７０）。
ここでいうリモート実行の処理過程は、図９のＳ２４に関連して説明した内容と同様である。すなわち、ＡＳＰサーバ３の実行指示受信部１１２は、この処理要求情報を受信すると、実行部１１６はＡＳＰサーバ３の該当モジュールによりタスクを実行する。ＡＳＰサーバ３の処理結果送信部１１４は、処理結果情報を中継サテライトＡＳＰ８に送信する。中継サテライトＡＳＰ８のリモート実行部２７０は、この処理結果情報を受信する。こうして、リモート実行が実現される。【００６３】
一方、Ｓ６６において通信可能な状態になければ（Ｓ６６のＮ）、実行主体選択部２６４は実行主体として特定されたモジュールがローカルモジュールとして保持されているか判定する（Ｓ７４）。保持されていれば（Ｓ７４のＹ）、処理はＳ７２に移行する。保持されていなければ（Ｓ７４のＮ）、実行待機となる（Ｓ７６）。
この場合も、通信が回復するまで実行待機としてもよいし、可能であれば、このタスクの実行順序を後回しにしてもよい。処理結果送信部２７４は、処理結果情報をユーザサテライトＡＳＰ９に送信する（Ｓ８０）。【００６４】
図１４は、第２の実施の形態において、中継サテライトＡＳＰやユーザサテライトＡＳＰがモジュールを更新する過程を示すシーケンス図である。
ＡＳＰサーバ３が保持するモジュールが更新されると（Ｓ９０）、ＡＳＰサーバ３の更新情報送信部１０６は、更新情報を中継サテライトＡＳＰ８に送信する（Ｓ９２）。中継サテライトＡＳＰ８は更新情報を受信すると、更新の対象となったモジュールがローカルモジュールとして保持されているかを判定する（Ｓ９４）。保持されていなければ（Ｓ９４のＮ）、ローカルモジュールの更新は実行されない。保持されていれば（Ｓ９４のＹ）、中継サテライトＡＳＰ８のダウンロード要求受信部２４４は、ＡＳＰサーバ３に対して更新後のモジュールについてのダウンロード要求情報を送信する（Ｓ９６）。ＡＳＰサーバ３のダウンロード要求受信部１０２が、このダウンロード要求情報を受信すると、モジュール送信部１０４は要求されたモジュールのデータをモジュール保持部１２０から読み出して中継サテライトＡＳＰ８に送信する（Ｓ９８）。中継サテライトＡＳＰ８のモジュール受信部２４８は、このモジュールデータを受信すると、中継サテライトＡＳＰ８のモジュール保持部２８０における該当モジュールをこの新たに受信されたデータにて更新する（Ｓ１００）。【００６５】
次に、中継サテライトＡＳＰ８の更新情報送信部２５２は、Ｓ９２において受信された更新情報をユーザサテライトＡＳＰ９に送信する（Ｓ１０２）。以降におけるＳ１０４〜Ｓ１１０に示す処理は、図１０に関連して説明した内容と同様である。すなわち、更新の対象となるモジュールをユーザサテライトＡＳＰ９が保持していれば（Ｓ１０４のＹ）、中継サテライトＡＳＰ８にその更新後のモジュールのダウンロードを要求する（Ｓ１０６）。ユーザサテライトＡＳＰ９は、中継サテライトＡＳＰ８から該当モジュールのデータを受信し（Ｓ１０８）、保持するモジュールデータを更新する（Ｓ１１０）。該当モジュールがなければ（Ｓ１０４のＮ）、モジュールの更新は実行されない。
以上のような処理過程を経て、ＡＳＰサーバ３におけるモジュールの更新が、中継サテライトＡＳＰ８やユーザサテライトＡＳＰ９のモジュールに反映される。【００６６】
以上の実施の形態において、中継サテライトＡＳＰ８やユーザサテライトＡＳＰ９は、ＡＳＰサーバ３に対する代理（proxy）として機能する。アプリケーション全体としての処理負荷は、ＡＳＰサーバ３、ルータ装置４、ユーザ端末６という複数の装置に分散されることになるため、ＡＳＰサーバ３の処理負荷を、従来のＡＳＰモデルと比べて軽減できる。【００６７】
図６の路線検索入力画面１８０に示したように、ユーザはＡＳＰサーバ３のＵＲＬを指定することにより、ＡＳＰサーバ３が提供するアプリケーションとアクセスする。このとき、実際のデータ処理がＡＳＰサーバ３やルータ装置４、ユーザ端末６のどこで実行されるかは、中継サテライトＡＳＰ８やユーザサテライトＡＳＰ９によって判定される。ユーザは、実行主体の場所を意識せずに、単一の入力画面から複数の装置にアクセスできることになる。【００６８】
ＡＳＰサーバ３のＵＲＬによりアプリケーションにアクセスするという手法には、更に有利な点がある。
ここで、仮に、データ処理の実行主体がローカルモジュールであることを示すために、「http://www.localhost/App-2/」といったローカルアドレスをユーザが指定する場合、ユーザ端末Ａの処理をユーザ端末Ｂに引き継ぐ上で不都合を生じる場合がある。
たとえば、ユーザ端末ＡにはモジュールＡ、Ｂが導入され、ユーザ端末ＢにはモジュールＡだけが導入されているとする。ここで、ユーザ端末ＡにおいてローカルモジュールであるモジュールＢを使用するためのマクロプログラムを作成したとする。このマクロプログラムにおいては、ローカルアドレス付きでモジュールＢに対するタスクの実行のための関数が作成されることになる。このマクロプログラムをユーザ端末Ｂで実行する場合、ユーザ端末ＢにとってモジュールＢはローカルモジュールとして存在しないため、プログラムが実行不可となる。
これに対して、上記各実施の形態にて示したユーザサテライトＡＳＰ９は、ローカル実行かリモート実行かに関わらず、ＡＳＰサーバ３のＵＲＬによってアプリケーションにアクセスする。そのため、ユーザ端末Ａで作成されたマクロプログラムをそのままユーザ端末Ｂで実行しやすくなる。ＡＳＰサーバ３のＵＲＬを検出することにより、ユーザサテライトＡＳＰ９の実行主体選択部１５２がローカル実行かリモート実行かをユーザサテライトＡＳＰ９の状態に応じて自動的に選択するからである。【００６９】
同じ内容のソフトウェアであっても、ユーザ端末６へのローカルインストールを前提としたローカル版のソフトウェアと、ＡＳＰサーバ３によるＡＳＰとしての提供を前提としたＡＳＰ版のソフトウェアで、別々のユーザインタフェースが提供されることが多い。たとえば、ローカル版のユーザインタフェースは、ダイアログボックス、メニューバーやツールバーのようなウィジェットを使って提供され、ＡＳＰ版のユーザインタフェースは、ウェブブラウザとして提供されるといった具合である。このため、同じ内容のソフトウェアでありながら、ユーザは２種類のユーザインタフェースに慣れなくてはならない。
これに対して、上記各実施の形態におけるユーザサテライトＡＳＰ９は、ローカル実行かリモート実行かに関わらず統一した画面、好ましくは、ウェブブラウザ画面としてユーザインタフェース画面を提供するので、このようなユーザの負担が軽減される。ユーザサテライトＡＳＰ９は、図６等に示したような画面を表示させる機能を有してもよいし、既存のウェブブラウザに指示して画面表示させてもよい。【００７０】
ユーザサテライトＡＳＰ９は、ＡＳＰサーバ３のすべてのモジュールをダウンロードする必要がない。さまざまなモジュールのうち、高い応答性が必要であったり、使用頻度が高いモジュールをダウンロードの対象とすることにより、ユーザからみた処理パフォーマンスが向上する。
仮にユーザサテライトＡＳＰ９から一部のローカルモジュールがアンインストールされても、リモートモジュールによって、アプリケーションの実行を継続できる。【００７１】
あるアプリケーションに対するアクセスは、ＵＲＬ「http://www.ASP-A.com/app-1」に対するアクセスのみに限定し、このアプリケーションによりアクセス可能なローカルストレージを「d\app-A/data」というフォルダに限定してもよい。いいかえれば、このアプリケーションは、「d\app-A/data」というフォルダにしかアクセス許可されない。このようにローカルとリモートのアクセス可能領域を限定することにより、いわゆるサンドボックス（sandbox）モデルによるセキュリティの向上が可能となる。【００７２】
従来のＡＳＰモデルの場合、通信が切れるとサービスも提供できなくなるという弱点がある。これに対し、上記各実施の形態に示したデータ処理システム１の場合、ローカルモジュールがデータ処理の一部を代行するので、通信が切れたときに即時にサービスが提供できなくなるという事態を回避しやすくなる。このような仕組みは、ユーザ端末がモバイル端末であるときには特に有効である。【００７３】
従来のＡＳＰの場合、クライアントリソースへのアクセスが制限されがちであったが、上記実施の形態に示すデータ処理システム１の場合、クライアントリソースとサーバリソースをより効果的に協働させることができる。【００７４】
上記各実施の形態においては、ＡＳＰサーバ３とユーザサテライトＡＳＰ９、中継サテライトＡＳＰ８の各モジュールが協調することによりアプリケーションが実行されるとして示したが、無論、ＡＳＰサーバ３においてメインのモジュールが実行されるとしてもよい。たとえば、ユーザ端末６において、ウェブブラウザに対するユーザの操作入力は、そのまま、ＡＳＰサーバ３に送信されてもよい。そして、ＡＳＰサーバ３は従来のＡＳＰと同じように操作入力の内容に応じたデータ処理を実行し、その処理結果を表示させてもよい。【００７５】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。【００７６】
なお、請求項に記載の第１の外部装置は、第２の実施の形態におけるＡＳＰサーバ３によってその機能が実現される。同様に第２の外部装置は、第２の実施の形態におけるユーザ端末６によってその機能が実現される。
これら請求項に記載の各構成要件が果たすべき機能は、本実施例において示された各機能ブロックの単体もしくはそれらの連係によって実現されることも当業者には理解されるところである。
【産業上の利用可能性】
【００７７】
本発明によれば、アプリケーションサービスを提供するサーバの負荷を軽減する技術を提供することができる。
【図１】
2006051967.tif 000002
【図２】
2006051967.tif 000003
【図３】
2006051967.tif 000004
【図４】
2006051967.tif 000005
【図５】
2006051967.tif 000006
【図６】
2006051967.tif 000007
【図７】
2006051967.tif 000008
【図８】
2006051967.tif 000009
【図９】
2006051967.tif 000010
【図１０】
2006051967.tif 000011
【図１１】
2006051967.tif 000012
【図１２】
2006051967.tif 000013
【図１３】
2006051967.tif 000014
【図１４】
2006051967.tif 000015
【国際調査報告】
2006051967.tif 000016
2006051967.tif 000017
2006051967.tif 000018
2006051967.tif 000019