(57)【特許請求の範囲】
【請求項１】
サーバと、前記サーバと接続可能な端末装置と、を含むサービス提供システムであって、
前記サーバは、
サービスの実行に使用する使用情報を格納するデータ格納部と、
前記端末装置から前記サービスを実行する旨のサービス要求を受信するサーバ通信部と、
前記サーバ通信部が受信したサービス要求にて要求されるサービスを実行するプログラムを生成し、該プログラムと、前記データ格納部内の使用情報とを前記端末装置に送信する生成部と、を含み、
前記端末装置は、
前記サービス要求を前記サーバに送信する管理部と、
前記サーバから前記プログラムおよび前記使用情報を受信する端末通信部と、
前記端末通信部が受信したプログラムを、前記端末通信部が受信した使用情報を使用して実行する実行部と、を含むサービス提供システム。
【請求項２】
請求項１に記載のサービス提供システムにおいて、
前記端末装置は、
前記端末通信部が受信したプログラムを格納するプログラム格納部と、
前記端末通信部が受信した使用情報を格納する情報格納部と、
前記サービス要求を生成する作成部と、を含み、
前記管理部は、前記作成部が前記サービス要求を生成すると、前記プログラム格納部内に前記プログラムがあるか否かを判定し、前記プログラムがないと判定すると、前記サービス要求を送信し、
前記実行部は、前記管理部にて前記プログラムがあると判定されると、該プログラムを、前記情報格納部内の使用情報を使用して実行する、サービス提供システム。
【請求項３】
請求項２に記載のサービス提供システムにおいて、
前記端末装置は、前記管理部にて前記プログラムがあると判定されると、自装置の状態に基づいて、前記サービスを自装置で実行するか前記サーバで実行するかを判定する状態監視部を含み、
前記実行部は、前記状態監視部にて前記サービスを自装置で実行すると判定されると、前記プログラムを実行し、
前記管理部は、前記状態監視部にて前記サービスを前記サーバで実行すると判定されると、前記サービス要求を送信し、
前記サーバは、
前記生成部が前記プログラムを送信すると、前記プログラムを送信した旨の送信済み情報を格納する要求管理格納部と、
前記生成部が生成したプログラムを格納するプログラム格納部と、
前記サーバ通信部が前記サービス要求を受信すると、前記要求管理格納部内に前記送信済み情報があるか否かを判定する解析部と、
前記解析部にて前記送信済み情報があると判定されると、前記プログラム格納部内のプログラムを、前記データ格納部内の使用情報を使用して実行するサーバ実行部と、を含む、サービス提供システム。
【請求項４】
請求項３に記載のサービス提供システムにおいて、
前記端末装置と前記サーバとは、ネットワークを介して接続可能であり、
前記状態監視部は、自装置が前記ネットワークと接続可能であると、前記サービスを前記サーバで実行すると判定し、自装置が前記ネットワークと接続可能でないと、前記サービスを自装置で実行すると判定する、サービス提供システム。
【請求項５】
請求項３に記載のサービス提供システムにおいて、
前記自装置の状態は、自装置の負荷であり、
前記状態監視部は、前記負荷が予め定められた基準値以上であると、前記サービスを前記サーバで実行すると判定し、前記負荷が前記基準値未満であると、前記サービスを自装置で実行すると判定する、サービス提供システム。
【請求項６】
請求項３ないし５のいずれか１項に記載のサービス提供システムにおいて、
前記サーバ実行部は、前記サービスの実行結果を前記端末装置に送信し、
前記端末通信部は、前記サーバとの接続状態を監視し、また、前記サーバから前記実行結果を受信し、
前記実行部は、前記管理部が前記サービス要求を送信してから前記端末通信部が前記実行結果を受信するまでに、前記端末通信部が前記サーバとの接続が切断されたことを検知すると、前記プログラム格納部内のプログラムを実行する、サービス提供システム。
【請求項７】
請求項３ないし６のいずれか１項に記載のサービス提供システムにおいて、
前記端末装置は、前記実行部が実行したプログラムに関する履歴情報を生成し、該履歴情報を前記サーバに送信する履歴収集部を含み、
前記サーバ通信部は、前記端末装置から前記履歴情報を受信し、
前記サーバは、
履歴情報格納部と、
前記サーバ実行部が実行したプログラムに関する履歴情報を生成し、該生成した履歴情報を前記履歴情報格納部に格納し、また、前記サーバ通信部が受信した履歴情報を、前記履歴情報格納部内の履歴情報にマージする履歴情報管理部と、を含み、
前記生成部は、前記履歴情報管理部がマージした履歴情報に基づいて、前記プログラムを生成する、サービス提供システム。
【請求項８】
サーバと接続可能な端末装置であって、
サービスを実行する旨のサービス要求を前記サーバに送信する管理部と、
前記サーバから、前記サービスを実行するプログラムと、前記サービスの実行に使用する使用情報とを受信する端末通信部と、
前記端末通信部が受信したプログラムを、前記端末通信部が受信した使用情報を使用して実行する実行部と、を含む端末装置。
【請求項９】
請求項８に記載の端末装置において、
前記端末通信部が受信したプログラムを格納するプログラム格納部と、
前記端末通信部が受信した使用情報を格納する情報格納部と、
前記サービス要求を生成する作成部と、を含み、
前記管理部は、前記作成部が前記サービス要求を生成すると、前記プログラム格納部内に前記プログラムがあるか否かを判定し、前記プログラムがないと判定すると、前記サービス要求を送信し、
前記実行部は、前記管理部にて前記プログラムがあると判定されると、該プログラムを、前記情報格納部内の使用情報を使用して実行する、端末装置。
【請求項１０】
請求項９に記載の端末装置において、
前記管理部にて前記プログラムがあると判定されると、自装置の状態に基づいて、前記サービスを自装置で実行するか前記サーバで実行するかを判定する状態監視部を含み、
前記実行部は、前記状態監視部にて前記サービスを自装置で実行すると判定されると、前記プログラムを実行し、
前記管理部は、前記状態監視部にて前記サービスを前記サーバで実行すると判定されると、前記サービス要求を送信する、端末装置。
【請求項１１】
請求項１０に記載の端末装置において、
前記端末装置と前記サーバとは、ネットワークを介して接続可能であり、
前記状態監視部は、自装置が前記ネットワークと接続可能であると、前記サービスを前記サーバで実行すると判定し、自装置が前記ネットワークと接続可能でないと、前記サービスを自装置で実行すると判定する、端末装置。
【請求項１２】
請求項１０に記載の端末装置において、
前記自装置の状態は、自装置の負荷であり、
前記状態監視部は、前記負荷が予め定められた基準値以上であると、前記サービスを前記サーバで実行すると判定し、前記負荷が前記基準値未満であると、前記サービスを自装置で実行すると判定する、端末装置。
【請求項１３】
請求項１０ないし１２のいずれか１項に記載の端末装置において、
前記端末通信部は、前記サーバとの接続状態を監視し、また、前記サーバから前記サービス要求にて要求されたサービスの実行結果を受信し、
前記実行部は、前記管理部が前記サービス要求を送信してから前記端末通信部が前記実行結果を受信するまでに、前記端末通信部が前記サーバとの接続が切断されたことを検知すると、前記プログラム格納部内の前記プログラムを実行する、端末装置。
【請求項１４】
端末装置と接続可能なサーバであって、
サービスの実行に使用する使用情報を格納するデータ格納部と、
前記端末装置から前記サービスを実行する旨のサービス要求を受信するサーバ通信部と、
前記サーバ通信部が受信したサービス要求にて要求されるサービスを実行するプログラムを生成し、該プログラムと、前記データ格納部内の使用情報とを前記端末装置に送信する生成部と、を含むサーバ。
【請求項１５】
請求項１４に記載のサーバにおいて、
前記サーバ通信部は、前記端末装置から前記プログラムに関する履歴情報を受信し、
履歴情報格納部と、前記サーバ実行部が実行したプログラムに関する履歴情報を生成し、該生成した履歴情報を前記履歴情報格納部に格納し、また、前記サーバ通信部が受信した履歴情報を、前記履歴情報格納部内の履歴情報にマージする履歴情報管理部と、を含み、
前記生成部は、前記履歴情報管理部がマージした履歴情報に基づいて、前記プログラムを生成する、サーバ。
【請求項１６】
サービスの実行に使用する使用情報を格納するデータ格納部を含むサーバと、前記サーバと接続可能な端末装置と、を含むサービス提供システムによるサービス提供方法であって、
前記端末装置が、前記サービスを実行する旨のサービス要求を前記サーバに送信する要求送信ステップと、
前記サーバが、前記端末装置から前記サービス要求を受信する要求受信ステップと、
前記サーバが、前記受信されたサービス要求にて要求されるサービスを実行するプログラムを生成する生成ステップと、
前記サーバが、前記生成されたプログラムと、前記データ格納部内の使用情報とを前記端末装置に送信するプログラム送信ステップと、
前記端末装置が、前記サーバから前記プログラムおよび前記使用情報を受信するプログラム受信ステップと、
端末装置が、前記受信されたプログラムを、前記受信された使用情報を使用して実行する実行ステップと、を含むサービス提供方法。
【請求項１７】
請求項１６に記載のサービス提供方法において、
前記端末装置が、前記受信されたプログラムを格納するプログラム格納ステップと、
前記端末装置が、前記受信された使用情報を格納する情報格納ステップと、
前記端末装置が、前記サービス要求を生成する作成ステップと、
前記端末装置が、前記サービス要求が生成されると、自装置に前記プログラムがあるか否かを判定する存在判定ステップと、
前記端末装置が、前記プログラムがないと判定されると、前記サービス要求を送信する判定後送信ステップと、
前記端末装置が、前記プログラムがないと判定されると、該プログラムを、自装置内の使用情報を使用して実行する判定後実行ステップと、を含むサービス提供方法。
【請求項１８】
請求項１７に記載のサービス提供方法において、
前記サーバが、前記プログラムが送信されると、前記プログラムを送信した旨の送信済み情報を格納する要求管理ステップと、
前記サーバが、前記生成されたプログラムを格納する記憶ステップと、
前記端末装置が、前記プログラムがあると判定されると、自装置の状態に基づいて、前記サービスを自装置で実行するか前記サーバで実行するかを判定する状態判定ステップと、
前記端末装置が、前記サービスを自装置で実行すると判定されると、前記プログラムを実行する判断後実行ステップと、
前記端末装置が、前記サービスを前記サーバで実行すると判定されると、前記サービス要求を送信する判断後送信ステップと、
前記サーバが、前記サービス要求が受信されると、自サーバ内に前記送信済み情報があるか否かを判定する解析ステップと、
前記サーバが、前記送信済み情報があると判定されると、前記プログラムを、前記データ格納部内の使用情報を使用して実行するサーバ実行ステップと、を含むサービス提供方法。
【請求項１９】
請求項１８に記載のサービス提供方法において、
前記端末装置と前記サーバとは、ネットワークを介して接続可能であり、
前記状態判定ステップでは、前記端末装置が前記ネットワークと接続可能であると、前記サービスを前記サーバで実行すると判定し、自装置が前記ネットワークと接続可能でないと、前記サービスを自装置で実行すると判定する、サービス提供方法。
【請求項２０】
請求項１８に記載のサービス提供方法において、
前記端末装置の状態は、自装置の負荷であり、
前記状態判定ステップでは、前記負荷が予め定められた基準値以上であると、前記サービスを前記サーバで実行すると判定し、前記負荷が前記基準値未満であると、前記サービスを自装置で実行すると判定する、サービス提供方法。
【請求項２１】
請求項１８ないし２０のいずれか１項に記載のサービス提供方法において、
前記サーバが、前記サービスの実行結果を前記端末装置に送信する結果送信ステップと、
前記端末装置が、前記サーバから前記実行結果を受信する結果受信ステップと、
前記端末装置が、前記サーバとの接続状態を監視して、前記サービス要求が送信されてから前記実行結果が受信されるまでに、前記サーバとの接続が切断されたことを検知すると、自装置内のプログラムを実行する切断後実行ステップと、を含むサービス提供方法。
【請求項２２】
請求項１８ないし２１のいずれか１項に記載のサービス提供方法において、
前記サーバが、自サーバが実行したプログラムに関する履歴情報を生成する履歴生成ステップと、
前記サーバが、前記生成された履歴情報を格納する履歴格納ステップと、
前記端末装置が、自装置が実行したプログラムに関する履歴情報を生成する履歴作成ステップと、
前記端末装置が、前記生成された履歴情報を前記サーバに送信する履歴送信ステップと、
前記サーバが、前記端末装置から前記履歴情報を受信する履歴受信ステップと、
前記サーバが、前記受信された履歴情報を、自サーバ内の履歴情報にマージするマージステップと、
前記サーバが、前記マージされた履歴情報に基づいて、前記プログラムを生成するマージ後生成ステップと、を含むサービス提供方法。
【請求項２３】
サーバと接続可能な端末装置によるサービス提供方法であって、
サービスを実行する旨のサービス要求を前記サーバに送信する要求送信ステップと、
前記サーバから、前記サービスを実行するプログラムと、前記サービスの実行に使用する使用情報とを受信するプログラム受信ステップと、
前記受信されたプログラムを、前記受信された使用情報を使用して実行する実行ステップと、を含むサービス提供方法。
【請求項２４】
請求項２３に記載のサービス提供方法において、
前記受信されたプログラムを格納するプログラム格納ステップと、
前記受信された使用情報を格納する情報格納ステップと、
前記サービス要求を生成する作成ステップと、
前記サービス要求が生成されると、自装置内に前記プログラムがあるか否かを判定する存在判定ステップと、
前記プログラムがないと判定されると、前記サービス要求を送信する判定後送信ステップと、
前記プログラムがないと判定されると、該プログラムを、自装置内の使用情報を使用して実行する判定後実行ステップと、を含むサービス提供方法。
【請求項２５】
請求項２４に記載のサービス提供方法において、
前記プログラムがあると判定されると、前記端末装置の状態に基づいて、前記サービスを自装置で実行するか前記サーバで実行するかを判定する状態判定ステップと、
前記サービスを自装置で実行すると判定されると、前記プログラムを実行する判断後実行ステップと、
前記サービスを前記サーバで実行すると判定されると、前記サービス要求を送信する判断後送信ステップと、を含むサービス提供方法。
【請求項２６】
請求項２５に記載のサービス提供方法において、
前記端末装置と前記サーバとは、ネットワークを介して接続可能であり、
前記状態判定ステップでは、前記端末装置が前記ネットワークと接続可能であると、前記サービスを前記サーバで実行すると判定し、自装置が前記ネットワークと接続可能でないと、前記サービスを自装置で実行すると判定する、サービス提供方法。
【請求項２７】
請求項２５に記載のサービス提供方法において、
前記端末装置の状態は、自装置の負荷であり、
前記状態判定ステップでは、前記負荷が予め定められた基準値以上であると、前記サービスを前記サーバで実行すると判定し、前記負荷が前記基準値未満であると、前記サービスを自装置で実行すると判定する、サービス提供方法。
【請求項２８】
請求項２５ないし２７のいずれか１項に記載のサービス提供方法において、
前記サーバから前記サービス要求にて要求されたサービスの実行結果を受信する結果受信ステップと、
前記サーバとの接続状態を監視して、前記サービス要求が送信されてから前記実行結果が受信されるまでに、前記サーバとの接続が切断されたことを検知すると、自装置内のプログラムを実行する切断後実行ステップと、を含むサービス提供方法。
【請求項２９】
サービスの実行に使用する使用情報を格納するデータ格納部を含み端末装置と接続可能なサーバによるサービス提供方法であって、
前記端末装置から前記サービスを実行する旨のサービス要求を受信する要求受信ステップと、
前記受信されたサービス要求にて要求されるサービスを実行するプログラムを生成する生成ステップと、
前記生成されたプログラムと、前記データ格納部内の使用情報とを前記端末装置に送信するプログラム送信ステップと、を含むサービス提供方法。
【請求項３０】
請求項２９に記載のサービス提供方法において、
前記サーバが実行したプログラムに関する履歴情報を生成する履歴生成ステップと、
前記生成された履歴情報を格納する履歴格納ステップと、
前記端末装置から該端末装置が実行したプログラムに関する履歴情報を受信する履歴受信ステップと、
前記受信された履歴情報を、前記サーバ内の履歴情報にマージするマージステップと、
前記マージされた履歴情報に基づいて、前記プログラムを生成するマージ後生成ステップと、を含むサービス提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サービス提供システム、端末装置、サーバおよびサービス提供方法に関し、特には、クライアント・サーバモデルにおいて、クライアントとサーバが無線ネットワークを介して接続されている環境におけるサービス提供システム、端末装置、サーバおよびサービス提供方法に関する。
【背景技術】
【０００２】
従来、クライアント・サーバモデルのサービス提供システムがある。このサービス提供システムでは、クライアントがネットワーク上のサーバにサービスを要求し、サーバからその要求に対する応答を受信する。
【０００３】
このようなサービス提供システムを実現する技術としては、特許文献１に記載の送信映像リコメンド方法と、特許文献２に記載のサービス配信システムとがある。
【０００４】
特許文献１に記載の送信映像リコメンド方法では、サービスとして映像の視聴が用いられ、映像視聴時の視聴者の操作内容などの視聴履歴に基づき、視聴者の趣味または嗜好などを反映した映像を配信することが可能になっている。
【０００５】
図１８は、この送信映像リコメンド方法を実施する送信映像リコメンド装置の構成を示したブロック図である。この送信映像リコメンド装置は、クライアントに相当する視聴者端末１と、サーバに相当するポータルサーバ３とを含む。
【０００６】
ポータルサーバ３は、映像を意味データで表した映像情報をメタデータデータベース３９に登録する。また、ポータルサーバ３は、視聴者端末１の視聴履歴を視聴者端末毎に視聴履歴データベース３７に登録する。
【０００７】
ポータルサーバ３は、視聴者端末１から視聴要求を受信すると、この視聴要求に応じてその視聴者端末１の視聴履歴を視聴履歴データベース３７から検索する。ポータルサーバ３は、その検索した視聴履歴に基づいて、メタデータデータベース３９内の映像情報から視聴者にリコメンドする映像情報を特定するための再生コマンドを生成する。ポータルサーバ３は、その生成した再生コマンドを視聴者端末１に返信する。
【０００８】
視聴者端末１は、その再生コマンドを受信すると、その再生コマンドに従って映像配信事業者から映像を取得する。視聴者端末１は、その取得した映像を視聴した際の操作内容を視聴履歴としてポータルサーバ３に送信する。ここで、視聴履歴は、その映像の再生や停止などに関する情報であり、視聴履歴送信手段１７によって生成さる。また、視聴履歴は、その映像の視聴終了後に送信される。
【０００９】
また、特許文献２に記載のサービス配信システムでは、サービスとして交通情報の表示が用いられる。サーバに相当するサービス配信サーバは、ユーザの要求に応じて、交通情報を表示するプログラムを送信する。クライアントに相当する移動端末は、そのプログラムを実行して、その交通情報をサービス配信サーバから取得し、その交通情報を表示している。
【特許文献１】特開２００５−１１００１６号公報
【特許文献２】特開２００３−３０８２１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
クライアントが携帯電話などの無線通信機器の場合、特許文献１に記載の送信映像リコメンド方法や特許文献２に記載のサービス配信システムでは、サービスを受けることができないことがある。これは、無線通信機器は、ネットワークの安定性がなく、通常、そのネットワークとの接続が断続的に切断されるためである。
【００１１】
つまり、サービスの実行中にネットワークが切断されると、サービスを受けることができないという問題点が生じる。
【００１２】
特許文献１に記載の送信映像リコメンド方法では、ポータルサーバ３は、視聴者端末１から受信した視聴要求に対して、再生コマンドを送信するのみであり、実際の映像送信は、視聴者端末１がネットワークを介して映像配信事業者から取得する。したがって、サービスを実行するためには、視聴者端末１は映像配信事業者のサーバなどに接続しなければならない。よって、サービスの実行中にネットワークが切断された場合、サービスの実行に使用する映像を取得することができなくなり、その映像を視聴することができなくなる。
【００１３】
また、特許文献２に記載のサービス配信システムでは、交通情報をサービス配信サーバから取得している。したがって、サービスを実行するためには、携帯端末は、サービス配信サーバに接続しなければならない。よって、サービスの実行中にネットワークが切断された場合、サービスの実行に使用する交通情報を取得することができなくなり、その交通情報を表示することができなくなる。
【００１４】
本発明の目的は、上述した課題である、ネットワークが切断された場合に、サービスを受けることができないという問題点を解決する、サービス提供システム、端末装置、サーバおよびサービス提供方法を提供することである。
【課題を解決するための手段】
【００１５】
本発明によるサービス提供システムは、サーバと、前記サーバと接続可能な端末装置と、を含むサービス提供システムであって、前記サーバは、サービスの実行に使用する使用情報を格納するデータ格納部と、前記端末装置から前記サービスを実行する旨のサービス要求を受信するサーバ通信部と、前記サーバ通信部が受信したサービス要求にて要求されるサービスを実行するプログラムを生成し、該プログラムと、前記データ格納部内の使用情報とを前記端末装置に送信する生成部と、を含み、前記端末装置は、前記サービス要求を前記サーバに送信する管理部と、前記サーバから前記プログラムおよび前記使用情報を受信する端末通信部と、前記端末通信部が受信したプログラムを、前記端末通信部が受信した使用情報を使用して実行する実行部と、を含む。
【００１６】
また、本発明による端末装置は、サーバと接続可能な端末装置であって、サービスを実行する旨のサービス要求を前記サーバに送信する管理部と、前記サーバから、前記サービスを実行するプログラムと、前記サービスの実行に使用する使用情報とを受信する端末通信部と、前記端末通信部が受信したプログラムを、前記端末通信部が受信した使用情報を使用して実行する実行部と、を含む。
【００１７】
また、本発明によるサーバは、端末装置と接続可能なサーバであって、サービスの実行に使用する使用情報を格納するデータ格納部と、前記端末装置から前記サービスを実行する旨のサービス要求を受信するサーバ通信部と、前記サーバ通信部が受信したサービス要求にて要求されるサービスを実行するプログラムを生成し、該プログラムと、前記データ格納部内の使用情報とを前記端末装置に送信する生成部と、を含む。
【００１８】
また、本発明による第一のサービス提供方法は、サービスの実行に使用する使用情報を格納するデータ格納部を含むサーバと、前記サーバと接続可能な端末装置と、を含むサービス提供システムによるサービス提供方法であって、前記端末装置が、前記サービスを実行する旨のサービス要求を前記サーバに送信する要求送信ステップと、前記サーバが、前記端末装置から前記サービス要求を受信する要求受信ステップと、前記サーバが、前記受信されたサービス要求にて要求されるサービスを実行するプログラムを生成する生成ステップと、前記サーバが、前記生成されたプログラムと、前記データ格納部内の使用情報とを前記端末装置に送信するプログラム送信ステップと、前記端末装置が、前記サーバから前記プログラムおよび前記使用情報を受信するプログラム受信ステップと、端末装置が、前記受信されたプログラムを、前記受信された使用情報を使用して実行する実行ステップと、を含む。
【００１９】
また、本発明による第二のサービス提供方法は、サーバと接続可能な端末装置によるサービス提供方法であって、サービスを実行する旨のサービス要求を前記サーバに送信する要求送信ステップと、前記サーバから、前記サービスを実行するプログラムと、前記サービスの実行に使用する使用情報とを受信するプログラム受信ステップと、前記受信されたプログラムを、前記受信された使用情報を使用して実行する実行ステップと、を含む。
【００２０】
また、本発明による第三のサービス提供方法は、サービスの実行に使用する使用情報を格納するデータ格納部を含み端末装置と接続可能なサーバによるサービス提供方法であって、前記端末装置から前記サービスを実行する旨のサービス要求を受信する要求受信ステップと、前記受信されたサービス要求にて要求されるサービスを実行するプログラムを生成する生成ステップと、記生成されたプログラムと、前記データ格納部内の使用情報とを前記端末装置に送信するプログラム送信ステップと、を含む。
【発明の効果】
【００２１】
本発明によれば、ネットワークとの接続が切断されてもサービスを受けることが可能になる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を参照して説明する。なお、各図面において、同じものには同じ符号を付し、説明を省略することがある。
【００２３】
図１は、本発明の第一の実施の形態のサービス提供システムを示したブロック図である。
【００２４】
図１において、サービス提供システムは、サーバ１００と、クライアント２００とを含む。なお、サーバ１００およびクライアント２００は、ネットワーク３００を介して相互に接続可能である。
【００２５】
サーバ１００は、通信制御部１０１と、サービス関連データ格納部１０２と、サービス処理プログラム生成部１０３とを含む。
【００２６】
通信制御部１０１は、クライアントとの接続を制御するサーバ通信部である。通信制御部１０１は、クライアント２００から、サービスを実行する旨のサービス要求を受信する。
【００２７】
ここで、サービスとは、例えば、ＷＥＢブラウザ上での翻訳サービスのように、クライアント２００の要求（翻訳したい文）を実行し、実行結果（翻訳後の文）をクライアント２００に提供する、一連の処理単位である。
【００２８】
サービス関連データ格納部１０２は、サービス関連データを格納するデータ格納部である。サービス関連データは、サービスに関連するデータであり、そのサービスの実行に使用する使用情報である。サービス関連データは、例えば、サービスが翻訳サービスの場合、文の翻訳に用いる辞書などである。
【００２９】
サービス処理プログラム生成部（以下、生成部と称する）１０３は、通信制御部１０１が受信したサービス要求にて要求されるサービスを実行するサービス処理プログラムを生成する生成部である。生成部１０３は、その生成したサービス処理プログラムと、サービス関連データ格納部１０２内の使用情報とをクライアント２００に送信する。
【００３０】
クライアント２００は、通信制御部２０１と、サービス管理部２０２と、サービス処理プログラム制御部２０３とを含む。
【００３１】
通信制御部２０１は、サーバ１００との接続を制御する端末通信部である。通信制御部２０１は、サーバ１００から、サービス処理プログラムおよびサービス関連データを受信する。
【００３２】
サービス管理部２０２は、サービス要求をサーバ１００に送信する管理部である。
【００３３】
サービス処理プログラム制御部２０３（以下、プログラム制御部２０３と称する）は、通信制御部２０１が受信したプログラムを起動、実行および実行終了する実行部である。
【００３４】
なお、サーバ１００の通信制御部１０１とクライアント２００の通信制御部１０１との通信は、ＨＴＴＰ通信、電子メールおよびＳＭＳ等の既存の通信手段を使用してもよいし、独自の通信手段を設けてこれを使用してもよい。
【００３５】
次に動作を説明する。
【００３６】
図２は、サービス提供システムの動作例を説明するためのフローチャートである。
【００３７】
ステップＳ１１では、サービス管理部２０２は、サービス要求を、ネットワーク３００を介してサーバ１００の通信制御部１０１に送信する。通信制御部１０１は、そのサービス要求を受信すると、そのサービス要求を生成部１０３に送信する。生成部１０３は、そのサービス要求を受信すると、ステップＳ１２を実行する。
【００３８】
ステップＳ１２では、生成部１０３は、サービス関連データ格納部１０２からサービス関連データを取得する。
【００３９】
そして、生成部１０３は、そのサービス要求にて要求されるサービスを実行するサービス処理プログラムを生成する。生成部１０３は、サービス処理プログラムプログラムを生成すると、ステップＳ１３を実行する。
【００４０】
ステップＳ１３では、生成部１０３は、そのサービス処理プログラムおよびサービス関連データを、通信制御部１０１およびネットワーク３００を介してクライアント２００の通信制御部２０１に送信する。通信制御部２０１は、そのサービス処理プログラムおよびサービス関連データを受信すると、そのサービス処理プログラムおよびサービス関連データをサービス管理部２０２に送信する。サービス管理部２０２は、そのサービス処理プログラムおよびサービス関連データを受信すると、ステップＳ１４を実行する。
【００４１】
ステップＳ１４では、サービス管理部２０２は、そのサービス処理プログラムおよびサービス関連データをプログラム制御部１０９に送信する。プログラム制御部１０９は、そのサービス処理プログラムおよびサービス関連データを受信すると、そのサービス処理プログラムを、そのサービス関連データを使用して実行し、サービスをクライアント２００のユーザに提供する。
【００４２】
次に効果を説明する。
【００４３】
本実施の形態によれば、サービス管理部２０２は、サービス要求をサーバ１００に送信する。通信制御部１０１は、そのサービス要求を受信する。生成部１０３は、通信制御部１０１が受信したサービス要求にて要求されるサービスを実行するサービス処理プログラムを生成する。生成部１０３は、その生成したサービス処理プログラムと、サービス関連データ格納部１０２内のサービス関連データとを通信制御部２０１は、サーバ１００からサービス処理プログラムおよびサービス関連データを受信する。プログラム制御部２０３は、通信制御部２０１が受信したサービス処理プログラムを、通信制御部２０１が受信したサービス関連データを使用して実行する。
【００４４】
この場合、サービス処理プログラムが、そのクライアント２００内のサービス関連データが使用されて実行される。
【００４５】
これにより、サービスの実行中に、サービスの実行に使用するサービス関連データ情報をサーバなどから取得しなくても、そのサービスを実行することが可能になる。したがって、ネットワークの接続が切断されてもサービスを受けることが可能になる。
【００４６】
次に第二の実施の形態について説明する。
【００４７】
図３は、第二の実施の形態のサービス提供システムを示したブロック図である。
【００４８】
図３において、サービス提供システムは、サーバ１００と、クライアント２００とを含む。なお、サーバ１００およびクライアント２００は、複数あってもよい。また、サーバ１００およびクライアント２００は、ネットワーク３００を介して相互に接続可能であるが、図３ではネットワーク３００を省略している。
【００４９】
サーバ１００は、通信制御部１０１と、サービス関連データ格納部１０２と、生成部１０３と、要求管理テーブル格納部１０４と、履歴情報ＤＢ１０５と、サービス処理プログラム格納部１０６と、要求解析部１０７と、履歴情報管理部１０８と、サービス処理プログラム制御部１０９とを含む。
【００５０】
通信制御部１０１は、クライアント２００から、サービス要求と、履歴情報を更新する旨の更新要求を受信する。
【００５１】
ここで、サービス要求は、サービス名と、クライアントＩＤとを含む。サービス名は、サービスの名前であり、サービスを特定するサービス識別情報の一例である。なお、サービス識別情報は、サービス名に限らず適宜変更可能である。クライアントＩＤは、クライアント２００を特定する端末識別情報の一例である。
【００５２】
また、更新要求は、サービス名と、クライアントＩＤと、サービス処理プログラムに関する履歴情報とを含む。履歴情報は、例えば、サービス処理プログラムの実行回数である。なお、履歴情報は、サービス処理プログラムの実行回数に限らず、適宜変更可能である。また、履歴情報は複数の種類があってもよい。
【００５３】
サービス関連データ格納部１０２は、サービス関連データを、履歴情報ごとに対応付けて格納する。
【００５４】
要求管理テーブル格納部１０４は、クライアント２００にサービス処理プログラムを送信した旨の送信済み情報として、そのクライアント２００を特定するクライアントＩＤを格納する要求管理格納部である。
【００５５】
履歴情報ＤＢ１０５は、履歴情報を、クライアントＩＤごとに対応付けて格納する履歴格納部である。
【００５６】
サービス処理プログラム格納部１０６は、サービス処理プログラムを、履歴情報ごとに対応付けて格納するプログラム格納部である。
【００５７】
要求解析部１０７は、通信制御部１０１が受信した要求に基づいて、サービス処理プログラムをクライアント２００に送信するのか、サービス処理プログラムをサーバ１００で実行するのか、または、履歴情報ＤＢ１０５内の履歴情報を更新するのかを判定する解析部である。
【００５８】
具体的には、要求解析部１０７は、その要求内に履歴情報が含まれると、その要求を更新要求と判定し、履歴情報を更新すると判定する。
【００５９】
一方、要求解析部１０７は、その要求内に履歴情報が含まれないと、その要求をサービス要求と判定し、そのサービス要求内のクライアントＩＤが、要求管理テーブル格納部１０４内にあるか否かを判定する。
【００６０】
要求解析部１０７は、そのクライアントＩＤがあると、サービス処理プログラムをサーバ１００で実行すると判定し、一方、そのクライアントＩＤがないと、サービス処理プログラムをサーバ１００で実行すると判定する。
【００６１】
履歴情報管理部１０８は、通信制御部１０１が受信したサービス要求内のクライアントＩＤに対応した履歴情報を、履歴情報ＤＢ１０５から取得する。
【００６２】
また、履歴情報管理部１０８は、サービス処理プログラム制御部１０９（以下、プログラム制御部１０９と称する）を監視する。履歴情報管理部１０８は、プログラム制御部１０９がサービス処理プログラムを実行すると、通信制御部１０１が受信したサービス要求内のクライアントＩＤに対応した履歴情報を生成する。履歴情報管理部１０８は、その生成した履歴情報をそのクライアントＩＤと対応付けて履歴情報ＤＢ１０５に格納する。
【００６３】
このとき、履歴情報管理部１０８は、既に履歴情報ＤＢ１０５内でそのクライアントＩＤに履歴情報が対応付けられている場合、その生成した履歴情報に、そのクライアントＩＤに対応した履歴ＤＢ１０５内の履歴情報を更新する。
【００６４】
さらに、履歴情報管理部１０８は、通信制御部１０１が受信した更新要求内の履歴情報を、その更新要求内のクライアントＩＤと対応付けて履歴情報ＤＢ１０５に格納する。
【００６５】
このとき、履歴情報管理部１０８は、既に履歴情報ＤＢ１０５内でそのクライアントＩＤに履歴情報が対応付けられている場合、その更新要求内の履歴情報を、そのクライアントＩＤに対応した履歴情報ＤＢ１０５内の履歴情報にマージする。
【００６６】
例えば、その更新要求内の履歴情報が実行回数「５」を示し、そのクライアントＩＤに対応した履歴情報ＤＢ１０５内の履歴情報が実行回数「３」を示す場合、履歴情報管理部１０８は、それらの履歴情報をマージする。これにより、実行回数「８」を示す履歴情報が、そのクライアントＩＤと対応付けられて履歴情報ＤＢ１０５に格納される。
【００６７】
プログラム制御部１０９は、サービス処理プログラムを起動、実行および実行終了するサーバ実行部である。
【００６８】
例えば、プログラム制御部１０９は、要求解析部１０７がサービス処理プログラムをサーバ１００で実行すると判定すると、履歴情報管理部１０８が取得した履歴情報に対応したサービス処理プログラム格納部１０６内のサービス処理プログラムを実行する。プログラム制御部１０９は、その実行結果をクライアント２００に送信する。
【００６９】
生成部１０３は、要求解析部１０７がサービス処理プログラムをクライアント２００で実行すると判定すると、通信制御部１０１が受信したサービス要求内のクライアントＩＤに対応した履歴情報に基づいて、サービス処理プログラムを生成する。
【００７０】
また、生成部１０３は、履歴情報管理部１０８が履歴情報を格納すると、その格納した履歴情報に基づいて、サービス処理プログラムを生成する。
【００７１】
例えば、生成部１０３は、サービス処理プログラムの基準となる基準プログラムを保持し、その履歴情報に応じた情報をその基準プログラムに追加したり、その履歴情報に応じたインタフェースを生成し、そのインタフェースをその基準プログラムに組み込んだりしてサービス処理プログラムを生成する。
【００７２】
なお、サービス処理プログラムは、通信制御部１０１が受信したサービス要求または更新要求内のサービス名と、自プログラムのプログラム名とを含む。プログラム名は、サービス処理プログラムを特定するプログラム識別情報の一例である。なお、プログラム識別情報は、プログラム名に限らず適宜変更可能である。
【００７３】
生成部１０３は、サービス処理プログラムを生成すると、サービス処理プログラムを実行することが可能な実行条件を生成する。実行条件は、例えば、サービス処理プログラムを実行することが可能な有効期限、または、サービス処理プログラムを実行することが可能な有効回数などである。なお、実行条件は、有効期限または有効回数に限らず適宜変更可能である。
【００７４】
生成部１０３は、その生成したサービス処理プログラムおよび実行条件と、その履歴情報に対応したサービス関連データ格納部１０２内のサービス関連データと、をクライアント２００に送信する。
【００７５】
ここで、サービス関連データ内の、履歴情報に対応したサービス関連データだけを送信することが可能になるので、サービス関連データの送受信にかかる時間やパケット料金を削減することが可能になる。また、クライアント２００のメモリの使用量の増加を抑制することが可能になる。
【００７６】
また、生成部１０３は、サービス処理プログラム、実行条件およびサービス関連データを送信すると、通信制御部１０１が受信したサービス要求内のクライアントＩＤを要求管理テーブル格納部１０４に格納する。
【００７７】
クライアント２００は、通信制御部２０１と、サービス管理部２０２と、プログラム制御部２０３と、サービス管理テーブル格納部２０４と、サービス関連データ格納部２０５と、アプリケーション格納部２０６と、履歴情報ＤＢ２０７と、クライアントＩＤ格納部２０８と、サービス処理プログラム格納部２０９と、アプリケーション制御部２１０と、履歴収集部２１１と、表示部２１２とを含む。
【００７８】
通信制御部２０１は、サーバ１００から、サービス処理プログラム、サービス関連データおよび実行条件と、実行結果とを受信する端末通信部である。
【００７９】
サービス管理テーブル格納部２０４は、通信制御部２０１が受信したサービス処理プログラム内のサービス名およびプログラム名と、通信制御部２０１が受信した実行条件とを対応付けたサービス管理テーブルを格納するサービス管理格納部である。
【００８０】
サービス関連データ格納部２０５は、通信制御部２０１が受信したサービス処理プログラム内のサービス名と、通信制御部２０１が受信したサービス関連データとを対応付けて格納する情報格納部である。
【００８１】
アプリケーション格納部２０６は、クライアント２００で使用されるアプリケーションプログラムを格納する。アプリケーションプログラムは、例えば、ＷＥＢブラウザなどである。なお、アプリケーションプログラムは、ＷＥＢブラウザに限らず適宜変更可能である。
【００８２】
履歴情報ＤＢ２０７は、履歴情報をサービス名ごとに対応付けて格納する。
【００８３】
クライアントＩＤ格納部２０８は、自クライアントを特定するクライアントＩＤを格納する。
【００８４】
サービス処理プログラム格納部２０９は、通信制御部２０１が受信したサービス処理プログラムを格納するプログラム格納部である。
【００８５】
アプリケーション制御部２１０は、サービス要求を生成する作成部である。なお、このサービス要求は、サービス名を含むが、クライアントＩＤは含まないものとする。
【００８６】
具体的には、アプリケーション制御部２１０は、アプリケーション格納部２０６内のアプリケーションプログラムを実行し、そのアプリケーションプログラムの起動時または実行中にサービス要求を生成することがある。
【００８７】
サービス管理部２０２は、アプリケーション制御部２１０がサービス要求を生成すると、そのサービス要求をサーバ１００に送信するか否かを判定する。
【００８８】
具体的には、サービス管理部２０２は、そのサービス要求内のサービス名に対するサービス処理プログラムがサービス処理プログラム格納部２０９内にあるか否かを判定する。なお、サービス名に対するサービス処理プログラムは、そのサービス名のサービスを実行するサービス処理プログラムである。
【００８９】
このとき、例えば、先ず、サービス管理部２０２は、そのサービス名がサービス管理テーブル格納部２０４内にあるか否かを確認する。続いて、サービス管理部２０２は、そのサービス名があると、そのサービス処理プログラムがあると判定し、一方、そのサービス名がないと、そのサービス処理プログラムがないと判定する。
【００９０】
また、サービス管理部２０２は、サービス処理プログラム格納部２０９を確認して、直接、そのサービス名を含むサービス処理プログラムがサービス処理プログラム格納部２０９内にあるか否かを判定してもよい。
【００９１】
サービス管理部２０２は、そのサービス処理プログラムがあると判定すると、そのサービス要求を送信すると判定し、そのサービス要求をサーバ１００に送信する。
【００９２】
また、サービス管理部２０２は、予め定められたタイミングまたは周期で、要求管理テーブル格納部１０４内の実行条件が満足されているか否かを、サービス名ごとに判定する。そのタイミングまたは周期は、例えば、サービス要求を送信したタイミングや一日毎などである。なお、このタイミングまたは周期は、これらの例に限らず適宜変更可能である。また、このタイミングまたは周期は、固定されていてもよいし、クライアント２００のユーザ等にて設定されてもよい。
【００９３】
プログラム制御部２０３は、サービス管理部２０２にてサービス処理プログラムが格納されていると判定されると、サービス処理プログラム格納部２０９内のそのサービス処理プログラムを実行する。
【００９４】
また、プログラム制御部２０３は、通信制御部２０１がサービス処理プログラム、サービス関連データおよび実行条件を受信すると、そのサービス関連データを使用して、そのサービス処理プログラムを実行する。
【００９５】
履歴収集部２１１は、プログラム制御部２０３がサービス処理プログラムを実行したか否かを監視する。履歴収集部２１１は、プログラム制御部２０３がサービス処理プログラムを実行すると、そのサービス処理プログラムの履歴情報を生成する。履歴収集部２１１は、その履歴情報を、サービス処理プログラム内のサービス名と対応付けて履歴情報ＤＢ２０７に格納する。
【００９６】
なお、履歴収集部２１１は、履歴情報を格納する際、既に履歴情報ＤＢ２０７内にそのサービス名および履歴情報が対応付けられて格納されている場合、そのクライアントＩＤに対応した履歴情報ＤＢ２０７内の履歴情報を、その生成した履歴情報に更新する。
【００９７】
また、履歴収集部２１１は、サービス管理部２０２にて実行条件が満足されていないと判定されたサービス名があると、そのサービス名に対するサービス処理プログラムを更新する旨の更新要求を、サーバ１００に送信する。
【００９８】
表示部２１２は、通信制御部２０１が受信した実行結果と、プログラム制御部２０３が実行したサービス処理プログラムの実行結果とを表示する。
【００９９】
次に動作を説明する。
【０１００】
先ず、クライアント２００が行うサービス要求処理について説明する。
【０１０１】
図４は、クライアント２００が行うサービス要求処理について説明するためのフローチャートである。
【０１０２】
ステップＳ２１では、アプリケーション制御部２１０は、アプリケーション格納部２０６内のアプリケーションプログラムを実行する。アプリケーション制御部２１０は、そのアプリケーションプログラムの起動時または実行中に、サービス要求を生成すると、そのサービス要求をサービス管理部２０２に送信する。サービス管理部２０２は、そのサービス要求を受信すると、ステップＳ２２を実行する。
【０１０３】
ステップＳ２２では、サービス管理部２０２は、そのサービス要求内のサービス名が、サービス管理テーブル格納部２０４内にあるか否かを判定する。サービス管理部２０２は、そのサービス名がないと、そのサービス名に対するサービス処理プログラムがないと判定して、ステップＳ２３を実行する。また、サービス管理部２０２は、そのサービス名があると、そのサービス名に対するサービス処理プログラムがあると判定して、ステップＳ２４を実行する。
【０１０４】
ステップＳ２３では、サービス管理部２０２は、クライアントＩＤ格納部２０８からクライアントＩＤを取得し、そのクライアントＩＤをそのサービス要求に追加する。サービス管理部２０２は、サーバ１００と接続し、そのサービス要求を、通信制御部２０１を介してサーバ１００の通信制御部１０１に送信する。その後のサーバ１００が行うサービス提供処理の動作の説明は後述する。
【０１０５】
ここで、サーバ１００への接続は、予めクライアント２００内にサーバ１００のＵＲＬを格納し、そのＵＲＬを用いる方法や、そのアプリケーションプログラムの属性に記載されているＵＲＬを用いる方法などで行う。しかしながら、サーバ１００への接続は、これらの方法に限らず適宜変更可能である。
【０１０６】
一方、ステップＳ２４では、サービス管理部２０２は、そのサービス要求をプログラム制御部２０３に送信する。
【０１０７】
プログラム制御部２０３は、そのサービス要求を受信すると、そのサービス要求内のサービス名に対応したサービス処理プログラムをサービス処理プログラム格納部２０９から取得する。また、プログラム制御部２０３は、そのサービス名に対応したサービス関連データをサービス関連データ格納部２０５から取得する。
【０１０８】
プログラム制御部２０３は、そのサービス関連データを使用して、そのサービス処理プログラムを実行する。プログラム制御部２０３は、その実行結果をサービス管理部２０２に送信する。サービス管理部２０２は、その実行結果を受信すると、その実行結果を表示部２１２に表示する。
【０１０９】
プログラム制御部２０３は、サービス処理プログラムを実行すると、履歴収集部２１１がステップＳ２５を実行する。
【０１１０】
ステップＳ２５では、履歴収集部２１１は、プログラム制御部２０３が実行するサービス処理プログラムの実行を検知し、そのサービス処理プログラムの履歴情報を生成する。
【０１１１】
例えば、履歴収集部２１１は、履歴情報がサービス処理プログラムの実行回数の場合、履歴収集部２１１は、プログラム制御部２０３からそのサービス名を取得し、そのサービス名に対応した履歴情報ＤＢ２０７内の実行回数に１を足した値を示す履歴情報を生成する。
【０１１２】
履歴収集部２１１は、そのサービス名とその履歴情報とを対応付けて履歴情報ＤＢ２０７に格納する。
【０１１３】
次に、図４のステップＳ２３以降のサーバ１００が行うサービス提供処理について説明する。
【０１１４】
図５は、サーバ１００が行うサービス提供処理について説明するためのフローチャートである。
【０１１５】
ステップＳ３１では、サーバ１００の通信制御部１０１は、ステップＳ２３で通信制御部２０１が送信した要求を受信する。通信制御部１０１は、その要求を要求解析部１０７に送信する。
【０１１６】
要求解析部１０７は、その要求を受信すると、その要求を解析する。要求解析部１０７は、その要求に履歴情報が含まれてないので、その要求を、サービス要求と判断して、ステップＳ３２を実行する。
【０１１７】
ステップＳ３２では、要求解析部１０７は、そのサービス要求内のクライアントＩＤが要求管理テーブル格納部１０４内にあるか否かを確認する。
【０１１８】
要求解析部１０７は、そのクライアントＩＤがあると、サーバ１００でサービスを実行すると判断して、ステップＳ３３を実行する。一方、要求解析部１０７は、そのクライアントＩＤがないと、クライアント２００でサービスを実行すると判断して、ステップＳ３５を実行する。
【０１１９】
ステップＳ３３では、要求解析部１０７は、そのサービス要求をプログラム制御部１０９に送信する。
【０１２０】
プログラム制御部１０９は、そのサービス要求を受信すると、履歴情報管理部１０８を使用して、そのサービス要求内のクライアントＩＤに対応する履歴情報を履歴情報ＤＢ１０５から取得する。
【０１２１】
具体的には、先ず、プログラム制御部１０９は、履歴情報を取得する旨の取得要求を生成し、その取得要求を履歴情報管理部１０８に送信する。なお、取得要求は、そのサービス要求内のクライアントＩＤを含む。
【０１２２】
続いて、履歴情報管理部１０８は、その取得要求を受信すると、その取得要求内のクライアントＩＤに対応した履歴情報を履歴情報ＤＢ１０５から取得する。履歴情報管理部１０８は、その取得した履歴情報をプログラム制御部１０９に送信する。プログラム制御部１０９は、その履歴情報を受信することで、履歴情報を取得する。
【０１２３】
プログラム制御部１０９は、その取得した履歴情報に対応したサービス処理プログラムをサービス処理プログラム格納部１０６から取得する。また、プログラム制御部１０９は、その履歴情報に対応したサービス関連データをサービス関連データ格納部１０２から取得する。
【０１２４】
プログラム制御部１０９は、そのサービス関連データを使用して、そのサービス処理プログラムを実行する。プログラム制御部１０９は、その実行結果を、通信制御部１０１を介してクライアント２００の通信制御部２０１に送信する。通信制御部２０１は、その実行結果を受信すると、その実行結果をサービス管理部２０２に送信する。サービス管理部２０２は、その実行結果を受信すると、その実行結果を表示部２１２に表示する。
【０１２５】
また、プログラム制御部１０９がサービス処理プログラムを実行すると、履歴情報管理部１０８がステップＳ３４を実行する。
【０１２６】
ステップＳ３４では、履歴情報管理部１０８は、プログラム制御部１０９によるサービス処理プログラムの実行を検知し、そのクライアントＩＤに対するサービス処理プログラムの履歴情報を生成する。例えば、履歴情報がサービス処理プログラムの実行回数の場合、履歴情報管理部１０８は、そのクライアントＩＤと対応付けられた履歴情報ＤＢ１０５内の実行回数に１を足した値を示す履歴情報を生成する。
【０１２７】
履歴情報管理部１０８は、そのクライアントＩＤに対応した履歴情報ＤＢ１０５内の履歴情報を、その生成した履歴情報に更新する。
【０１２８】
なお、本実施の形態の構成では、通常、クライアントＩＤがある場合、クライアント２００にサービス処理プログラムがあるので、ステップＳ３３およびＳ３４が実行されることはない。しかしながら、後述する第三の実施の形態では、クライアントＩＤがある場合に、クライアント２００にサービス処理プログラムがあってもサービス要求が送信されることがあり、ステップＳ３３およびＳ３４が実行されることがある。
【０１２９】
また、ステップＳ３５では、要求解析部１０７は、そのサービス要求を生成部１０３に送信する。
【０１３０】
生成部１０３は、そのサービス要求を受信すると、履歴情報管理部１０８を使用して、そのサービス要求内のクライアントＩＤに対応する履歴情報を履歴情報ＤＢ１０５から取得する。
【０１３１】
具体的には、生成部１０３は、取得要求を生成し、その取得要求を履歴情報管理部１０８に送信する。履歴情報管理部１０８は、その取得要求を受信すると、その取得要求内のクライアントＩＤに対応した履歴情報を履歴情報ＤＢ１０５から取得する。履歴情報管理部１０８は、その取得した履歴情報を生成部１０３に送信する。生成部１０３は、その履歴情報を受信することで、履歴情報を取得する。
【０１３２】
生成部１０３は、その取得した履歴情報に対応したサービス関連データをサービス関連データ格納部１０２から取得する。また、生成部１０３は、その履歴情報に基づいて、サービス処理プログラムを生成する。さらに、生成部１０３は、実行条件を生成する。
【０１３３】
生成部１０３は、実行条件を生成すると、ステップＳ３５を終了すると、ステップＳ３６を実行する。
【０１３４】
ステップＳ３６では、生成部１０３は、そのサービス処理プログラム、サービス関連データおよび実行条件を、通信制御部１０１を介してクライアント２００の通信制御部２０１に送信する。
【０１３５】
通信制御部２０１は、そのサービス処理プログラム、サービス関連データおよび実行条件を受信すると、そのサービス処理プログラム、サービス関連データおよび実行条件をサービス管理部２０２に送信する。
【０１３６】
サービス管理部２０２は、そのサービス処理プログラム、サービス関連データおよび実行条件を受信すると、そのサービス処理プログラム内のサービス名およびプログラム名と、その実行条件を対応付けてサービス管理テーブル格納部２０４に格納する。
【０１３７】
その後、サービス管理部２０２は、サービス処理プログラムを実行する旨の実行指示を生成し、その実行指示、サービス処理プログラムおよびサービス関連データをプログラム制御部２０３に送信する。
【０１３８】
プログラム制御部２０３は、実行指示、サービス処理プログラムおよびサービス関連データを受信すると、そのサービス処理プログラムをサービス処理プログラム格納部２０９に格納し、かつ、そのサービス処理プログラム内とサービス名と、そのサービス関連データを対応付けてサービス関連データ格納部２０５に格納する。
【０１３９】
その後、プログラム制御部２０３は、そのサービス関連データを使用して、そのサービス処理プログラムを実行する。プログラム制御部２０３は、その実行結果をサービス管理部２０２に送信する。サービス管理部２０２は、その実行結果を受信すると、その実行結果を表示部２１２に表示する。
【０１４０】
プログラム制御部２０３は、サービス処理プログラムを実行すると、履歴収集部２１１が図４のステップＳ２５を実行する。
【０１４１】
次に、サービス処理プログラムの更新処理について説明する。図６は、この更新処理を説明するためのフローチャートである。
【０１４２】
ステップＳ４１では、サービス管理部２０２は、予め定められたタイミングまたは周期で要求管理テーブル内の実行条件を確認する。サービス管理部２０２は、ステップＳ４１を終了すると、ステップＳ４２を実行する。
【０１４３】
ステップＳ４２では、サービス管理部２０２は、その実行条件が満足されているか否かをサービス名ごとに判定する。
【０１４４】
例えば、実行条件が有効期限の場合、サービス管理部２０２は、現在の日時または年月日などを測定し、その現在の日時または年月日がその有効期限を満足しているか否かを判定する。
【０１４５】
また、実行条件が有効回数の場合、履歴情報が実行回数であるとすると、サービス管理部２０２は、履歴収集部２１１を使用して、サービス関連データ格納部１０２から履歴情報である実行回数をサービス名ごとに取得する。サービス管理部２０２は、サービス名ごとに、その取得した実行回数がその有効回数を満足しているか否かを判定する。
【０１４６】
サービス管理部２０２は、その実行条件が満足されていると、そのサービスを実行するサービス処理プログラムを更新しないと判定して、ステップＳ４１を実行する。一方、サービス管理部２０２は、その実行条件が満足されていないと、そのサービスを実行するサービス処理プログラムを更新すると判定して、ステップＳ４３を実行する。
【０１４７】
ステップＳ４３では、サービス管理部２０２は、クライアントＩＤ格納部２０８からクライアントＩＤを取得する。サービス管理部２０２は、そのサービス名およびクライアントＩＤを含む更新要求を生成し、その更新要求を履歴収集部２１１に送信する。
【０１４８】
履歴収集部２１１は、その更新要求を受信すると、その更新要求内のサービス名に対応した履歴情報を履歴情報ＤＢ１０５から取得する。履歴収集部２１１は、その履歴情報を更新要求に追加する。履歴収集部２１１は、ステップＳ４３を終了すると、ステップＳ４４を実行する。
【０１４９】
ステップＳ４４では、履歴収集部２１１は、その更新要求を通信制御部２０１に送信する。通信制御部２０１は、その更新要求を受信すると、クライアント２００がネットワーク３００と接続されているか否かを確認する。
【０１５０】
クライアント２００がサーバ１００と接続されていると、通信制御部２０１は、その更新要求をサーバ１００の通信制御部１０１に送信する。通信制御部１０１は、その更新要求を受信すると、ステップＳ４６を実行する。
【０１５１】
一方、クライアント２００がサーバ１００と接続されていないと、ステップＳ４１が実行される。
【０１５２】
例えば、通信制御部１０１は、その更新要求を破棄する。この場合、サービス管理部２０２が次のタイミングまたは周期で、そのサービス処理プログラムを更新する旨の更新要求を生成することになる。したがって、通信制御部２０１は、次のタイミングまたは周期でその更新要求の送信を試みることになる。
【０１５３】
なお、通信制御部２０１は、その更新要求を保持し、クライアント２００がネットワーク３００と接続されたときに、その更新要求をサーバ１００に送信してもよい。
【０１５４】
ステップＳ４６では、通信制御部１０１は、その要求（更新要求）を要求解析部１０７に送信する。要求解析部１０７は、その要求を受信すると、その要求を解析する。要求解析部１０７は、その要求に履歴情報が含まれるために、その要求を、更新要求と判断して、その更新要求を履歴情報管理部１０８に送信する。
【０１５５】
履歴情報管理部１０８は、その更新要求内の履歴情報およびクライアントＩＤを対応付けて履歴情報ＤＢ１０５に格納する。このとき、既に履歴情報ＤＢ１０５内でそのクライアントＩＤに履歴情報が対応付けられている場合、履歴情報管理部１０８は、その更新要求内の履歴情報を、そのクライアントＩＤに対応する履歴情報ＤＢ内の履歴情報にマージする。履歴情報管理部１０８は、ステップＳ４６を終了すると、ステップＳ４７を実行する。
【０１５６】
ステップＳ４７では、履歴情報管理部１０８は、その更新要求内の履歴情報を生成部１０３に送信する。生成部１０３は、その履歴情報を受信すると、その履歴情報に対応したサービス関連データをサービス関連データ格納部１０２から取得する。また、生成部１０３は、その履歴情報に基づいて、サービス処理プログラムを生成する。さらに、生成部１０３は、実行条件を生成する。
【０１５７】
生成部１０３は、実行条件を生成すると、ステップＳ４８を実行する。
【０１５８】
ステップＳ４８では、生成部１０３は、そのサービス関連データ、サービス処理プログラム実行条件を、通信制御部１０１を介してクライアント２００の通信制御部２０１に送信する。通信制御部２０１は、そのサービス関連データ、サービス処理プログラムおよび実行条件を受信すると、ステップＳ４９を実行する。
【０１５９】
ステップＳ４９では、通信制御部２０１は、そのサービス関連データ、サービス処理プログラムおよび実行条件を、そのサービス処理プログラム、サービス関連データおよび実行条件をサービス管理部２０２に送信する。
【０１６０】
サービス管理部２０２は、そのサービス処理プログラム、サービス関連データおよび実行条件を受信すると、そのサービス処理プログラム内のサービス名に対応したサービス管理テーブル格納部２０４内のプログラム名および実行条件を、そのサービス処理プログラム内のプログラム名と、その受信した実行条件とに更新する。
【０１６１】
その後、サービス管理部２０２は、サービス処理プログラムを更新する旨の更新指示を生成し、その更新指示、サービス処理プログラムおよびサービス関連データをプログラム制御部２０３に送信する。
【０１６２】
プログラム制御部２０３は、その更新指示、サービス処理プログラムおよびサービス関連データを受信すると、そのサービス処理プログラムをサービス処理プログラム格納部２０９に格納し、かつ、そのサービス処理プログラム内とサービス名と、そのサービス関連データを対応付けてサービス関連データ格納部２０５に格納する。
【０１６３】
次に効果を説明する。
【０１６４】
本実施形態によれば、アプリケーション制御部２１０がサービス要求を生成すると、サービス管理部２０２は、サービス処理プログラムがサービス処理プログラム格納部２０９内にあるか否かを判定する。サービス管理部２０２は、そのサービス処理プログラムがないと、サービス要求をサーバ１００に送信する。また、そのサービス処理プログラムがあると、プログラム制御部２０３は、そのサービス処理プログラムを実行する。
【０１６５】
この場合、サービス処理プログラムがないと、サービス要求が送信される。また、サービス処理プログラムがあると、そのサービス処理プログラムが実行される。したがって、一度サービス処理プログラムが取得されれば、サーバ１００と接続しなくても、サービスを実行することが可能になる。
【０１６６】
また、本実施形態によれば、サーバ１００の履歴情報管理部１０８は、プログラム制御部１０９が実行したサービス処理プログラムに関する履歴情報を生成し、その履歴情報を履歴情報ＤＢ１０５に格納する。クライアント２００の履歴収集部２１１は、プログラム制御部２０３が実行したサービス処理プログラムに関する履歴情報を生成し、その履歴情報をサーバ１００に送信する。サーバ１００の通信制御部１０１がその履歴情報を受信すると、履歴情報管理部１０８は、その受信された履歴情報を、履歴情報ＤＢ１０５内の履歴情報にマージする。生成部１０３は、そのマージした履歴情報に基づいて、サービス処理プログラムを生成する。
【０１６７】
この場合、クライアント２００から受信した履歴情報が、サーバ１００で生成された履歴情報にマージされる。また、サービス処理プログラムが、そのマージされた履歴情報に基づいて生成される。
【０１６８】
したがって、クライアント２００で生成された履歴情報を、サーバ１００で生成された履歴情報に反映させることが可能になり、正確な履歴情報に基づいてサービス処理プログラムを生成することが可能になる。したがって、クライアント２００に適したサービスを提供することが可能になる。
【０１６９】
また、必要なサービス処理プログラムだけを送信することが可能になるので、クライアント２００のメモリの使用量の増加を抑制することが可能になる。また、サービス処理プログラムの送受信にかかる時間やパケット料金などを削減することが可能になる。
【０１７０】
次に第三の実施の形態について説明する。
【０１７１】
図７は、本実施の形態のクライアント２００の構成を示したブロック図である。本実施の形態のクライアント２００は、図３で示した構成に加えて、状態監視部２１３を含む。なお、図７では、第一または第二の実施の形態と同一の処理を行う構成については、図示していない。図７では、クライアント２００の、通信制御部２０１、サービス管理部２０２、プログラム制御部２０３、表示部２１２および状態監視部２１３が示されている。
【０１７２】
第二の実施の形態では、図４のステップＳ２２において、サービス処理プログラムがクライアント２００にある場合には、クライアント２００がそのサービス処理プログラムを実行していた。本実施の形態では、クライアント２００の状態に応じて、サービス処理プログラムをサーバ１００で実行するかクライアント２００で実行するかを判断する。
【０１７３】
具体的には、サービス管理部２０２が、サービス要求内のサービス名に対するサービス処理プログラムがサービス処理プログラム格納部２０９内にあると判定すると、状態監視部２１３は、クライアント２００の状態を確認する。状態監視部２１３は、その確認した状態に基づいて、サービスをクライアント２００で実行するかサーバ１００で実行するかを判定する。
【０１７４】
クライアント２００の状態としては、例えば、クライアント２００のネットワーク３００との接続状態、現在のクライアント２００の負荷（ＣＰＵ利用率またはメモリ使用量など）が挙げられる。しかしながら、クライアント２００の状態は、これらに限らず適宜変更可能である。
【０１７５】
通信制御部２０１は、サーバ１００との接続状態を監視し、サーバ１００との接続が切断されると、そのサーバ１００との接続の切断を検知する。
【０１７６】
プログラム制御部２０３は、状態監視部２１３にてサービスをクライアント２００で実行すると判定されると、そのサービス要求内のサービス名に対応したサービス処理プログラム格納部２０９内のサービス処理プログラムを実行する。
【０１７７】
サービス管理部２０２は、状態監視部２１３にてサービスをサーバ１００で実行すると判定されると、そのサービス要求をサーバ１００に送信する。
【０１７８】
また、サービス管理部２０２は、そのサービス要求をサーバ１００に送信してから、通信制御部２０１がそのサービス要求にて要求されるサービスの実行結果を受信するまでに、通信制御部２０１がサーバ１００と切断を検知すると、以下の処理を行う。
【０１７９】
つまり、サービス管理部２０２は、そのサービス要求内のサービスに対するサービス処理プログラムがサービス処理プログラム格納部２０９内にあるか否かを判定する。
【０１８０】
サービス管理部２０２にてサービス処理プログラムがあると判定されると、プログラム制御部２０３は、そのサービス処理プログラムを実行する。
【０１８１】
一方、サービス管理部２０２にてサービス処理プログラムがないと判定されると、表示部２１２は、サービス要求がエラーになった旨のエラー情報を表示する。
【０１８２】
次に動作を説明する。
【０１８３】
図８は、本実施の形態のクライアント２００の動作を説明するためのフローチャートである。
【０１８４】
ステップＳ２２でサービス管理部２０２が、サービス要求内のサービス名が、サービス管理テーブル格納部２０４内にあると判定すると、ステップＳ６１を実行する。
【０１８５】
ステップＳ６１では、サービス管理部２０２は、クライアント２００の状態を確認する旨の確認要求を状態監視部２１３に送信する。状態監視部２１３は、その確認要求を受信すると、ステップＳ６２を実行する。
【０１８６】
ステップＳ６２では、状態監視部２１３は、クライアント２００の状態を確認する。状態監視部２１３は、ステップＳ６２を終了すると、ステップＳ６３を実行する。
【０１８７】
ステップＳ６３では、状態監視部２１３は、その確認したクライアント２００の状態に基づいて、サービスをクライアント２００で実行するかサーバ１００で実行するかを判定する。
【０１８８】
例えば、クライアント２００の状態がネットワーク３００の接続状態の場合、状態監視部２１３は、クライアント２００がネットワーク３００と接続されているか否か、または、クライアント２００がネットワーク３００に接続可能であるか否かを判定する。
【０１８９】
状態監視部２１３は、クライアント２００がネットワーク３００と接続されていると、または、クライアント２００がネットワーク３００と接続可能であると、サービスをサーバ１００で実行すると判定する。
【０１９０】
一方、状態監視部２１３は、クライアント２００がネットワーク３００と接続されていない、または、クライアント２００がネットワークと接続可能でないと、サービスをクライアント２００で実行すると判定する。
【０１９１】
また、クライアントの状態が現在の負荷の場合、状態監視部２１３は、その負荷が予め定められた基準値以上か否かを判定する。状態監視部２１３は、その負荷がその基準値以上であると、サービスをサーバ１００で実行すると判定し、一方、その負荷がその基準値未満であると、サービスをクライアント２００で実行すると判定する。
【０１９２】
状態監視部２１３は、その判定結果をサービス管理部２０２に送信する。サービス管理部２０２は、その判定結果を受信すると、その判定結果を確認する。
【０１９３】
サービス管理部２０２は、その判定結果がサービスをクライアント２００で実行することを示すと、ステップＳ２４を実行し、その判定結果がサービスをサーバ１００で実行することを示すと、ステップＳ２３を実行する。
【０１９４】
次に、サービス処理プログラムをサーバ１００で実行中にサーバとの接続が切断された場合における切断対処処理について説明する。
【０１９５】
先ず、通信制御部２０１は、サーバ１００と接続が切られたことを検知すると、その旨をサービス管理部２０２に通知する。
【０１９６】
サービス管理部２０２は、サービス要求を送信した後にその旨を受信すると、そのサービス要求が要求するサービスの実行結果を受信したか否かを確認する。
【０１９７】
サービス管理部２０２は、その実行結果を受信していると、動作を終了する。
【０１９８】
一方、サービス管理部２０２は、その実行結果を受信していないと、そのサービス要求内のサービス名に対するサービス処理プログラムがサービス処理プログラム格納部２０９内にあるか否かを判定する。
【０１９９】
そのサービス処理プログラムがあると、サービス管理部２０２は、そのサービス処理プログラムを実行する旨の実行要求をプログラム制御部２０３に送信する。なお、実行要求は、そのサービス名を含む。
【０２００】
プログラム制御部２０３は、その実行要求を受信すると、その実行要求内のサービス名に対応したサービス処理プログラムをサービス処理プログラム格納部２０９から取得し、かつ、そのサービス名に対応したサービス関連データをサービス関連データ格納部２０５から取得する。
【０２０１】
プログラム制御部２０３は、そのサービス関連データを使用して、そのサービス処理プログラムを実行する。
【０２０２】
一方、そのサービス処理プログラムがないと、サービス管理部２０２は、エラー情報を生成し、そのエラー情報を表示部２１２に表示する。
【０２０３】
次に効果を説明する。
【０２０４】
本実施の形態では、状態監視部２１３は、クライアント２００の状態に基づいて、サービスをクライアント２００で実行するかサーバ１００で実行するかを判定する。状態監視部２１３がそのサービスをクライアント２００で実行すると判定すると、プログラム制御部２０３は、サービス処理プログラムを実行する。一方、状態監視部２１３がそのサービスをサーバ１００で実行すると判定すると、サービス管理部２０２は、サービス要求をサーバ１００に送信する。サーバ１００の通信制御部１０１がそのサービス要求を受信すると、プログラム制御部１０９がサービス処理プログラムを実行する。
【０２０５】
この場合、クライアント２００の状態に基づいて、サービス処理プログラムがサーバ１００およびクライアント２００のどちらか一方で実行される。したがって、クライアント２００の状態に応じて、サーバ１００およびクライアント２００の適した方でサービスを実行することが可能になる。
【０２０６】
また、本実施の形態では、状態監視部２１３は、クライアント２００がネットワーク３００と接続可能であると、サービスをサーバ１００で実行すると判定し、一方、クライアント２００がネットワーク３００と接続可能でないと、サービスをクライアント２００で実行すると判定する。
【０２０７】
この場合、サービスは、クライアント２００がネットワーク３００と接続可能であると、サーバ１００で実行され、クライアント２００がネットワーク３００と接続可能でないと、クライアント２００で実行される。したがって、クライアント２００がネットワークと接続可能でなくても、サービスを実行することが可能であり、かつ、クライアント２００がネットワークと接続可能であると、クライアント２００の負荷を軽減することが可能になる。
【０２０８】
また、状態監視部２１３は、クライアント２００の負荷が基準値以上であると、サービスをサーバ１００で実行すると判定し、一方、その負荷が基準値未満であると、サービスをクライアント２００で実行すると判定する。
【０２０９】
この場合、サービスは、クライアント２００の負荷が基準値以上であると、サーバ１００で実行され、一方、その負荷が基準値未満であると、クライアント２００で実行される。したがって、クライアント２００に負荷がかかり過ぎることを軽減することが可能になる。
【０２１０】
また、本実施の形態では、プログラム制御部２０３は、サービス管理部２０２がサービス要求を送信してから通信制御部２０１が実行結果を受信するまでに、通信制御部２０１がサーバとの接続が切断されたことを検知すると、サービス処理プログラム格納部２０９内のプログラムを実行する。
【０２１１】
この場合、サービスの実行中にサーバ１００とクライアント２００との接続が切断されても、サービスを提供することが可能になる。
【０２１２】
次に第四の実施の形態について説明する。
【０２１３】
図９は、本実施の形態のサービス提供システムを示したブロック図である。本実施の形態のサービス提供装置は、サーバ１００とクライアント２００とを含む。サーバ１００は、図３で示した構成に加えて、履歴収集プログラム生成部１１０を含む。クライアント２００は、図３で示した履歴収集部２１１に代えて、履歴収集プログラム制御部２１４を含み、さらに、履歴収集プログラム格納部２１５を含む。なお、図９では、本実施の形態で説明を省略する構成については、図示していないが、実際には存在する。
【０２１４】
図９では、サーバ１００の、通信制御部１０１、生成部１０３、要求解析部１０７および履歴収集プログラム生成部１１０が示されている。また、クライアント２００の、通信制御部２０１、履歴情報ＤＢ２０７、プログラム制御部２０３、履歴収集プログラム制御部２１４および履歴収集プログラム格納部２１５が示されている。
【０２１５】
本実施の形態では、サーバ１００は、クライアントＩＤがないと判定された場合、つまり、サービス処理プログラムが送信されていない場合、サービス処理プログラムに加えて、履歴情報を生成するための履歴収集プログラムも送信する。
【０２１６】
具体的には、サーバ１００の履歴収集プログラム生成部１１０は、要求解析部１０７がサービス処理プログラムをサーバ１００で実行すると判定すると、履歴収集プログラムを生成する。その履歴収集プログラムは、サービス名を含む。
【０２１７】
履歴収集プログラム生成部１１０は、その履歴収集プログラムをクライアント２００に送信する。
【０２１８】
クライアント２００の通信制御部２０１は、履歴収集プログラムを受信する。
【０２１９】
履歴収集プログラム格納部２１５は、通信制御部２０１が受信した履歴収集プログラムを格納する。
【０２２０】
履歴収集プログラム制御部２１４は、プログラム制御部２０３があるサービス名のサービス処理プログラムを実行すると、履歴収集プログラム格納部２１５内の、そのサービス名を含む履歴収集プログラムを実行して、履歴収集部２１１として機能する。
【０２２１】
次に動作を説明する。
【０２２２】
図１０は、本実施形態のサービス提供システムの動作を説明するためのフローチャートである。
【０２２３】
ステップＳ３２で要求解析部１０７は、クライアント２００でサービスを実行すると判断すると、ステップＳ３５を実行する。
【０２２４】
本実施形態において、ステップＳ３５では、要求解析部１０７は、そのサービス要求を生成部１０３に加えて、履歴収集プログラム制御部２１４に送信する。
【０２２５】
履歴収集プログラム制御部２１４は、そのサービス要求を受信すると、ステップＳ８１を実行する。
【０２２６】
なお、生成部１０３がそのサービス要求を受信した後の動作は、第一の実施形態と同じであるので、説明は省略する。
【０２２７】
ステップＳ８１では、履歴収集プログラム制御部２１４は、そのサービス要求を受信すると、履歴収集プログラムを生成する。履歴収集プログラム制御部２１４は、その履歴収集プログラムを生成し、生成部１０３がステップＳ３５を終了すると、ステップ８２が実行される。
【０２２８】
ステップＳ８２では、履歴収集プログラム制御部２１４は、その履歴収集プログラムを、通信制御部１０１を介してクライアント２００の通信制御部２０１に送信する。
【０２２９】
通信制御部２０１は、その履歴収集プログラムを、履歴収集プログラム制御部２１４に送信する。
【０２３０】
履歴収集プログラム制御部２１４は、その履歴収集プログラムを受信すると、その履歴収集プログラムを履歴収集プログラム格納部２１５に格納する。
【０２３１】
また、サービス要求処理の変更点を説明する。
【０２３２】
図４のステップＳ２４でプログラム制御部２０３は、サービス要求を受信すると、そのサービス要求内のサービス名を含む履歴収集プログラムを起動する旨の起動要求を生成し、その起動要求を履歴収集プログラム制御部２１４に送信する。なお、起動要求は、サービス名を含む。
【０２３３】
履歴収集プログラム制御部２１４は、その起動要求を受信すると、その起動要求内のサービス名を含む履歴収集プログラムを履歴収集プログラム格納部２１５から取得する。履歴収集プログラム制御部２１４は、その取得した履歴収集プログラムを実行して、履歴収集部２１１として機能する。なお、履歴収集部２１１として機能する履歴収集プログラム制御部２１４の動作は、第二の実施の形態の履歴収集部２１１と同じなので、説明は省略する。
【０２３４】
次に効果を説明する。
【０２３５】
本実施の形態によれば、履歴収集プログラム生成部１１０は、履歴収集プログラムを生成し、その履歴収集プログラムをクライアント２００に送信する。クライアント２００の通信制御部２０１がその履歴収集プログラムを受信する。履歴収集プログラム制御部２１４は、その履歴収集プログラムを実行して履歴収集部２１１として機能する。
【０２３６】
第二の実施の形態では、図４のＳ２５で取得される履歴情報の種類は固定であった。例えば、履歴情報が「実行回数」の場合、その履歴情報を「実行日時」にするなど変更することができなかった。
【０２３７】
しかしながら、本実施の形態では、サーバ１００が、履歴を生成するための履歴収集プログラムを生成する。また、履歴収集プログラム制御部２１４は、その履歴収集プログラムを実行して履歴収集部２１１として機能する。このため、履歴情報の種類を変更することが可能となる。また、サーバ１００ごとに収集すべき履歴情報の種類が異なっていても、そのサーバ１００に対応した種類の履歴情報を収集することが可能になる。
【０２３８】
次に、具体的な実施例を使用して、実施の形態の動作を説明する。
【０２３９】
本実施例では、サービスとして、携帯電話で実行可能な英語学習サービスを例として説明する。英語学習サービスは、ヒアリング問題や英単語問題などが選択でき、ユーザの要求に応じた学習ができるというサービスである。
【０２４０】
図１１ないし１４は、本実施例のサービス提供システムの動作を説明するための図である。なお、本実施例では、サーバ１００は、英語学習サーバであり、クライアント２００は携帯電話であるとする。
【０２４１】
図１１において、携帯電話のユーザは、図示していない入力装置に英語学習サービスの要求を入力する。入力装置は、その要求を受け付けると、その要求をアプリケーション制御部２１０に送信する。
【０２４２】
アプリケーション制御部２１０は、その要求を受信すると、英語学習サービスのサービス要求を生成し、そのサービス要求をサービス管理部２０２に送信する。なお、サービス要求は、サービス名として「英語学習サービス」を含む。
【０２４３】
サービス管理部２０２は、そのサービス要求を受信すると、そのサービス要求内のサービス名「英語学習サービス」が、サービス管理テーブル格納部２０４内にあるか否かを判定して、その英語学習サービスを実行するサービス処理プログラムが携帯電話内にあるか否かを判定する。
【０２４４】
本実施例では、サービス名「英語学習サービス」がサービス管理テーブル格納部２０４内にないので、サービス管理部２０２は、そのサービス処理プログラムがないと判定する。そして、サービス管理部２０２は、携帯電話内に格納されているＵＲＬを使用して、そのＵＲＬが指定する英語学習サーバ(以下、サーバと称する)に、そのサービス要求を通信制御部２０１を介して送信する。このとき、サービス管理部２０２は、クライアントＩＤ格納部２０８内のクライアントＩＤの一例である端末ＩＤ「０００Ａ」をそのサービス要求に加える。
【０２４５】
図１２に移り、通信制御部１０１は、そのサービス要求を受信すると、そのサービス要求を、要求解析部１０７に送信する。
【０２４６】
要求解析部１０７は、そのサービス要求に履歴情報が含まれないので、そのサービス要求内の端末ＩＤ「０００Ａ」が要求管理テーブル格納部１０４内にあるか否かを確認して、サービスを携帯電話で実行するのか、またはサーバで実行するのかを判定する。
【０２４７】
本実施例では、そのサービス要求内の端末ＩＤ「０００Ａ」が要求管理テーブル格納部１０４内にないので、要求解析部１０７は、サービスをサーバで実行すると判定し、サービス要求を生成部１０３に送信する。
【０２４８】
図１３に移り、生成部１０３は、そのサービス要求を受信すると、そのサービス要求内の端末ＩＤ「０００Ａ」を含む取得要求を生成する。生成部１０３は、その取得要求を履歴情報管理部１０８に送信する。
【０２４９】
履歴情報管理部１０８は、その取得要求を受信すると、その取得要求内の端末ＩＤ「０００Ａ」に対応した履歴情報が履歴情報ＤＢ１０５内にないので、予め定められたデフォルトの履歴情報を取得する。
【０２５０】
デフォルトの履歴情報は、サービスを始めて実行するのに必要なサービス関連データに対応する履歴情報でもよいし、他の端末の履歴情報の統計から定められる履歴情報でもよい。本実施例では、サービスを始めて実行するのに必要なサービス関連データに対応する履歴情報として、「ヒアリング問題(初級)」および「英単語問題(初級)」のそれぞれに対応する履歴情報（問題の正解率）であるとする。
【０２５１】
なお、履歴情報には、その履歴情報を特定する履歴情報ＩＤが付けられている。
【０２５２】
履歴情報管理部１０８は、その取得した履歴情報を生成部１０３に送信する。
【０２５３】
図１４に移り、生成部１０３は、その履歴情報を受信すると、その履歴情報と対応したサービス関連データ「ヒアリング問題(初級)」および「英単語問題(初級)」をサービス関連データ格納部１０２から取得する。
【０２５４】
また、生成部１０３は、そのサービス要求にて要求されたサービス処理プログラムを生成する。なお、そのサービス処理プログラムのプログラム名を「EnglishStudy.prog」とする。
【０２５５】
本実施例では、生成部１０３は、履歴情報に対応したユーザインタフェースを生成し、それを予め保持している基準プログラムに組み込んでサービス処理プログラムを生成するものとする。ユーザインタフェースは、例えば図１５で示すように「ヒアリング問題(初級)」および「英単語問題(初級)」のどちらか一方をユーザが選択可能とするインタフェースである。
【０２５６】
その後、生成部１０３は、実行条件として、サービス処理プログラムの有効期限を生成する。本実施例では、生成部１０３は、有効期限「２００８／０４／０１」を生成したとする。
【０２５７】
生成部１０３は、そのサービス処理プログラム、サービス関連データおよび有効期限を、端末ＩＤに対応した携帯電話に送信する。生成部１０３を送信する情報を、図１６に示す。
【０２５８】
生成部１０３は、送信後、図１２における要求管理テーブル格納部１０４に端末ＩＤ「０００Ａ」を格納することでサービス処理プログラムを送信したことを記録する。
【０２５９】
携帯電話の通信制御部２０１は、そのサービス処理プログラム、サービス関連データおよび有効期限を受信すると、そのサービス処理プログラム、サービス関連データおよび有効期限をサービス管理部２０２に送信する。
【０２６０】
サービス管理部２０２は、そのサービス処理プログラム、サービス関連データおよび有効期限を受信すると、そのサービス処理プログラム内のサービス名「英語学習サービス」およびプログラム名「EnglishStudy.prog」と、その有効期限「２００８／０４／０１」と対応付けて図１１におけるサービス管理テーブル格納部２０４に格納する。
【０２６１】
その後、サービス管理部２０２は、更新指示と、そのサービス処理プログラムおよびサービス関連データを、プログラム制御部２０３に送信する。
【０２６２】
プログラム制御部２０３は、その更新指示、サービス処理プログラムおよびサービス関連データを受信すると、そのサービス処理プログラムをサービス処理プログラム格納部２０９に格納する。また、プログラム制御部２０３は、そのサービス処理プログラム内のサービス名「英語学習サービス」とそのサービス関連データとを対応付けてサービス関連データ格納部１０２に格納する。
【０２６３】
また、プログラム制御部２０３は、その格納されたサービス処理プログラムを実行する。
【０２６４】
次に、サービス処理プログラムの格納後の携帯電話におけるサービスの実行について説明する。
【０２６５】
ユーザから要求が受け付けられてから、サービス管理部２０２にてサービス処理プログラムが携帯電話内にあるか否かが判定されるまでの処理は、上記と同じである。
【０２６６】
ここで、サービス名「英語学習サービス」に対応したサービス処理プログラムがあるため、サービス管理部２０２は、そのサービス要求を、プログラム制御部２０３に送信する。
【０２６７】
プログラム制御部２０３は、そのサービス要求内のサービス名「英語学習サービス」含むサービス処理プログラムをサービス処理プログラム格納部２０９から取得し、そのサービス処理プログラムを起動する。
【０２６８】
サービス処理プログラムの起動後、携帯電話のユーザが「ヒアリング問題(初級)」を選択し、１０問中５問正解したとする。続けてもう一度「ヒアリング問題(初級)」を選択し、１０問中９問正解したとする。つまり、２回の実行で２０問中１４問正解したとする。
【０２６９】
履歴収集部２１１は、「ヒアリング問題(初級)：２０問中１４問正解（正解率７０％）」を履歴情報として生成し、その履歴情報と、そのサービス名「英語学習サービス」とを対応付けてサービス関連データ格納部２０５に格納する。
【０２７０】
次に、携帯電話内のサービス処理プログラムおよびサービス関連データの更新処理について説明する。
【０２７１】
サービス名「英語学習サービス」に対応するサービス処理プログラムは、図１６で示したように有効期限が「２００８／０４／０１」と設定されている。ここで、現在の年月日が「２００８／０４／０２」になったとする。
【０２７２】
このとき、サービス管理部２０２は、有効期限が満足されていないと判定し、サービス処理プログラムの更新処理を行う。
【０２７３】
具体的には、図１７において、サービス管理部２０２は、そのサービス名「英語学習サービス」と、クライアントＩＤ格納部２０８の端末ＩＤとを含む更新要求を生成し、その更新要求を履歴収集部２１１に送信する。履歴収集部２１１は、その更新要求を受信すると、その更新要求内のサービス名に対応した履歴情報「ヒアリング問題(初級)：２０問中１４問(正解率７０％)」を履歴情報ＤＢ２０７から取得する。
【０２７４】
履歴収集部２１１は、その履歴情報を更新要求に追加し、その更新要求をサーバの通信制御部１０１に送信する。
【０２７５】
サーバの通信制御部１０１は、その更新要求を受信すると、その更新要求を要求解析部１０７に送信する。
【０２７６】
要求解析部１０７は、その更新要求内に履歴情報があるため、サービス処理プログラムの更新と判断し、更新処理に移る。
【０２７７】
更新処理では、要求解析部１０７は、その更新要求を履歴情報管理部１０８に送信する。
【０２７８】
履歴情報管理部１０８は、その更新要求を受信すると、その更新要求内の端末ＩＤ「０００Ａ」と、更新要求内の履歴情報とを対応付けて履歴情報ＤＢ１０５に格納する。また、履歴情報管理部１０８は、その履歴情報を、生成部１０３に送信する。
【０２７９】
生成部１０３は、履歴情報管理部１０８から履歴情報を受信すると、その履歴情報に基づいて、サービス処理プログラムを生成する。
【０２８０】
例えば、生成部１０３は、その履歴情報「ヒアリング問題(初級)：２０問中１４問(正解率７０％)」に対応したサービス関連データをサービス関連データ格納部１０２から取得する。
【０２８１】
このとき、サービス関連データ格納部１０２において、ヒアリング問題(初級)の正解率が予め定められた閾値以上の履歴情報には、サービス関連データ「ヒアリング問題(中級)」が対応付けらており、その正解率がその閾値未満の履歴情報には、サービス関連データ「ヒアリング問題（初級）」が対応付けられているとする。
【０２８２】
閾値を７０％とすると、生成部１０３は、サービス関連データ「ヒアリング問題(中級)」を取得することになる。これにより、ユーザは、英語学習の次のステージに移行したことになる。
【０２８３】
また、生成部１０３は、その履歴情報には「英単語問題」に関する正解率がないので、英単語問題に対してはデフォルトの履歴情報に対応するサービス関連データ「英単語問題（初級）」を取得する。
【０２８４】
その後、生成部１０３は、「ヒアリング問題(中級)」および「英単語問題(初級)」が選択可能なインタフェースを生成する。このとき、サービス関連データ格納部１０２において、ヒアリング問題(初級)の正解率が閾値以上の履歴情報に、サービス関連データ「ヒアリング問題(中級)」および「ヒアリング問題（初級）」を対応付けておいて、「ヒアリング問題(中級)」、「ヒアリング問題（初級）」および「英単語問題(初級)」が選択可能なインタフェースを生成してもよい。
【０２８５】
そして、生成部１０３は、そのインタフェースを基準プログラムに組み込んで、サービス処理プログラムを生成する。
【０２８６】
生成部１０３は、サービス処理プログラムを生成すると、新しく有効期限を生成する。
【０２８７】
生成部１０３は、そのサービス処理プログラム、サービス関連データおよび有効期限を端末ＩＤに対応した携帯電話に送信する。
【０２８８】
携帯電話の通信制御部２０１は、そのサービス処理プログラム、サービス関連データおよび有効期限を受信すると、そのサービス処理プログラム、サービス関連データおよび有効期限をサービス管理部２０２に送信する。
【０２８９】
サービス管理部２０２は、そのサービス処理プログラム、サービス関連データおよび有効期限を受信すると、そのサービス処理プログラム内のサービス名「英語学習サービス」に対応したサービス管理テーブル格納部２０４内のプログラム名および有効期限を、そのサービス処理プログラム内のプログラム名と、その受信した有効期限とに更新する。
【０２９０】
その後、サービス管理部２０２は、更新指示と、そのサービス処理プログラムおよびサービス関連データを、プログラム制御部２０３に送信する。
【０２９１】
プログラム制御部２０３は、その更新指示、サービス処理プログラムおよびサービス関連データを受信すると、その受信したサービス処理プログラム内のサービス名を含むサービス処理プログラム格納部２０９内のサービス処理プログラムを、その受信したサービス処理プログラムに更新する。
【０２９２】
また、プログラム制御部２０３は、その受信したサービス処理プログラム内のサービス名に対応するサービス関連データ格納部１０２内のサービス関連データを、その受信したサービス関連データに更新する。
【０２９３】
これにより、サービス関連データとして、「ヒアリング問題(中級)」が追加され、「ヒアリング問題(初級)」が削除される。このように、必要のないデータを削除されるので携帯電話のメモリの使用量の増加を抑制することが可能になる。
【０２９４】
なお、本発明は、クライアント・サーバモデルにおけるサービス提供システムやその方法などに適用できる。
【０２９５】
以上説明した各実施の形態および実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【０２９６】
【図１】本発明の第一の実施の形態のサービス提供システムの一例を示したブロック図である。
【図２】第一の実施の形態のサービス提供システムの動作例を説明するためのフローチャートである。
【図３】本発明の第二の実施の形態のサービス提供システムの一例を示したブロック図である。
【図４】サービス要求処理を説明するためのフローチャートである。
【図５】サービス提供処理を説明するためのフローチャートである。
【図６】サービス処理プログラムの更新処理を説明するためのフローチャートである。
【図７】クライアントの他の構成例を示したブロック図である。
【図８】第三の実施の形態のサービス提供システムの動作例を説明するためのフローチャートである。
【図９】本発明の第四の実施の形態のサービス提供システムの一例を示したブロック図である。
【図１０】本発明の第四の実施の形態のサービス提供システムの動作例を説明するためのフローチャートである。
【図１１】本発明の一実施例のサービス管理テーブルの検索処理を示した図である。
【図１２】本発明の一実施例の要求管理テーブルの検索処理を示した図である。
【図１３】本発明の一実施例の履歴情報の取得処理を示した図である。
【図１４】本発明の一実施例のサービス関連データの取得処理を示した図である。
【図１５】本発明の一実施例のユーザインタフェースを示した図である。
【図１６】本発明の一実施例の携帯電話に送信する情報を示した図である。
【図１７】本発明の一実施例の履歴情報の取得処理を示す図である。
【図１８】送信映像リコメンド装置の構成を示したブロック図である。
【符号の説明】
【０２９７】
１０１、２０１    通信制御部
１０２、２０５    サービス関連データ格納部
１０３    サービス処理プログラム生成部
１０４    要求管理テーブル格納部
１０５、２０７    履歴情報ＤＢ
１０６、２０９    サービス処理プログラム格納部
１０７    要求解析部
１０８    履歴情報管理部
１０９、２０３    サービス処理プログラム制御部
１１０    履歴収集プログラム生成部
２０２    サービス管理部
２０４    サービス管理テーブル格納部
２０６    アプリケーション格納部
２０８    クライアントＩＤ格納部
２１０    アプリケーション制御部
２１１    履歴収集部
２１２    表示部
２１３    状態監視部
２１４    履歴収集プログラム制御部
２１５    履歴収集プログラム格納部
【図１】
0004978340.tif 000002
【図２】
0004978340.tif 000003
【図３】
0004978340.tif 000004
【図４】
0004978340.tif 000005
【図５】
0004978340.tif 000006
【図６】
0004978340.tif 000007
【図７】
0004978340.tif 000008
【図８】
0004978340.tif 000009
【図９】
0004978340.tif 000010
【図１０】
0004978340.tif 000011
【図１１】
0004978340.tif 000012
【図１２】
0004978340.tif 000013
【図１３】
0004978340.tif 000014
【図１４】
0004978340.tif 000015
【図１５】
0004978340.tif 000016
【図１６】
0004978340.tif 000017
【図１７】
0004978340.tif 000018
【図１８】
0004978340.tif 000019