(57)【要約】ソフトウェアのインストールを行う手間をかけずに、Webアプリケーションを自動的にオフラインで実行できるようにする。携帯端末はクライアントプログラムとサーバプログラム実行環境とローカルプロキシサーバとを有し、アプリケーションサーバはサーバプログラムを有する。携帯端末のローカルプロキシサーバは、クライアントプログラムからのHTTPリクエストに応じてアプリケーションサーバからサーバプログラムを取得してサーバプログラム実行環境にインストールし、インストールが完了したらアプリケーションサーバ側のサーバプログラムと同期を行う。ローカルプロキシサーバは、クライアントプログラムからのHTTPリクエストを携帯端末上のサーバプログラムとアプリケーションサーバ上のサーバプログラムに振り分ける。
2009139437.tif 000002
【特許請求の範囲】
【請求項１】
サーバプログラムを実行するサーバコンピュータにネットワークを介して接続されるクライアント装置であって、
前記サーバプログラムと通信を行うクライアントプログラムと、
前記サーバコンピュータから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、
前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバコンピュータ上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、
を有することを特徴とする、クライアント装置。
【請求項２】
更に、配備されたサーバプログラムと前記サーバコンピュータ上で実行される前記サーバプログラムとの同期をとるサーバプログラム同期手段を有することを特徴とする、請求項１記載のクライアント装置。
【請求項３】
前記サーバプログラムは、プログラムデータとリソースデータに分化されており、
前記サーバプログラム配備手段は、前記サーバプログラムの取得をする際、前記プログラムデータの全体と前記リソースデータの一部を取得することを特徴とする、請求項１又は２記載のクライアント装置。
【請求項４】
前記プログラムデータと前記リソースデータは、機能単位に分化されており、
前記サーバプログラム配備手段は、前記サーバプログラムの取得をする際、前記プログラムデータと前記リソースデータを機能単位で取得することを特徴とする、請求項３記載のクライアント装置。
【請求項５】
サーバプログラムを実行するサーバコンピュータにネットワークを介して接続され、前記サーバプログラムと通信を行うクライアントプログラムを備えるクライアント装置の制御方法であって、
前記サーバコンピュータから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備工程と、
前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバコンピュータ上で実行される前記サーバプログラムに送信する工程と、
を含むことを特徴とする、クライアント装置の制御方法。
【請求項６】
サーバプログラムを実行するサーバコンピュータにネットワークを介して接続され、前記サーバプログラムと通信を行うクライアントプログラムを備えるクライアント装置を、
前記サーバコンピュータから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、
前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバコンピュータ上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、
として機能させることを特徴とする、クライアント装置のプログラム。
【請求項７】
クライアントプログラムを実行するクライアント装置にネットワークを介して接続されるサーバ装置であって、
前記クライアントプログラムと通信を行うサーバプログラムと、
前記サーバプログラムのサブセットを前記クライアント装置に送信するサーバプログラム提供手段と、
前記サーバプログラムに加えられた変更を前記クライアント装置へ送信するサーバプログラム同期手段と、
を有し、
前記サーバプログラムは、前記クライアントプログラムが前記サーバプログラムにリクエストを送信し、当該リクエストが前記サーバプログラムに送信された場合に、処理を行うことを特徴とする、サーバ装置。
【請求項８】
クライアントプログラムを実行するクライアント装置にネットワークを介して接続され、前記クライアントプログラムと通信を行うサーバプログラムを備えるサーバ装置の制御方法であって、
前記サーバプログラムのサブセットを前記クライアント装置に送信するサーバプログラム提供工程と、
前記サーバプログラムに加えられた変更を前記クライアント装置へ送信するサーバプログラム同期工程と、
前記サーバプログラムが、前記クライアントプログラムが前記サーバプログラムにリクエストを送信し、当該リクエストが前記サーバプログラムに送信された場合に、処理を行う工程と、
を含むことを特徴とする、サーバ装置の制御方法。
【請求項９】
クライアント装置とサーバ装置がネットワークを介して接続された通信システムであって、
前記クライアント装置は、
前記サーバ装置が実行するサーバプログラムと通信を行うクライアントプログラムと、
前記サーバ装置から前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、
前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバ装置上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、
を有することを特徴とする、通信システム。
【請求項１０】
クライアント装置とサーバ装置とアプリケーションディレクトリサーバとプロキシサーバとがネットワークを介して接続された通信システムであって、
前記サーバ装置は、前記クライアント装置が実行するクライアントプログラムと通信を行うサーバプログラムを実行し、
前記アプリケーションディレクトリサーバは、前記サーバプログラムを前記クライアント装置に配備するために有し、
前記プロキシサーバは、
前記アプリケーションディレクトリサーバに前記サーバプログラムを前記クライアント装置に配備するよう指示するサーバプログラム配備指示手段を有し、
前記クライアント装置は、
前記プロキシサーバを介して前記アプリケーションディレクトリサーバから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、
前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバ装置上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、
を有することを特徴とする、通信システム。
【請求項１１】
クライアント装置とサーバ装置がネットワークを介して接続され、前記クライアント装置が前記サーバ装置が実行するサーバプログラムと通信を行うクライアントプログラムを備える通信システムの制御方法であって、
前記サーバ装置から前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備工程と、
前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバ装置上で実行される前記サーバプログラムに送信する工程と、
を含むことを特徴とする、通信システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置、その制御方法、プログラム、サーバ装置、その制御方法、通信システム及びその制御方法に関し、特に、ネットワークアプリーケーションシステムに関する。
【背景技術】
【０００２】
ネットワークの広帯域化とコンピュータの高性能化・低廉化により、インターネットを経由して様々なデータを送受信することが一般的になってきている。特に、Webブラウザ上でネットワークアプリケーションを利用できるSaaS（Software as a Service）やASP（Application Service Provider）といった技術は、ソフトウェアのインストールが不要である点や、ブラウザさえあれば複数の端末から同一のアプリケーションを利用できるという点から注目を集めている。【０００３】
一方で、携帯電話をはじめとする携帯端末も高性能化が進んでおり、機能的にもPCとの違いはほとんどなくなってきている。特にWebブラウザにおいては、PCで動作するものと同等の機能を有するブラウザが携帯端末上でも動作しており、PCと同じWebアプリケーションを実行することが可能である。【０００４】
しかしながら、携帯端末においては通信のために無線ベアラを利用する必要があり、電波環境が動的であるという点がPCとは大きく異なる。PCでも無線を利用するケースはあるが、固定位置や座席での利用がほとんどであり、電波環境は静的又は準静的である。これに対して動的な電波環境では、高速移動やノイズにより通信が不安定になったり、地下やアンテナのカバーエリア外のような電波不感地帯に移動したために一時的に通信が不可能になるケースがある。【０００５】
また、携帯端末においては電力の問題も無視できない。一般的にWebアプリケーションは高い頻度で通信を行うため、通信のために多量の電力を必要とする。このため、電池容量の限られている携帯端末では長時間利用することは適していない。【０００６】
すなわち、携帯端末からPCと同様にWebアプリケーションを利用しようとしても、通信の不安定性や電力の制限から、PCと同等の利便性は得られないという問題がある。【０００７】
これに対し、アプリケーションサーバで動作しているサーバプログラムをそのまま携帯端末に移植し、データを書き換えない処理だけは携帯端末内のサーバプログラムで行うという技術が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−０５１８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の技術は、サーバに保存されているデータ参照し、更新のみを行うような業務向けの単純なWebアプリケーションのみをターゲットとしており、例えばSNS（Social Networking Service）のような複数のユーザデータやDB（Database）を参照・加工するような複雑なWebアプリケーションでは利用できなかった。【００１０】
また、特許文献１の技術は、携帯端末において電話回線が常に使えるという暗黙の仮定を置いており、実際には通信不可能となる電波不感地帯や高速移動中における利用を考えていなかった。【００１１】
本発明は上記の問題を鑑み、通信手段が一切利用できない環境においても、複雑なデータ処理を行うようなWebアプリケーションを実行できる技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明は、以下の特徴を有することとする。【００１３】
本発明に係るクライアント装置は、サーバプログラムを実行するサーバコンピュータにネットワークを介して接続されるクライアント装置であって、前記サーバプログラムと通信を行うクライアントプログラムと、前記サーバコンピュータから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバコンピュータ上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、を有する。【００１４】
また、本発明に係るクライアント装置の制御方法は、サーバプログラムを実行するサーバコンピュータにネットワークを介して接続され、前記サーバプログラムと通信を行うクライアントプログラムを備えるクライアント装置の制御方法であって、前記サーバコンピュータから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備工程と、前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバコンピュータ上で実行される前記サーバプログラムに送信する工程と、を含む。【００１５】
また、本発明に係るクライアント装置のプログラムは、サーバプログラムを実行するサーバコンピュータにネットワークを介して接続され、前記サーバプログラムと通信を行うクライアントプログラムを備えるクライアント装置を、前記サーバコンピュータから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバコンピュータ上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、として機能させる。【００１６】
また、本発明に係るサーバ装置は、クライアントプログラムを実行するクライアント装置にネットワークを介して接続されるサーバ装置であって、前記クライアントプログラムと通信を行うサーバプログラムと、前記サーバプログラムのサブセットを前記クライアント装置に送信するサーバプログラム提供手段と、前記サーバプログラムに加えられた変更を前記クライアント装置へ送信するサーバプログラム同期手段と、を有し、前記サーバプログラムは、前記クライアントプログラムが前記サーバプログラムにリクエストを送信し、当該リクエストが前記サーバプログラムに送信された場合に、処理を行う。【００１７】
また、本発明に係るサーバ装置の制御方法は、クライアントプログラムを実行するクライアント装置にネットワークを介して接続され、前記クライアントプログラムと通信を行うサーバプログラムを備えるサーバ装置の制御方法であって、前記サーバプログラムのサブセットを前記クライアント装置に送信するサーバプログラム提供工程と、前記サーバプログラムに加えられた変更を前記クライアント装置へ送信するサーバプログラム同期工程と、前記サーバプログラムが、前記クライアントプログラムが前記サーバプログラムにリクエストを送信し、当該リクエストが前記サーバプログラムに送信された場合に、処理を行う工程と、を含む。【００１８】
また、本発明に係る第１の通信システムは、クライアント装置とサーバ装置がネットワークを介して接続された通信システムであって、前記クライアント装置は、前記サーバ装置が実行するサーバプログラムと通信を行うクライアントプログラムと、前記サーバ装置から前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバ装置上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、を有する。【００１９】
また、本発明に係る第２の通信システムは、クライアント装置とサーバ装置とアプリケーションディレクトリサーバとプロキシサーバとがネットワークを介して接続された通信システムであって、前記サーバ装置は、前記クライアント装置が実行するクライアントプログラムと通信を行うサーバプログラムを実行し、前記アプリケーションディレクトリサーバは、前記サーバプログラムを前記クライアント装置に配備するために有し、前記プロキシサーバは、前記アプリケーションディレクトリサーバに前記サーバプログラムを前記クライアント装置に配備するよう指示するサーバプログラム配備指示手段を有し、前記クライアント装置は、前記プロキシサーバを介して前記アプリケーションディレクトリサーバから前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備手段と、前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバ装置上で実行される前記サーバプログラムに送信するローカルプロキシ手段と、を有する。【００２０】
また、本発明に係る通信システムの制御方法は、クライアント装置とサーバ装置がネットワークを介して接続され、前記クライアント装置が前記サーバ装置が実行するサーバプログラムと通信を行うクライアントプログラムを備える通信システムの制御方法であって、前記サーバ装置から前記サーバプログラムを取得して前記クライアント装置に配備するサーバプログラム配備工程と、前記クライアントプログラムがサーバプログラムにリクエストを送信する際に、当該リクエストが前記配備されたサーバプログラムで処理できるか否かを判定し、処理できないと判定される場合に、当該リクエストを前記サーバ装置上で実行される前記サーバプログラムに送信する工程と、を含む。
【発明の効果】
【００２１】
本発明によれば、通信手段が一切利用できない環境においても、複雑なデータ処理を行うようなWebアプリケーションを実行できる技術を提供することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態の通信システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態の通信システムの動作を示すフローチャートである。
【図３】本発明の第２の実施形態の通信システムの構成を示すブロック図である。
【図４】本発明の第２の実施形態の通信システムの動作を示すフローチャートである。
【図５】本発明の第２の実施形態のプロファイルデータの内容を示す表である。
【図６】本発明の第３の実施形態の通信システムの構成を示すブロック図である。
【図７】本発明の第３の実施形態の通信システムの動作を示すフローチャートである。
【発明を実施するための形態】
【００２３】
本発明を実施するための最良の形態について詳細に説明する。
【００２４】
（第１の実施形態）
まず、本発明の第１の実施形態の構成について説明する。図１は本実施形態におけるシステムの構成を示すブロック図である。
【００２５】
図１において、携帯端末４０１は携帯電話やPDA(Personal Data Assistance)のような携帯端末であり、有機ELや液晶パネルによって構成された表示装置と、キーボードやタッチパネルなどの入力装置を備えている。
【００２６】
アプリケーションサーバ４０２はネットワークアプリケーションを提供するアプリケーションサーバである。
【００２７】
ネットワーク４０３はインターネットや社内LAN(Local Area Network)などのネットワークであり、携帯端末４０１とアプリケーションサーバ４０２はこのネットワークを介して互いに通信を行う。
【００２８】
携帯端末４０１はさらにクライアントプログラム４０４、ローカルプロキシ４０５、サーバプログラム保存手段４０６、サーバプログラム同期手段４０８、サーバプログラム配備手段４０７、通信手段４０９を有する。
【００２９】
クライアントプログラム４０４はWebアプリケーションのクライアントプログラムであり、サーバプログラムと通信を行って処理を行う。クライアントプログラム４０４は例えばWebブラウザプログラムであり、HTML(HyperText Markup Language)とJavaScript（登録商標）、Flash（登録商標）などによって記述された命令コードに従い、ユーザの入力に応じて表示を変更する処理を行ったり、サーバプログラムと通信を行いデータを取得したりする。
【００３０】
ローカルプロキシ４０５はHTTP(HyperText Transfer Protocol)プロキシであり、クライアントプログラム４０４の行う通信を仲介して適切な場所に送信する。ローカルプロキシ４０５はクライアントプログラム４０４がサーバプログラムにHTTPリクエストを送信しようとした際に、該リクエストを最初に受け取る。ローカルプロキシ４０５は受け取ったリクエストをサーバプログラム保存手段４０６に保存されているサーバプログラムで処理できるかどうかを判定し、処理できると判定すればサーバプログラム保存手段４０６に保存されているサーバプログラムを起動して処理を行わせ、処理できないと判定すればサーバプログラム４１１に送信して処理を行わせる。
【００３１】
ローカルプロキシ４０５によるHTTPリクエストが処理できるか否かの判定は、例えば、次のように行う。第１は、サーバプログラム保存手段４０６に保存されているサーバプログラムに投げるHTTPリクエストに処理できるアプリケーション一覧表を付加している場合、サーバプログラムがその一覧表の中にあるか否かで判定する。また、第２は、ローカルプロキシ４０５が常にサーバプログラムに処理を投げて、サーバプログラムが処理できない旨のレスポンスを返した場合、処理できないと判定する。
【００３２】
サーバプログラム配備手段４０７は携帯端末４０１内で実行されるサーバプログラムを取得してインストールするサーバプログラム配備手段である。サーバプログラム配備手段４０７は通信手段４０９を利用してサーバプログラム提供手段４１４と通信し、アプリケーションサーバ４０２が保持しているサーバプログラムを受け取る。サーバプログラム配備手段４０７は受け取ったサーバプログラムをサーバプログラム保存手段４０６に保存する。
【００３３】
サーバプログラム保存手段４０６はサーバプログラム配備手段４０７によって取得されたサーバプログラムを保存する手段である。
【００３４】
サーバプログラム同期手段４０８はサーバプログラム保存手段４０６に保存されたサーバプログラムを、アプリケーションサーバ側に存在するサーバプログラムと同期する手段である。サーバプログラム同期手段４０８は通信手段４０９を利用してサーバプログラム同期手段４１５と通信を行い、サーバプログラム保存手段４０６に保存されたサーバプログラムに加えられた変更をサーバプログラム４１１に伝達する。また、サーバプログラム４１１に加えられた変更をサーバプログラム同期手段４１５から受け取り、サーバプログラム保存手段４０６に保存されたサーバプログラムに反映させる。
【００３５】
通信手段４０９はネットワーク４０３を介してアプリケーションサーバ４０２と通信を行う手段である。このとき、通信に用いる物理手段としては例えば無線LAN、携帯電話網、PHS(Personal Handy-phone Systems)、IrDA(Infrared Data Association)、Bluetooth（登録商標）、WiMAX（登録商標）等が想定される。
【００３６】
アプリケーションサーバ４０２はさらにサーバプログラム４１１、サーバプログラム同期手段４１５、サーバプログラム提供手段４１４、通信手段４１０を有する。
【００３７】
サーバプログラム４１１はWebアプリケーションのサーバプログラムであり、クライアントプログラム４０４からのリクエストを処理するプログラムである。サーバプログラム４１１はさらに実行手続きであるプログラムデータ４１２と、プログラムデータ４１２が実行時に参照するデータであるリソースデータ４１３に分けられる。プログラムデータ４１２は例えばC言語やJava（登録商標）で構築されたバイナリファイルか、RubyやPerlで記述されたスクリプトファイルであり、リソースデータ４１３は例えば画像ファイルやデータベースに格納されている情報である。
【００３８】
サーバプログラム提供手段４１４はサーバプログラム４１１を携帯端末４０１に送信する手段である。サーバプログラム４１１は前述のようにプログラムデータ４１２とリソースデータ４１３から成るが、一般的にはプログラムデータ４１２に比べてリソースデータ４１３は非常に大きいデータであるため、容量の限られているサーバプログラム保存手段４０６にはそのまま格納することはできない。サーバプログラム提供手段４１４はプログラムデータ４１２全体と、事前に定められたリソースデータ４１３の一部のみをサーバプログラム配備手段４０７に送信することでサーバプログラム４１１のサブセットを携帯端末４０１に配備する。
【００３９】
サーバプログラム同期手段４１５はサーバプログラム４１１を、サーバプログラム保存手段４０６に保存されているサーバプログラムと同期する手段である。サーバプログラム同期手段４１５は、サーバプログラム保存手段４０６に保存されたサーバプログラムに加えられた変更をサーバプログラム同期手段４０８から受け取り、サーバプログラム４１１に反映させる。また、サーバプログラム４１１に加えられた変更を通信手段４１０を利用してサーバプログラム同期手段４０８に伝達する。
【００４０】
通信手段４１０は通信手段４０９に対応する通信手段であり、ネットワーク４０３を介して携帯端末４０１と通信を行う手段である。
【００４１】
次に、本実施形態における各装置の動作について説明する。図２は本実施形態における各装置の処理手順を示したフローチャートである。
【００４２】
図２において、最初にユーザが入力手段を用いるなどして、クライアントプログラム４０４にWebアプリケーションの利用を指示すると、クライアントプログラム４０４は指示を受け付ける。クライアントプログラム４０４は指示されたWebアプリケーションを提供するサーバであるアプリケーションサーバ４０２を特定し、アプリケーションサーバ４０２に対するHTTPリクエストをローカルプロキシ４０５に送信する（ステップＳ１０１）。
【００４３】
ローカルプロキシ４０５は受信したHTTPリクエストの送信先であるアプリケーションサーバ４０２を見て、サーバプログラム４１１がすでにサーバプログラム保存手段４０６に保存されているかどうかを判定する（ステップＳ１０２）。
【００４４】
すでにサーバプログラム４１１がサーバプログラム保存手段４０６に保存されている場合、保存されているサーバプログラム４１１のインストール処理が完了しており、動作可能かどうかを判定する（ステップＳ１０３）。
【００４５】
サーバプログラム４１１が動作可能な状態であれば、ローカルプロキシ４０５は該プログラムを起動して、先に受信したHTTPリクエストを起動したプログラムに渡して処理を行わせる（ステップＳ１０４）。処理した結果のHTTPレスポンスを受け取り、クライアントプログラム４０４にそのまま送信して終了する（ステップＳ１０５）。
【００４６】
サーバプログラム４１１がインストール処理中などのために動作可能な状態でなければ、ローカルプロキシ４０５は通信手段４０９を用いてアプリケーションサーバ４０２に接続し、先に受信したHTTPリクエストをサーバプログラム４１１に転送する（ステップＳ１０６）。ローカルプロキシ４０５はサーバプログラム４１１が処理した結果をHTTPレスポンスとして受信し、クライアントプログラム４０４にそのまま転送してリクエスト処理を終了する（ステップＳ１０７）。このとき同時に、インストール処理中にリクエストがアプリケーションサーバ４０２で処理されたことを記録しておく。
【００４７】
サーバプログラム４１１がサーバプログラム保存手段４０６に保存されていなければ、ローカルプロキシ４０５はサーバプログラム配備手段４０７にサーバプログラム４１１を取得するように指示する（ステップＳ１０８）。サーバプログラム配備手段４０７はサーバプログラム４１１を取得する指示に従って、通信手段４０９を利用してアプリケーションサーバ４０２に接続し、サーバプログラム提供手段４１４に対して、サーバプログラム４１１を提供するように要求する。このときの接続はステップＳ１０７の接続とは別の接続であり、HTTPに限らずFTP(File Transfer Protocol)やRCP(Remoto CoPy)のようなファイル単位の転送が可能な任意のプロトコルを利用できる。また、ローカルプロキシ４０５はサーバプログラム配備手段４０７への指示と並行して、通信手段４０９を用いてアプリケーションサーバ４０２に接続し、先に受信したHTTPリクエストをサーバプログラム４１１に送信し、処理結果のHTTPレスポンスを受け取る。
【００４８】
なお、ここではサーバプログラム４１１がサーバプログラム保存手段４０６に保存されていなければ即座にサーバプログラム４１１を取得する場合について説明しているが、サーバプログラム４１１を取得する端緒となるイベントについてはこれに限らない。例えば、サーバ４０２へのリクエスト発行回数が一定以上に達した場合に取得したり、一定時間内のリクエスト発行頻度が一定を超えた場合に取得したりというケースも考えられる。更に、リクエストが発行されたタイミングのみに限らず、通信回線の混雑具合が一定以下になったタイミングや、携帯端末４０１の処理負荷が一定以下になったタイミングで取得するというケースも有用である。
【００４９】
サーバプログラム提供手段４１４はサーバプログラム配備手段４０７からの要求に対し、プログラムデータ４１２全体と事前に設定されたリソースデータ４１３の一部をパッケージ化して送信する（ステップＳ１０９）。
【００５０】
サーバプログラム配備手段４０７はサーバプログラム提供手段４１４からパッケージを受信する（ステップＳ１１０）。サーバプログラムのような大きいデータの受信には時間がかかるため、この処理は途中で通信が切断する場合がある。サーバプログラム配備手段４０７は通信が切断した場合でも、再び通信可能になった際にサーバプログラム４１１の取得を再開する機能を有し、不意の通信断に備える。
【００５１】
サーバプログラム配備手段４０７は受信が完了したパッケージを展開し、サーバプログラム保存手段４０６に保存する（ステップＳ１１１）。サーバプログラム配備手段４０７はまた、サーバ４０２に対するリクエストはこのパッケージを用いて処理するようにローカルプロキシ４０５に通知する。更に、サーバプログラム配備手段４０７は、サーバプログラム４１１のインストール中にリクエストがアプリケーションサーバ４０２で処理された記録があるかどうかを判定する（ステップＳ１１２）。
【００５２】
サーバプログラム４１１のインストール中にリクエストがアプリケーションサーバ４０２で処理されていなければ、サーバプログラム４１１のインストールを完了とする。
【００５３】
サーバプログラム４１１のインストール中にリクエストがアプリケーションサーバ４０２で処理されたのであれば、インストールされたサーバプログラム４１１の状態がアプリケーションサーバ４０２で動作しているサーバプログラム４１１と異なっているため、サーバプログラム配備手段４０７はサーバプログラム同期手段４０８に同期処理を指示する（ステップＳ１１３）。サーバプログラム同期手段４０８は通信手段４０９を用いてアプリケーションサーバ４０２と接続し、サーバプログラム同期手段４１５から更新情報を取得する。サーバプログラム同期手段４０８は取得した更新情報をサーバプログラム保存手段４０６に保存されているサーバプログラム４１１に反映させる。同期処理を行うことにより、携帯端末４０１にインストールされたプログラムの状態とサーバ４０２で実行されているプログラムの状態を並列化し、リクエストが携帯端末４０１とサーバ４０２のどちらで処理されてもユーザに均質なサービスを提供することができる。同期処理が完了したら、サーバプログラム４１１のインストールを完了とする。
【００５４】
以上に説明した本実施形態によれば、ユーザに意識させずにサーバプログラム４１１をインストールすることが可能となる。サーバプログラム４１１のインストール中はアプリケーションサーバ４０２に接続して通常通りにWebアプリケーションを利用し、サーバプログラム４１１のインストール完了後はサーバプログラム保存手段４０６に格納されたサーバプログラム４１１を利用してWebアプリケーションを利用するため、サーバプログラム４１１のインストール処理のためにWebアプリケーションが利用不可となることはない。また、サーバプログラム４１１のインストールの後、必要に応じて自動的に同期処理を行うため、サーバプログラム４１１が実行される場所がアプリケーションサーバ４０２から携帯端末４０１に切り替わったことをユーザは意識する必要がない。
【００５５】
なお、上記の例ではサーバ４０２に対するリクエストを、ダウンロードしたプログラムで全て処理する場合について述べたが、特定のリクエストのみをダウンロードしたプログラムで処理しても良い。この場合は、ステップＳ１０９において、どのリクエストをどちらで処理するかについての表をサーバ４０２が用意し、パッケージに含めて送信すれば良い。ステップＳ１１１においてサーバプログラム配備手段４０７は、このパッケージを展開した後に、表の内容をローカルプロキシ４０５に通知する。
【００５６】
一方で携帯端末４０１のセキュリティの観点から、サーバプログラム４１１をインストールする際にユーザの確認を取るべきケースもある。携帯端末４０１のセキュリティポリシーによっては、全てのWebアプリケーションを自動的にインストールするのではなく、前述のステップ（ステップＳ１０６）においてユーザの確認を促すダイアログを表示したり、自動インストールを許可するアプリケーションサーバ４０２の一覧をユーザが事前に設定しておいて、ステップ（ステップＳ１０６）においてローカルプロキシ４０５がアプリケーションサーバ４０２からのサーバプログラム４１１のインストールが許可されているかを判定するという方法を採っても良い。
【００５７】
（第２の実施形態）
例えばスケジューラWebアプリケーションが「特定日のスケジュール参照」機能と「スケジュール書き込み」機能を持つように、ひとつのWebアプリケーションは複数の機能を持っていることが一般的である。前述の実施形態のように、サーバプログラムを１つのパッケージとしてまとめてしまうと、パッケージのインストールが完了するまで全ての機能が利用できないという不便が生じる。
【００５８】
以下では、サーバプログラムを機能単位でパッケージ化し、それぞれの機能単位でインストール処理を行うケースを説明する。まず、本実施形態の構成について説明する。図３は本実施形態におけるシステムの構成を示すブロック図である。図１と同じ動作をする機能ブロックは同じ番号で記し、必要でない限り説明の繰り返しを避ける。
【００５９】
本実施形態のシステムは、携帯端末４０１、アプリケーションサーバ４０２がネットワーク４０３を介して互いに通信を行うシステムである。
【００６０】
携帯端末４０１はクライアントプログラム４０４、ローカルプロキシ４０５ａ、サーバプログラム保存手段４０６、サーバプログラム同期手段４０８ａ、サーバプログラム配備手段４０７ａ、サーバプログラム遠隔制御手段４１６、通信手段４０９を有する。
【００６１】
ローカルプロキシ４０５ａは通信プロキシであり、クライアントプログラム４０４の行うHTTP通信を仲介して適切な場所に送信する。ローカルプロキシ４０５ａはクライアントプログラム４０４から受け取ったリクエストを、設定された判断基準に従って、サーバプログラム保存手段４０６に保存されているサーバプログラムで処理できるかどうかを判定する。処理できるかどうかの判断基準はサーバプログラム配備手段４０７ａによって設定される。該リクエストをサーバプログラム保存手段４０６に保存されているサーバプログラムで処理できると判定すれば、サーバプログラム保存手段４０６に保存されているサーバプログラムを起動して処理を行わせ、処理できないと判定すればサーバプログラム４１１ａに送信して処理を行わせる。
【００６２】
サーバプログラム配備手段４０７ａはサーバプログラムを構成するプログラムデータ４１２ａとリソースデータ４１３ａを機能単位で取得し、サーバプログラム保存手段４０６に保存する手段である。サーバプログラム配備手段４０７ａはまた、プロファイルデータ４１９に記述されている複数のプログラムデータ群４１７とリソースデータ群４１８との間の依存関係を参照し、どのデータがインストールされていればどの機能が利用可能かの判断基準をローカルプロキシ４０５ａに設定する。
【００６３】
サーバプログラム同期手段４０８ａは、サーバプログラム保存手段４０６に保存されているサーバプログラムをサーバプログラム４１１ａと機能単位で同期する手段である。
【００６４】
サーバプログラム遠隔制御手段４１６は、サーバプログラム制御手段４２０と通信を行い、サーバプログラム保存手段４０６に保存されていないサーバプログラムの機能を利用する手段である。サーバプログラム遠隔制御手段４１６は、サーバプログラム保存手段４０６に保存されているサーバプログラムの一機能が、サーバプログラム保存手段４０６に保存されていないプログラムデータやリソースデータを利用する際に、プログラムデータ４１２ａの遠隔実行をサーバプログラム制御手段４２０に指示する。サーバプログラム遠隔制御手段４１６が遠隔制御する機能には、例えばデータベースにクエリを発行する処理のように大容量のデータにアクセスする機能や、秘密鍵を用いたデータの暗号化のようにセキュリティの観点から携帯端末で行うべきでない機能などが想定される。
【００６５】
アプリケーションサーバ４０２はさらにサーバプログラム４１１ａ、サーバプログラム同期手段４１５ａ、サーバプログラム提供手段４１４ａ、プロファイルデータ４１９、サーバプログラム制御手段４２０、通信手段４１０を有する。
【００６６】
サーバプログラム４１１ａはWebアプリケーションのサーバプログラムであり、クライアントプログラム４０４からのリクエストを処理するプログラムである。サーバプログラム４１１ａはさらに機能ごとの実行手続きであるプログラムデータ４１２ａの集合と、プログラムデータ４１２ａが参照するデータであるリソースデータ４１３ａの集合に分けられる。また、サーバプログラム４１１ａには、どのプログラムデータ４１２ａがどのリソースデータ４１３ａを利用するかを記述したデータであるプロファイルデータ４１９も含まれる。
【００６７】
サーバプログラム提供手段４１４ａはプログラムデータ４１２ａおよびリソースデータ４１３ａを機能単位でサーバプログラム配備手段４０７ａに提供する手段である。
【００６８】
サーバプログラム同期手段４１５ａはサーバプログラム４１１ａを、サーバプログラム保存手段４０６に保存されているサーバプログラムと機能単位で同期する手段である。
【００６９】
サーバプログラム制御手段４２０は、サーバプログラム遠隔制御手段４１６からの要求に従ってサーバプログラム４１１ａに処理の指示を行う制御手段である。サーバプログラム４１１ａは、機能単位ごとにプログラムの実行やリソースの送信が可能である。そのため、サーバプログラム制御手段４２０は、サーバプログラム４１１ａの全機能の処理を指示することに加えて、機能単位ごとにプログラムの実行やリソースの送信などの処理の指示もする。
【００７０】
次に、本実施形態における各装置の動作について説明する。図４は本実施形態における装置の処理手順を示したフローチャートである。
【００７１】
最初にユーザが入力手段を用いるなどして、クライアントプログラム４０４にWebアプリケーションの利用を指示すると、クライアントプログラム４０４は指示を受け付ける。クライアントプログラム４０４は指示されたWebアプリケーションを提供するサーバであるアプリケーションサーバ４０２およびWebアプリケーションのどの機能を利用するかを特定し、アプリケーションサーバ４０２に対して利用する機能を指定するHTTPリクエストをローカルプロキシ４０５ａに送信する（ステップＳ２０１）。
【００７２】
ローカルプロキシ４０５ａは受信したHTTPリクエストの送信先情報と利用する機能とを見て、サーバプログラム４１１ａの特定の機能がサーバプログラム保存手段４０６に保存されているかどうかを判定する（ステップＳ２０２）。ローカルプロキシ４０５ａがWebアプリケーションと機能を特定する方法は、アプリケーションごとに異なる。例えば、HTTPリクエストに記載されるURL(Uniform Resource Locator)に含まれるホスト名から利用するWebアプリケーションを特定し、ディレクトリ名とファイル名および呼び出しパラメータから機能を特定する方法などがある。
【００７３】
クライアントプログラム４０４が要求する機能が保存されていた場合、ローカルプロキシ４０５ａは該機能が利用可能であるかどうか判定する（ステップＳ２０３）。ローカルプロキシ４０５ａはサーバプログラム配備手段４０７ａによって設定された判断基準に従い、サーバプログラム保存手段４０６に保存されているプログラムとリソースを参照してこの判定を行う。
【００７４】
クライアントプログラム４０４が要求する機能が実行可能であった場合、ローカルプロキシ４０５ａは該機能に対応するプログラムを起動して、先に受信したHTTPリクエストを起動したプログラムに渡して処理を行わせる（ステップＳ２０４）。起動したプログラムの処理の結果を受け取り、クライアントプログラム４０４に渡して処理を終了する。
【００７５】
ここで、前述のプログラムの処理中にサーバプログラム保存手段４０６に保存されていないプログラムデータやリソースデータが必要になった場合（ステップＳ２０５）、ローカルプロキシ４０５ａはサーバプログラム遠隔制御手段４１６に遠隔制御を指示する。
【００７６】
サーバプログラム遠隔制御手段４１６はローカルプロキシ４０５ａからの指示に従い、通信手段４０９を利用してアプリケーションサーバ４０２に接続し、サーバプログラム制御手段４２０に特定のプログラムの実行やリソースの送信を指示する（ステップＳ２０６）。
【００７７】
サーバプログラム制御手段４２０はサーバプログラム遠隔制御手段４１６からの指示に従い、サーバプログラム４１１ａの特定のプログラムを実行したり特定のリソースを取得し、結果をサーバプログラム遠隔制御手段４１６に送信する（ステップＳ２０７）。サーバプログラム遠隔制御手段４１６はサーバプログラム制御手段４２０から結果を受け取り、処理中であったプログラムに結果を渡し、制御を戻す。制御が戻ったプログラムは処理を続行し、処理結果をレスポンスとしてローカルプロキシ４０５ａに渡す。ローカルプロキシ４０５ａは受け取ったレスポンスをクライアントプログラム４０４にそのまま渡し、処理を終了する。
【００７８】
クライアントプログラム４０４が要求する機能がサーバプログラム保存手段４０６に保存されているが、インストール処理や同期処理中のため実行可能でなければ、ローカルプロキシ４０５ａは通信手段４０９を用いてアプリケーションサーバ４０２に接続し、先に受信したHTTPリクエストをサーバプログラム４１１ａに転送する（ステップＳ２０８）。ローカルプロキシ４０５ａはサーバプログラム４１１ａが処理した結果をHTTPレスポンスとして受信し（ステップＳ２０９）、クライアントプログラム４０４にそのまま転送してリクエスト処理を終了する。このとき、クライアントプログラム４０４が要求する機能がアプリケーションサーバ４０２で処理されたことを記録しておく。
【００７９】
クライアントプログラム４０４が要求する機能がサーバプログラム保存手段４０６に保存されていなければ、ローカルプロキシ４０５ａはサーバプログラム配備手段４０７ａにサーバプログラム４１１ａの該当機能であるプログラムデータ４１２ａおよびリソースデータ４１３ａを取得するように指示する（ステップＳ２１０）。サーバプログラム配備手段４０７ａはサーバプログラム提供手段４１４ａと通信してプログラムデータ４１２ａを要求する（ステップＳ２１１）。
【００８０】
サーバプログラム提供手段４１４ａはプロファイルデータ４１９を参照してプログラムデータ４１２ａおよびプログラムデータ４１２ａが必要とするリソースデータであるリソースデータ４１３ａ、さらにプロファイルデータ４１９をパッケージ化してサーバプログラム配備手段４０７ａに送信する（ステップＳ２１１）（ステップＳ２１２）。プロファイルデータ４１９に記述されている情報の例を図５に示す。この例では、サーバプログラムは機能１〜３およびファイルA、データベースXから構成されている。機能１はファイルAを利用するため、サーバプログラム配備手段４０７ａが機能１をサーバプログラム提供手段４１４ａに要求すると、サーバプログラム提供手段４１４ａは機能１とファイルA、およびプロファイルデータ自体をパッケージ化してサーバプログラム配備手段４０７ａに送信する。
【００８１】
サーバプログラム配備手段４０７ａは受け取ったパッケージを展開してサーバプログラム保存手段４０６に保存する（ステップＳ２１３）。このとき、機能のインストール中にリクエストがアプリケーションサーバ４０２で処理された記録があるかどうかを判定する。
【００８２】
機能のインストール中にリクエストがアプリケーションサーバ４０２で処理されていなければ、サーバプログラム配備手段４０７ａはプロファイルデータ４１９の記述を解釈してローカルプロキシ４０５ａに反映させる（ステップＳ２１６）。ふたたび図５を例に取ると、ローカルプロキシ４０５ａは機能１とファイルAがサーバプログラム保存手段４０６に存在すれば、クライアントプログラム４０４からの機能１の要求はサーバプログラム保存手段４０６に保存されているプログラムで処理するように設定する。設定が完了したら、サーバプログラム４１１ａのインストールを完了とする。
【００８３】
機能のインストール中にリクエストがアプリケーションサーバ４０２で処理された場合、サーバプログラム配備手段４０７ａはサーバプログラム同期手段４０８ａに同期処理を指示する（ステップＳ２１５）。同期処理が完了したら、プロファイルデータ４１９の記述をローカルプロキシ４０５ａに反映させて（ステップＳ２１６）、インストール処理を終了する。
【００８４】
本実施形態のようにサーバプログラムを機能単位に分割することにより、次の２点の効果が得られる。まず、機能ごとのパッケージのサイズが小さくなることにより、インストールにかかる時間が短縮される。次に、巨大なDBを利用する機能やセキュリティ上の理由からサーバから出したくない情報を利用する機能などを分離することが可能になり、サーバプログラム全てをパッケージ化する場合より多くのアプリケーションに適用が可能になる。
【００８５】
（第３の実施形態）
上述の実施形態では携帯端末とアプリケーションサーバの二者間でのみ通信が行われていたが、本発明の効果を得るための構成は、このような単純な構成に限らない。
【００８６】
以下では、サーバプログラムがアプリケーションサーバではない外部のディレクトリサーバによって行われ、また携帯端末へのサーバプログラムの配備が外部のプロキシサーバによって開始されるケースについて説明する。
【００８７】
まず、本実施形態に係るシステムの構成について説明する。図６は本実施の形態におけるシステムの構成を示すブロック図である。図１、図３と同じ機能モジュールには同じ番号を割り振っている。
【００８８】
本実施形態に係るシステムは、携帯端末４０１、アプリケーションサーバ４０２に加えて、プロキシサーバ４２１、アプリケーションディレクトリサーバ４２２がネットワーク４０３に接続して相互に通信を行うシステムである。
【００８９】
携帯端末４０１はクライアントプログラム４０４、ローカルプロキシ４０５ｂ、サーバプログラム保存手段４０６、サーバプログラム配備手段４０７ｂ、通信手段４０９を有する。
【００９０】
ローカルプロキシ４０５ｂはクライアントプログラム４０４からのHTTPリクエストに対して、サーバプログラム保存手段４０６にサーバプログラムが保存されているかを判断し、保存されていれば該プログラムを起動してリクエストを処理させ、保存されていなければプロキシサーバ４２１にリクエストを転送するHTTPプロキシである。
【００９１】
サーバプログラム配備手段４０７ｂはサーバプログラム配備指示手段４２３からの指示に従ってサーバプログラム保存手段４０６にサーバプログラムを保存する手段である。
【００９２】
アプリケーションサーバ４０２はサーバプログラム４１１、サーバプログラム同期手段４１５、通信手段４１０を有する。
【００９３】
プロキシサーバ４２１はリモートプロキシ４２４、サーバプログラム配備指示手段４２３、サーバプログラム同期手段４２８、通信手段４２５を有する。
【００９４】
リモートプロキシ４２４はローカルプロキシ４０５ｂから送信されたHTTPリクエストから接続先のWebアプリケーションを判別して、サーバプログラムを携帯端末４０１に配備するかの判定と、HTTPリクエストをアプリケーションサーバ４０２に転送する処理を行うHTTPプロキシである。サーバプログラムを携帯端末４０１に配備するかどうかの判定は、アプリケーションディレクトリサーバ４２２が該当のWebアプリケーションに対するサーバプログラムを保持しているか問い合わせることで行う。該当のWebアプリケーションに対するサーバプログラムが見つかれば、サーバプログラムを携帯端末４０１に配備するようサーバプログラム配備指示手段４２３に指示を行う。
【００９５】
サーバプログラム配備指示手段４２３はアプリケーションディレクトリサーバ４２２Ｔから取得したサーバプログラムをサーバプログラム配備手段４０７ｂに送信して、サーバプログラム保存手段４０６に保存することを指示する手段である。また、プログラムデータやリソースデータに変更があった場合にも、更新されたデータをサーバプログラム配備手段４０７ｂに送信することで、サーバプログラム保存手段４０６に保存されているデータを最新に保つ処理も行う。
【００９６】
通信手段４２５は通信手段４０９や通信手段４１０と同様に、プロキシサーバ４２１が他のサーバや端末と通信を行う際に利用される通信手段である。
【００９７】
アプリケーションディレクトリサーバ４２２はサーバプログラム提供手段４２７、サーバプログラム保存手段４２９、通信手段４２６を有する。
【００９８】
サーバプログラム提供手段４２７は、アプリケーションサーバ４０２で動作しているサーバプログラム４１１のようなサーバプログラムがサーバプログラム保存手段４２９に保存されているかどうかを判定し、該当のプログラムをプロキシサーバ４２１に提供する手段である。
【００９９】
サーバプログラム保存手段４２９はサーバプログラム４１１をはじめとするサーバプログラムを保存する手段である。サーバプログラム保存手段４２９に保存されているサーバプログラムは、事前にアプリケーションサーバ４０２によって登録されたものである。
【０１００】
通信手段４２６は通信手段４０９や通信手段４１０と同様に、プロキシサーバ４２１が他のサーバや端末と通信を行う際に利用される通信手段である。
【０１０１】
次に、本実施形態の各装置の動作について説明するが、先の実施形態と重複する動作については詳細な説明を省略する。図７は本実施形態における各装置の処理手順を示すフローチャートである。
【０１０２】
＜インストール処理＞
クライアントプログラム４０４からのリクエストの発行に対して、サーバプログラムを自動的にインストールする流れについて説明する。
【０１０３】
ローカルプロキシ４０５ｂはクライアントプログラム４０４からのHTTPリクエストを受け取り、サーバプログラム保存手段４０６に該当のサーバプログラムが保存されているか判断する（ステップＳ３０１）（ステップＳ３０２）。該当のサーバプログラムが保存されていれば、該当のプログラムを起動してリクエストの処理を行い、クライアントプログラム４０４にレスポンスを返す（ステップＳ３０３）（ステップＳ３０４）。
【０１０４】
該当のサーバプログラムが保存されていなければ、ローカルプロキシ４０５ｂは通信手段４０９を利用してプロキシサーバ４２１に接続し、リモートプロキシ４２４にHTTPリクエストを送信する（ステップＳ３０５）。
【０１０５】
リモートプロキシ４２４は受け取ったHTTPリクエストのヘッダから接続先のWebアプリケーションを取得し、サーバプログラムが取得可能かどうか、通信手段４２５を用いてアプリケーションディレクトリサーバ４２２に接続し、サーバプログラム提供手段４２７に問い合わせる（ステップＳ３０６）。また、並行して受け取ったHTTPリクエストをアプリケーションサーバ４０２に送信し、通常のHTTPプロキシの処理を行う。
【０１０６】
サーバプログラム提供手段４２７はサーバプログラム保存手段４２９内に該当のサーバプログラムが保存されているか判定し（ステップＳ３０７）、保存されていなければリモートプロキシ４２４にサーバプログラムが取得不可能であるレスポンスを返す（ステップＳ３０８）。リモートプロキシ４２４はサーバプログラムが取得不可能であれば、何もしない。
【０１０７】
サーバプログラム保存手段４２９内に該当のサーバプログラムが保存されていれば、サーバプログラム提供手段４２７は該当のサーバプログラムをパッケージ化し、リモートプロキシ４２４に送信する（ステップＳ３０９）。
【０１０８】
リモートプロキシ４２４はサーバプログラムのパッケージを受信すると、サーバプログラム配備指示手段４２３にパッケージを携帯端末４０１に配備させるよう指示する（ステップＳ３１０）。サーバプログラム配備指示手段４２３は携帯端末４０１に接続し、サーバプログラム配備手段４０７ｂにサーバプログラムを配備する要求をパッケージとともに送信する。
【０１０９】
サーバプログラム配備手段４０７ｂはパッケージを展開し、サーバプログラム保存手段４０６に保存する（ステップＳ３１１）。
【０１１０】
＜同期処理＞
アプリケーションサーバ４０２側のデータに変更があった際に、携帯端末４０１にデータの変更を通知する流れについて説明する。
【０１１１】
別のユーザからのリクエストや、プログラムのアップデートなどによりサーバプログラム４１１を構成するプログラムデータ４１２およびリソースデータ４１３に変更が加えられる。
【０１１２】
サーバプログラム同期手段４１５はサーバプログラム４１１を監視して、プログラムデータ４１２とリソースデータ４１３の変化を察知すると、通信手段４１０を用いてプロキシサーバ４２１に接続し、サーバプログラム同期手段４２８にデータの変更が起きたことをデータの差分とともに通知する。
【０１１３】
サーバプログラム同期手段４２８はデータの差分からサーバプログラムの更新パッケージを作成する。
【０１１４】
サーバプログラム同期手段４２８は作成した更新パッケージを携帯端末４０１に配備させるよう指示する。サーバプログラム配備指示手段４２３は携帯端末４０１に接続し、サーバプログラム配備手段４０７ｂにサーバプログラムを更新する要求を更新パッケージとともに送信する。
【０１１５】
サーバプログラム配備手段４０７ｂは更新パッケージを展開し、サーバプログラム保存手段４０６に保存されている古いサーバプログラムを更新する。
【０１１６】
本実施形態のように構成すると、携帯端末４０１において、サーバプログラムの配備のために必要な通信処理は、単に、プロキシサーバ４２１に接続してHTTPリクエストを送信する（ステップＳ３０５）程度になる。本実施形態によれば、サーバプログラムの配備のために必要な通信処理をプロキシサーバ４２１が代理で行うことができ、クライアント装置の構成を単純にすることができる。
【０１１７】
以上、本発明の好適な実施の形態について説明したが、本発明はこれに限定されるものではなく、要旨を逸脱しない範囲内で種々の変形実施が可能である。上述した本実施形態における制御動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成を用いて実行することも可能である。
【０１１８】
なお、ソフトウェアを用いて処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させることが可能である。あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１１９】
例えば、プログラムは、記録媒体としてのハードディスクやROM（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、リムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。なお、リムーバブル記録媒体としては、フロッピー（登録商標）ディスク、CD-ROM（Compact Disc Read Only Memory）、MO（Magneto optical）ディスク、DVD（Digital Versatile Disc）、磁気ディスク、半導体メモリなどが挙げられる。
【０１２０】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールすることになる。また、ダウンロードサイトから、コンピュータに無線転送することになる。また、ネットワークを介して、コンピュータに有線で転送することになる。
【０１２１】
なお、この出願は、２００８年５月１４日に出願した、日本特許出願番号２００８−１２７５７８号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１２２】
４０１    携帯端末
４０２    アプリケーションサーバ
４０３    ネットワーク
４０４    クライアントプログラム
４０５    ローカルプロキシ
４０６    サーバプログラム保存手段
４０７    サーバプログラム配備手段
４０８    サーバプログラム同期手段
４０９、４１０    通信手段
４１１    サーバプログラム
４１２    プログラムデータ
４１３    リソースデータ
４１４    サーバプログラム提供手段
４１５    サーバプログラム同期手段
４２１    プロキシサーバ
４２２    アプリケーションディレクトリサーバ
【図１】
2009139437.tif 000003
【図２】
2009139437.tif 000004
【図３】
2009139437.tif 000005
【図４】
2009139437.tif 000006
【図５】
2009139437.tif 000007
【図６】
2009139437.tif 000008
【図７】
2009139437.tif 000009
【国際調査報告】
2009139437.tif 000010
2009139437.tif 000011
2009139437.tif 000012
2009139437.tif 000013