(57)【要約】  サーバ（１０１）は、エリア（１１０）内に存在する端末装置（Ｔ）を検出した場合に、エリア（１１０）に対応付けられたアプリケーション（ＡＰ１）と、アプリケーション（ＡＰ２）とを端末装置（Ｔ）に送信する。アプリケーション（ＡＰ２）は、アプリケーション（ＡＰ１）を他の端末装置（Ｔ）に中継する機能を有する中継用のアプリケーションである。端末装置（Ｔ）は、サーバ（１０１）からアプリケーション（ＡＰ１，ＡＰ２）を受信した場合、エリア（１１０）内でアプリケーション（ＡＰ１）を復号して実行可能にする。また、端末装置（Ｔ）は、エリア（１１０）外でアプリケーション（ＡＰ２）を起動して、他の端末装置（Ｔ）を検出した場合に、アプリケーション（ＡＰ１）を他の端末装置（Ｔ）に送信する。
2016132454.tif 000002
【特許請求の範囲】
【請求項１】
サーバが、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信し、
前記端末が、前記サーバから前記第１および第２のアプリケーションを受信した場合、前記エリア外で前記第２のアプリケーションを起動することにより、検出した前記他の端末に前記第１のアプリケーションを送信する、
ことを特徴とするアプリケーション配信方法。
【請求項２】
前記第１のアプリケーションは、暗号化されており、前記エリア内で復号されて実行可能となることを特徴とする請求項１に記載のアプリケーション配信方法。
【請求項３】
前記サーバは、前記エリア内に存在する前記端末を検出したことに応じて、前記端末の認証処理を行い、前記端末を認証した場合に、前記第１および第２のアプリケーションを前記端末に送信することを特徴とする請求項２に記載のアプリケーション配信方法。
【請求項４】
前記端末は、前記他の端末を検出したことに応じて、前記他の端末の認証処理を行い、前記他の端末を認証した場合に、前記第１のアプリケーションを前記他の端末に送信することを特徴とする請求項３に記載のアプリケーション配信方法。
【請求項５】
前記第１のアプリケーションは、前記エリアに対応する位置情報を用いて生成された暗号鍵により暗号化されており、
前記端末は、自端末の位置情報を取得して、当該位置情報を用いて生成した復号鍵により前記第１のアプリケーションの復号処理を行うことを特徴とする請求項４に記載のアプリケーション配信方法。
【請求項６】
前記端末は、自端末の位置情報から特定される緯度経度情報をハッシュ関数に与えることにより得られるハッシュ値を復号鍵として生成することを特徴とする請求項５に記載のアプリケーション配信方法。
【請求項７】
前記サーバは、前記エリア内に存在する前記端末に、前記第１のアプリケーションを復号する復号鍵を送信し、
前記端末は、前記サーバから受信した前記復号鍵により前記第１のアプリケーションを復号することを特徴とする請求項４に記載のアプリケーション配信方法。
【請求項８】
コンピュータに、
特定のエリア内に存在する端末を検出し、
検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信する、
処理を実行させることを特徴とするアプリケーション配信プログラム。
【請求項９】
特定のエリア内に存在する端末を検出した場合に、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを前記端末に送信する、
制御部を有することを特徴とするサーバ。
【請求項１０】
サーバが、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信し、
前記第１端末が、前記稼働指示を受信したことに応じて、前記モバイルサーバの機能を有効にするとともに、前記アプリケーションを前記モバイルサーバに送信し、
前記第２端末が、前記切替指示を受信したことに応じて、接続先を前記サーバから前記モバイルサーバに切り替え、
前記モバイルサーバが、前記第２端末が接続されたことに応じて、前記アプリケーションを前記第２端末に送信する、
ことを特徴とするアプリケーション配信方法。
【請求項１１】
前記サーバは、
前記複数の端末から、前記モバイルサーバに対応付けられ、かつ、前記モバイルサーバが稼働可能な残り時間が閾値以上となる第１端末を抽出することを特徴とする請求項１０に記載のアプリケーション配信方法。
【請求項１２】
前記サーバは、
前記第１端末を複数抽出した場合、前記複数の端末に対する前記アプリケーションの配信が完了するまでの配信完了時間が短くなるように、複数抽出した前記第１端末それぞれに前記第２端末を割り当てることを特徴とする請求項１１に記載のアプリケーション配信方法。
【請求項１３】
前記稼働指示には、近距離無線ネットワークを構築するためのネットワーク設定情報が含まれており、
前記切替指示には、前記近距離無線ネットワークに接続するためのネットワーク情報が含まれており、
前記第１端末は、前記ネットワーク設定情報に基づくネットワーク設定を行うよう指示することにより、前記モバイルサーバの機能を有効にし、
前記モバイルサーバは、前記ネットワーク設定情報に基づいて、前記近距離無線ネットワークを構築し、
前記第２端末は、前記ネットワーク情報に基づいて、前記近距離無線ネットワークに接続する、ことを特徴とする請求項１２に記載のアプリケーション配信方法。
【請求項１４】
前記サーバは、
前記アプリケーションを配信する機能を有するモバイルサーバに対応付けられた端末が複数存在する場合、各モバイルサーバの接続可能台数またはリンク速度の少なくともいずれかの情報に基づいて、前記第１端末を抽出することを特徴とする請求項１３に記載のアプリケーション配信方法。
【請求項１５】
コンピュータに、
接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、
前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、
前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信する、
処理を実行させることを特徴とするアプリケーション配信プログラム。
【請求項１６】
接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信する、
制御部を有することを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション配信方法、アプリケーション配信プログラム、およびサーバに関する。
【背景技術】
【０００２】
従来、店舗や学校などにサーバを設置し、店舗周辺に集まった人や学校に登校してきた生徒の端末に対して、店舗で利用可能なクーポンアプリや授業で使用する教材アプリなどを配信する技術がある。この技術によれば、店舗や学校などのローカルな場にサーバを設置することにより、その場に集まったユーザに対して、その場所に応じたサービスを提供することができる。【０００３】
先行技術としては、例えば、移動通信システムに低感度基地局を用いて位置検出範囲を狭めることにより、スポット位置検出を可能にし、ユーザ端末からユーザを対応させて、位置情報と個人情報等をベースに情報配信およびサービス提供を行う技術がある。また、基地局のサービスエリア外に存在する宛先端末と基地局との間のパケット通信を中継する中継端末において、中継の寄与度を測定して、その測定結果を課金サーバに送信することで、中継端末に対するインセンティブの付与を可能とする技術がある。また、携帯電話端末の紛失、盗難などによる個人情報の流出を防止するための個人情報保護方法に関する技術がある。また、自己増殖の機能を利用して新規のクライアントにクライアント用エージェントプログラムをインストールする技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２４２０５２号公報
【特許文献２】国際公開第２００３／０３２６１７号
【特許文献３】特開２００７−３１８２４５号公報
【特許文献４】特開２００５−１５７５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、店舗や学校などに設置されたサーバに対するアクセスが急激に増えて、アプリケーションの配信にかかる負荷が集中する場合がある。例えば、サーバに負荷が集中すると、ユーザに対するアプリケーションの配布に時間がかかり、サービス開始の遅れを招いてしまう。【０００６】
一つの側面では、本発明は、アプリケーションの配信にかかる負荷を分散させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、サーバが、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信し、前記端末が、前記サーバから前記第１および第２のアプリケーションを受信した場合、前記エリア外で前記第２のアプリケーションを起動することにより、検出した前記他の端末に前記第１のアプリケーションを送信するアプリケーション配信方法が提案される。【０００８】
また、本発明の一側面によれば、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信するアプリケーション配信プログラムおよびサーバが提案される。【０００９】
また、本発明の一側面によれば、サーバが、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信し、前記第１端末が、前記稼働指示を受信したことに応じて、前記モバイルサーバの機能を有効にするとともに、前記アプリケーションを前記モバイルサーバに送信し、前記第２端末が、前記切替指示を受信したことに応じて、接続先を前記サーバから前記モバイルサーバに切り替え、前記モバイルサーバが、前記第２端末が接続されたことに応じて、前記アプリケーションを前記第２端末に送信するアプリケーション配信方法が提案される。【００１０】
また、本発明の一側面によれば、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信するアプリケーション配信プログラムおよびサーバが提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、アプリケーションの配信にかかる負荷を分散させることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかるアプリケーション配信方法の一実施例を示す説明図である。
【図２】図２は、アプリケーション配信システム２００のシステム構成例を示す説明図である。
【図３】図３は、実施の形態１にかかるサーバ１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、実施の形態１にかかる端末Ｔｉのハードウェア構成例を示すブロック図である。
【図５】図５は、認証ＤＢ２２０の記憶内容の一例を示す説明図である。
【図６】図６は、配信アプリリスト２３０の記憶内容の一例を示す説明図である。
【図７】図７は、ダウンロード済みアプリリスト７００の記憶内容の一例を示す説明図である。
【図８】図８は、実施の形態１にかかるサーバ１０１の機能的構成例を示すブロック図である。
【図９】図９は、実施の形態１にかかる端末Ｔｉの機能的構成例を示すブロック図である。
【図１０】図１０は、ダウンロード済みアプリリスト７００の更新例を示す説明図である。
【図１１】図１１は、暗号鍵および復号鍵の生成例を示す説明図（その１）である。
【図１２】図１２は、暗号鍵および復号鍵の生成例を示す説明図（その２）である。
【図１３】図１３は、暗号鍵および復号鍵の生成例を示す説明図（その３）である。
【図１４】図１４は、暗号鍵および復号鍵の生成例を示す説明図（その４）である。
【図１５】図１５は、中継端末用認証ＤＢ１５００の記憶内容の一例を示す説明図である。
【図１６】図１６は、中継アプリリスト１６００の記憶内容の一例を示す説明図である。
【図１７】図１７は、実施の形態１にかかる中継端末Ｔｉの機能的構成例を示すブロック図である。
【図１８】図１８は、実施の形態１にかかるサーバ１０１のアプリケーション配信処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順の一例を示すフローチャート（その１）である。
【図２０】図２０は、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順の一例を示すフローチャート（その２）である。
【図２１】図２１は、実施の形態１にかかる中継端末Ｔｉのアプリケーション中継処理手順の一例を示すフローチャートである。
【図２２】図２２は、実施の形態２にかかるアプリケーション配信方法の一実施例を示す説明図である。
【図２３】図２３は、アプリケーション配信システム２３００のシステム構成例を示す説明図である。
【図２４】図２４は、モバイルサーバＭＳｉのハードウェア構成例を示すブロック図である。
【図２５】図２５は、サーバ情報２３１０の具体例を示す説明図である。
【図２６】図２６は、端末情報２３２０の具体例を示す説明図である。
【図２７】図２７は、実施の形態２にかかるサーバ２２０１の機能的構成例を示すブロック図である。
【図２８】図２８は、ネットワーク設定情報の具体例を示す説明図である。
【図２９】図２９は、ネットワーク情報の具体例を示す説明図である。
【図３０】図３０は、実施の形態２にかかる端末Ｔｉの機能的構成例を示すブロック図である。
【図３１】図３１は、実施の形態２にかかるモバイルサーバＭＳｉの機能的構成例を示すブロック図である。
【図３２】図３２は、実施の形態２にかかる端末Ｔｉの端末情報アップロード処理手順の一例を示すフローチャートである。
【図３３】図３３は、実施の形態２にかかるサーバ２２０１の負荷分散処理手順の一例を示すフローチャートである。
【図３４】図３４は、実施の形態２にかかる端末Ｔｉのモバイルサーバ有効化処理手順の一例を示すフローチャートである。
【図３５】図３５は、実施の形態２にかかるモバイルサーバＭＳｉのアプリケーション配信処理手順の一例を示すフローチャートである。
【図３６】図３６は、実施の形態２にかかる端末Ｔｉのアプリケーション取得処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に図面を参照して、本発明にかかるアプリケーション配信方法、アプリケーション配信プログラム、およびサーバの実施の形態を詳細に説明する。
【００１４】
（実施の形態１）
図１は、実施の形態１にかかるアプリケーション配信方法の一実施例を示す説明図である。図１において、サーバ１０１は、アプリケーションを配信するコンピュータである。また、端末装置Ｔ（例えば、端末装置Ｔ１，Ｔ２）は、無線通信可能なコンピュータであり、例えば、スマートフォン、携帯電話機、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００１５】
サーバ１０１は、例えば、店舗、学校、イベント会場などに設置され、店舗やイベント会場の来場者や、学校に登校してきた生徒の端末装置Ｔにアプリケーションを配信する。配信対象となるアプリケーションは、特定のエリアに対応付けられた、暗号化されたアプリケーションであり、特定のエリア内で復号されて実行可能となる。
【００１６】
例えば、サーバ１０１が店舗に設置される場合、配信対象となるアプリケーションは、店舗で利用可能なクーポンアプリなどである。この場合、クーポンアプリを復号して実行可能となる特定のエリアは、例えば、サーバ１０１が設置される店舗周辺の局所的なエリアである。
【００１７】
また、例えば、サーバ１０１が学校に設置される場合、配信対象となるアプリケーションは、授業で使用される教材アプリなどである。この場合、教材アプリを復号して実行可能となる特定のエリアは、例えば、サーバ１０１が設置される学校内の教室周辺などの局所的なエリアである。
【００１８】
すなわち、店舗や学校などにサーバ１０１を設置することにより、店舗周辺や学校内の教室周辺などのローカルな場にいるユーザに対して、その場に応じたサービスを提供できるようになる。一方で、店舗や学校などに設置されたサーバ１０１に対するアクセスが急激に増えると、アプリケーションの配信にかかる負荷が集中してしまう。
【００１９】
例えば、クーポンアプリの配信にかかるサーバ１０１への負荷が集中すると、来場者に対するクーポンアプリの配布に時間がかかり、ビジネスチャンスを逸してしまう恐れがある。また、例えば、教材アプリの配信にかかるサーバ１０１への負荷が集中すると、生徒への教材アプリの配布に時間がかかり、授業開始の遅れを招いてしまう。
【００２０】
そこで、実施の形態１では、特定のエリアで実行可能となるアプリケーションの配信にかかる負荷を分散して、サーバ１０１への負荷集中を抑制する方法について説明する。以下、店舗Ｘにサーバ１０１を設置した場合を例に挙げて、サーバ１０１および端末装置Ｔの処理例について説明する。ここでは、配信対象となるアプリケーションが実行可能となる特定のエリアを、店舗Ｘ周辺のエリア１１０とする。
【００２１】
（１）サーバ１０１は、エリア１１０内に存在する端末装置Ｔを検出する。具体的には、例えば、まず、サーバ１０１は、近距離無線通信可能な端末装置Ｔを検出し、検出した端末装置Ｔから位置情報を受信する。そして、サーバ１０１は、受信した位置情報に基づいて、端末装置Ｔがエリア１１０内に位置するか否かを判定することにより、エリア１１０内に存在する端末装置Ｔを検出する。
【００２２】
なお、近距離無線通信とは、通信距離が数十メートル程度までの無線通信である。近距離無線通信の一例としては、例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）等を利用した通信が挙げられる。また、エリア１１０を特定するエリア情報は、例えば、サーバ１０１の記憶装置に記憶されている。
【００２３】
図１の例では、ユーザＡがエリア１１０に進入した結果、エリア１１０内に存在する端末装置Ｔとして、ユーザＡの端末装置Ｔ１が検出される。
【００２４】
（２）サーバ１０１は、エリア１１０内に存在する端末装置Ｔを検出した場合、アプリケーションＡＰ１とアプリケーションＡＰ２とを端末装置Ｔに送信する。ここで、アプリケーションＡＰ１は、エリア１１０に対応付けられた、暗号化されたアプリケーションであり、例えば、店舗Ｘで利用可能なクーポンアプリである。
【００２５】
また、アプリケーションＡＰ２は、アプリケーションＡＰ１を他の端末装置Ｔに中継する機能を有する中継用のアプリケーションである。アプリケーションＡＰ１には、例えば、エリア１１０を特定するエリア情報が付与されている。エリア情報は、例えば、エリア１１０が矩形領域の場合、エリア１１０の対角頂点の座標位置を示す情報である。
【００２６】
図１の例では、サーバ１０１からエリア１１０内に存在する端末装置Ｔ１に対して、アプリケーションＡＰ１，ＡＰ２が送信される。
【００２７】
（３）端末装置Ｔ１は、サーバ１０１からアプリケーションＡＰ１，ＡＰ２を受信した場合、エリア１１０内でアプリケーションＡＰ１を復号して実行可能にする。具体的には、例えば、端末装置Ｔ１は、エリア１１０内でサーバ１０１から復号鍵を受信して、アプリケーションＡＰ１を復号することにしてもよい。
【００２８】
図１の例では、端末装置Ｔ１において、エリア１１０内でアプリケーションＡＰ１が復号されて実行可能となる。これにより、ユーザＡは、店舗Ｘでクーポンアプリなどを利用することが可能となる。
【００２９】
なお、端末装置Ｔ１は、アプリケーションＡＰ１が実行可能となったことに応じて、アプリケーションＡＰ１を自動実行することにしてもよい。また、端末装置Ｔ１は、アプリケーションＡＰ１が実行可能となった旨を通知して、ユーザＡからの実行指示を待ち受けることにしてもよい。
【００３０】
（４）端末装置Ｔ１は、エリア１１０外でアプリケーションＡＰ２を起動する。具体的には、例えば、端末装置Ｔ１は、自端末の位置情報を取得して、自端末がエリア１１０内に位置するか否かを判定する。そして、端末装置Ｔ１は、自端末がエリア１１０外であると判定した場合に、アプリケーションＡＰ２を起動する。
【００３１】
図１の例では、ユーザＡが店舗Ｘから出て、端末装置Ｔ１がエリア１１０外となった際に、端末装置Ｔ１においてアプリケーションＡＰ２が起動される。
【００３２】
（５）端末装置Ｔ１は、アプリケーションＡＰ２を起動した場合、近距離無線通信可能な他の端末装置Ｔを検出する。そして、端末装置Ｔ１は、他の端末装置Ｔを検出した場合に、アプリケーションＡＰ１を他の端末装置Ｔに送信する。
【００３３】
図１の例では、端末装置Ｔ１と近距離無線通信可能な端末装置Ｔ２が検出された場合を想定する。この場合、端末装置Ｔ１は、暗号化されたアプリケーションＡＰ１を端末装置Ｔ２に送信する。
【００３４】
また、端末装置Ｔ２は、端末装置Ｔ１からアプリケーションＡＰ１を受信した場合、例えば、エリア１１０内に移動した際に、サーバ１０１から復号鍵を受信し、アプリケーションＡＰ１を復号して実行可能とすることができる。この際、サーバ１０１は、端末装置Ｔ２へのアプリケーションＡＰ１の配信は行わない。
【００３５】
このように、サーバ１０１によれば、エリア１１０内の端末装置Ｔに対して、エリア１１０に対応付けられたアプリケーションＡＰ１とともに、エリア１１０外で起動されてアプリケーションＡＰ１を他の端末装置Ｔに中継するアプリケーションＡＰ２を配信することができる。これにより、エリア１１０外において、例えば、ユーザＡの端末装置Ｔ１を利用して、ユーザＡとすれ違ったユーザＢの端末装置Ｔ２などに対して、エリア１１０で実行可能となるアプリケーションＡＰ１を配信することができる。
【００３６】
この結果、ユーザＢがエリア１１０内に移動した際に、サーバ１０１から端末装置Ｔ２に対してアプリケーションＡＰ１を配信する必要がなくなり、アプリケーションＡＰ１の配信にかかるサーバ１０１への負荷集中を抑制することができる。また、端末装置Ｔ１によるアプリケーションＡＰ１の配信はエリア１１０外で行われるため、エリア１１０（サービス提供エリア）内でのネットワーク負荷の集中を防止することができる。
【００３７】
（アプリケーション配信システム２００のシステム構成例）
つぎに、実施の形態１にかかるアプリケーション配信システム２００のシステム構成例について説明する。
【００３８】
図２は、アプリケーション配信システム２００のシステム構成例を示す説明図である。図２において、アプリケーション配信システム２００は、サーバ１０１と、１以上のアクセスポイントＡＰ（図２の例では、３台）と、端末装置Ｔ１〜Ｔｎ（ｎ：２以上の自然数）と、を含む。アプリケーション配信システム２００において、サーバ１０１およびアクセスポイントＡＰは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどを含む。
【００３９】
ここで、サーバ１０１は、認証ＤＢ２２０および配信アプリリスト２３０を有する。認証ＤＢ２２０および配信アプリリスト２３０の記憶内容については、図５および図６を用いて後述する。サーバ１０１は、上述したように、例えば、店舗、学校、イベント会場などに設置される。
【００４０】
また、アクセスポイントＡＰは、無線ＬＡＮのアクセスポイントである。例えば、サーバ１０１が店舗に設置される場合、アクセスポイントＡＰは、サーバ１０１と同じ店舗に設置される。また、例えば、サーバ１０１が学校に設置される場合、アクセスポイントＡＰは、サーバ１０１が設置された学校内の教室などに設置される。また、例えば、サーバ１０１がイベント会場に設置される場合、アクセスポイントＡＰは、サーバ１０１が設置されたイベント会場内のブースなどに設置される。
【００４１】
端末装置Ｔ１〜Ｔｎは、アクセスポイントＡＰの通信範囲内において当該アクセスポイントＡＰと無線通信可能であり、当該アクセスポイントＡＰを介してサーバ１０１に接続することができる。以下の説明では、端末装置Ｔ１〜Ｔｎを単に「端末Ｔ１〜Ｔｎ」と表記し、端末Ｔ１〜Ｔｎのうちの任意の端末を「端末Ｔｉ」と表記する場合がある（ｉ＝１，２，…，ｎ）。
【００４２】
なお、上述した説明では、アプリケーション配信システム２００内の各所に設置されるアクセスポイントＡＰを介して、端末Ｔｉがサーバ１０１に接続される場合を例に挙げて説明したが、これに限らない。例えば、サーバ１０１に内蔵された無線ＬＡＮのアクセスポイントを介して、端末Ｔｉがサーバ１０１に接続される形態であってもよい。
【００４３】
（サーバ１０１のハードウェア構成例）
つぎに、サーバ１０１のハードウェア構成例について説明する。
【００４４】
図３は、実施の形態１にかかるサーバ１０１のハードウェア構成例を示すブロック図である。図３において、サーバ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、ディスクドライブ３０４と、ディスク３０５と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４５】
ここで、ＣＰＵ３０１は、サーバ１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４６】
Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他の装置（例えば、図２に示した端末Ｔｉ）に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他の装置からのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４７】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００４８】
なお、サーバ１０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、図２に示したアクセスポイントＡＰについても、上述したサーバ１０１と同様のハードウェア構成により実現することができる。
【００４９】
（端末Ｔｉのハードウェア構成例）
つぎに、端末Ｔｉのハードウェア構成例について説明する。
【００５０】
図４は、実施の形態１にかかる端末Ｔｉのハードウェア構成例を示すブロック図である。図４において、端末Ｔｉは、ＣＰＵ４０１と、メモリ４０２と、ディスプレイ４０３と、入力装置４０４と、公衆網Ｉ／Ｆ４０５と、近距離無線Ｉ／Ｆ４０６と、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）ユニット４０７を有する。また、各構成部はバス４００によってそれぞれ接続される。
【００５１】
ここで、ＣＰＵ４０１は、端末Ｔｉの全体の制御を司る。メモリ４０２は、例えば、ＲＯＭ、ＲＡＭおよびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭがＯＳのプログラムを記憶し、ＲＯＭがアプリケーションプログラムを記憶し、ＲＡＭがＣＰＵ４０１のワークエリアとして使用される。メモリ４０２に記憶されるプログラムは、ＣＰＵ４０１にロードされることで、コーディングされている処理をＣＰＵ４０１に実行させることになる。
【００５２】
ディスプレイ４０３は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ４０３は、例えば、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどを採用することができる。
【００５３】
入力装置４０４は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置４０４は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【００５４】
公衆網Ｉ／Ｆ４０５は、通信回線を通じて公衆網に接続され、公衆網を介して他の装置に接続される。そして、公衆網Ｉ／Ｆ４０５は、公衆網と内部のインターフェースを司り、他の装置からのデータの入出力を制御する。
【００５５】
近距離無線Ｉ／Ｆ４０６は、近距離無線ネットワークに接続され、近距離無線ネットワークを介して他の装置に接続される。そして、近距離無線Ｉ／Ｆ４０６は、近距離無線ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する。公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６には、例えば、携帯通信モデムやネットワーク通信チップなどを採用することができる。
【００５６】
ＧＰＳユニット４０７は、ＧＰＳ衛星からの電波を受信し、端末Ｔｉの位置を示す位置情報を出力する。端末Ｔｉの位置情報は、例えば、緯度・経度、高度などの地球上の１点を特定する情報である。なお、端末Ｔｉは、上述した構成部のほか、例えば、ディスクドライブ、ディスク、ＳＳＤなどを有することにしてもよい。
【００５７】
（認証ＤＢ２２０の記憶内容）
つぎに、サーバ１０１が有する認証ＤＢ２２０の記憶内容について説明する。認証ＤＢ２２０は、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置により実現される。
【００５８】
図５は、認証ＤＢ２２０の記憶内容の一例を示す説明図である。図５において、認証ＤＢ２２０は、ユーザＩＤおよびパスワードのフィールドを有し、各フィールドに情報を設定することで、認証情報（例えば、認証情報５００−１，５００−２）をレコードとして記憶する。なお、図５の例では、各認証情報を平文で記述したが、例えば、各認証情報は暗号化された状態で認証ＤＢ２２０に記憶される。
【００５９】
ここで、ユーザＩＤは、端末Ｔｉのユーザを識別する識別子である。パスワードは、端末Ｔｉのユーザのパスワードである。ユーザＩＤおよびパスワードは、例えば、ユーザの認証に使用される。例えば、認証情報５００−１は、ユーザＩＤ「ｂｏｂ」およびパスワード「ｐｗｄ１」を示す。
【００６０】
（配信アプリリスト２３０の記憶内容）
つぎに、サーバ１０１が有する配信アプリリスト２３０の記憶内容について説明する。配信アプリリスト２３０は、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置により実現される。
【００６１】
図６は、配信アプリリスト２３０の記憶内容の一例を示す説明図である。図６において、配信アプリリスト２３０は、アプリＩＤおよび配信エリアのフィールドを有し、各フィールドに情報を設定することで、配信アプリ情報（例えば、配信アプリ情報６００−１，６００−２）をレコードとして記憶する。
【００６２】
ここで、アプリＩＤは、配信対象となるアプリケーションを識別する識別子である。配信エリアは、上述した「特定のエリア」に対応しており、配信対象となるアプリケーションを配信するエリアを特定する情報である。ここでは、配信エリアは、地球上のある矩形領域の対角頂点の座標位置を示す。
【００６３】
例えば、配信アプリ情報６００−１は、アプリＩＤ「ａｐｐ１」および配信エリア「（ｘ１，ｙ１）、（ｘ２，ｙ２）」を示す。なお、アプリＩＤに対応するアプリケーションは、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶されている。
【００６４】
（ダウンロード済みアプリリスト７００の記憶内容）
つぎに、端末Ｔｉが有するダウンロード済みアプリリスト７００の記憶内容について説明する。ダウンロード済みアプリリスト７００は、例えば、図４に示したメモリ４０２により実現される。
【００６５】
図７は、ダウンロード済みアプリリスト７００の記憶内容の一例を示す説明図である。図７において、ダウンロード済みアプリリスト７００は、アプリＩＤおよび暗号化のフィールドを有し、各フィールドに情報を設定することで、ダウンロード済みアプリ情報をレコードとして記憶する。
【００６６】
ここで、アプリＩＤは、ダウンロード済みのアプリケーションを識別する識別子である。暗号化は、ダウンロード済みのアプリケーションが暗号化されているか否かを示す。暗号化フィールドには、アプリケーションが暗号化されている場合に「ｔｒｕｅ」が設定され、暗号化されたアプリケーションが復号された場合に「ｆａｌｓｅ」が設定される。
【００６７】
図７の例では、端末Ｔｉがダウンロード済みのアプリケーションが存在しないため、アプリＩＤおよび暗号化の各フィールドは「空白」となっている。
【００６８】
（サーバ１０１の機能的構成例）
図８は、実施の形態１にかかるサーバ１０１の機能的構成例を示すブロック図である。図８において、サーバ１０１は、検出部８０１と、認証部８０２と、配信部８０３と、を含む構成である。検出部８０１〜配信部８０３は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００６９】
検出部８０１は、無線通信可能な端末Ｔｉを検出する。具体的には、例えば、検出部８０１は、図２に示したアクセスポイントＡＰを介して、無線通信可能な端末Ｔｉを検出する。これにより、アクセスポイントＡＰの通信範囲内に存在する端末Ｔｉを検出することができる。
【００７０】
認証部８０２は、無線通信可能な端末Ｔｉが検出された場合、端末Ｔｉの認証処理を行う。具体的には、例えば、まず、認証部８０２は、無線通信可能な端末Ｔｉが検出された場合、端末Ｔｉと接続して認証要求を送信する。ここで、認証要求は、端末Ｔｉのユーザが、アプリケーション配信システム２００を利用する正当なユーザであるかの認証を要求するものである。
【００７１】
つぎに、認証部８０２は、端末Ｔｉからユーザ情報を受信する。ここで、ユーザ情報は、例えば、端末Ｔｉの認証画面において入力されるユーザＩＤおよびパスワードなどを含む。そして、認証部８０２は、端末Ｔｉから受信したユーザ情報に基づいて、端末Ｔｉの認証処理を行う。
【００７２】
より詳細に説明すると、例えば、認証部８０２は、受信したユーザ情報をデコードして、認証ＤＢ２２０（例えば、図５参照）から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定する。そして、認証部８０２は、特定したパスワードと、ユーザ情報に含まれるパスワードとを照合する。
【００７３】
そして、認証部８０２は、パスワードが一致する場合に、端末Ｔｉを認証する（認証成功）。一方、認証部８０２は、パスワードが不一致の場合は、端末Ｔｉを認証しない（認証失敗）。また、認証部８０２は、認証ＤＢ２２０から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定できなかった場合も、端末Ｔｉを認証しない（認証失敗）。
【００７４】
配信部８０３は、端末Ｔｉが認証された場合、配信対象となるアプリケーションの配信エリア内に端末Ｔｉが存在するか否かを判断する。以下の説明では、配信対象となるアプリケーションを、単に「配信アプリ」と表記する場合がある。
【００７５】
具体的には、例えば、まず、配信部８０３は、端末Ｔｉが認証された場合、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００（例えば、図７参照）とを受信する。つぎに、配信部８０３は、例えば、図６に示した配信アプリリスト２３０を参照して、配信アプリの配信エリアを特定する。そして、配信部８０３は、受信した端末Ｔｉの位置情報に基づいて、配信アプリの配信エリア内に端末Ｔｉが存在するか否かを判断する。
【００７６】
なお、配信アプリリスト２３０から特定される配信エリアが複数存在する場合には、配信部８０３は、複数の配信エリアのそれぞれについて、配信エリア内に端末Ｔｉが存在するか否かを判断する。
【００７７】
また、配信部８０３は、配信エリア内に端末Ｔｉが存在する場合、受信したダウンロード済みアプリリスト７００に、配信アプリが含まれているか否かを判断する。一例として、アプリＩＤ「ａｐｐ１」のアプリケーションの配信エリア内に端末Ｔｉが存在する場合を想定する。
【００７８】
この場合、配信部８０３は、ダウンロード済みアプリリスト７００を参照して、アプリＩＤ「ａｐｐ１」のアプリケーションが含まれているか否かを判断する。図７の例では、配信部８０３は、ダウンロード済みアプリリスト７００に、アプリＩＤ「ａｐｐ１」のアプリケーションが含まれていないと判断する。
【００７９】
また、配信部８０３は、ダウンロード済みアプリリスト７００に配信アプリが含まれていない場合、配信アプリとアプリ中継サービスとを端末Ｔｉに送信する。ここで、アプリ中継サービスとは、配信アプリを他の端末Ｔｊ（ｊ≠ｉ、ｊ＝１，２，…，ｎ）に中継する機能を有するアプリケーションである。
【００８０】
また、アプリ中継サービスは、端末Ｔｉと近距離無線通信可能な他の端末Ｔｊを検出して、検出した他の端末Ｔｊと接続する機能を有する。また、アプリ中継サービスは、他の端末Ｔｊを認証する機能を有する。アプリ中継サービスには、例えば、配信アプリを中継可能なエリアを特定する情報（後述する図１６参照）や、他の端末Ｔｊを認証するための認証情報（後述する図１５参照）が含まれる。図１に示したアプリケーションＡＰ２は、例えば、このアプリ中継サービスに対応する。
【００８１】
また、配信部８０３は、配信アプリとともに復号アプリを端末Ｔｉに送信することにしてもよい。ここで、復号アプリは、暗号化された配信アプリを復号するためのアプリケーションである。配信アプリは、例えば、配信エリアに対応する位置情報を用いて生成される暗号鍵により暗号化されている。また、配信アプリには、配信エリアを特定する情報（例えば、図６に示した配信エリア）が付与されている。
【００８２】
具体的には、例えば、配信部８０３は、配信エリアに対応する位置情報から特定される緯度経度情報をハッシュ関数に与えることにより得られるハッシュ値を暗号鍵として生成する。そして、配信部８０３は、生成した暗号鍵を用いて配信アプリを暗号化する。配信アプリを暗号化する暗号鍵の生成例については、図１１〜図１４を用いて後述する。
【００８３】
なお、配信エリアに対応する位置情報は、例えば、サーバ１０１の設置位置から特定される位置情報であってもよく、また、サーバ１０１と対応付けて設置されるアクセスポイントＡＰの設置位置から特定される位置情報であってもよい。あるいは、配信エリアに対応する位置情報は、配信アプリリスト２３０の配信エリアの対角頂点の座標位置から特定される位置情報であってもよい。
【００８４】
また、アプリ中継サービスは、配信アプリと同様に、暗号化された状態で端末Ｔｉに送信されることにしてもよい。この場合、配信部８０３は、例えば、アプリ中継サービスとともに復号鍵を端末Ｔｉに送信することにしてもよい。ここで、復号鍵は、暗号化されたアプリ中継サービスを復号するための鍵情報である。
【００８５】
なお、配信部８０３は、ダウンロード済みアプリリスト７００にアプリ中継サービスが含まれている場合には、アプリ中継サービスを端末Ｔｉに送信しない。
【００８６】
また、配信部８０３は、配信エリア内に存在する端末Ｔｉに、配信アプリを復号する復号鍵を送信することにしてもよい。具体的には、例えば、配信部８０３は、配信エリア内に存在する端末Ｔｉに、配信アプリとともに復号鍵を送信することにしてもよい。また、配信部８０３は、配信エリア内に存在する端末Ｔｉから配信アプリの復号鍵の取得要求を受信したことに応じて、配信アプリの復号鍵を端末Ｔｉに送信することにしてもよい。
【００８７】
なお、上述した説明では、配信部８０３は、配信エリア内に存在する端末Ｔｉに対して配信アプリを送信することにしたが、これに限らない。例えば、配信部８０３は、配信エリア内に存在する端末Ｔｉに対して、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などの配信アプリの格納場所を示す情報を送信することにしてもよい。配信アプリの格納場所は、例えば、サーバ１０１上であってもよく、また、サーバ１０１とは異なるコンピュータ上であってもよい。
【００８８】
（端末Ｔｉの機能的構成例）
図９は、実施の形態１にかかる端末Ｔｉの機能的構成例を示すブロック図である。図９において、端末Ｔｉは、位置取得部９０１と、探索部９０２と、アプリ取得部９０３と、アプリ実行部９０４と、を含む構成である。位置取得部９０１〜アプリ実行部９０４は制御部となる機能であり、具体的には、例えば、図４に示したメモリ４０２に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６により、その機能を実現する。各機能部の処理結果は、例えば、メモリ４０２に記憶される。
【００８９】
位置取得部９０１は、自端末の位置情報を取得する。具体的には、例えば、位置取得部９０１は、ＧＰＳユニット４０７により、自端末の位置情報を取得する。
【００９０】
探索部９０２は、無線通信可能なサーバ１０１を探索する。具体的には、例えば、探索部９０２は、アクセスポイントＡＰをスキャンすることにより、アクセスポイントＡＰを介して無線通信可能なサーバ１０１を探索する。アクセスポイントＡＰの探索を行うスキャン動作には、例えば、アクティブスキャンとパッシブスキャンがある。
【００９１】
アクティブスキャンは、無線ＬＡＮに用いられる各チャネルに対してプローブリクエスト信号を送信して、プローブレスポンス信号を受信することにより、アクセスポイントＡＰを探索するスキャン動作である。また、パッシブスキャンは、アクセスポイントＡＰからビーコンと呼ばれる信号（パケット）を受信することにより、アクセスポイントＡＰを探索するスキャン動作である。
【００９２】
例えば、探索部９０２は、アクセスポイントＡＰを探索するスキャン動作として、アクティブスキャンおよびパッシブスキャンの両方を行うことにしてもよく、また、アクティブスキャンおよびパッシブスキャンのいずれか一方を行うことにしてもよい。
【００９３】
また、探索部９０２は、近距離無線通信可能な中継端末Ｔｊを探索する。ここで、中継端末Ｔｊは、配信アプリを中継する他の端末Ｔｊである。具体的には、例えば、探索部９０２は、アクセスポイントＡＰと同様に、中継端末Ｔｊをスキャンすることにより、近距離無線通信可能な中継端末Ｔｊを探索する。
【００９４】
アプリ取得部９０３は、探索されたサーバ１０１または中継端末Ｔｊから配信アプリを取得する。また、アプリ取得部９０３は、探索されたサーバ１０１または中継端末Ｔｊからアプリ中継サービスを取得する。
【００９５】
具体的には、例えば、アプリ取得部９０３は、探索されたサーバ１０１（または、中継端末Ｔｊ）から認証要求を受信したことに応じて、自端末のユーザ情報をサーバ１０１（または、中継端末Ｔｊ）に送信する。ユーザ情報は、例えば、端末Ｔｉの認証画面において入力される。
【００９６】
つぎに、アプリ取得部９０３は、自端末が認証された場合、自端末の位置情報とダウンロード済みアプリリスト７００とをサーバ１０１（または、中継端末Ｔｊ）に送信する。そして、アプリ取得部９０３は、配信アプリまたは／およびアプリ中継サービスをサーバ１０１（または、中継端末Ｔｊ）から受信することにより、配信アプリまたは／およびアプリ中継サービスを取得する。
【００９７】
また、アプリ取得部９０３は、配信アプリまたはアプリ中継サービスを取得したことに応じて、ダウンロード済みアプリリスト７００を更新する。ここで、図１０を用いて、ダウンロード済みアプリリスト７００の更新例について説明する。
【００９８】
図１０は、ダウンロード済みアプリリスト７００の更新例を示す説明図である。ここでは、アプリＩＤ「ａｐｐ０」のアプリ中継サービスとアプリＩＤ「ａｐｐ１」のアプリケーションとをサーバ１０１から取得した場合を例に挙げて説明する。
【００９９】
この場合、アプリ取得部９０３は、ダウンロード済みアプリリスト７００のアプリＩＤおよび暗号化の各フィールドに「ａｐｐ０」および「ｔｒｕｅ」を設定する。これにより、ダウンロード済みアプリ情報１０００−１がレコードとして記憶される（図１０中、（１０−１）参照）。
【０１００】
また、アプリ取得部９０３は、ダウンロード済みアプリリスト７００のアプリＩＤおよび暗号化の各フィールドに「ａｐｐ１」および「ｔｒｕｅ」を設定する。これにより、ダウンロード済みアプリ情報１０００−２がレコードとして記憶される（図１０中、（１０−１）参照）。
【０１０１】
なお、ここでは、アプリ中継サービスは、サーバ１０１から暗号化された状態で配信されることにしたが、暗号化されていない状態で配信されることにしてもよい。この場合、ダウンロード済みアプリリスト７００の暗号化フィールドには「ｆａｌｓｅ」が設定される。
【０１０２】
また、アプリ中継サービスに含まれる配信アプリを中継可能なエリアを特定する情報は、例えば、後述する図１６に示す中継アプリリスト１６００に記憶される。また、アプリ中継サービスに含まれる他の端末Ｔｊを認証するための認証情報は、例えば、後述する図１５に示す中継端末用認証ＤＢ１５００に記憶される。
【０１０３】
図９の説明に戻り、アプリ実行部９０４は、取得された配信アプリを、当該配信アプリの配信エリア内で復号して実行可能にする。具体的には、例えば、アプリ実行部９０４は、配信アプリとともに復号アプリが取得された場合、復号アプリを起動して、自端末の位置情報を取得する。
【０１０４】
そして、アプリ実行部９０４は、取得した自装置の位置情報から特定される緯度経度情報をハッシュ関数に与えることにより得られるハッシュ値を復号鍵として生成する。つぎに、アプリ実行部９０４は、生成した復号鍵により配信アプリの復号処理を行う。そして、アプリ実行部９０４は、配信アプリの復号に成功した場合に、復号した配信アプリを実行することにしてもよい。
【０１０５】
また、アプリ実行部９０４は、配信アプリの復号に失敗した場合は、自装置の位置情報を取得し直して、以降の一連の処理を繰り返す。配信アプリを復号する復号鍵の生成例については、図１１〜図１４を用いて後述する。
【０１０６】
また、アプリ実行部９０４は、配信アプリとともに復号鍵が取得された場合、取得された復号鍵を用いて配信アプリを復号する。また、アプリ実行部９０４は、サーバ１０１に対して復号鍵の取得要求を送信することにより得られる復号鍵を用いて配信アプリを復号することにしてもよい。
【０１０７】
また、アプリ実行部９０４は、配信アプリまたはアプリ中継サービスが復号された場合、ダウンロード済みアプリリスト７００を更新する。例えば、図１０に示す（１０−２）の例では、アプリＩＤ「ａｐｐ０」のアプリ中継サービスとアプリＩＤ「ａｐｐ１」のアプリケーションとが復号された結果、各暗号化フィールドに「ｆａｌｓｅ」がそれぞれ設定されている。
【０１０８】
また、アプリ実行部９０４は、配信エリア外でアプリ中継サービスを起動する。具体的には、例えば、アプリ実行部９０４は、自端末の位置情報を取得して、配信アプリの配信エリア外に自端末が存在するか否かを判定する。なお、配信エリアを特定する情報は、例えば、配信アプリに付与されている。
【０１０９】
そして、アプリ実行部９０４は、配信エリア外に自端末が存在すると判定した場合に、アプリ中継サービスを起動する。一方、アプリ実行部９０４は、配信エリア内に自端末が存在すると判定した場合は、アプリ中継サービスを起動しない。これにより、配信アプリの配信エリア外において、端末Ｔｉは、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。
【０１１０】
なお、中継端末Ｔｉの機能的構成例については、図１７を用いて後述する。また、上述した説明では、アプリ取得部９０３は、サーバ１０１（または、中継端末Ｔｊ）から配信アプリを受信することにしたが、これに限らない。例えば、アプリ取得部９０３は、サーバ１０１（または、中継端末Ｔｊ）から、ＵＲＬなどの配信アプリの格納場所を示す情報を受信することにしてもよい。この場合、アプリ取得部９０３は、受信したＵＲＬなどの情報が示す格納場所にアクセスすることにより、配信アプリを取得する。
【０１１１】
（暗号鍵および復号鍵の生成例）
つぎに、配信アプリを暗号化する暗号鍵および暗号化された配信アプリを復号する復号鍵の生成例について説明する。
【０１１２】
図１１〜図１４は、暗号鍵および復号鍵の生成例を示す説明図である。ここでは、まず、配信アプリを暗号化する暗号鍵の生成例について説明する。
【０１１３】
図１１において、サーバ１０１の配信部８０３は、空間をグリッドで分割する。ここで、空間は、地球上の空間であり、例えば、サーバ１０１の設置位置から所定範囲内の空間である。また、グリッドは、例えば、１辺が数ｍ〜数十ｍ程度の立方体または平面である。
【０１１４】
図１１の例では、配信部８０３は、緯度経度を秒（″）単位で分割することにより、空間を複数のグリッド（例えば、グリッドＧ１〜Ｇ９）に分割する。
【０１１５】
図１２において、配信部８０３は、配信エリアに対応するグリッドの左上の頂点の緯度経度を秒（″）単位に変換して結合する。ここで、配信エリアに対応するグリッドとは、例えば、サーバ１０１の設置位置を含むグリッドであってもよく、また、配信エリアに対応するアクセスポイントＡＰの設置位置を含むグリッドであってもよい。
【０１１６】
なお、配信エリアに対応するグリッドは、配信アプリリスト２３０の配信エリアの対角頂点の座標位置から特定される矩形領域と一致していることが好ましいが、厳密に一致していなくてもよい。例えば、配信エリアに対応するグリッドは、配信アプリリスト２３０の配信エリアの対角頂点の座標位置から特定される矩形領域を含むグリッドであってもよい。
【０１１７】
図１２の例では、配信エリアに対応するグリッドを、サーバ１０１の設置位置を含む「グリッドＧ５」とする。この場合、配信部８０３は、グリッドＧ５の左上の頂点の緯度「３５°４０′４９″」および経度「１３９°４５′５１″」を、秒（″）単位の緯度「１２８４４９″」および経度「５０３１５１″」に変換して結合する。
【０１１８】
図１３において、配信部８０３は、配信エリアに対応するグリッドの左上の頂点の秒（″）単位の緯度経度を結合して得られた数値に対してハッシュ関数を適用する。図１３の例では、配信部８０３は、グリッドＧ５の左上の頂点の秒（″）単位の緯度経度を結合して得られた数値を、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）に与えることによりハッシュ値を取得する。
【０１１９】
図１４において、配信部８０３は、ハッシュ関数を適用して得られたハッシュ値を暗号鍵とする。図１４の例では、配信部８０３は、グリッドＧ５のハッシュ値「３４５０ｂ９１４ｄ４ｆｄ３ｄ６３０８９ｆ６２６２ｄ３４ｂｅ６ｄｆ」を暗号鍵とする。これにより、配信部８０３は、配信エリアに対するグリッドＧ５内で実行可能となる配信アプリを暗号化する暗号鍵を生成することができる。
【０１２０】
つぎに、暗号化された配信アプリを復号する復号鍵の生成例について説明する。
【０１２１】
図１１において、端末Ｔｉのアプリ実行部９０４は、空間をグリッドで分割する。ここで、空間は、例えば、端末Ｔｉの現在位置から所定範囲内の空間である。なお、アプリ実行部９０４が空間を分割する際の基準点やグリッドの大きさは、サーバ１０１の配信部８０３が空間を分割する際の基準点やグリッドの大きさと同じものとする。
【０１２２】
図１１の例では、アプリ実行部９０４は、緯度経度を秒（″）単位で分割することにより、空間を複数のグリッド（例えば、グリッドＧ１〜Ｇ９）に分割する。
【０１２３】
図１２において、アプリ実行部９０４は、自端末が位置するグリッドの左上の頂点の緯度経度を秒（″）単位に変換して結合する。図１２の例では、端末Ｔｉが位置するグリッドを「グリッドＧ１」とする。この場合、アプリ実行部９０４は、グリッドＧ１の左上の頂点の緯度「３５°４０′５０″」および経度「１３９°４５′５０″」を、秒（″）単位の緯度「１２８４５０″」および経度「５０３１５０″」に変換して結合する。
【０１２４】
図１３において、アプリ実行部９０４は、自端末が位置するグリッドの左上の頂点の秒（″）単位の緯度経度を結合して得られた数値に対してハッシュ関数を適用する。図１３の例では、アプリ実行部９０４は、グリッドＧ１の左上の頂点の秒（″）単位の緯度経度を結合して得られた数値を、ＭＤ５に与えることによりハッシュ値を取得する。
【０１２５】
図１４において、アプリ実行部９０４は、自端末が位置するグリッドのハッシュ値を復号鍵とする。図１４の例では、アプリ実行部９０４は、自端末が位置するグリッドＧ１のハッシュ値「ｆａｂｆａ７９ｃ７３９２０６３５８２１２６ｂ８ｄ０ｆｆ１ｆｅｂｆ」を復号鍵とする。ただし、この場合、暗号鍵と復号鍵とが一致しておらず、配信アプリを復号することができない。
【０１２６】
すなわち、アプリ実行部９０４は、自端末が、配信エリアに対応するグリッドＧ５に位置する場合にのみ、上述したアルゴリズムにより生成される復号鍵により配信アプリを復号することができる。
【０１２７】
（中継端末用認証ＤＢ１５００の記憶内容）
つぎに、中継端末Ｔｉが有する中継端末用認証ＤＢ１５００の記憶内容について説明する。中継端末用認証ＤＢ１５００は、例えば、図４に示したメモリ４０２により実現される。
【０１２８】
図１５は、中継端末用認証ＤＢ１５００の記憶内容の一例を示す説明図である。図１５において、中継端末用認証ＤＢ１５００は、ユーザＩＤおよびパスワードのフィールドを有し、各フィールドに情報を設定することで、認証情報（例えば、認証情報１５００−１，１５００−２）をレコードとして記憶する。なお、図１５の例では、各認証情報を平文で記述したが、例えば、各認証情報は暗号化された状態で中継端末用認証ＤＢ１５００に記憶される。
【０１２９】
ここで、ユーザＩＤは、他の端末Ｔｊのユーザを識別する識別子である。パスワードは、端末Ｔｊのユーザのパスワードである。ユーザＩＤおよびパスワードは、例えば、ユーザの認証に使用される。例えば、認証情報１５００−１は、ユーザＩＤ「ｂｏｂ」およびパスワード「ｐｗｄ１」を示す。
【０１３０】
（中継アプリリスト１６００の記憶内容）
つぎに、中継端末Ｔｉが有する中継アプリリスト１６００の記憶内容について説明する。中継アプリリスト１６００には、サーバ１０１から配信された配信アプリの情報が登録される。中継アプリリスト１６００は、例えば、図４に示したメモリ４０２により実現される。
【０１３１】
図１６は、中継アプリリスト１６００の記憶内容の一例を示す説明図である。図１６において、中継アプリリスト１６００は、アプリＩＤ、中継エリアおよび暗号化のフィールドを有し、各フィールドに情報を設定することで、中継アプリ情報（例えば、中継アプリ情報１６００−１，１６００−２）をレコードとして記憶する。
【０１３２】
ここで、アプリＩＤは、中継対象となるアプリケーション、すなわち、サーバ１０１から配信された配信アプリを識別する識別子である。中継エリアは、中継対象となるアプリケーションを中継するエリアを特定する情報である。ここでは、中継エリアは、地球上のある矩形領域の対角頂点の座標位置を示す。また、中継エリアとして、上述した「配信エリア」よりも広いエリアが設定される。
【０１３３】
暗号化は、中継対象となるアプリケーションが暗号化されているか否かを示す。例えば、中継アプリ情報１６００−１は、アプリＩＤ「ａｐｐ１」および中継エリア「（ｘ５，ｙ５）、（ｘ６，ｙ６）」を示す。
【０１３４】
（中継端末Ｔｉの機能的構成例）
図１７は、実施の形態１にかかる中継端末Ｔｉの機能的構成例を示すブロック図である。図１７において、中継端末Ｔｉは、位置取得部９０１と、探索部９０２と、アプリ取得部９０３と、アプリ実行部９０４と、検出部１７０１と、認証部１７０２と、中継部１７０３と、を含む構成である。位置取得部９０１〜アプリ実行部９０４および検出部１７０１〜中継部１７０３は制御部となる機能であり、具体的には、例えば、図４に示したメモリ４０２に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６により、その機能を実現する。各機能部の処理結果は、例えば、メモリ４０２に記憶される。なお、図９に示した端末Ｔｉと同一の機能部については、同一符号を付して説明を省略する。
【０１３５】
検出部１７０１は、近距離無線通信可能な他の端末Ｔｊを検出する。具体的には、例えば、検出部１７０１は、ビーコンと呼ばれる信号（パケット）を送信して、信号に対する応答を待ち受けることにより、近距離無線通信可能な他の端末Ｔｊを検出することにしてもよい。
【０１３６】
認証部１７０２は、近距離無線通信可能な他の端末Ｔｊが検出された場合、他の端末Ｔｊの認証処理を行う。具体的には、例えば、まず、認証部１７０２は、近距離無線通信可能な他の端末Ｔｊが検出された場合、他の端末Ｔｊと接続して認証要求を送信する。ここで、認証要求は、他の端末Ｔｊのユーザが、アプリケーション配信システム２００を利用する正当なユーザであるかの認証を要求するものである。
【０１３７】
つぎに、認証部１７０２は、他の端末Ｔｊからユーザ情報を受信する。ここで、ユーザ情報は、例えば、他の端末Ｔｊの認証画面において入力されるユーザＩＤおよびパスワードなどを含む。そして、認証部１７０２は、他の端末Ｔｊから受信したユーザ情報に基づいて、他の端末Ｔｊの認証処理を行う。
【０１３８】
より詳細に説明すると、例えば、認証部１７０２は、受信したユーザ情報をデコードして、中継端末用認証ＤＢ１５００（例えば、図１５参照）から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定する。そして、認証部１７０２は、特定したパスワードと、ユーザ情報に含まれるパスワードとを照合する。
【０１３９】
そして、認証部１７０２は、パスワードが一致する場合に、他の端末Ｔｊを認証する（認証成功）。一方、認証部１７０２は、パスワードが不一致の場合は、他の端末Ｔｊを認証しない（認証失敗）。また、認証部１７０２は、中継端末用認証ＤＢ１５００から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定できなかった場合も、他の端末Ｔｊを認証しない（認証失敗）。
【０１４０】
中継部１７０３は、他の端末Ｔｊが認証された場合、中継対象となるアプリケーションの中継エリア内に他の端末Ｔｊが存在するか否かを判断する。ここで、中継対象となるアプリケーションは、サーバ１０１から配信された配信アプリである。以下の説明では、中継対象となるアプリケーションを「配信アプリ」と表記する場合がある。
【０１４１】
具体的には、例えば、まず、中継部１７０３は、他の端末Ｔｊが認証された場合、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００とを受信する。つぎに、中継部１７０３は、例えば、図１６に示した中継アプリリスト１６００を参照して、配信アプリの中継エリアを特定する。
【０１４２】
そして、中継部１７０３は、受信した他の端末Ｔｊの位置情報に基づいて、配信アプリの中継エリア内に他の端末Ｔｊが存在するか否かを判断する。ただし、配信アプリの中継エリアの一部が、配信アプリの配信エリアと重なる場合には、中継部１７０３は、配信アプリの中継エリア内で、かつ、配信アプリの配信エリア外に他の端末Ｔｊが存在するか否かを判断する。
【０１４３】
なお、中継アプリリスト１６００から特定される中継エリアが複数存在する場合には、中継部１７０３は、複数の中継エリアのそれぞれについて、中継エリア内に他の端末Ｔｊが存在するか否かを判断する。
【０１４４】
また、中継部１７０３は、中継エリア内に他の端末Ｔｊが存在する場合、受信したダウンロード済みアプリリスト７００に、配信アプリが含まれているか否かを判断する。そして、中継部１７０３は、ダウンロード済みアプリリスト７００に配信アプリが含まれていない場合、配信アプリを他の端末Ｔｊに送信する。
【０１４５】
この際、中継部１７０３は、配信アプリとともに復号アプリを他の端末Ｔｊに送信することにしてもよい。また、中継部１７０３は、配信アプリとともに、アプリ中継サービスを他の端末Ｔｊに送信することにしてもよい。ただし、中継部１７０３は、ダウンロード済みアプリリスト７００にアプリ中継サービスが含まれている場合には、アプリ中継サービスを他の端末Ｔｊに送信しない。
【０１４６】
なお、上述した説明では、中継部１７０３は、他の端末Ｔｊに対して配信アプリを送信することにしたが、これに限らない。例えば、中継部１７０３は、他の端末Ｔｊに対して、ＵＲＬなどの配信アプリの格納場所を示す情報を送信することにしてもよい。
【０１４７】
（サーバ１０１のアプリケーション配信処理手順）
つぎに、実施の形態１にかかるサーバ１０１のアプリケーション配信処理手順について説明する。
【０１４８】
図１８は、実施の形態１にかかるサーバ１０１のアプリケーション配信処理手順の一例を示すフローチャートである。図１８のフローチャートにおいて、まず、サーバ１０１は、アクセスポイントＡＰを介して、無線通信可能な端末Ｔｉを検出したか否かを判断する（ステップＳ１８０１）。
【０１４９】
ここで、サーバ１０１は、端末Ｔｉを検出するのを待って（ステップＳ１８０１：Ｎｏ）、端末Ｔｉを検出した場合（ステップＳ１８０１：Ｙｅｓ）、検出した端末Ｔｉと接続して認証処理を行う（ステップＳ１８０２）。そして、サーバ１０１は、端末Ｔｉの認証に成功したか否かを判断する（ステップＳ１８０３）。
【０１５０】
ここで、端末Ｔｉの認証に失敗した場合（ステップＳ１８０３：Ｎｏ）、サーバ１０１は、本フローチャートによる一連の処理を終了する。
【０１５１】
一方、端末Ｔｉの認証に成功した場合（ステップＳ１８０３：Ｙｅｓ）、サーバ１０１は、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００を受信したか否かを判断する（ステップＳ１８０４）。ここで、サーバ１０１は、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００を受信するのを待つ（ステップＳ１８０４：Ｎｏ）。
【０１５２】
そして、サーバ１０１は、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００を受信した場合（ステップＳ１８０４：Ｙｅｓ）、受信したダウンロード済みアプリリスト７００に、アプリ中継サービスが含まれるか否かを判断する（ステップＳ１８０５）。ここで、アプリ中継サービスが含まれる場合（ステップＳ１８０５：Ｙｅｓ）、サーバ１０１は、ステップＳ１８０７に移行する。
【０１５３】
一方、アプリ中継サービスが含まれない場合（ステップＳ１８０５：Ｎｏ）、サーバ１０１は、端末Ｔｉにアプリ中継サービスを送信する（ステップＳ１８０６）。つぎに、サーバ１０１は、配信アプリリスト２３０を参照して、受信したダウンロード済みアプリリスト７００に存在しない配信アプリがあるか否かを判断する（ステップＳ１８０７）。
【０１５４】
ここで、ダウンロード済みアプリリスト７００に存在しない配信アプリがない場合（ステップＳ１８０７：Ｎｏ）、サーバ１０１は、本フローチャートによる一連の処理を終了する。
【０１５５】
一方、ダウンロード済みアプリリスト７００に存在しない配信アプリがある場合（ステップＳ１８０７：Ｙｅｓ）、サーバ１０１は、配信アプリリスト２３０を参照して、受信した端末Ｔｉの位置情報に基づいて、配信アプリの配信エリア内に端末Ｔｉが存在するか否かを判断する（ステップＳ１８０８）。
【０１５６】
ここで、配信エリア内に端末Ｔｉが存在しない場合（ステップＳ１８０８：Ｎｏ）、サーバ１０１は、本フローチャートによる一連の処理を終了する。
【０１５７】
一方、配信エリア内に端末Ｔｉが存在する場合（ステップＳ１８０８：Ｙｅｓ）、サーバ１０１は、配信アプリと復号アプリを端末Ｔｉに送信して（ステップＳ１８０９）、本フローチャートによる一連の処理を終了する。
【０１５８】
これにより、サーバ１０１は、配信エリア内に存在する端末Ｔｉに対して、配信エリア内で実行可能となる配信アプリを配信するとともに、アプリ中継サービスを配信することができる。
【０１５９】
なお、ステップＳ１８０６において、サーバ１０１は、例えば、認証に成功した端末の複数台に１台（例えば、３台に１台）に、アプリ中継サービスを送信することにしてもよい。また、サーバ１０１は、配信エリア内の端末の密度が閾値以上となった場合に、アプリ中継サービスを端末Ｔｉに送信することにしてもよい。これにより、アプリ中継サービスを配信する端末の数を制限することができる。
【０１６０】
（端末Ｔｉのアプリケーション実行処理手順）
つぎに、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順について説明する。
【０１６１】
図１９および図２０は、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順の一例を示すフローチャートである。図１９のフローチャートにおいて、まず、端末Ｔｉは、自端末の位置情報を取得する（ステップＳ１９０１）。
【０１６２】
つぎに、端末Ｔｉは、ダウンロード済みアプリリスト７００を参照して、暗号化された配信アプリがあるか否かを判断する（ステップＳ１９０２）。ここで、暗号化された配信アプリがない場合（ステップＳ１９０２：Ｎｏ）、端末Ｔｉは、ステップＳ１９０７に移行する。
【０１６３】
一方、暗号化された配信アプリがある場合（ステップＳ１９０２：Ｙｅｓ）、端末Ｔｉは、暗号化された配信アプリの復号アプリがあるか否かを判断する（ステップＳ１９０３）。ここで、復号アプリがない場合（ステップＳ１９０３：Ｎｏ）、端末Ｔｉは、ステップＳ１９０７に移行する。
【０１６４】
一方、復号アプリがある場合（ステップＳ１９０３：Ｙｅｓ）、端末Ｔｉは、復号アプリを起動して、取得した自端末の位置情報に基づいて、暗号化された配信アプリの復号処理を行う（ステップＳ１９０４）。そして、端末Ｔｉは、暗号化された配信アプリの復号に成功したか否かを判断する（ステップＳ１９０５）。
【０１６５】
ここで、配信アプリの復号に失敗した場合（ステップＳ１９０５：Ｎｏ）、端末Ｔｉは、ステップＳ１９０７に移行する。一方、配信アプリの復号に成功した場合（ステップＳ１９０５：Ｙｅｓ）、端末Ｔｉは、復号した配信アプリを実行する（ステップＳ１９０６）。
【０１６６】
つぎに、端末Ｔｉは、ダウンロード済みアプリリスト７００を参照して、アプリ中継サービスがあるか否かを判断する（ステップＳ１９０７）。ここで、アプリ中継サービスがない場合（ステップＳ１９０７：Ｎｏ）、端末Ｔｉは、図２０に示すステップＳ２００１に移行する。
【０１６７】
一方、アプリ中継サービスがある場合（ステップＳ１９０７：Ｙｅｓ）、端末Ｔｉは、取得した自端末の位置情報に基づいて、配信アプリの配信エリア外に自端末が存在するか否かを判断する（ステップＳ１９０８）。ここで、配信エリア内に自端末が存在する場合（ステップＳ１９０８：Ｎｏ）、端末Ｔｉは、図２０に示すステップＳ２００１に移行する。
【０１６８】
一方、配信エリア外に自端末が存在する場合（ステップＳ１９０８：Ｙｅｓ）、端末Ｔｉは、アプリ中継サービスを起動して（ステップＳ１９０９）、図２０に示すステップＳ２００１に移行する。これにより、端末Ｔｉは、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。なお、中継端末Ｔｉのアプリケーション中継処理手順については、図２１を用いて後述する。
【０１６９】
図２０のフローチャートにおいて、まず、端末Ｔｉは、サーバ１０１または中継端末Ｔｊを探索する（ステップＳ２００１）。そして、端末Ｔｉは、サーバ１０１または中継端末Ｔｊを発見したか否かを判断する（ステップＳ２００２）。ここで、サーバ１０１または中継端末Ｔｊを発見しなかった場合（ステップＳ２００２：Ｎｏ）、端末Ｔｉは、図１９に示したステップＳ１９０１に戻る。
【０１７０】
一方、サーバ１０１または中継端末Ｔｊを発見した場合（ステップＳ２００２：Ｙｅｓ）、端末Ｔｉは、発見したサーバ１０１または中継端末Ｔｊと接続して認証処理を行う（ステップＳ２００３）。そして、端末Ｔｉは、自端末の認証に成功したか否かを判断する（ステップＳ２００４）。
【０１７１】
ここで、自端末の認証に失敗した場合（ステップＳ２００４：Ｎｏ）、端末Ｔｉは、図１９に示したステップＳ１９０１に戻る。一方、自端末の認証に成功した場合（ステップＳ２００４：Ｙｅｓ）、端末Ｔｉは、ダウンロード済みアプリリスト７００と自端末の位置情報をサーバ１０１に送信する（ステップＳ２００５）。
【０１７２】
つぎに、端末Ｔｉは、サーバ１０１からアプリケーションを受信するのを一定時間待つ（ステップＳ２００６）。一定時間は、例えば、数秒〜数十秒程度の時間である。そして、端末Ｔｉは、サーバ１０１から配信アプリ、復号アプリおよびアプリ中継サービスの少なくともいずれかのアプリケーションを受信したか否かを判断する（ステップＳ２００７）。
【０１７３】
ここで、いずれのアプリケーションも受信していない場合（ステップＳ２００７：Ｎｏ）、端末Ｔｉは、図１９に示したステップＳ１９０１に戻る。
【０１７４】
一方、いずれかのアプリケーションを受信した場合（ステップＳ２００７：Ｙｅｓ）、端末Ｔｉは、ダウンロード済みアプリリスト７００を更新して（ステップＳ２００８）、図１９に示したステップＳ１９０１に戻る。この際、アプリ中継サービスを起動している場合は、端末Ｔｉは、中継アプリリスト１６００も合わせて更新する。
【０１７５】
これにより、端末Ｔｉは、配信エリア内で配信アプリを復号して実行することができる。また、端末Ｔｉは、配信エリア外でアプリ中継サービスを起動して、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。
【０１７６】
なお、図１９に示したステップＳ１９０３において、復号アプリがない場合（ステップＳ１９０３：Ｎｏ）、端末Ｔｉは、暗号化された配信アプリの復号鍵の取得要求をサーバ１０１に送信することにしてもよい。これにより、暗号化された配信アプリを復号する復号鍵をサーバ１０１から取得して、配信アプリを実行可能にすることができる。
【０１７７】
（中継端末Ｔｉのアプリケーション中継処理手順）
つぎに、実施の形態１にかかる中継端末Ｔｉのアプリケーション中継処理手順について説明する。
【０１７８】
図２１は、実施の形態１にかかる中継端末Ｔｉのアプリケーション中継処理手順の一例を示すフローチャートである。図２１のフローチャートにおいて、まず、中継端末Ｔｉは、アクセスポイントＡＰを介して、近距離無線通信可能な他の端末Ｔｊを検出したか否かを判断する（ステップＳ２１０１）。
【０１７９】
ここで、中継端末Ｔｉは、他の端末Ｔｊを検出するのを待って（ステップＳ２１０１：Ｎｏ）、他の端末Ｔｊを検出した場合（ステップＳ２１０１：Ｙｅｓ）、検出した他の端末Ｔｊと接続して認証処理を行う（ステップＳ２１０２）。そして、中継端末Ｔｉは、他の端末Ｔｊの認証に成功したか否かを判断する（ステップＳ２１０３）。
【０１８０】
ここで、他の端末Ｔｊの認証に失敗した場合（ステップＳ２１０３：Ｎｏ）、中継端末Ｔｉは、本フローチャートによる一連の処理を終了する。
【０１８１】
一方、他の端末Ｔｊの認証に成功した場合（ステップＳ２１０３：Ｙｅｓ）、中継端末Ｔｉは、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００を受信したか否かを判断する（ステップＳ２１０４）。ここで、中継端末Ｔｉは、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００を受信するのを待つ（ステップＳ２１０４：Ｎｏ）。
【０１８２】
そして、中継端末Ｔｉは、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００を受信した場合（ステップＳ２１０４：Ｙｅｓ）、中継アプリリスト１６００を参照して、受信したダウンロード済みアプリリスト７００に存在しない配信アプリがあるか否かを判断する（ステップＳ２１０５）。
【０１８３】
ここで、ダウンロード済みアプリリスト７００に存在しない配信アプリがない場合（ステップＳ２１０５：Ｎｏ）、中継端末Ｔｉは、本フローチャートによる一連の処理を終了する。
【０１８４】
一方、ダウンロード済みアプリリスト７００に存在しない配信アプリがある場合（ステップＳ２１０５：Ｙｅｓ）、中継端末Ｔｉは、中継アプリリスト１６００を参照して、受信した他の端末Ｔｊの位置情報に基づいて、配信アプリの中継エリア内に他の端末Ｔｊが存在するか否かを判断する（ステップＳ２１０６）。
【０１８５】
ここで、中継エリア内に他の端末Ｔｊが存在しない場合（ステップＳ２１０６：Ｎｏ）、中継端末Ｔｉは、本フローチャートによる一連の処理を終了する。
【０１８６】
一方、中継エリア内に他の端末Ｔｊが存在する場合（ステップＳ２１０６：Ｙｅｓ）、中継端末Ｔｉは、配信アプリと復号アプリを他の端末Ｔｊに送信して（ステップＳ２１０７）、本フローチャートによる一連の処理を終了する。
【０１８７】
これにより、中継端末Ｔｉは、中継エリア内に存在する近距離無線通信可能な他の端末Ｔｊに対して、配信エリア内で実行可能となる配信アプリを配信することができる。
【０１８８】
以上説明したように、実施の形態１にかかるサーバ１０１によれば、配信エリア内に存在する端末Ｔｉに対して、配信アプリとともにアプリ中継サービスを配信することができる。また、実施の形態１にかかる端末Ｔｉによれば、サーバ１０１から配信アプリを受信した場合、配信エリア内で配信アプリを復号して実行可能にすることができる。
【０１８９】
また、端末Ｔｉによれば、サーバ１０１からアプリ中継サービスを受信した場合、配信エリア外でアプリ中継サービスを起動して、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。また、実施の形態１にかかる中継端末Ｔｉによれば、中継エリア内に存在する他の端末Ｔｊを検出して、配信エリア内で実行可能となる配信アプリを他の端末Ｔｉに配信することができる。
【０１９０】
また、サーバ１０１によれば、配信エリア内に存在する端末Ｔｉを検出したことに応じて、端末Ｔｉの認証処理を行い、端末Ｔｉを認証した場合に、配信アプリおよびアプリ中継サービスを端末Ｔｉに送信することができる。これにより、アプリケーション配信システム２００を利用する正当なユーザに対してのみに、サーバ１０１から配信アプリおよびアプリ中継サービスを配信することができる。
【０１９１】
また、中継端末Ｔｉによれば、他の端末Ｔｊを検出したことに応じて、他の端末Ｔｊの認証処理を行い、他の端末Ｔｊを認証した場合に、配信アプリを他の端末Ｔｊに送信することができる。これにより、アプリケーション配信システム２００を利用する正当なユーザに対してのみに、中継端末Ｔｉから配信アプリを配信することができる。
【０１９２】
また、サーバ１０１によれば、配信エリアに対応する位置情報を用いて生成した暗号鍵を用いて配信アプリを暗号化することができる。また、サーバ１０１によれば、端末Ｔｉの位置情報を用いて生成した復号鍵により配信アプリの復号処理を行う復号アプリを、配信アプリとともに端末Ｔｉに送信することができる。これにより、端末Ｔｉに対して復号鍵を配布することなく、配信エリア内で配信アプリが復号されて実行可能となるように制御することができる。
【０１９３】
これらのことから、実施の形態１にかかるアプリケーション配信システム２００によれば、配信アプリの配信にかかる負荷をサーバ１０１と中継端末Ｔｉとに分散して、サーバ１０１への負荷集中を抑制することができる。これにより、サービス提供エリア（配信エリア）内にいるユーザに対して素早く配信アプリを配布することができ、サービス開始の遅れを防ぐことができる。また、中継端末Ｔｉによる配信アプリの配信はサービス提供エリア外で行われるため、サービス提供エリア内でのネットワーク負荷の集中を防止することができる。
【０１９４】
（実施の形態２）
つぎに、実施の形態２にかかるアプリケーション配信方法について説明する。なお、実施の形態１で説明した箇所と同様の箇所については、同一符号を付して説明を省略する。
【０１９５】
図２２は、実施の形態２にかかるアプリケーション配信方法の一実施例を示す説明図である。図２２において、サーバ２２０１は、アプリケーションを配信するコンピュータである。また、端末Ｔ（例えば、端末Ｔ１〜Ｔ４）は、無線通信可能なコンピュータであり、例えば、スマートフォン、携帯電話機、タブレット型ＰＣなどである。
【０１９６】
サーバ２２０１は、例えば、店舗、学校、イベント会場などに設置され、店舗やイベント会場の来場者や、学校に登校してきた生徒の端末装置Ｔにアプリケーションを配信する。例えば、サーバ２２０１が店舗に設置される場合、配信対象となるアプリケーションは、店舗で利用可能なクーポンアプリなどである。
【０１９７】
また、例えば、サーバ２２０１が学校に設置される場合、配信対象となるアプリケーションは、授業で使用される教材アプリなどである。例えば、サーバ２２０１がコンサートや音楽フェスティバルのイベント会場などに設置される場合、配信対象となるアプリケーションは、音楽再生アプリなどである。
【０１９８】
すなわち、店舗、学校、イベント会場などにサーバ２２０１を設置することにより、店舗やイベント会場の周辺、学校内の教室周辺などのローカルな場にいるユーザに対して、その場に応じたサービスを提供できるようになる。一方で、店舗や学校などに設置されたサーバ２２０１に対するアクセスが急激に増えると、アプリケーションの配信にかかる負荷が集中してしまう。
【０１９９】
そこで、実施の形態２では、ユーザが持つモバイルサーバＭＳを利用して、アプリケーションの配信にかかる負荷を分散して、サーバ２２０１への負荷集中を抑制する方法について説明する。以下、サーバ２２０１に端末Ｔ１〜Ｔ４が接続されている場合を想定して、サーバ２２０１および各端末Ｔ１〜Ｔ４の処理例について説明する。
【０２００】
（１）サーバ２２０１は、接続中の複数の端末Ｔから、モバイルサーバＭＳに対応付けられた第１端末を抽出する。ここで、モバイルサーバＭＳは、例えば、可搬型のコンピュータであり、アプリケーションを配信する機能を有する。ただし、モバイルサーバＭＳの機能は、端末Ｔで実行されるアプリケーションにより実現されることにしてもよい。
【０２０１】
図１の例では、端末Ｔ１のユーザは、端末Ｔ１とモバイルサーバＭＳ１とをセットで保持しており、端末Ｔ１とモバイルサーバＭＳ１が無線ＬＡＮやＢｌｕｅｔｏｏｔｈにより接続（ペアリング済み）されている場合を想定する。この場合、サーバ２２０１は、接続中の端末Ｔ１〜Ｔ４から、モバイルサーバＭＳ１に接続された端末Ｔ１を、第１端末として抽出する。
【０２０２】
（２）サーバ２２０１は、接続中の複数の端末Ｔから、接続先を切り替える第２端末を抽出する。具体的には、例えば、サーバ２２０１は、接続中の端末Ｔ１〜Ｔ４のうち、モバイルサーバＭＳ１に接続された端末Ｔ１とは異なる少なくともいずれかの端末Ｔを、第２端末として抽出することにしてもよい。図２２の例では、端末Ｔ３，Ｔ４が第２端末として抽出された場合を想定する。
【０２０３】
（３）サーバ２２０１は、抽出した第１端末に対して、アプリケーションとモバイルサーバＭＳの稼働指示とを送信する。ここで、アプリケーションは、配信対象となるアプリケーションであり、例えば、クーポンアプリ、教材アプリ、音楽再生アプリなどである。
【０２０４】
また、モバイルサーバＭＳの稼働指示は、第１端末に対して、モバイルサーバＭＳの機能を有効化して、モバイルサーバＭＳから第２端末にアプリケーションを配信するよう指示するためのものである。モバイルサーバＭＳの稼働指示には、例えば、モバイルサーバＭＳが第２端末と接続するためのネットワーク設定情報が含まれる。
【０２０５】
ここで、モバイルサーバＭＳと第２端末は、例えば、無線ＬＡＮによって接続される。この場合、ネットワーク設定情報は、例えば、無線ＬＡＮのネットワークを構築するためのＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）、セキュリティ種別、パスワード、準拠規格およびチャネルなどの情報を含む。
【０２０６】
ＳＳＩＤは、モバイルサーバＭＳが無線ＬＡＮのアクセスポイントとして動作する場合の当該アクセスポイントの識別子である。また、セキュリティ種別、パスワード、準拠規格およびチャネルは、モバイルサーバＭＳと第２端末との通信で使用される暗号化方式、パスワード、準拠規格およびチャネルを示す。
【０２０７】
図２２の例では、サーバ２２０１は、第１端末として抽出した端末Ｔ１に対して、アプリケーションとモバイルサーバＭＳ１の稼働指示とを送信する。
【０２０８】
（４）サーバ２２０１は、抽出した第２端末に対して、接続先をモバイルサーバＭＳに切り替える切替指示を送信する。この切替指示には、モバイルサーバＭＳとの通信で使用されるネットワーク情報が含まれる。ネットワーク情報は、例えば、ＳＳＩＤおよびパスワードなどを含む。
【０２０９】
図２２の例では、サーバ２２０１は、第２端末として抽出した端末Ｔ３，Ｔ４に対して、接続先をモバイルサーバＭＳに切り替える切替指示を送信する。
【０２１０】
（５）端末Ｔ（第１端末）は、サーバ２２０１からモバイルサーバＭＳの稼働指示を受信したことに応じて、モバイルサーバＭＳの機能を有効化する。具体的には、例えば、端末Ｔ（第１端末）は、稼働指示に含まれるネットワーク設定情報をモバイルサーバＭＳに送信して、当該ネットワーク設定情報に基づくネットワーク設定を行うよう指示する。また、端末Ｔ（第１端末）は、サーバ２２０１から受信したアプリケーションをモバイルサーバＭＳに送信する。
【０２１１】
図２２の例では、端末Ｔ１は、例えば、モバイルサーバＭＳの稼働指示を受信したことに応じて、サーバ２２０１から受信したアプリケーションをモバイルサーバＭＳ１にアップロードして、モバイルサーバＭＳ１の機能を有効化する。
【０２１２】
（６）端末Ｔ（第２端末）は、サーバ２２０１から切替指示を受信したことに応じて、接続先をサーバ２２０１からモバイルサーバＭＳに切り替える。図２２の例では、端末Ｔ３，Ｔ４は、例えば、サーバ２２０１から切替指示を受信したことに応じて、サーバ２２０１との接続を切断する。そして、端末Ｔ３，Ｔ４は、サーバ２２０１からの切替指示に含まれるネットワーク情報に基づいて、モバイルサーバＭＳ１に接続する。
【０２１３】
（７）モバイルサーバＭＳは、第２端末が接続されたことに応じて、第１端末から受信したアプリケーションを第２端末に送信する。図２２の例では、モバイルサーバＭＳ１は、端末Ｔ３，Ｔ４が接続されたことに応じて、端末Ｔ１からダウンロードしたアプリケーションを端末Ｔ３，Ｔ４にそれぞれ送信する。
【０２１４】
このように、サーバ２２０１によれば、接続中の複数の端末Ｔから、モバイルサーバＭＳに対応付けられた第１端末を抽出して、配信対象のアプリケーションとモバイルサーバＭＳの稼働指示とを送信することができる。また、サーバ２２０１によれば、接続中の複数の端末Ｔから、接続先を切り替える第２端末を抽出して、接続先をモバイルサーバＭＳに切り替える切替指示を送信することができる。
【０２１５】
これにより、第１端末とペアリングされたモバイルサーバＭＳの機能を有効化して、モバイルサーバＭＳから第２端末にアプリケーションを配信させることができ、アプリケーションの配信にかかるサーバ２２０１への負荷集中を抑制することができる。
【０２１６】
なお、端末Ｔ３，Ｔ４は、モバイルサーバＭＳ１からのアプリケーションの受信が完了すると、モバイルサーバＭＳ１との接続を切断して、サーバ２２０１に接続し直すことにしてもよい。これにより、サーバ２２０１は、端末Ｔ３，Ｔ４に対して、アプリケーションを利用したサービスを開始することができる。
【０２１７】
（アプリケーション配信システム２３００のシステム構成例）
つぎに、実施の形態２にかかるアプリケーション配信システム２３００のシステム構成例について説明する。
【０２１８】
図２３は、アプリケーション配信システム２３００のシステム構成例を示す説明図である。図２３において、アプリケーション配信システム２３００は、サーバ２２０１と、端末Ｔ１〜Ｔｎ（ｎ：２以上の自然数）と、１以上のモバイルサーバＭＳ（例えば、モバイルサーバＭＳ１）と、を含む。
【０２１９】
ここで、サーバ２２０１は、サーバ情報２３１０を有する。サーバ情報２３１０の具体例については、図２５を用いて後述する。サーバ２２０１は、例えば、無線ＬＡＮのアクセスポイントを内蔵しており、当該アクセスポイントを介して端末Ｔｉと無線通信可能である（ｉ＝１，２，…，ｎ）。
【０２２０】
なお、図示は省略するが、サーバ２２０１は、例えば、図５および図６に示したような認証ＤＢ２２０および配信アプリリスト２３０を有することにしてもよい。
【０２２１】
端末Ｔ１〜Ｔｎは、例えば、サーバ２２０１に内蔵されたアクセスポイントの通信範囲内において、当該アクセスポイントを介してサーバ２２０１と無線通信可能である。各端末Ｔ１〜Ｔｎは、端末情報２３２０をそれぞれ有する。端末情報２３２０の具体例については、図２６を用いて後述する。
【０２２２】
モバイルサーバＭＳは、端末Ｔとセットで保持される可搬型のコンピュータであり、例えば、無線ＬＡＮ（あるいは、Ｂｌｕｅｔｏｏｔｈ）により端末Ｔと接続される。ただし、ユーザの中には、モバイルサーバＭＳを保持しているものもいれば、モバイルサーバＭＳを保持していないものもいる。
【０２２３】
図２３の例では、例えば、端末Ｔ１のユーザは、端末Ｔ１とセットでモバイルサーバＭＳ１を保持しているが、端末Ｔ２のユーザは、モバイルサーバＭＳを保持していない。以下の説明では、図２３に示すように、端末Ｔｉとセットで保持されて、端末Ｔｉに接続されたモバイルサーバＭＳを「モバイルサーバＭＳｉ」と表記する場合がある。
【０２２４】
なお、上述した説明では、無線ＬＡＮのアクセスポイントがサーバ２２０１に内蔵される場合を例に挙げて説明したが、これに限らない。例えば、図２に示したアプリケーション配信システム２００のように、サーバ２２０１に接続される複数のアクセスポイントＡＰを各所に設置し、各アクセスポイントＡＰを介して、サーバ２２０１と端末Ｔｉとが通信することができるようにしてもよい。
【０２２５】
（モバイルサーバＭＳｉのハードウェア構成例）
つぎに、モバイルサーバＭＳｉのハードウェア構成例について説明する。なお、サーバ２２０１のハードウェア構成例については、図３に示したサーバ１０１のハードウェア構成例と同様のため、図示および説明を省略する。また、端末Ｔｉのハードウェア構成例については、図４に示した端末Ｔｉのハードウェア構成例と同様のため、図示および説明を省略する。
【０２２６】
図２４は、モバイルサーバＭＳｉのハードウェア構成例を示すブロック図である。図２４において、モバイルサーバＭＳｉは、ＣＰＵ２４０１と、メモリ２４０２と、Ｉ／Ｆ２４０３と、ディスクドライブ２４０４と、ディスク２４０５と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）２４０６と、バッテリ２４０７と、を有する。また、各構成部は、バス２４００によってそれぞれ接続される。
【０２２７】
ここで、ＣＰＵ２４０１は、モバイルサーバＭＳｉの全体の制御を司る。メモリ２４０２は、例えば、ＲＯＭ、ＲＡＭおよびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２４０１のワークエリアとして使用される。メモリ２４０２に記憶されるプログラムは、ＣＰＵ２４０１にロードされることで、コーディングされている処理をＣＰＵ２４０１に実行させる。
【０２２８】
Ｉ／Ｆ２４０３は、通信回線を通じて近距離無線ネットワークに接続され、この近距離無線ネットワークを介して他の装置に接続される。そして、Ｉ／Ｆ２４０３は、近距離無線ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する。
【０２２９】
ディスクドライブ２４０４は、ＣＰＵ２４０１の制御に従ってディスク２４０５に対するデータのリード／ライトを制御する。ディスク２４０５は、ディスクドライブ２４０４の制御で書き込まれたデータを記憶する。ＰＭＵ２４０６は、バッテリ２４０７によって蓄えられた電力を、モバイルサーバＭＳｉの各構成部に駆動電源として供給する制御を行う。
【０２３０】
なお、モバイルサーバＭＳｉは、上述した構成部のほか、例えば、ＳＳＤ、入力パッド、ディスプレイなどを有することにしてもよい。
【０２３１】
（サーバ情報２３１０の具体例）
つぎに、サーバ２２０１が有するサーバ情報２３１０の具体例について説明する。サーバ情報２３１０は、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０２３２】
図２５は、サーバ情報２３１０の具体例を示す説明図である。図２５において、サーバ情報２３１０は、ＰＳｖＩＤ、保持コンテンツＩＤ一覧、位置情報、ユーザ訪問履歴および接続中端末一覧を有する。
【０２３３】
ここで、ＰＳｖＩＤは、サーバ２２０１を識別する識別子である。サーバ２２０１のＰＳｖＩＤは「ＰＳｖ＃１」である。保持コンテンツＩＤ一覧は、サーバ２２０１が保持しているアプリケーションを識別する識別子（例えば、ａｐｐ３）である。位置情報は、サーバ２２０１が設置された地点の座標位置（緯度、経度）を示す。
【０２３４】
ユーザ訪問履歴は、サーバ２２０１への接続前に端末Ｔｉが接続していた他のサーバを示す。例えば、「ＰＳｖ＃２→ＰＳｖ＃１」は、サーバ２２０１への接続前に端末Ｔｉが、ＰＳｖＩＤ「ＰＳｖ＃２」により識別される他のサーバに接続していたことを示す。ユーザ訪問履歴によれば、例えば、サーバ２２０１の周辺に設置されている他のサーバを把握することができる。
【０２３５】
接続中端末一覧は、サーバ２２０１に接続中の端末Ｔｉを識別するクライアントＩＤ（例えば、Ｔ１，Ｔ２，Ｔ３）と、サーバ２２０１に接続中の端末Ｔｉに接続されているモバイルサーバＭＳｉを識別するモバイルサーバＩＤ（例えば、ＭＳ１，ＭＳ３）とをリスト化して示す。
【０２３６】
（端末情報２３２０の具体例）
つぎに、端末Ｔｉが有する端末情報２３２０の具体例について説明する。端末情報２３２０は、例えば、図４に示したメモリ４０２に記憶される。ここでは、端末Ｔ１を例に挙げて、端末Ｔ１が有する端末情報２３２０の具体例について説明する。
【０２３７】
図２６は、端末情報２３２０の具体例を示す説明図である。図２６において、端末情報２３２０は、クライアント情報２６１０とモバイルサーバ情報２６２０とを含む。
【０２３８】
まず、クライアント情報２６１０は、クライアントＩＤ、保持コンテンツＩＤ一覧、ユーザ訪問経路およびヒモ付モバイルサーバＩＤを有する。ここで、クライアントＩＤは、端末Ｔｉ（図２６の例では、端末Ｔ１）を識別する識別子である。保持コンテンツＩＤ一覧は、端末Ｔｉが保持しているアプリケーションを識別する識別子である。
【０２３９】
ユーザ訪問経路は、端末Ｔｉが接続したサーバ（例えば、サーバ２２０１）を接続順に示す情報である。例えば、「ＰＳｖ＃２→ＰＳｖ＃１」は、端末Ｔ１が、ＰＳｖＩＤ「ＰＳｖ＃２」により識別されるサーバに接続した後、ＰＳｖＩＤ「ＰＳｖ＃１」により識別されるサーバ２２０１に接続したことを示す。
【０２４０】
ヒモ付モバイルサーバＩＤは、端末Ｔｉに対応付けられたモバイルサーバＭＳｉ、すなわち、端末Ｔｉとセットで保持されて、端末Ｔｉに接続（ペアリング）されたモバイルサーバＭＳｉを識別する識別子である。図２６の例では、端末Ｔ１に接続されたモバイルサーバＭＳ１のヒモ付モバイルサーバＩＤ「ＭＳ１」が示されている。なお、クライアント情報２６１０には、端末Ｔｉのリンク速度が含まれていてもよい。
【０２４１】
つぎに、モバイルサーバ情報２６２０は、モバイルサーバＩＤ、サーバタイプ、接続可能台数、リンク速度、稼働時間、準拠規格、周波数帯域およびヒモ付クライアントＩＤを有する。ここで、モバイルサーバＩＤは、モバイルサーバＭＳｉ（図２６の例では、モバイルサーバＭＳ１）を識別する識別子である。
【０２４２】
サーバタイプは、モバイルタイプまたはアプリタイプのいずれかを示す。モバイルタイプは、モバイルサーバＭＳｉが、端末Ｔｉとは異なる可搬型のコンピュータにより実現される場合に設定されるタイプである。アプリタイプは、モバイルサーバＭＳｉが、端末Ｔｉで実行されるアプリケーションにより実現される場合に設定されるタイプである。図２６の例では、モバイルサーバＭＳ１のサーバタイプは「モバイルタイプ」である。
【０２４３】
接続可能台数は、モバイルサーバＭＳｉが同時に接続可能な端末数（他の端末Ｔｊの数）を示す。リンク速度は、モバイルサーバＭＳｉのリンク速度を示す。稼働時間は、図２４に示したバッテリ２４０７に蓄えられた電力の残量に応じて変化する値であり、モバイルサーバＭＳｉが稼働できる残りの稼働時間を示す。
【０２４４】
準拠規格は、モバイルサーバＭＳｉで使用可能な無線ＬＡＮの規格である。周波数帯域は、モバイルサーバＭＳｉで使用可能な無線ＬＡＮのチャネルである。ヒモ付クライアントＩＤは、モバイルサーバＭＳｉに対応付けられた端末Ｔｉ、すなわち、モバイルサーバＭＳｉとセットで保持されて、モバイルサーバＭＳｉに接続された端末Ｔｉを識別する識別子である。図２６の例では、モバイルサーバＭＳ１に接続された端末Ｔｉのヒモ付クライアントＩＤ「Ｔ１」が示されている。
【０２４５】
なお、端末ＴｉにモバイルサーバＭＳｉが対応付けられていない場合には、端末Ｔｉの端末情報２３２０にモバイルサーバ情報２６２０は含まれない。
【０２４６】
（サーバ２２０１の機能的構成例）
図２７は、実施の形態２にかかるサーバ２２０１の機能的構成例を示すブロック図である。図２７において、サーバ２２０１は、接続部２７０１と、端末情報取得部２７０２と、負荷分散判断部２７０３と、第１の通知部２７０４と、第２の通知部２７０５と、配信部２７０６と、端末情報保存部２７０７と、コンテンツ保存部２７０８と、を含む構成である。接続部２７０１〜配信部２７０６は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。また、端末情報保存部２７０７およびコンテンツ保存部２７０８は、例えば、メモリ３０２、ディスク３０５などの記憶装置により実現される。また、各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０２４７】
接続部２７０１は、無線通信可能な端末Ｔｉと接続する。具体的には、例えば、まず、接続部２７０１は、自サーバに内蔵された無線ＬＡＮのアクセスポイントを介して、近距離無線通信可能な端末Ｔｉを検出する。つぎに、接続部２７０１は、検出した端末Ｔｉの認証処理を行う。
【０２４８】
ここで、端末Ｔｉが認証された場合（認証成功）、接続部２７０１は、端末Ｔｉの接続を維持する。一方、端末Ｔｉが認証されなかった場合（認証失敗）、接続部２７０１は、端末Ｔｉとの接続を切断する。なお、端末Ｔｉの認証処理は、例えば、図５に示したような認証ＤＢ２２０を用いて行われることにしてもよい。
【０２４９】
端末情報取得部２７０２は、端末Ｔｉが認証された場合、端末Ｔｉから端末情報２３２０を取得する。具体的には、例えば、端末情報取得部２７０２は、端末Ｔ１が認証された場合、図２６に示したような端末情報２３２０を端末Ｔ１から取得する。
【０２５０】
また、端末情報取得部２７０２は、端末Ｔｉから端末情報２３２０を取得した場合、サーバ情報２３１０の接続中端末一覧に端末ＴｉのクライアントＩＤを登録する。さらに、端末情報２３２０にモバイルサーバ情報２６２０が含まれる場合は、端末情報取得部２７０２は、サーバ情報２３１０の接続中端末一覧にモバイルサーバＭＳｉのモバイルサーバＩＤを登録する。
【０２５１】
端末情報保存部２７０７は、取得された端末Ｔｉの端末情報２３２０を記憶する。これにより、サーバ２２０１と接続中の各端末Ｔの端末情報２３２０を端末情報保存部２７０７に保存することができる。
【０２５２】
なお、サーバ２２０１と端末Ｔｉとの接続が切断された場合には、例えば、端末情報保存部２７０７から端末Ｔｉの端末情報２３２０が削除される。また、サーバ２２０１と端末Ｔｉとの接続が切断された場合には、例えば、サーバ情報２３１０の接続中端末一覧から、端末ＴｉのクライアントＩＤとモバイルサーバＭＳｉのモバイルサーバＩＤが削除される。
【０２５３】
負荷分散判断部２７０３は、接続中の複数の端末Ｔから、モバイルサーバＭＳｉに対応付けられた端末Ｔｉを抽出する。抽出対象となる端末Ｔｉは、例えば、配信対象のアプリケーションを未配信の端末Ｔｉである。配信済みのアプリケーションは、例えば、端末情報２３２０のクライアント情報２６１０に含まれる保持コンテンツＩＤ一覧から特定される。
【０２５４】
具体的には、例えば、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末Ｔの端末情報２３２０を参照して、端末情報２３２０にモバイルサーバ情報２６２０が含まれる端末Ｔｉを抽出する。そして、負荷分散判断部２７０３は、抽出した端末Ｔに対応付けられたモバイルサーバＭＳの中から、負荷分散（アプリケーションの配信）を依頼するモバイルサーバＭＳｉを決定する。具体的には、例えば、負荷分散判断部２７０３は、配信完了時間、稼働時間、接続可能台数、リンク速度などに基づいて、負荷分散を依頼するモバイルサーバＭＳｉを決定する。
【０２５５】
ここで、配信完了時間は、サーバ２２０１に接続中の複数の端末Ｔに対するアプリケーションの配信が完了するまでの時間である。負荷分散判断部２７０３は、例えば、アプリケーションの配信完了時間が早くなるように、負荷分散を依頼するモバイルサーバＭＳの組み合わせを決定することにしてもよい。
【０２５６】
より詳細に説明すると、負荷分散判断部２７０３は、例えば、抽出した端末Ｔに対応付けられた全てのモバイルサーバＭＳを、負荷分散の依頼先として決定することにしてもよい。これにより、アプリケーションの配信完了時間をできるだけ短縮することができる。
【０２５７】
また、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末の端末情報２３２０を参照して、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、稼働時間が閾値α以上のモバイルサーバＭＳを負荷分散の依頼先として決定してもよい。閾値αは、任意に設定可能であり、例えば、３０分程度の値に設定される。これにより、バッテリ切れの可能性があるモバイルサーバＭＳを負荷分散の依頼先から除外することができる。
【０２５８】
また、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末の端末情報２３２０を参照して、稼働時間が閾値α以上のモバイルサーバＭＳのうち、接続可能台数が多い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定してもよい。Ｎは、任意に設定可能であり、例えば、３台程度の値に設定される。これにより、バッテリ切れの可能性が低く、接続可能台数が多いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０２５９】
また、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末の端末情報２３２０を参照して、稼働時間が閾値α以上のモバイルサーバＭＳのうち、リンク速度が速い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定してもよい。これにより、バッテリ切れの可能性が低く、リンク速度が速いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０２６０】
ここで、一例として、配信完了時間および稼働時間を考慮して、負荷分散を依頼するモバイルサーバＭＳｉを決定する場合の決定例について説明する。ここでは、あるイベント会場に設置されたサーバ２２０１に接続中の複数の端末Ｔを「端末Ｔ１〜Ｔ５０」の５０台（来場者：５０人）とする。なお、接続中の複数の端末Ｔの端末数は、例えば、サーバ情報２３１０の接続中端末一覧から特定される。
【０２６１】
また、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布する場合で、端末Ｔ１〜Ｔ５０のうちの端末Ｔ１，Ｔ３，Ｔ５（来場者の３人）が、８０２．１１ｇでモバイルサーバＭＳ１，ＭＳ３，ＭＳ５を提供可能である場合を想定する。なお、接続中の複数の端末Ｔに対応付けられたモバイルサーバＭＳは、例えば、サーバ情報２３１０の接続中端末一覧から特定される。
【０２６２】
まず、８０２．１１ｎ（２０ＭＨＺ）で構成されたサーバ２２０１のみで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定し、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループット（計測値）を「４０Ｍｂｐｓ」と仮定する。この場合、５０台への総転送量は５００ＭＢであり、配信完了時間は約１００秒（＝５００ＭＢ÷４０Ｍｂｐｓ）となる。
【０２６３】
つぎに、サーバ２２０１とモバイルサーバＭＳ１とで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定する。また、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０２６４】
この場合、全体の配信完了時間が短くなるのは、サーバ２２０１の配信完了時間とモバイルサーバＭＳ１の配信完了時間が等しくなるときである。例えば、モバイルサーバＭＳ１がアプリケーションを配信する端末数をｘ台とすると、サーバ２２０１の配信完了時間は、「（５０−ｘ）×１０ＭＢ÷４０Ｍｂｐｓ」で表すことができる。また、モバイルサーバＭＳ１の配信完了時間は、「ｘ×１０ＭＢ÷２０Ｍｂｐｓ」で表すことができる。そして、全体の配信完了時間は、約６６秒となる（サーバ２２０１：３３台、モバイルサーバＭＳ１：１７台）。
【０２６５】
つぎに、サーバ２２０１とモバイルサーバＭＳ１とモバイルサーバＭＳ３とで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定する。また、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０２６６】
この場合、全体の配信完了時間は、約５０秒となる（サーバ２２０１：２５台、モバイルサーバＭＳ１：１２．５台、モバイルサーバＭＳ３：１２．５台）。なお、モバイルサーバＭＳ１，ＭＳ３がアプリケーションを配信する端末数は同一とする。
【０２６７】
つぎに、サーバ２２０１とモバイルサーバＭＳ１とモバイルサーバＭＳ３とモバイルサーバＭＳ５とで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定する。また、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０２６８】
この場合、全体の配信完了時間は、約４０秒となる（サーバ２２０１：２０台、モバイルサーバＭＳ１：１０台、モバイルサーバＭＳ３：１０台、モバイルサーバＭＳ５：１０台）。したがって、全体の配信完了時間は、サーバ２２０１とモバイルサーバＭＳ１，ＭＳ３，ＭＳ５で、１０ＭＢのアプリケーションを一斉配布する場合が最も早くなる。
【０２６９】
ここで、モバイルサーバＭＳ１，ＭＳ３，ＭＳ５の稼働時間をそれぞれ９時間、８時間、１７分と仮定し、上記閾値αを「３０分」と仮定する。この場合、モバイルサーバＭＳ５の稼働時間「１７分」は閾値α未満である。このため、バッテリ切れの可能性があるモバイルサーバＭＳ５は、負荷分散の依頼先から除外される。この結果、負荷分散の依頼先は、モバイルサーバＭＳ１とモバイルサーバＭＳ３の２台に決定される。
【０２７０】
また、負荷分散判断部２７０３は、接続中の複数の端末Ｔから、接続先を切り替える端末Ｔｊを抽出する（ｊ≠ｉ、ｊ＝１，２，…，ｎ）。抽出対象となる端末Ｔｉは、例えば、配信対象のアプリケーションを未配信の端末Ｔｉである。そして、負荷分散判断部２７０３は、全体の配信完了時間が短くなるように、負荷分散の依頼先に決定した各モバイルサーバＭＳに対して、抽出した接続先を切り替える端末Ｔｊを割り当てる。
【０２７１】
ここで、上記例のように、負荷分散の依頼先として、モバイルサーバＭＳ１とモバイルサーバＭＳ３の２台が決定された場合を想定する。
【０２７２】
この場合、上述したように、全体の配信完了時間（約５０秒）が短くなるときのサーバ２２０１に割り当てる端末数は、２５台である。また、モバイルサーバＭＳ１，ＭＳ３に割り当てる端末数は、残りの２５台となる。すなわち、接続中の端末Ｔ１〜Ｔ５０のうち、接続先の切替対象となる端末Ｔの端末数は、２５台となる。
【０２７３】
このため、負荷分散判断部２７０３は、接続中の端末Ｔ１〜Ｔ５０から、接続先を切り替える２５台の端末Ｔを抽出する。ただし、負荷分散の依頼先として決定されたモバイルサーバＭＳ１，ＭＳ３に対応付けられた端末Ｔ１，Ｔ３は抽出対象から除外する。
【０２７４】
具体的には、例えば、負荷分散判断部２７０３は、ダウンロード待ち時間が長い端末Ｔから順に、接続先を切り替える２５台の端末Ｔを抽出することにしてもよい。ダウンロード待ち時間は、アプリケーションのダウンロード待ちの端末Ｔがサーバ２２０１に接続してからの経過時間である。また、例えば、負荷分散判断部２７０３は、負荷分散の依頼先として決定されたモバイルサーバＭＳ１，ＭＳ３とリンク速度が近い端末Ｔを、接続先を切り替える端末Ｔｉとして優先的に抽出することにしてもよい。
【０２７５】
また、負荷分散判断部２７０３は、抽出した接続先を切り替える端末Ｔを、負荷分散の依頼先として決定したモバイルサーバＭＳに割り当てる。具体的には、例えば、負荷分散判断部２７０３は、接続先を切り替える端末Ｔとして抽出した２５台の端末Ｔを、負荷分散の依頼先として決定したモバイルサーバＭＳ１，ＭＳ３にラウンドロビンで割り当てる。
【０２７６】
なお、各モバイルサーバＭＳ１，ＭＳ３に割り当てられた端末を識別するクライアントＩＤは、例えば、後述するネットワーク設定情報の許可クライアントＩＤ一覧（例えば、図２８参照）に設定される。
【０２７７】
第１の通知部２７０４は、負荷分散の依頼先として決定されたモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、モバイルサーバＭＳｉの稼働指示を送信する。具体的には、例えば、第１の通知部２７０４は、プッシュ通知により、モバイルサーバＭＳｉの稼働指示を送信する。モバイルサーバＭＳｉの稼働指示には、例えば、無線ＬＡＮのネットワークを構築するためのネットワーク設定情報が含まれる。
【０２７８】
ここで、負荷分散の依頼先としてモバイルサーバＭＳ１が決定された場合を例に挙げて、モバイルサーバＭＳ１の稼働指示に含まれるネットワーク設定情報の具体例について説明する。
【０２７９】
図２８は、ネットワーク設定情報の具体例を示す説明図である。図２８において、ネットワーク設定情報２８００は、配布コンテンツＩＤ、モバイルサーバＩＤ、設定ＳＳＩＤ、セキュリティ種別、設定ＰＷＤ、準拠規格、チャネルおよび許可クライアントＩＤ一覧を有する。
【０２８０】
ここで、配布コンテンツＩＤは、配信対象のアプリケーションを識別する識別子である。モバイルサーバＩＤは、負荷分散の依頼先となるモバイルサーバＭＳｉを識別する識別子である。設定ＳＳＩＤは、モバイルサーバＭＳｉが無線ＬＡＮのアクセスポイントとして動作する場合の当該アクセスポイントの識別子である。
【０２８１】
また、セキュリティ種別、設定ＰＷＤ、準拠規格およびチャネルは、モバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークで使用される暗号化方式、パスワード、準拠規格およびチャネルである。許可クライアントＩＤ一覧は、配信対象のアプリケーションの配信先となる端末Ｔｊを識別するクライアントＩＤをリスト化したものである。
【０２８２】
図２７の説明に戻り、第２の通知部２７０５は、抽出された接続先の切替対象となる端末Ｔに対して、接続先をモバイルサーバＭＳｉに切り替える切替指示を送信する。ここで、接続先のモバイルサーバＭＳｉは、負荷分散の依頼先として決定されたモバイルサーバＭＳのうち、接続先の切替対象となる端末Ｔが割り振られたモバイルサーバＭＳｉである。
【０２８３】
具体的には、例えば、第２の通知部２７０５は、プッシュ通知により、接続先をモバイルサーバＭＳｉに切り替える切替指示を送信する。また、切替指示には、例えば、接続先のモバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークに接続するためのネットワーク情報が含まれる。
【０２８４】
ここで、モバイルサーバＭＳ１が接続先となる場合を例に挙げて、切替指示に含まれるネットワーク情報の具体例について説明する。
【０２８５】
図２９は、ネットワーク情報の具体例を示す説明図である。図２９において、ネットワーク情報２９００は、接続先ＳＳＩＤ、接続先設定ＰＷＤおよびダウンロードコンテンツＩＤを有する。
【０２８６】
ここで、接続先ＳＳＩＤは、接続先のモバイルサーバＭＳｉが無線ＬＡＮのアクセスポイントとして動作する場合の当該アクセスポイントの識別子である。接続先設定ＰＷＤは、接続先のモバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークで使用されるパスワードである。ダウンロードコンテンツＩＤは、接続先のモバイルサーバＭＳｉからダウンロードするアプリケーションを識別する識別子である。
【０２８７】
図２７の説明に戻り、コンテンツ保存部２７０８は、配信対象のアプリケーション（以下、「配信アプリ」という）を記憶する。具体的には、例えば、コンテンツ保存部２７０８は、アプリケーション配信システム２３００の管理者によって登録されたアプリケーションを記憶する。なお、新たなアプリケーションが登録されると、例えば、サーバ情報２３１０の保持コンテンツＩＤ一覧に、新たなアプリケーションのコンテンツＩＤが登録される。
【０２８８】
配信部２７０６は、配信アプリを端末Ｔｉに配信する。ここで、配信アプリは、例えば、コンテンツ保存部２７０８に記憶されたアプリケーションである。また、配信アプリは暗号化されている。このため、配信部２７０６は、配信アプリとともに、当該配信アプリを復号するための復号鍵を送信することにしてもよい。また、配信部２７０６は、配信アプリを受信した端末Ｔｉから復号鍵の取得要求を受信したことに応じて、配信アプリの復号鍵を端末Ｔｉに送信することにしてもよい。
【０２８９】
具体的には、例えば、配信部２７０６は、接続中の複数の端末Ｔのうち、接続先の切替対象となる端末Ｔを除く残余の端末Ｔに対して、配信アプリを送信する。この際、配信部２７０６は、負荷分散の依頼先として決定されたモバイルサーバＭＳｉに対応付けられた端末Ｔｉから、優先的に配信アプリを送信することにしてもよい。これにより、負荷分散の依頼先となるモバイルサーバＭＳｉのユーザに対して、配信アプリを優先的に配布することができる。
【０２９０】
なお、負荷分散判断部２７０３は、例えば、一定時間ごとに、接続中の複数の端末Ｔから、負荷分散の依頼先となるモバイルサーバＭＳｉを決定することにしてもよい。また、負荷分散判断部２７０３は、例えば、モバイルサーバＭＳｉに対応付けられた端末Ｔｉが接続される度に、当該端末Ｔｉに対応付けられたモバイルサーバＭＳｉを負荷分散の依頼先に決定することにしてもよい。
【０２９１】
また、負荷分散判断部２７０３は、例えば、接続中の複数の端末Ｔの端末数（例えば、配信アプリを未配信の端末数）が、所定の端末数以上の場合に、負荷分散の依頼先となるモバイルサーバＭＳｉを決定することにしてもよい。また、負荷分散判断部２７０３は、サーバ２２０１のみで配信アプリの配信を行う場合の配信完了時間が所定の時間以上の場合に、負荷分散の依頼先となるモバイルサーバＭＳｉを決定することにしてもよい。これにより、サーバ２２０１に対して急激な負荷の増加が見込まれないような状況では、サーバ２２０１のみで配信アプリの配信を行うことができる。
【０２９２】
なお、サーバ２２０１は、実施の形態１で説明したサーバ１０１と同様の機能（例えば、図８参照）を有することにしてもよい。
【０２９３】
（端末Ｔｉの機能的構成例）
図３０は、実施の形態２にかかる端末Ｔｉの機能的構成例を示すブロック図である。図３０において、端末Ｔｉは、接続部３００１と、端末情報処理部３００２と、コンテンツ取得部３００３と、通知受付部３００４と、稼働制御部３００５と、コンテンツ保存部３００６と、を含む構成である。接続部３００１〜稼働制御部３００５は制御部となる機能であり、具体的には、例えば、図４に示したメモリ４０２に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６により、その機能を実現する。また、コンテンツ保存部３００６は、例えば、メモリ４０２により実現される。また、各機能部の処理結果は、例えば、メモリ４０２に記憶される。
【０２９４】
接続部３００１は、無線通信可能なサーバ２２０１と接続する。具体的には、例えば、まず、接続部３００１は、近距離無線通信可能なサーバ２２０１を探索する。つぎに、接続部３００１は、探索したサーバ２２０１と接続して、端末Ｔｉの認証処理を行う。ここで、端末Ｔｉが認証された場合（認証成功）、サーバ２２０１との接続が維持される。一方、端末Ｔｉが認証されなかった場合（認証失敗）、サーバ２２０１との接続が切断される。
【０２９５】
端末情報処理部３００２は、接続されたサーバ２２０１に対して、自端末の端末情報を送信する。具体的には、例えば、自端末にモバイルサーバＭＳｉが接続されている場合には、接続部３００１は、図２６に示したような端末情報２３２０をサーバ２２０１にアップロードする。なお、端末ＴｉとモバイルサーバＭＳｉとの接続処理（ペアリング）は、例えば、ユーザの操作入力により行われる。
【０２９６】
コンテンツ取得部３００３は、配信アプリを取得する。具体的には、例えば、コンテンツ取得部３００３は、接続されたサーバ２２０１から配信アプリをダウンロードすることにより、配信アプリを取得する。配信アプリには、例えば、配信アプリを復号するための復号鍵が付与されている。取得された配信アプリは、例えば、コンテンツ保存部３００６に記憶される。
【０２９７】
なお、コンテンツ取得部３００３は、サーバ２２０１に対して、復号鍵の取得要求を送信することにより、サーバ２２０１から配信アプリの復号鍵を取得してもよい。
【０２９８】
通知受付部３００４は、接続されたサーバ２２０１から、自端末に接続されたモバイルサーバＭＳｉの稼働指示を受信する。モバイルサーバＭＳｉの稼働指示には、例えば、図２８に示したようなネットワーク設定情報２８００が含まれる。
【０２９９】
なお、モバイルサーバＭＳｉの稼働指示は、端末ＴｉにモバイルサーバＭＳｉが接続されており、かつ、モバイルサーバＭＳｉが負荷分散の依頼先として決定された場合に受信される。
【０３００】
稼働制御部３００５は、モバイルサーバＭＳｉの稼働指示が受信された場合、自端末に接続されたモバイルサーバＭＳｉの機能を有効にする。具体的には、例えば、稼働制御部３００５は、稼働指示に含まれるネットワーク設定情報（例えば、ネットワーク設定情報２８００）をモバイルサーバＭＳｉにアップロードして、当該ネットワーク設定情報に基づくネットワーク設定を行うよう指示する。
【０３０１】
また、稼働制御部３００５は、コンテンツ保存部３００６に記憶された配信アプリを、自端末に接続されたモバイルサーバＭＳｉに送信する。具体的には、例えば、稼働制御部３００５は、モバイルサーバＭＳｉの稼働指示が受信された場合に、モバイルサーバＭＳｉに配信アプリをアップロードすることにしてもよい。
【０３０２】
なお、モバイルサーバＭＳｉがアプリケーションにより実現される場合は、ネットワーク設定情報や配信アプリは、アプリケーション間通信により通知される。
【０３０３】
また、通知受付部３００４は、接続されたサーバ２２０１から、接続先をモバイルサーバＭＳｊに切り替える切替指示を受信する。具体的には、例えば、通知受付部３００４は、プッシュ通知により、接続先をモバイルサーバＭＳｊに切り替える切替指示を受信する。この切替指示には、例えば、図２９に示したようなネットワーク情報２９００が含まれる。
【０３０４】
また、接続部３００１は、接続先をモバイルサーバＭＳｊに切り替える切替指示が受信された場合、接続先をサーバ２２０１からモバイルサーバＭＳｊに切り替える。具体的には、例えば、接続部３００１は、サーバ２２０１との接続を切断して、切替指示に含まれるネットワーク情報２９００に記載された接続先ＳＳＩＤ、接続先設定ＰＷＤを用いて、モバイルサーバＭＳｊにより構築される無線ＬＡＮのネットワークに接続する。
【０３０５】
また、コンテンツ取得部３００３は、接続先がモバイルサーバＭＳｊに切り替わった場合、接続されたモバイルサーバＭＳｊから配信アプリをダウンロードすることにより、配信アプリを取得する。
【０３０６】
なお、端末Ｔｉは、実施の形態１で説明した端末Ｔｉと同様の機能（例えば、図９参照）を有することにしてもよい。
【０３０７】
（モバイルサーバＭＳｉの機能的構成例）
図３１は、実施の形態２にかかるモバイルサーバＭＳｉの機能的構成例を示すブロック図である。図３１において、モバイルサーバＭＳｉは、情報取得部３１０１と、設定部３１０２と、接続部３１０３と、配信部３１０４と、コンテンツ保存部３１０５と、を含む構成である。情報取得部３１０１〜配信部３１０４は制御部となる機能であり、具体的には、例えば、図２４に示したメモリ２４０２に記憶されたプログラムをＣＰＵ２４０１に実行させることにより、または、Ｉ／Ｆ２４０３により、その機能を実現する。また、コンテンツ保存部３１０５は、例えば、メモリ２４０２により実現される。また、各機能部の処理結果は、例えば、メモリ２４０２に記憶される。
【０３０８】
情報取得部３１０１は、配信アプリを取得する。具体的には、例えば、情報取得部３１０１は、接続された端末Ｔｉから配信アプリをダウンロードすることにより、配信アプリを取得する。配信アプリには、例えば、配信アプリを復号するための復号鍵が付与されている。取得された配信アプリは、例えば、コンテンツ保存部３１０５に記憶される。
【０３０９】
また、情報取得部３１０１は、接続された端末Ｔｉからネットワーク設定情報（例えば、ネットワーク設定情報２８００）を受信する。
【０３１０】
設定部３１０２は、受信されたネットワーク設定情報に基づいて、ネットワーク設定を行う。具体的には、例えば、設定部３１０２は、ネットワーク設定情報２８００に記載された設定ＳＳＩＤ、セキュリティ種別、設定ＰＷＤ等を用いて、無線ＬＡＮのネットワークを構築する。
【０３１１】
接続部３１０３は、近距離無線通信可能な端末Ｔｊと接続する。具体的には、例えば、まず、接続部３１０３は、近距離無線通信可能な端末Ｔｊを検出する。つぎに、接続部３１０３は、検出した端末Ｔｊの認証処理を行う。ここで、端末Ｔｊが認証された場合（認証成功）、接続部３１０３は、端末Ｔｊの接続を維持する。一方、端末Ｔｊが認証されなかった場合（認証失敗）、接続部３１０３は、端末Ｔｊとの接続を切断する。なお、端末Ｔｊの認証処理は、例えば、ネットワーク設定情報２８００に記載された設定ＰＷＤ、許可クライアントＩＤ一覧を用いて行われる。
【０３１２】
配信部３１０４は、接続された端末Ｔｊに配信アプリを配信する。配信アプリは、例えば、コンテンツ保存部３１０５に記憶されたアプリケーションである。具体的には、例えば、配信部３１０４は、接続された端末Ｔｊに、配信アプリとともに、当該配信アプリを復号するための復号鍵を送信することにしてもよい。
【０３１３】
なお、モバイルサーバＭＳｉは、例えば、許可クライアントＩＤ一覧に含まれるクライアントＩＤにより識別される全ての端末Ｔへの配信アプリの配信が完了すると、配信アプリを配信するサーバ機能を停止することにしてもよい。
【０３１４】
（端末情報アップロード処理手順）
つぎに、端末Ｔｉの端末情報アップロード処理手順について説明する。
【０３１５】
図３２は、実施の形態２にかかる端末Ｔｉの端末情報アップロード処理手順の一例を示すフローチャートである。図３２のフローチャートにおいて、まず、端末Ｔｉは、近距離無線通信可能なサーバ２２０１を探索して、サーバ２２０１を発見したか否かを判断する（ステップＳ３２０１）。
【０３１６】
ここで、端末Ｔｉは、サーバ２２０１を発見するのを待つ（ステップＳ３２０１：Ｎｏ）。そして、端末Ｔｉは、サーバ２２０１を発見した場合（ステップＳ３２０１：Ｙｅｓ）、サーバ２２０１と接続して認証処理を行う（ステップＳ３２０２）。そして、端末Ｔｉは、自端末の認証に成功したか否かを判断する（ステップＳ３２０３）。
【０３１７】
ここで、自端末の認証に失敗した場合（ステップＳ３２０３：Ｎｏ）、端末Ｔｉは、本フローチャートによる一連の処理を終了する。一方、自端末の認証に成功した場合（ステップＳ３２０３：Ｙｅｓ）、端末Ｔｉは、モバイルサーバＭＳｉとペアリングされているか否かを判断する（ステップＳ３２０４）。
【０３１８】
ここで、モバイルサーバＭＳｉとペアリングされていない場合（ステップＳ３２０４：Ｎｏ）、端末Ｔｉは、クライアント情報を含む端末情報をサーバ２２０１に送信して（ステップＳ３２０５）、本フローチャートによる一連の処理を終了する。
【０３１９】
一方、モバイルサーバＭＳｉとペアリングされている場合（ステップＳ３２０４：Ｙｅｓ）、端末Ｔｉは、クライアント情報とモバイルサーバ情報とを含む端末情報をサーバ２２０１に送信し（ステップＳ３２０６）、本フローチャートによる一連の処理を終了する。これにより、端末Ｔｉの端末情報をサーバ２２０１にアップロードすることができる。
【０３２０】
（負荷分散処理手順）
つぎに、サーバ２２０１の負荷分散処理手順について説明する。
【０３２１】
図３３は、実施の形態２にかかるサーバ２２０１の負荷分散処理手順の一例を示すフローチャートである。図３３のフローチャートにおいて、まず、サーバ２２０１は、各端末Ｔの端末情報２３２０を参照して、接続中の複数の端末Ｔから、モバイルサーバＭＳとペアリングされた端末Ｔを抽出する（ステップＳ３３０１）。
【０３２２】
つぎに、サーバ２２０１は、モバイルサーバＭＳとペアリングされた端末Ｔを抽出したか否かを判断する（ステップＳ３３０２）。ここで、端末Ｔを抽出した場合（ステップＳ３３０２：Ｙｅｓ）、サーバ２２０１は、抽出した端末Ｔの端末情報２３２０を参照して、負荷分散の依頼先として、稼働時間が閾値α以上のモバイルサーバＭＳを選択する（ステップＳ３３０３）。
【０３２３】
つぎに、サーバ２２０１は、選択したモバイルサーバＭＳとペアリングされた端末Ｔに配信アプリを送信する（ステップＳ３３０４）。そして、サーバ２２０１は、選択したモバイルサーバＭＳを使用したときの配信完了時間が短くなるように、接続先を切り替える端末Ｔの端末数を算出する（ステップＳ３３０５）。
【０３２４】
つぎに、サーバ２２０１は、接続中の複数の端末Ｔから、算出した端末数分、接続先を切り替える端末Ｔを抽出する（ステップＳ３３０６）。そして、サーバ２２０１は、選択したモバイルサーバＭＳとペアリングされた端末Ｔに対して、モバイルサーバＭＳの稼働指示を送信する（ステップＳ３３０７）。つぎに、サーバ２２０１は、抽出した接続先を切り替える端末Ｔに対して、接続先をモバイルサーバＭＳに切り替える切替指示を送信する（ステップＳ３３０８）。
【０３２５】
そして、サーバ２２０１は、残余の端末Ｔに配信アプリを送信して（ステップＳ３３０９）、本フローチャートによる一連の処理を終了する。なお、残余の端末Ｔとは、接続中の複数の端末Ｔのうち、負荷分散の依頼先のモバイルサーバＭＳとペアリングされた端末Ｔ、および、接続先を切り替える端末Ｔを除く端末Ｔである。
【０３２６】
また、ステップＳ３３０２において、モバイルサーバＭＳとペアリングされた端末Ｔが抽出されなかった場合（ステップＳ３３０２：Ｎｏ）、サーバ２２０１は、接続中の各端末Ｔに配信アプリを送信して（ステップＳ３３１０）、本フローチャートによる一連の処理を終了する。
【０３２７】
これにより、接続中の端末ＴとペアリングされたモバイルサーバＭＳを利用して配信アプリを配布することができる。
【０３２８】
（モバイルサーバ有効化処理手順）
つぎに、負荷分散の依頼先のモバイルサーバＭＳとペアリングされた端末Ｔｉのモバイルサーバ有効化処理手順について説明する。
【０３２９】
図３４は、実施の形態２にかかる端末Ｔｉのモバイルサーバ有効化処理手順の一例を示すフローチャートである。図３４のフローチャートにおいて、端末Ｔｉは、接続されたサーバ２２０１から配信アプリをダウンロードする（ステップＳ３４０１）。つぎに、端末Ｔｉは、接続されたサーバ２２０１から、自端末とペアリングされたモバイルサーバＭＳｉの稼働指示を受信したか否かを判断する（ステップＳ３４０２）。
【０３３０】
ここで、端末Ｔｉは、モバイルサーバＭＳｉの稼働指示を受信するのを待つ（ステップＳ３４０２：Ｎｏ）。そして、端末Ｔｉは、モバイルサーバＭＳｉの稼働指示を受信した場合（ステップＳ３４０２：Ｙｅｓ）、配信アプリと、モバイルサーバＭＳｉの稼働指示に含まれるネットワーク設定情報を、モバイルサーバＭＳｉに送信して（ステップＳ３４０３）、本フローチャートによる一連の処理を終了する。
【０３３１】
これにより、サーバ２２０１からの稼働指示に応じて、モバイルサーバＭＳｉのアプリケーションを配信する機能（サーバ機能）を有効にすることができる。
【０３３２】
（アプリケーション配信処理手順）
つぎに、モバイルサーバＭＳｉのアプリケーション配信処理手順について説明する。
【０３３３】
図３５は、実施の形態２にかかるモバイルサーバＭＳｉのアプリケーション配信処理手順の一例を示すフローチャートである。図３５のフローチャートにおいて、まず、モバイルサーバＭＳｉは、ペアリングされた端末Ｔｉから、配信アプリとネットワーク設定情報とを受信する（ステップＳ３５０１）。
【０３３４】
つぎに、モバイルサーバＭＳｉは、受信したネットワーク設定情報に基づいて、ネットワーク設定を行うことにより、無線ＬＡＮのネットワークを構築する（ステップＳ３５０２）。そして、モバイルサーバＭＳｉは、構築した無線ＬＡＮのネットワークを介して、ネットワーク設定情報の許可クライアントＩＤ一覧に含まれる端末Ｔが接続されたか否かを判断する（ステップＳ３５０３）。
【０３３５】
ここで、端末Ｔが接続されていない場合（ステップＳ３５０３：Ｎｏ）、モバイルサーバＭＳｉは、ステップＳ３５０５に移行する。一方、端末Ｔが接続された場合（ステップＳ３５０３：Ｙｅｓ）、モバイルサーバＭＳｉは、受信した配信アプリを端末Ｔに送信する（ステップＳ３５０４）。
【０３３６】
つぎに、モバイルサーバＭＳｉは、ステップＳ３５０２においてネットワーク設定を行ってから一定時間（例えば、１時間〜２時間）が経過したか否かを判断する（ステップＳ３５０５）。ここで、一定時間が経過した場合（ステップＳ３５０５：Ｙｅｓ）、モバイルサーバＭＳｉは、ステップＳ３５０７に移行する。
【０３３７】
一方、一定時間が経過していない場合（ステップＳ３５０５：Ｎｏ）、モバイルサーバＭＳｉは、許可クライアントＩＤ一覧に含まれる全ての端末Ｔへの配信アプリの配信が完了したか否かを判断する（ステップＳ３５０６）。ここで、配信アプリの配信が完了していない場合（ステップＳ３５０６：Ｎｏ）、モバイルサーバＭＳｉは、ステップＳ３５０３に戻る。
【０３３８】
一方、配信アプリの配信が完了した場合（ステップＳ３５０６：Ｙｅｓ）、モバイルサーバＭＳｉは、アプリケーションを配信するサーバ機能を停止して（ステップＳ３５０７）、本フローチャートによる一連の処理を終了する。これにより、ペアリングされた端末Ｔｉからダウンロードした配信アプリを、許可クライアントＩＤ一覧に含まれる端末Ｔに配信することができる。
【０３３９】
（アプリケーション取得処理手順）
つぎに、接続先の切替対象となる端末Ｔｉのアプリケーション取得処理手順について説明する。
【０３４０】
図３６は、実施の形態２にかかる端末Ｔｉのアプリケーション取得処理手順の一例を示すフローチャートである。図３６のフローチャートにおいて、まず、端末Ｔｉは、接続されたサーバ２２０１から、接続先をモバイルサーバＭＳに切り替える切替指示を受信したか否かを判断する（ステップＳ３６０１）。
【０３４１】
ここで、端末Ｔｉは、切替指示を受信するのを待つ（ステップＳ３６０１：Ｎｏ）。そして、端末Ｔｉは、切替指示を受信した場合（ステップＳ３６０１：Ｙｅｓ）、サーバ２２０１との接続を切断して、受信した切替指示に含まれるネットワーク情報を用いて、モバイルサーバＭＳにより構築される無線ＬＡＮのネットワークに接続する（ステップＳ３６０２）。
【０３４２】
つぎに、端末Ｔｉは、無線ＬＡＮのネットワークを介して、モバイルサーバＭＳから配信アプリをダウンロードする（ステップＳ３６０３）。そして、端末Ｔｉは、配信アプリのダウンロードが完了すると、モバイルサーバＭＳとの接続を切断して、サーバ２２０１に接続し直して（ステップＳ３６０４）、本フローチャートによる一連の処理を終了する。これにより、サーバ２２０１から指定された無線ＬＡＮのネットワークに接続して、配信アプリをダウンロードすることができる。
【０３４３】
以上説明したように、実施の形態２にかかるサーバ２２０１によれば、接続中の複数の端末Ｔから、モバイルサーバＭＳに対応付けられた端末Ｔを抽出して、配信アプリの配信にかかる負荷分散の依頼先となるモバイルサーバＭＳを決定することができる。
【０３４４】
具体的には、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられた全てのモバイルサーバＭＳを、負荷分散の依頼先として決定することができる。これにより、接続中の複数の端末Ｔに対する配信アプリの配信が完了するまでの配信完了時間をできるだけ短縮することができる。
【０３４５】
また、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、稼働時間が閾値α以上のモバイルサーバＭＳを負荷分散の依頼先として決定することができる。これにより、バッテリ切れの可能性があるモバイルサーバＭＳを負荷分散の依頼先から除外することができる。
【０３４６】
また、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、接続可能台数が多い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定することができる。これにより、接続可能台数が多いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０３４７】
また、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、リンク速度が速い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定することができる。これにより、リンク速度が速いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０３４８】
また、サーバ２２０１によれば、接続中の複数の端末Ｔから、接続先を切り替える端末Ｔを抽出して、負荷分散の依頼先に決定した各モバイルサーバＭＳに対して、抽出した接続先を切り替える端末Ｔを割り当てることができる。例えば、サーバ２２０１によれば、負荷分散の依頼先のモバイルサーバＭＳを使用したときの全体の配信完了時間が短くなるように、接続先を切り替える端末Ｔの端末数を算出することができる。そして、サーバ２２０１によれば、接続中の複数の端末Ｔから、接続先を切り替える端末Ｔとして、算出した端末数分の端末Ｔを抽出して、負荷分散の依頼先のモバイルサーバＭＳにラウンドロビンで割り当てることができる。
【０３４９】
また、サーバ２２０１によれば、負荷分散の依頼先として決定したモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、モバイルサーバＭＳｉの稼働指示を送信することができる。これにより、負荷分散の依頼先となるモバイルサーバＭＳｉの機能を有効化することができる。
【０３５０】
また、サーバ２２０１によれば、負荷分散の依頼先として決定したモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、優先的に配信アプリを送信することができる。これにより、負荷分散の依頼先となるモバイルサーバＭＳｉのユーザに対して、配信アプリを優先的に配布することができる。
【０３５１】
また、サーバ２２０１によれば、抽出した接続先の切替対象となる端末Ｔに対して、接続先をモバイルサーバＭＳｉに切り替える切替指示を送信することができる。これにより、接続中の複数の端末Ｔのうちの一部の端末Ｔの接続先を、負荷分散の依頼先となるモバイルサーバＭＳに切り替えさせることができる。
【０３５２】
また、サーバ２２０１によれば、負荷分散の依頼先のモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、無線ＬＡＮのネットワークを構築するためのネットワーク設定情報を含む稼働指示を送信することができる。これにより、サーバ２２０１が指定した設定ＳＳＩＤ、セキュリティ種別、設定ＰＷＤ等を用いて、無線ＬＡＮのネットワークを構築させることができる。
【０３５３】
また、サーバ２２０１によれば、接続先の切替対象となる端末Ｔに対して、モバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークに接続するためのネットワーク情報を含む切替指示を送信することができる。これにより、サーバ２２０１が指定した接続先ＳＳＩＤ、接続先設定ＰＷＤを用いて、無線ＬＡＮのネットワークに接続させることができる。
【０３５４】
また、実施の形態２にかかる端末Ｔｉによれば、ペアリングされたモバイルサーバＭＳｉの稼働指示を受信したことに応じて、モバイルサーバＭＳｉの機能を有効にするとともに、配信アプリをモバイルサーバＭＳｉに送信することができる。これにより、自端末とペアリングされたモバイルサーバＭＳｉに無線ＬＡＮのネットワークを構築させて、配信アプリの配信を行わせることができる。
【０３５５】
また、実施の形態２にかかるモバイルサーバＭＳｉによれば、ペアリングされた端末Ｔｉからネットワーク設定情報を受信したことに応じて、当該ネットワーク設定情報に基づく無線ＬＡＮのネットワークを構築して、他の端末Ｔｊに配信アプリを配信することができる。
【０３５６】
また、実施の形態２にかかる端末Ｔｉによれば、接続先をモバイルサーバＭＳｊに切り替える切替指示を受信したことに応じて、接続先をサーバ２２０１からモバイルサーバＭＳｊに切り替えて、配信アプリをダウンロードすることができる。
【０３５７】
これらのことから、実施の形態２にかかるアプリケーション配信システム２３００によれば、配信アプリの配信にかかる負荷をサーバ２２０１とモバイルサーバＭＳｉとに分散して、サーバ２２０１への負荷集中を抑制することができる。これにより、サーバ２２０１が設置された場にいるユーザに対して素早く配信アプリを配布することができ、サービス開始の遅れを防ぐことができる。
【０３５８】
ここで、アプリケーション配信システム２３００により短縮される配信完了時間について説明する。まず、あるイベント会場にいる５０人のユーザに、１０ＭＢの配信アプリを一斉配布する場合で、２人のユーザが８０２．１１ｇでモバイルサーバＭＳをそれぞれ提供可能である場合を想定する。
【０３５９】
この場合、例えば、８０２．１１ｎ（２０ＭＨＺ）で構成されたサーバ２２０１のみで配信を行うと、上述したように、配信完了時間は約１００秒となる。これに対して、サーバ２２０１と２台のモバイルサーバＭＳとで配信を行うと、上述したように、配信完了時間は約５０秒となる。すなわち、２台のモバイルサーバＭＳを使用することで、配信完了時間が約５０秒短縮される計算となる。
【０３６０】
つぎに、あるイベント会場に順次来場してくる５０人のユーザに、１０ＭＢの配信アプリを逐次配布する場合で、１人〜３人の来場者が８０２．１１ｇでモバイルサーバＭＳを提供可能であると仮定する。この場合、８０２．１１ｎ（２０ＭＨＺ）で構成されたサーバ２２０１のみで配信を行うと、配信完了時間は約１００秒となる。
【０３６１】
これに対して、モバイルサーバＭＳを持つ１人〜３人のユーザが来場してくる順番を変化させながら配信完了時間をそれぞれ試算すると、モバイルサーバＭＳが、１台で「８３．７秒」、２台で「７４．６秒」、３台で「６８．３秒」に短縮される計算となる。ただし、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０３６２】
つぎに、あるイベント会場に順次来場してくる５０人のユーザに、１０ＭＢの配信アプリを逐次配布する場合で、１人〜３人の来場者が８０２．１１ｎ（２０ＭＨＺ）でモバイルサーバＭＳを提供可能であると仮定する。
【０３６３】
この場合、モバイルサーバＭＳを持つ１人〜３人のユーザが来場してくる順番を変化させながら配信完了時間をそれぞれ試算すると、モバイルサーバＭＳが、１台で「７５．３秒」、２台で「６４．４秒」、３台で「５７．４秒」に短縮される計算となる。ただし、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定する。
【０３６４】
なお、本実施の形態で説明したアプリケーション配信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本アプリケーション配信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本アプリケーション配信プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０３６５】
１０１，２２０１  サーバ
２００，２３００  アプリケーション配信システム
２２０  認証ＤＢ
２３０  配信アプリリスト
７００  ダウンロード済みアプリリスト
８０１，１７０１  検出部
８０２，１７０２  認証部
８０３，２７０６，３１０４  配信部
９０１  位置取得部
９０２  探索部
９０３  アプリ取得部
９０４  アプリ実行部
１５００  中継端末用認証ＤＢ
１６００  中継アプリリスト
１７０３  中継部
２３１０  サーバ情報
２３２０  端末情報
２６１０  クライアント情報
２６２０  モバイルサーバ情報
２７０１，３００１，３１０３  接続部
２７０２  端末情報取得部
２７０３  負荷分散判断部
２７０４  第１の通知部
２７０５  第２の通知部
２７０７  端末情報保存部
２７０８，３００６，３１０５  コンテンツ保存部
２８００  ネットワーク設定情報
２９００  ネットワーク情報
３００２  端末情報処理部
３００３  コンテンツ取得部
３００４  通知受付部
３００５  稼働制御部
３１０１  情報取得部
３１０２  設定部
Ｔ，Ｔ１〜Ｔｎ，Ｔｉ，Ｔｊ  端末
【図１】
2016132454.tif 000003
【図２】
2016132454.tif 000004
【図３】
2016132454.tif 000005
【図４】
2016132454.tif 000006
【図５】
2016132454.tif 000007
【図６】
2016132454.tif 000008
【図７】
2016132454.tif 000009
【図８】
2016132454.tif 000010
【図９】
2016132454.tif 000011
【図１０】
2016132454.tif 000012
【図１１】
2016132454.tif 000013
【図１２】
2016132454.tif 000014
【図１３】
2016132454.tif 000015
【図１４】
2016132454.tif 000016
【図１５】
2016132454.tif 000017
【図１６】
2016132454.tif 000018
【図１７】
2016132454.tif 000019
【図１８】
2016132454.tif 000020
【図１９】
2016132454.tif 000021
【図２０】
2016132454.tif 000022
【図２１】
2016132454.tif 000023
【図２２】
2016132454.tif 000024
【図２３】
2016132454.tif 000025
【図２４】
2016132454.tif 000026
【図２５】
2016132454.tif 000027
【図２６】
2016132454.tif 000028
【図２７】
2016132454.tif 000029
【図２８】
2016132454.tif 000030
【図２９】
2016132454.tif 000031
【図３０】
2016132454.tif 000032
【図３１】
2016132454.tif 000033
【図３２】
2016132454.tif 000034
【図３３】
2016132454.tif 000035
【図３４】
2016132454.tif 000036
【図３５】
2016132454.tif 000037
【図３６】
2016132454.tif 000038
【手続補正書】
【提出日】平成29年8月17日(2017.8.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバが、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信し、
前記端末が、前記サーバから前記第１および第２のアプリケーションを受信した場合、前記エリア外で前記第２のアプリケーションを起動することにより、検出した前記他の端末に前記第１のアプリケーションを送信する、
ことを特徴とするアプリケーション配信方法。
【請求項２】
前記第１のアプリケーションは、暗号化されており、前記エリア内で復号されて実行可能となることを特徴とする請求項１に記載のアプリケーション配信方法。
【請求項３】
前記サーバは、前記エリア内に存在する前記端末を検出したことに応じて、前記端末の認証処理を行い、前記端末を認証した場合に、前記第１および第２のアプリケーションを前記端末に送信することを特徴とする請求項２に記載のアプリケーション配信方法。
【請求項４】
前記端末は、前記他の端末を検出したことに応じて、前記他の端末の認証処理を行い、前記他の端末を認証した場合に、前記第１のアプリケーションを前記他の端末に送信することを特徴とする請求項３に記載のアプリケーション配信方法。
【請求項５】
前記第１のアプリケーションは、前記エリアに対応する位置情報を用いて生成された暗号鍵により暗号化されており、
前記端末は、自端末の位置情報を取得して、当該位置情報を用いて生成した復号鍵により前記第１のアプリケーションの復号処理を行うことを特徴とする請求項４に記載のアプリケーション配信方法。
【請求項６】
コンピュータに、
特定のエリア内に存在する端末を検出し、
検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信する、
処理を実行させることを特徴とするアプリケーション配信プログラム。
【請求項７】
特定のエリア内に存在する端末を検出した場合に、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを前記端末に送信する、
制御部を有することを特徴とするサーバ。
【請求項８】
サーバが、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信し、
前記第１端末が、前記稼働指示を受信したことに応じて、前記モバイルサーバの機能を有効にするとともに、前記アプリケーションを前記モバイルサーバに送信し、
前記第２端末が、前記切替指示を受信したことに応じて、接続先を前記サーバから前記モバイルサーバに切り替え、
前記モバイルサーバが、前記第２端末が接続されたことに応じて、前記アプリケーションを前記第２端末に送信する、
ことを特徴とするアプリケーション配信方法。
【請求項９】
前記サーバは、
前記複数の端末から、前記モバイルサーバに対応付けられ、かつ、前記モバイルサーバが稼働可能な残り時間が閾値以上となる第１端末を抽出することを特徴とする請求項８に記載のアプリケーション配信方法。
【請求項１０】
前記サーバは、
前記第１端末を複数抽出した場合、前記複数の端末に対する前記アプリケーションの配信が完了するまでの配信完了時間が短くなるように、複数抽出した前記第１端末それぞれに前記第２端末を割り当てることを特徴とする請求項９に記載のアプリケーション配信方法。
【請求項１１】
前記稼働指示には、近距離無線ネットワークを構築するためのネットワーク設定情報が含まれており、
前記切替指示には、前記近距離無線ネットワークに接続するためのネットワーク情報が含まれており、
前記第１端末は、前記ネットワーク設定情報に基づくネットワーク設定を行うよう指示することにより、前記モバイルサーバの機能を有効にし、
前記モバイルサーバは、前記ネットワーク設定情報に基づいて、前記近距離無線ネットワークを構築し、
前記第２端末は、前記ネットワーク情報に基づいて、前記近距離無線ネットワークに接続する、ことを特徴とする請求項１０に記載のアプリケーション配信方法。
【請求項１２】
コンピュータに、
接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、
前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、
前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信する、
処理を実行させることを特徴とするアプリケーション配信プログラム。
【請求項１３】
接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信する、
制御部を有することを特徴とするサーバ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション配信方法、アプリケーション配信プログラム、およびサーバに関する。
【背景技術】
【０００２】
従来、店舗や学校などにサーバを設置し、店舗周辺に集まった人や学校に登校してきた生徒の端末に対して、店舗で利用可能なクーポンアプリや授業で使用する教材アプリなどを配信する技術がある。この技術によれば、店舗や学校などのローカルな場にサーバを設置することにより、その場に集まったユーザに対して、その場所に応じたサービスを提供することができる。
【０００３】
先行技術としては、例えば、移動通信システムに低感度基地局を用いて位置検出範囲を狭めることにより、スポット位置検出を可能にし、ユーザ端末からユーザを対応させて、位置情報と個人情報等をベースに情報配信およびサービス提供を行う技術がある。また、基地局のサービスエリア外に存在する宛先端末と基地局との間のパケット通信を中継する中継端末において、中継の寄与度を測定して、その測定結果を課金サーバに送信することで、中継端末に対するインセンティブの付与を可能とする技術がある。また、携帯電話端末の紛失、盗難などによる個人情報の流出を防止するための個人情報保護方法に関する技術がある。また、自己増殖の機能を利用して新規のクライアントにクライアント用エージェントプログラムをインストールする技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２４２０５２号公報
【特許文献２】国際公開第２００３／０３２６１７号
【特許文献３】特開２００７−３１８２４５号公報
【特許文献４】特開２００５−１５７５８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、店舗や学校などに設置されたサーバに対するアクセスが急激に増えて、アプリケーションの配信にかかる負荷が集中する場合がある。例えば、サーバに負荷が集中すると、ユーザに対するアプリケーションの配布に時間がかかり、サービス開始の遅れを招いてしまう。
【０００６】
一つの側面では、本発明は、アプリケーションの配信にかかる負荷を分散させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、サーバが、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信し、前記端末が、前記サーバから前記第１および第２のアプリケーションを受信した場合、前記エリア外で前記第２のアプリケーションを起動することにより、検出した前記他の端末に前記第１のアプリケーションを送信するアプリケーション配信方法が提案される。
【０００８】
また、本発明の一側面によれば、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信するアプリケーション配信プログラムおよびサーバが提案される。
【０００９】
また、本発明の一側面によれば、サーバが、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信し、前記第１端末が、前記稼働指示を受信したことに応じて、前記モバイルサーバの機能を有効にするとともに、前記アプリケーションを前記モバイルサーバに送信し、前記第２端末が、前記切替指示を受信したことに応じて、接続先を前記サーバから前記モバイルサーバに切り替え、前記モバイルサーバが、前記第２端末が接続されたことに応じて、前記アプリケーションを前記第２端末に送信するアプリケーション配信方法が提案される。
【００１０】
また、本発明の一側面によれば、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信するアプリケーション配信プログラムおよびサーバが提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、アプリケーションの配信にかかる負荷を分散させることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかるアプリケーション配信方法の一実施例を示す説明図である。
【図２】図２は、アプリケーション配信システム２００のシステム構成例を示す説明図である。
【図３】図３は、実施の形態１にかかるサーバ１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、実施の形態１にかかる端末Ｔｉのハードウェア構成例を示すブロック図である。
【図５】図５は、認証ＤＢ２２０の記憶内容の一例を示す説明図である。
【図６】図６は、配信アプリリスト２３０の記憶内容の一例を示す説明図である。
【図７】図７は、ダウンロード済みアプリリスト７００の記憶内容の一例を示す説明図である。
【図８】図８は、実施の形態１にかかるサーバ１０１の機能的構成例を示すブロック図である。
【図９】図９は、実施の形態１にかかる端末Ｔｉの機能的構成例を示すブロック図である。
【図１０】図１０は、ダウンロード済みアプリリスト７００の更新例を示す説明図である。
【図１１】図１１は、暗号鍵および復号鍵の生成例を示す説明図（その１）である。
【図１２】図１２は、暗号鍵および復号鍵の生成例を示す説明図（その２）である。
【図１３】図１３は、暗号鍵および復号鍵の生成例を示す説明図（その３）である。
【図１４】図１４は、暗号鍵および復号鍵の生成例を示す説明図（その４）である。
【図１５】図１５は、中継端末用認証ＤＢ１５００の記憶内容の一例を示す説明図である。
【図１６】図１６は、中継アプリリスト１６００の記憶内容の一例を示す説明図である。
【図１７】図１７は、実施の形態１にかかる中継端末Ｔｉの機能的構成例を示すブロック図である。
【図１８】図１８は、実施の形態１にかかるサーバ１０１のアプリケーション配信処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順の一例を示すフローチャート（その１）である。
【図２０】図２０は、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順の一例を示すフローチャート（その２）である。
【図２１】図２１は、実施の形態１にかかる中継端末Ｔｉのアプリケーション中継処理手順の一例を示すフローチャートである。
【図２２】図２２は、実施の形態２にかかるアプリケーション配信方法の一実施例を示す説明図である。
【図２３】図２３は、アプリケーション配信システム２３００のシステム構成例を示す説明図である。
【図２４】図２４は、モバイルサーバＭＳｉのハードウェア構成例を示すブロック図である。
【図２５】図２５は、サーバ情報２３１０の具体例を示す説明図である。
【図２６】図２６は、端末情報２３２０の具体例を示す説明図である。
【図２７】図２７は、実施の形態２にかかるサーバ２２０１の機能的構成例を示すブロック図である。
【図２８】図２８は、ネットワーク設定情報の具体例を示す説明図である。
【図２９】図２９は、ネットワーク情報の具体例を示す説明図である。
【図３０】図３０は、実施の形態２にかかる端末Ｔｉの機能的構成例を示すブロック図である。
【図３１】図３１は、実施の形態２にかかるモバイルサーバＭＳｉの機能的構成例を示すブロック図である。
【図３２】図３２は、実施の形態２にかかる端末Ｔｉの端末情報アップロード処理手順の一例を示すフローチャートである。
【図３３】図３３は、実施の形態２にかかるサーバ２２０１の負荷分散処理手順の一例を示すフローチャートである。
【図３４】図３４は、実施の形態２にかかる端末Ｔｉのモバイルサーバ有効化処理手順の一例を示すフローチャートである。
【図３５】図３５は、実施の形態２にかかるモバイルサーバＭＳｉのアプリケーション配信処理手順の一例を示すフローチャートである。
【図３６】図３６は、実施の形態２にかかる端末Ｔｉのアプリケーション取得処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に図面を参照して、本発明にかかるアプリケーション配信方法、アプリケーション配信プログラム、およびサーバの実施の形態を詳細に説明する。
【００１４】
（実施の形態１）
図１は、実施の形態１にかかるアプリケーション配信方法の一実施例を示す説明図である。図１において、サーバ１０１は、アプリケーションを配信するコンピュータである。また、端末装置Ｔ（例えば、端末装置Ｔ１，Ｔ２）は、無線通信可能なコンピュータであり、例えば、スマートフォン、携帯電話機、タブレット型ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００１５】
サーバ１０１は、例えば、店舗、学校、イベント会場などに設置され、店舗やイベント会場の来場者や、学校に登校してきた生徒の端末装置Ｔにアプリケーションを配信する。配信対象となるアプリケーションは、特定のエリアに対応付けられた、暗号化されたアプリケーションであり、特定のエリア内で復号されて実行可能となる。
【００１６】
例えば、サーバ１０１が店舗に設置される場合、配信対象となるアプリケーションは、店舗で利用可能なクーポンアプリなどである。この場合、クーポンアプリを復号して実行可能となる特定のエリアは、例えば、サーバ１０１が設置される店舗周辺の局所的なエリアである。
【００１７】
また、例えば、サーバ１０１が学校に設置される場合、配信対象となるアプリケーションは、授業で使用される教材アプリなどである。この場合、教材アプリを復号して実行可能となる特定のエリアは、例えば、サーバ１０１が設置される学校内の教室周辺などの局所的なエリアである。
【００１８】
すなわち、店舗や学校などにサーバ１０１を設置することにより、店舗周辺や学校内の教室周辺などのローカルな場にいるユーザに対して、その場に応じたサービスを提供できるようになる。一方で、店舗や学校などに設置されたサーバ１０１に対するアクセスが急激に増えると、アプリケーションの配信にかかる負荷が集中してしまう。
【００１９】
例えば、クーポンアプリの配信にかかるサーバ１０１への負荷が集中すると、来場者に対するクーポンアプリの配布に時間がかかり、ビジネスチャンスを逸してしまう恐れがある。また、例えば、教材アプリの配信にかかるサーバ１０１への負荷が集中すると、生徒への教材アプリの配布に時間がかかり、授業開始の遅れを招いてしまう。
【００２０】
そこで、実施の形態１では、特定のエリアで実行可能となるアプリケーションの配信にかかる負荷を分散して、サーバ１０１への負荷集中を抑制する方法について説明する。以下、店舗Ｘにサーバ１０１を設置した場合を例に挙げて、サーバ１０１および端末装置Ｔの処理例について説明する。ここでは、配信対象となるアプリケーションが実行可能となる特定のエリアを、店舗Ｘ周辺のエリア１１０とする。
【００２１】
（１）サーバ１０１は、エリア１１０内に存在する端末装置Ｔを検出する。具体的には、例えば、まず、サーバ１０１は、近距離無線通信可能な端末装置Ｔを検出し、検出した端末装置Ｔから位置情報を受信する。そして、サーバ１０１は、受信した位置情報に基づいて、端末装置Ｔがエリア１１０内に位置するか否かを判定することにより、エリア１１０内に存在する端末装置Ｔを検出する。
【００２２】
なお、近距離無線通信とは、通信距離が数十メートル程度までの無線通信である。近距離無線通信の一例としては、例えば、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）等を利用した通信が挙げられる。また、エリア１１０を特定するエリア情報は、例えば、サーバ１０１の記憶装置に記憶されている。
【００２３】
図１の例では、ユーザＡがエリア１１０に進入した結果、エリア１１０内に存在する端末装置Ｔとして、ユーザＡの端末装置Ｔ１が検出される。
【００２４】
（２）サーバ１０１は、エリア１１０内に存在する端末装置Ｔを検出した場合、アプリケーションＡＰ１とアプリケーションＡＰ２とを端末装置Ｔに送信する。ここで、アプリケーションＡＰ１は、エリア１１０に対応付けられた、暗号化されたアプリケーションであり、例えば、店舗Ｘで利用可能なクーポンアプリである。
【００２５】
また、アプリケーションＡＰ２は、アプリケーションＡＰ１を他の端末装置Ｔに中継する機能を有する中継用のアプリケーションである。アプリケーションＡＰ１には、例えば、エリア１１０を特定するエリア情報が付与されている。エリア情報は、例えば、エリア１１０が矩形領域の場合、エリア１１０の対角頂点の座標位置を示す情報である。
【００２６】
図１の例では、サーバ１０１からエリア１１０内に存在する端末装置Ｔ１に対して、アプリケーションＡＰ１，ＡＰ２が送信される。
【００２７】
（３）端末装置Ｔ１は、サーバ１０１からアプリケーションＡＰ１，ＡＰ２を受信した場合、エリア１１０内でアプリケーションＡＰ１を復号して実行可能にする。具体的には、例えば、端末装置Ｔ１は、エリア１１０内でサーバ１０１から復号鍵を受信して、アプリケーションＡＰ１を復号することにしてもよい。
【００２８】
図１の例では、端末装置Ｔ１において、エリア１１０内でアプリケーションＡＰ１が復号されて実行可能となる。これにより、ユーザＡは、店舗Ｘでクーポンアプリなどを利用することが可能となる。
【００２９】
なお、端末装置Ｔ１は、アプリケーションＡＰ１が実行可能となったことに応じて、アプリケーションＡＰ１を自動実行することにしてもよい。また、端末装置Ｔ１は、アプリケーションＡＰ１が実行可能となった旨を通知して、ユーザＡからの実行指示を待ち受けることにしてもよい。
【００３０】
（４）端末装置Ｔ１は、エリア１１０外でアプリケーションＡＰ２を起動する。具体的には、例えば、端末装置Ｔ１は、自端末の位置情報を取得して、自端末がエリア１１０内に位置するか否かを判定する。そして、端末装置Ｔ１は、自端末がエリア１１０外であると判定した場合に、アプリケーションＡＰ２を起動する。
【００３１】
図１の例では、ユーザＡが店舗Ｘから出て、端末装置Ｔ１がエリア１１０外となった際に、端末装置Ｔ１においてアプリケーションＡＰ２が起動される。
【００３２】
（５）端末装置Ｔ１は、アプリケーションＡＰ２を起動した場合、近距離無線通信可能な他の端末装置Ｔを検出する。そして、端末装置Ｔ１は、他の端末装置Ｔを検出した場合に、アプリケーションＡＰ１を他の端末装置Ｔに送信する。
【００３３】
図１の例では、端末装置Ｔ１と近距離無線通信可能な端末装置Ｔ２が検出された場合を想定する。この場合、端末装置Ｔ１は、暗号化されたアプリケーションＡＰ１を端末装置Ｔ２に送信する。
【００３４】
また、端末装置Ｔ２は、端末装置Ｔ１からアプリケーションＡＰ１を受信した場合、例えば、エリア１１０内に移動した際に、サーバ１０１から復号鍵を受信し、アプリケーションＡＰ１を復号して実行可能とすることができる。この際、サーバ１０１は、端末装置Ｔ２へのアプリケーションＡＰ１の配信は行わない。
【００３５】
このように、サーバ１０１によれば、エリア１１０内の端末装置Ｔに対して、エリア１１０に対応付けられたアプリケーションＡＰ１とともに、エリア１１０外で起動されてアプリケーションＡＰ１を他の端末装置Ｔに中継するアプリケーションＡＰ２を配信することができる。これにより、エリア１１０外において、例えば、ユーザＡの端末装置Ｔ１を利用して、ユーザＡとすれ違ったユーザＢの端末装置Ｔ２などに対して、エリア１１０で実行可能となるアプリケーションＡＰ１を配信することができる。
【００３６】
この結果、ユーザＢがエリア１１０内に移動した際に、サーバ１０１から端末装置Ｔ２に対してアプリケーションＡＰ１を配信する必要がなくなり、アプリケーションＡＰ１の配信にかかるサーバ１０１への負荷集中を抑制することができる。また、端末装置Ｔ１によるアプリケーションＡＰ１の配信はエリア１１０外で行われるため、エリア１１０（サービス提供エリア）内でのネットワーク負荷の集中を防止することができる。
【００３７】
（アプリケーション配信システム２００のシステム構成例）
つぎに、実施の形態１にかかるアプリケーション配信システム２００のシステム構成例について説明する。
【００３８】
図２は、アプリケーション配信システム２００のシステム構成例を示す説明図である。図２において、アプリケーション配信システム２００は、サーバ１０１と、１以上のアクセスポイントＡＰ（図２の例では、３台）と、端末装置Ｔ１〜Ｔｎ（ｎ：２以上の自然数）と、を含む。アプリケーション配信システム２００において、サーバ１０１およびアクセスポイントＡＰは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどを含む。
【００３９】
ここで、サーバ１０１は、認証ＤＢ２２０および配信アプリリスト２３０を有する。認証ＤＢ２２０および配信アプリリスト２３０の記憶内容については、図５および図６を用いて後述する。サーバ１０１は、上述したように、例えば、店舗、学校、イベント会場などに設置される。
【００４０】
また、アクセスポイントＡＰは、無線ＬＡＮのアクセスポイントである。例えば、サーバ１０１が店舗に設置される場合、アクセスポイントＡＰは、サーバ１０１と同じ店舗に設置される。また、例えば、サーバ１０１が学校に設置される場合、アクセスポイントＡＰは、サーバ１０１が設置された学校内の教室などに設置される。また、例えば、サーバ１０１がイベント会場に設置される場合、アクセスポイントＡＰは、サーバ１０１が設置されたイベント会場内のブースなどに設置される。
【００４１】
端末装置Ｔ１〜Ｔｎは、アクセスポイントＡＰの通信範囲内において当該アクセスポイントＡＰと無線通信可能であり、当該アクセスポイントＡＰを介してサーバ１０１に接続することができる。以下の説明では、端末装置Ｔ１〜Ｔｎを単に「端末Ｔ１〜Ｔｎ」と表記し、端末Ｔ１〜Ｔｎのうちの任意の端末を「端末Ｔｉ」と表記する場合がある（ｉ＝１，２，…，ｎ）。
【００４２】
なお、上述した説明では、アプリケーション配信システム２００内の各所に設置されるアクセスポイントＡＰを介して、端末Ｔｉがサーバ１０１に接続される場合を例に挙げて説明したが、これに限らない。例えば、サーバ１０１に内蔵された無線ＬＡＮのアクセスポイントを介して、端末Ｔｉがサーバ１０１に接続される形態であってもよい。
【００４３】
（サーバ１０１のハードウェア構成例）
つぎに、サーバ１０１のハードウェア構成例について説明する。
【００４４】
図３は、実施の形態１にかかるサーバ１０１のハードウェア構成例を示すブロック図である。図３において、サーバ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、ディスクドライブ３０４と、ディスク３０５と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４５】
ここで、ＣＰＵ３０１は、サーバ１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４６】
Ｉ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他の装置（例えば、図２に示した端末Ｔｉ）に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他の装置からのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４７】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００４８】
なお、サーバ１０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、図２に示したアクセスポイントＡＰについても、上述したサーバ１０１と同様のハードウェア構成により実現することができる。
【００４９】
（端末Ｔｉのハードウェア構成例）
つぎに、端末Ｔｉのハードウェア構成例について説明する。
【００５０】
図４は、実施の形態１にかかる端末Ｔｉのハードウェア構成例を示すブロック図である。図４において、端末Ｔｉは、ＣＰＵ４０１と、メモリ４０２と、ディスプレイ４０３と、入力装置４０４と、公衆網Ｉ／Ｆ４０５と、近距離無線Ｉ／Ｆ４０６と、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）ユニット４０７を有する。また、各構成部はバス４００によってそれぞれ接続される。
【００５１】
ここで、ＣＰＵ４０１は、端末Ｔｉの全体の制御を司る。メモリ４０２は、例えば、ＲＯＭ、ＲＡＭおよびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭがＯＳのプログラムを記憶し、ＲＯＭがアプリケーションプログラムを記憶し、ＲＡＭがＣＰＵ４０１のワークエリアとして使用される。メモリ４０２に記憶されるプログラムは、ＣＰＵ４０１にロードされることで、コーディングされている処理をＣＰＵ４０１に実行させることになる。
【００５２】
ディスプレイ４０３は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ４０３は、例えば、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどを採用することができる。
【００５３】
入力装置４０４は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置４０４は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【００５４】
公衆網Ｉ／Ｆ４０５は、通信回線を通じて公衆網に接続され、公衆網を介して他の装置に接続される。そして、公衆網Ｉ／Ｆ４０５は、公衆網と内部のインターフェースを司り、他の装置からのデータの入出力を制御する。
【００５５】
近距離無線Ｉ／Ｆ４０６は、近距離無線ネットワークに接続され、近距離無線ネットワークを介して他の装置に接続される。そして、近距離無線Ｉ／Ｆ４０６は、近距離無線ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する。公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６には、例えば、携帯通信モデムやネットワーク通信チップなどを採用することができる。
【００５６】
ＧＰＳユニット４０７は、ＧＰＳ衛星からの電波を受信し、端末Ｔｉの位置を示す位置情報を出力する。端末Ｔｉの位置情報は、例えば、緯度・経度、高度などの地球上の１点を特定する情報である。なお、端末Ｔｉは、上述した構成部のほか、例えば、ディスクドライブ、ディスク、ＳＳＤなどを有することにしてもよい。
【００５７】
（認証ＤＢ２２０の記憶内容）
つぎに、サーバ１０１が有する認証ＤＢ２２０の記憶内容について説明する。認証ＤＢ２２０は、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置により実現される。
【００５８】
図５は、認証ＤＢ２２０の記憶内容の一例を示す説明図である。図５において、認証ＤＢ２２０は、ユーザＩＤおよびパスワードのフィールドを有し、各フィールドに情報を設定することで、認証情報（例えば、認証情報５００−１，５００−２）をレコードとして記憶する。なお、図５の例では、各認証情報を平文で記述したが、例えば、各認証情報は暗号化された状態で認証ＤＢ２２０に記憶される。
【００５９】
ここで、ユーザＩＤは、端末Ｔｉのユーザを識別する識別子である。パスワードは、端末Ｔｉのユーザのパスワードである。ユーザＩＤおよびパスワードは、例えば、ユーザの認証に使用される。例えば、認証情報５００−１は、ユーザＩＤ「ｂｏｂ」およびパスワード「ｐｗｄ１」を示す。
【００６０】
（配信アプリリスト２３０の記憶内容）
つぎに、サーバ１０１が有する配信アプリリスト２３０の記憶内容について説明する。配信アプリリスト２３０は、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置により実現される。
【００６１】
図６は、配信アプリリスト２３０の記憶内容の一例を示す説明図である。図６において、配信アプリリスト２３０は、アプリＩＤおよび配信エリアのフィールドを有し、各フィールドに情報を設定することで、配信アプリ情報（例えば、配信アプリ情報６００−１，６００−２）をレコードとして記憶する。
【００６２】
ここで、アプリＩＤは、配信対象となるアプリケーションを識別する識別子である。配信エリアは、上述した「特定のエリア」に対応しており、配信対象となるアプリケーションを配信するエリアを特定する情報である。ここでは、配信エリアは、地球上のある矩形領域の対角頂点の座標位置を示す。
【００６３】
例えば、配信アプリ情報６００−１は、アプリＩＤ「ａｐｐ１」および配信エリア「（ｘ１，ｙ１）、（ｘ２，ｙ２）」を示す。なお、アプリＩＤに対応するアプリケーションは、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶されている。
【００６４】
（ダウンロード済みアプリリスト７００の記憶内容）
つぎに、端末Ｔｉが有するダウンロード済みアプリリスト７００の記憶内容について説明する。ダウンロード済みアプリリスト７００は、例えば、図４に示したメモリ４０２により実現される。
【００６５】
図７は、ダウンロード済みアプリリスト７００の記憶内容の一例を示す説明図である。図７において、ダウンロード済みアプリリスト７００は、アプリＩＤおよび暗号化のフィールドを有し、各フィールドに情報を設定することで、ダウンロード済みアプリ情報をレコードとして記憶する。
【００６６】
ここで、アプリＩＤは、ダウンロード済みのアプリケーションを識別する識別子である。暗号化は、ダウンロード済みのアプリケーションが暗号化されているか否かを示す。暗号化フィールドには、アプリケーションが暗号化されている場合に「ｔｒｕｅ」が設定され、暗号化されたアプリケーションが復号された場合に「ｆａｌｓｅ」が設定される。
【００６７】
図７の例では、端末Ｔｉがダウンロード済みのアプリケーションが存在しないため、アプリＩＤおよび暗号化の各フィールドは「空白」となっている。
【００６８】
（サーバ１０１の機能的構成例）
図８は、実施の形態１にかかるサーバ１０１の機能的構成例を示すブロック図である。図８において、サーバ１０１は、検出部８０１と、認証部８０２と、配信部８０３と、を含む構成である。検出部８０１〜配信部８０３は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【００６９】
検出部８０１は、無線通信可能な端末Ｔｉを検出する。具体的には、例えば、検出部８０１は、図２に示したアクセスポイントＡＰを介して、無線通信可能な端末Ｔｉを検出する。これにより、アクセスポイントＡＰの通信範囲内に存在する端末Ｔｉを検出することができる。
【００７０】
認証部８０２は、無線通信可能な端末Ｔｉが検出された場合、端末Ｔｉの認証処理を行う。具体的には、例えば、まず、認証部８０２は、無線通信可能な端末Ｔｉが検出された場合、端末Ｔｉと接続して認証要求を送信する。ここで、認証要求は、端末Ｔｉのユーザが、アプリケーション配信システム２００を利用する正当なユーザであるかの認証を要求するものである。
【００７１】
つぎに、認証部８０２は、端末Ｔｉからユーザ情報を受信する。ここで、ユーザ情報は、例えば、端末Ｔｉの認証画面において入力されるユーザＩＤおよびパスワードなどを含む。そして、認証部８０２は、端末Ｔｉから受信したユーザ情報に基づいて、端末Ｔｉの認証処理を行う。
【００７２】
より詳細に説明すると、例えば、認証部８０２は、受信したユーザ情報をデコードして、認証ＤＢ２２０（例えば、図５参照）から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定する。そして、認証部８０２は、特定したパスワードと、ユーザ情報に含まれるパスワードとを照合する。
【００７３】
そして、認証部８０２は、パスワードが一致する場合に、端末Ｔｉを認証する（認証成功）。一方、認証部８０２は、パスワードが不一致の場合は、端末Ｔｉを認証しない（認証失敗）。また、認証部８０２は、認証ＤＢ２２０から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定できなかった場合も、端末Ｔｉを認証しない（認証失敗）。
【００７４】
配信部８０３は、端末Ｔｉが認証された場合、配信対象となるアプリケーションの配信エリア内に端末Ｔｉが存在するか否かを判断する。以下の説明では、配信対象となるアプリケーションを、単に「配信アプリ」と表記する場合がある。
【００７５】
具体的には、例えば、まず、配信部８０３は、端末Ｔｉが認証された場合、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００（例えば、図７参照）とを受信する。つぎに、配信部８０３は、例えば、図６に示した配信アプリリスト２３０を参照して、配信アプリの配信エリアを特定する。そして、配信部８０３は、受信した端末Ｔｉの位置情報に基づいて、配信アプリの配信エリア内に端末Ｔｉが存在するか否かを判断する。
【００７６】
なお、配信アプリリスト２３０から特定される配信エリアが複数存在する場合には、配信部８０３は、複数の配信エリアのそれぞれについて、配信エリア内に端末Ｔｉが存在するか否かを判断する。
【００７７】
また、配信部８０３は、配信エリア内に端末Ｔｉが存在する場合、受信したダウンロード済みアプリリスト７００に、配信アプリが含まれているか否かを判断する。一例として、アプリＩＤ「ａｐｐ１」のアプリケーションの配信エリア内に端末Ｔｉが存在する場合を想定する。
【００７８】
この場合、配信部８０３は、ダウンロード済みアプリリスト７００を参照して、アプリＩＤ「ａｐｐ１」のアプリケーションが含まれているか否かを判断する。図７の例では、配信部８０３は、ダウンロード済みアプリリスト７００に、アプリＩＤ「ａｐｐ１」のアプリケーションが含まれていないと判断する。
【００７９】
また、配信部８０３は、ダウンロード済みアプリリスト７００に配信アプリが含まれていない場合、配信アプリとアプリ中継サービスとを端末Ｔｉに送信する。ここで、アプリ中継サービスとは、配信アプリを他の端末Ｔｊ（ｊ≠ｉ、ｊ＝１，２，…，ｎ）に中継する機能を有するアプリケーションである。
【００８０】
また、アプリ中継サービスは、端末Ｔｉと近距離無線通信可能な他の端末Ｔｊを検出して、検出した他の端末Ｔｊと接続する機能を有する。また、アプリ中継サービスは、他の端末Ｔｊを認証する機能を有する。アプリ中継サービスには、例えば、配信アプリを中継可能なエリアを特定する情報（後述する図１６参照）や、他の端末Ｔｊを認証するための認証情報（後述する図１５参照）が含まれる。図１に示したアプリケーションＡＰ２は、例えば、このアプリ中継サービスに対応する。
【００８１】
また、配信部８０３は、配信アプリとともに復号アプリを端末Ｔｉに送信することにしてもよい。ここで、復号アプリは、暗号化された配信アプリを復号するためのアプリケーションである。配信アプリは、例えば、配信エリアに対応する位置情報を用いて生成される暗号鍵により暗号化されている。また、配信アプリには、配信エリアを特定する情報（例えば、図６に示した配信エリア）が付与されている。
【００８２】
具体的には、例えば、配信部８０３は、配信エリアに対応する位置情報から特定される緯度経度情報をハッシュ関数に与えることにより得られるハッシュ値を暗号鍵として生成する。そして、配信部８０３は、生成した暗号鍵を用いて配信アプリを暗号化する。配信アプリを暗号化する暗号鍵の生成例については、図１１〜図１４を用いて後述する。
【００８３】
なお、配信エリアに対応する位置情報は、例えば、サーバ１０１の設置位置から特定される位置情報であってもよく、また、サーバ１０１と対応付けて設置されるアクセスポイントＡＰの設置位置から特定される位置情報であってもよい。あるいは、配信エリアに対応する位置情報は、配信アプリリスト２３０の配信エリアの対角頂点の座標位置から特定される位置情報であってもよい。
【００８４】
また、アプリ中継サービスは、配信アプリと同様に、暗号化された状態で端末Ｔｉに送信されることにしてもよい。この場合、配信部８０３は、例えば、アプリ中継サービスとともに復号鍵を端末Ｔｉに送信することにしてもよい。ここで、復号鍵は、暗号化されたアプリ中継サービスを復号するための鍵情報である。
【００８５】
なお、配信部８０３は、ダウンロード済みアプリリスト７００にアプリ中継サービスが含まれている場合には、アプリ中継サービスを端末Ｔｉに送信しない。
【００８６】
また、配信部８０３は、配信エリア内に存在する端末Ｔｉに、配信アプリを復号する復号鍵を送信することにしてもよい。具体的には、例えば、配信部８０３は、配信エリア内に存在する端末Ｔｉに、配信アプリとともに復号鍵を送信することにしてもよい。また、配信部８０３は、配信エリア内に存在する端末Ｔｉから配信アプリの復号鍵の取得要求を受信したことに応じて、配信アプリの復号鍵を端末Ｔｉに送信することにしてもよい。
【００８７】
なお、上述した説明では、配信部８０３は、配信エリア内に存在する端末Ｔｉに対して配信アプリを送信することにしたが、これに限らない。例えば、配信部８０３は、配信エリア内に存在する端末Ｔｉに対して、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などの配信アプリの格納場所を示す情報を送信することにしてもよい。配信アプリの格納場所は、例えば、サーバ１０１上であってもよく、また、サーバ１０１とは異なるコンピュータ上であってもよい。
【００８８】
（端末Ｔｉの機能的構成例）
図９は、実施の形態１にかかる端末Ｔｉの機能的構成例を示すブロック図である。図９において、端末Ｔｉは、位置取得部９０１と、探索部９０２と、アプリ取得部９０３と、アプリ実行部９０４と、を含む構成である。位置取得部９０１〜アプリ実行部９０４は制御部となる機能であり、具体的には、例えば、図４に示したメモリ４０２に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６により、その機能を実現する。各機能部の処理結果は、例えば、メモリ４０２に記憶される。
【００８９】
位置取得部９０１は、自端末の位置情報を取得する。具体的には、例えば、位置取得部９０１は、ＧＰＳユニット４０７により、自端末の位置情報を取得する。
【００９０】
探索部９０２は、無線通信可能なサーバ１０１を探索する。具体的には、例えば、探索部９０２は、アクセスポイントＡＰをスキャンすることにより、アクセスポイントＡＰを介して無線通信可能なサーバ１０１を探索する。アクセスポイントＡＰの探索を行うスキャン動作には、例えば、アクティブスキャンとパッシブスキャンがある。
【００９１】
アクティブスキャンは、無線ＬＡＮに用いられる各チャネルに対してプローブリクエスト信号を送信して、プローブレスポンス信号を受信することにより、アクセスポイントＡＰを探索するスキャン動作である。また、パッシブスキャンは、アクセスポイントＡＰからビーコンと呼ばれる信号（パケット）を受信することにより、アクセスポイントＡＰを探索するスキャン動作である。
【００９２】
例えば、探索部９０２は、アクセスポイントＡＰを探索するスキャン動作として、アクティブスキャンおよびパッシブスキャンの両方を行うことにしてもよく、また、アクティブスキャンおよびパッシブスキャンのいずれか一方を行うことにしてもよい。
【００９３】
また、探索部９０２は、近距離無線通信可能な中継端末Ｔｊを探索する。ここで、中継端末Ｔｊは、配信アプリを中継する他の端末Ｔｊである。具体的には、例えば、探索部９０２は、アクセスポイントＡＰと同様に、中継端末Ｔｊをスキャンすることにより、近距離無線通信可能な中継端末Ｔｊを探索する。
【００９４】
アプリ取得部９０３は、探索されたサーバ１０１または中継端末Ｔｊから配信アプリを取得する。また、アプリ取得部９０３は、探索されたサーバ１０１または中継端末Ｔｊからアプリ中継サービスを取得する。
【００９５】
具体的には、例えば、アプリ取得部９０３は、探索されたサーバ１０１（または、中継端末Ｔｊ）から認証要求を受信したことに応じて、自端末のユーザ情報をサーバ１０１（または、中継端末Ｔｊ）に送信する。ユーザ情報は、例えば、端末Ｔｉの認証画面において入力される。
【００９６】
つぎに、アプリ取得部９０３は、自端末が認証された場合、自端末の位置情報とダウンロード済みアプリリスト７００とをサーバ１０１（または、中継端末Ｔｊ）に送信する。そして、アプリ取得部９０３は、配信アプリまたは／およびアプリ中継サービスをサーバ１０１（または、中継端末Ｔｊ）から受信することにより、配信アプリまたは／およびアプリ中継サービスを取得する。
【００９７】
また、アプリ取得部９０３は、配信アプリまたはアプリ中継サービスを取得したことに応じて、ダウンロード済みアプリリスト７００を更新する。ここで、図１０を用いて、ダウンロード済みアプリリスト７００の更新例について説明する。
【００９８】
図１０は、ダウンロード済みアプリリスト７００の更新例を示す説明図である。ここでは、アプリＩＤ「ａｐｐ０」のアプリ中継サービスとアプリＩＤ「ａｐｐ１」のアプリケーションとをサーバ１０１から取得した場合を例に挙げて説明する。
【００９９】
この場合、アプリ取得部９０３は、ダウンロード済みアプリリスト７００のアプリＩＤおよび暗号化の各フィールドに「ａｐｐ０」および「ｔｒｕｅ」を設定する。これにより、ダウンロード済みアプリ情報１０００−１がレコードとして記憶される（図１０中、（１０−１）参照）。
【０１００】
また、アプリ取得部９０３は、ダウンロード済みアプリリスト７００のアプリＩＤおよび暗号化の各フィールドに「ａｐｐ１」および「ｔｒｕｅ」を設定する。これにより、ダウンロード済みアプリ情報１０００−２がレコードとして記憶される（図１０中、（１０−１）参照）。
【０１０１】
なお、ここでは、アプリ中継サービスは、サーバ１０１から暗号化された状態で配信されることにしたが、暗号化されていない状態で配信されることにしてもよい。この場合、ダウンロード済みアプリリスト７００の暗号化フィールドには「ｆａｌｓｅ」が設定される。
【０１０２】
また、アプリ中継サービスに含まれる配信アプリを中継可能なエリアを特定する情報は、例えば、後述する図１６に示す中継アプリリスト１６００に記憶される。また、アプリ中継サービスに含まれる他の端末Ｔｊを認証するための認証情報は、例えば、後述する図１５に示す中継端末用認証ＤＢ１５００に記憶される。
【０１０３】
図９の説明に戻り、アプリ実行部９０４は、取得された配信アプリを、当該配信アプリの配信エリア内で復号して実行可能にする。具体的には、例えば、アプリ実行部９０４は、配信アプリとともに復号アプリが取得された場合、復号アプリを起動して、自端末の位置情報を取得する。
【０１０４】
そして、アプリ実行部９０４は、取得した自装置の位置情報から特定される緯度経度情報をハッシュ関数に与えることにより得られるハッシュ値を復号鍵として生成する。つぎに、アプリ実行部９０４は、生成した復号鍵により配信アプリの復号処理を行う。そして、アプリ実行部９０４は、配信アプリの復号に成功した場合に、復号した配信アプリを実行することにしてもよい。
【０１０５】
また、アプリ実行部９０４は、配信アプリの復号に失敗した場合は、自装置の位置情報を取得し直して、以降の一連の処理を繰り返す。配信アプリを復号する復号鍵の生成例については、図１１〜図１４を用いて後述する。
【０１０６】
また、アプリ実行部９０４は、配信アプリとともに復号鍵が取得された場合、取得された復号鍵を用いて配信アプリを復号する。また、アプリ実行部９０４は、サーバ１０１に対して復号鍵の取得要求を送信することにより得られる復号鍵を用いて配信アプリを復号することにしてもよい。
【０１０７】
また、アプリ実行部９０４は、配信アプリまたはアプリ中継サービスが復号された場合、ダウンロード済みアプリリスト７００を更新する。例えば、図１０に示す（１０−２）の例では、アプリＩＤ「ａｐｐ０」のアプリ中継サービスとアプリＩＤ「ａｐｐ１」のアプリケーションとが復号された結果、各暗号化フィールドに「ｆａｌｓｅ」がそれぞれ設定されている。
【０１０８】
また、アプリ実行部９０４は、配信エリア外でアプリ中継サービスを起動する。具体的には、例えば、アプリ実行部９０４は、自端末の位置情報を取得して、配信アプリの配信エリア外に自端末が存在するか否かを判定する。なお、配信エリアを特定する情報は、例えば、配信アプリに付与されている。
【０１０９】
そして、アプリ実行部９０４は、配信エリア外に自端末が存在すると判定した場合に、アプリ中継サービスを起動する。一方、アプリ実行部９０４は、配信エリア内に自端末が存在すると判定した場合は、アプリ中継サービスを起動しない。これにより、配信アプリの配信エリア外において、端末Ｔｉは、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。
【０１１０】
なお、中継端末Ｔｉの機能的構成例については、図１７を用いて後述する。また、上述した説明では、アプリ取得部９０３は、サーバ１０１（または、中継端末Ｔｊ）から配信アプリを受信することにしたが、これに限らない。例えば、アプリ取得部９０３は、サーバ１０１（または、中継端末Ｔｊ）から、ＵＲＬなどの配信アプリの格納場所を示す情報を受信することにしてもよい。この場合、アプリ取得部９０３は、受信したＵＲＬなどの情報が示す格納場所にアクセスすることにより、配信アプリを取得する。
【０１１１】
（暗号鍵および復号鍵の生成例）
つぎに、配信アプリを暗号化する暗号鍵および暗号化された配信アプリを復号する復号鍵の生成例について説明する。
【０１１２】
図１１〜図１４は、暗号鍵および復号鍵の生成例を示す説明図である。ここでは、まず、配信アプリを暗号化する暗号鍵の生成例について説明する。
【０１１３】
図１１において、サーバ１０１の配信部８０３は、空間をグリッドで分割する。ここで、空間は、地球上の空間であり、例えば、サーバ１０１の設置位置から所定範囲内の空間である。また、グリッドは、例えば、１辺が数ｍ〜数十ｍ程度の立方体または平面である。
【０１１４】
図１１の例では、配信部８０３は、緯度経度を秒（″）単位で分割することにより、空間を複数のグリッド（例えば、グリッドＧ１〜Ｇ９）に分割する。
【０１１５】
図１２において、配信部８０３は、配信エリアに対応するグリッドの左上の頂点の緯度経度を秒（″）単位に変換して結合する。ここで、配信エリアに対応するグリッドとは、例えば、サーバ１０１の設置位置を含むグリッドであってもよく、また、配信エリアに対応するアクセスポイントＡＰの設置位置を含むグリッドであってもよい。
【０１１６】
なお、配信エリアに対応するグリッドは、配信アプリリスト２３０の配信エリアの対角頂点の座標位置から特定される矩形領域と一致していることが好ましいが、厳密に一致していなくてもよい。例えば、配信エリアに対応するグリッドは、配信アプリリスト２３０の配信エリアの対角頂点の座標位置から特定される矩形領域を含むグリッドであってもよい。
【０１１７】
図１２の例では、配信エリアに対応するグリッドを、サーバ１０１の設置位置を含む「グリッドＧ５」とする。この場合、配信部８０３は、グリッドＧ５の左上の頂点の緯度「３５°４０′４９″」および経度「１３９°４５′５１″」を、秒（″）単位の緯度「１２８４４９″」および経度「５０３１５１″」に変換して結合する。
【０１１８】
図１３において、配信部８０３は、配信エリアに対応するグリッドの左上の頂点の秒（″）単位の緯度経度を結合して得られた数値に対してハッシュ関数を適用する。図１３の例では、配信部８０３は、グリッドＧ５の左上の頂点の秒（″）単位の緯度経度を結合して得られた数値を、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  Ａｌｇｏｒｉｔｈｍ  ５）に与えることによりハッシュ値を取得する。
【０１１９】
図１４において、配信部８０３は、ハッシュ関数を適用して得られたハッシュ値を暗号鍵とする。図１４の例では、配信部８０３は、グリッドＧ５のハッシュ値「３４５０ｂ９１４ｄ４ｆｄ３ｄ６３０８９ｆ６２６２ｄ３４ｂｅ６ｄｆ」を暗号鍵とする。これにより、配信部８０３は、配信エリアに対するグリッドＧ５内で実行可能となる配信アプリを暗号化する暗号鍵を生成することができる。
【０１２０】
つぎに、暗号化された配信アプリを復号する復号鍵の生成例について説明する。
【０１２１】
図１１において、端末Ｔｉのアプリ実行部９０４は、空間をグリッドで分割する。ここで、空間は、例えば、端末Ｔｉの現在位置から所定範囲内の空間である。なお、アプリ実行部９０４が空間を分割する際の基準点やグリッドの大きさは、サーバ１０１の配信部８０３が空間を分割する際の基準点やグリッドの大きさと同じものとする。
【０１２２】
図１１の例では、アプリ実行部９０４は、緯度経度を秒（″）単位で分割することにより、空間を複数のグリッド（例えば、グリッドＧ１〜Ｇ９）に分割する。
【０１２３】
図１２において、アプリ実行部９０４は、自端末が位置するグリッドの左上の頂点の緯度経度を秒（″）単位に変換して結合する。図１２の例では、端末Ｔｉが位置するグリッドを「グリッドＧ１」とする。この場合、アプリ実行部９０４は、グリッドＧ１の左上の頂点の緯度「３５°４０′５０″」および経度「１３９°４５′５０″」を、秒（″）単位の緯度「１２８４５０″」および経度「５０３１５０″」に変換して結合する。
【０１２４】
図１３において、アプリ実行部９０４は、自端末が位置するグリッドの左上の頂点の秒（″）単位の緯度経度を結合して得られた数値に対してハッシュ関数を適用する。図１３の例では、アプリ実行部９０４は、グリッドＧ１の左上の頂点の秒（″）単位の緯度経度を結合して得られた数値を、ＭＤ５に与えることによりハッシュ値を取得する。
【０１２５】
図１４において、アプリ実行部９０４は、自端末が位置するグリッドのハッシュ値を復号鍵とする。図１４の例では、アプリ実行部９０４は、自端末が位置するグリッドＧ１のハッシュ値「ｆａｂｆａ７９ｃ７３９２０６３５８２１２６ｂ８ｄ０ｆｆ１ｆｅｂｆ」を復号鍵とする。ただし、この場合、暗号鍵と復号鍵とが一致しておらず、配信アプリを復号することができない。
【０１２６】
すなわち、アプリ実行部９０４は、自端末が、配信エリアに対応するグリッドＧ５に位置する場合にのみ、上述したアルゴリズムにより生成される復号鍵により配信アプリを復号することができる。
【０１２７】
（中継端末用認証ＤＢ１５００の記憶内容）
つぎに、中継端末Ｔｉが有する中継端末用認証ＤＢ１５００の記憶内容について説明する。中継端末用認証ＤＢ１５００は、例えば、図４に示したメモリ４０２により実現される。
【０１２８】
図１５は、中継端末用認証ＤＢ１５００の記憶内容の一例を示す説明図である。図１５において、中継端末用認証ＤＢ１５００は、ユーザＩＤおよびパスワードのフィールドを有し、各フィールドに情報を設定することで、認証情報（例えば、認証情報１５００−１，１５００−２）をレコードとして記憶する。なお、図１５の例では、各認証情報を平文で記述したが、例えば、各認証情報は暗号化された状態で中継端末用認証ＤＢ１５００に記憶される。
【０１２９】
ここで、ユーザＩＤは、他の端末Ｔｊのユーザを識別する識別子である。パスワードは、端末Ｔｊのユーザのパスワードである。ユーザＩＤおよびパスワードは、例えば、ユーザの認証に使用される。例えば、認証情報１５００−１は、ユーザＩＤ「ｂｏｂ」およびパスワード「ｐｗｄ１」を示す。
【０１３０】
（中継アプリリスト１６００の記憶内容）
つぎに、中継端末Ｔｉが有する中継アプリリスト１６００の記憶内容について説明する。中継アプリリスト１６００には、サーバ１０１から配信された配信アプリの情報が登録される。中継アプリリスト１６００は、例えば、図４に示したメモリ４０２により実現される。
【０１３１】
図１６は、中継アプリリスト１６００の記憶内容の一例を示す説明図である。図１６において、中継アプリリスト１６００は、アプリＩＤ、中継エリアおよび暗号化のフィールドを有し、各フィールドに情報を設定することで、中継アプリ情報（例えば、中継アプリ情報１６００−１，１６００−２）をレコードとして記憶する。
【０１３２】
ここで、アプリＩＤは、中継対象となるアプリケーション、すなわち、サーバ１０１から配信された配信アプリを識別する識別子である。中継エリアは、中継対象となるアプリケーションを中継するエリアを特定する情報である。ここでは、中継エリアは、地球上のある矩形領域の対角頂点の座標位置を示す。また、中継エリアとして、上述した「配信エリア」よりも広いエリアが設定される。
【０１３３】
暗号化は、中継対象となるアプリケーションが暗号化されているか否かを示す。例えば、中継アプリ情報１６００−１は、アプリＩＤ「ａｐｐ１」および中継エリア「（ｘ５，ｙ５）、（ｘ６，ｙ６）」を示す。
【０１３４】
（中継端末Ｔｉの機能的構成例）
図１７は、実施の形態１にかかる中継端末Ｔｉの機能的構成例を示すブロック図である。図１７において、中継端末Ｔｉは、位置取得部９０１と、探索部９０２と、アプリ取得部９０３と、アプリ実行部９０４と、検出部１７０１と、認証部１７０２と、中継部１７０３と、を含む構成である。位置取得部９０１〜アプリ実行部９０４および検出部１７０１〜中継部１７０３は制御部となる機能であり、具体的には、例えば、図４に示したメモリ４０２に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６により、その機能を実現する。各機能部の処理結果は、例えば、メモリ４０２に記憶される。なお、図９に示した端末Ｔｉと同一の機能部については、同一符号を付して説明を省略する。
【０１３５】
検出部１７０１は、近距離無線通信可能な他の端末Ｔｊを検出する。具体的には、例えば、検出部１７０１は、ビーコンと呼ばれる信号（パケット）を送信して、信号に対する応答を待ち受けることにより、近距離無線通信可能な他の端末Ｔｊを検出することにしてもよい。
【０１３６】
認証部１７０２は、近距離無線通信可能な他の端末Ｔｊが検出された場合、他の端末Ｔｊの認証処理を行う。具体的には、例えば、まず、認証部１７０２は、近距離無線通信可能な他の端末Ｔｊが検出された場合、他の端末Ｔｊと接続して認証要求を送信する。ここで、認証要求は、他の端末Ｔｊのユーザが、アプリケーション配信システム２００を利用する正当なユーザであるかの認証を要求するものである。
【０１３７】
つぎに、認証部１７０２は、他の端末Ｔｊからユーザ情報を受信する。ここで、ユーザ情報は、例えば、他の端末Ｔｊの認証画面において入力されるユーザＩＤおよびパスワードなどを含む。そして、認証部１７０２は、他の端末Ｔｊから受信したユーザ情報に基づいて、他の端末Ｔｊの認証処理を行う。
【０１３８】
より詳細に説明すると、例えば、認証部１７０２は、受信したユーザ情報をデコードして、中継端末用認証ＤＢ１５００（例えば、図１５参照）から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定する。そして、認証部１７０２は、特定したパスワードと、ユーザ情報に含まれるパスワードとを照合する。
【０１３９】
そして、認証部１７０２は、パスワードが一致する場合に、他の端末Ｔｊを認証する（認証成功）。一方、認証部１７０２は、パスワードが不一致の場合は、他の端末Ｔｊを認証しない（認証失敗）。また、認証部１７０２は、中継端末用認証ＤＢ１５００から、ユーザ情報に含まれるユーザＩＤに対応するパスワードを特定できなかった場合も、他の端末Ｔｊを認証しない（認証失敗）。
【０１４０】
中継部１７０３は、他の端末Ｔｊが認証された場合、中継対象となるアプリケーションの中継エリア内に他の端末Ｔｊが存在するか否かを判断する。ここで、中継対象となるアプリケーションは、サーバ１０１から配信された配信アプリである。以下の説明では、中継対象となるアプリケーションを「配信アプリ」と表記する場合がある。
【０１４１】
具体的には、例えば、まず、中継部１７０３は、他の端末Ｔｊが認証された場合、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００とを受信する。つぎに、中継部１７０３は、例えば、図１６に示した中継アプリリスト１６００を参照して、配信アプリの中継エリアを特定する。
【０１４２】
そして、中継部１７０３は、受信した他の端末Ｔｊの位置情報に基づいて、配信アプリの中継エリア内に他の端末Ｔｊが存在するか否かを判断する。ただし、配信アプリの中継エリアの一部が、配信アプリの配信エリアと重なる場合には、中継部１７０３は、配信アプリの中継エリア内で、かつ、配信アプリの配信エリア外に他の端末Ｔｊが存在するか否かを判断する。
【０１４３】
なお、中継アプリリスト１６００から特定される中継エリアが複数存在する場合には、中継部１７０３は、複数の中継エリアのそれぞれについて、中継エリア内に他の端末Ｔｊが存在するか否かを判断する。
【０１４４】
また、中継部１７０３は、中継エリア内に他の端末Ｔｊが存在する場合、受信したダウンロード済みアプリリスト７００に、配信アプリが含まれているか否かを判断する。そして、中継部１７０３は、ダウンロード済みアプリリスト７００に配信アプリが含まれていない場合、配信アプリを他の端末Ｔｊに送信する。
【０１４５】
この際、中継部１７０３は、配信アプリとともに復号アプリを他の端末Ｔｊに送信することにしてもよい。また、中継部１７０３は、配信アプリとともに、アプリ中継サービスを他の端末Ｔｊに送信することにしてもよい。ただし、中継部１７０３は、ダウンロード済みアプリリスト７００にアプリ中継サービスが含まれている場合には、アプリ中継サービスを他の端末Ｔｊに送信しない。
【０１４６】
なお、上述した説明では、中継部１７０３は、他の端末Ｔｊに対して配信アプリを送信することにしたが、これに限らない。例えば、中継部１７０３は、他の端末Ｔｊに対して、ＵＲＬなどの配信アプリの格納場所を示す情報を送信することにしてもよい。
【０１４７】
（サーバ１０１のアプリケーション配信処理手順）
つぎに、実施の形態１にかかるサーバ１０１のアプリケーション配信処理手順について説明する。
【０１４８】
図１８は、実施の形態１にかかるサーバ１０１のアプリケーション配信処理手順の一例を示すフローチャートである。図１８のフローチャートにおいて、まず、サーバ１０１は、アクセスポイントＡＰを介して、無線通信可能な端末Ｔｉを検出したか否かを判断する（ステップＳ１８０１）。
【０１４９】
ここで、サーバ１０１は、端末Ｔｉを検出するのを待って（ステップＳ１８０１：Ｎｏ）、端末Ｔｉを検出した場合（ステップＳ１８０１：Ｙｅｓ）、検出した端末Ｔｉと接続して認証処理を行う（ステップＳ１８０２）。そして、サーバ１０１は、端末Ｔｉの認証に成功したか否かを判断する（ステップＳ１８０３）。
【０１５０】
ここで、端末Ｔｉの認証に失敗した場合（ステップＳ１８０３：Ｎｏ）、サーバ１０１は、本フローチャートによる一連の処理を終了する。
【０１５１】
一方、端末Ｔｉの認証に成功した場合（ステップＳ１８０３：Ｙｅｓ）、サーバ１０１は、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００を受信したか否かを判断する（ステップＳ１８０４）。ここで、サーバ１０１は、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００を受信するのを待つ（ステップＳ１８０４：Ｎｏ）。
【０１５２】
そして、サーバ１０１は、端末Ｔｉから位置情報とダウンロード済みアプリリスト７００を受信した場合（ステップＳ１８０４：Ｙｅｓ）、受信したダウンロード済みアプリリスト７００に、アプリ中継サービスが含まれるか否かを判断する（ステップＳ１８０５）。ここで、アプリ中継サービスが含まれる場合（ステップＳ１８０５：Ｙｅｓ）、サーバ１０１は、ステップＳ１８０７に移行する。
【０１５３】
一方、アプリ中継サービスが含まれない場合（ステップＳ１８０５：Ｎｏ）、サーバ１０１は、端末Ｔｉにアプリ中継サービスを送信する（ステップＳ１８０６）。つぎに、サーバ１０１は、配信アプリリスト２３０を参照して、受信したダウンロード済みアプリリスト７００に存在しない配信アプリがあるか否かを判断する（ステップＳ１８０７）。
【０１５４】
ここで、ダウンロード済みアプリリスト７００に存在しない配信アプリがない場合（ステップＳ１８０７：Ｎｏ）、サーバ１０１は、本フローチャートによる一連の処理を終了する。
【０１５５】
一方、ダウンロード済みアプリリスト７００に存在しない配信アプリがある場合（ステップＳ１８０７：Ｙｅｓ）、サーバ１０１は、配信アプリリスト２３０を参照して、受信した端末Ｔｉの位置情報に基づいて、配信アプリの配信エリア内に端末Ｔｉが存在するか否かを判断する（ステップＳ１８０８）。
【０１５６】
ここで、配信エリア内に端末Ｔｉが存在しない場合（ステップＳ１８０８：Ｎｏ）、サーバ１０１は、本フローチャートによる一連の処理を終了する。
【０１５７】
一方、配信エリア内に端末Ｔｉが存在する場合（ステップＳ１８０８：Ｙｅｓ）、サーバ１０１は、配信アプリと復号アプリを端末Ｔｉに送信して（ステップＳ１８０９）、本フローチャートによる一連の処理を終了する。
【０１５８】
これにより、サーバ１０１は、配信エリア内に存在する端末Ｔｉに対して、配信エリア内で実行可能となる配信アプリを配信するとともに、アプリ中継サービスを配信することができる。
【０１５９】
なお、ステップＳ１８０６において、サーバ１０１は、例えば、認証に成功した端末の複数台に１台（例えば、３台に１台）に、アプリ中継サービスを送信することにしてもよい。また、サーバ１０１は、配信エリア内の端末の密度が閾値以上となった場合に、アプリ中継サービスを端末Ｔｉに送信することにしてもよい。これにより、アプリ中継サービスを配信する端末の数を制限することができる。
【０１６０】
（端末Ｔｉのアプリケーション実行処理手順）
つぎに、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順について説明する。
【０１６１】
図１９および図２０は、実施の形態１にかかる端末Ｔｉのアプリケーション実行処理手順の一例を示すフローチャートである。図１９のフローチャートにおいて、まず、端末Ｔｉは、自端末の位置情報を取得する（ステップＳ１９０１）。
【０１６２】
つぎに、端末Ｔｉは、ダウンロード済みアプリリスト７００を参照して、暗号化された配信アプリがあるか否かを判断する（ステップＳ１９０２）。ここで、暗号化された配信アプリがない場合（ステップＳ１９０２：Ｎｏ）、端末Ｔｉは、ステップＳ１９０７に移行する。
【０１６３】
一方、暗号化された配信アプリがある場合（ステップＳ１９０２：Ｙｅｓ）、端末Ｔｉは、暗号化された配信アプリの復号アプリがあるか否かを判断する（ステップＳ１９０３）。ここで、復号アプリがない場合（ステップＳ１９０３：Ｎｏ）、端末Ｔｉは、ステップＳ１９０７に移行する。
【０１６４】
一方、復号アプリがある場合（ステップＳ１９０３：Ｙｅｓ）、端末Ｔｉは、復号アプリを起動して、取得した自端末の位置情報に基づいて、暗号化された配信アプリの復号処理を行う（ステップＳ１９０４）。そして、端末Ｔｉは、暗号化された配信アプリの復号に成功したか否かを判断する（ステップＳ１９０５）。
【０１６５】
ここで、配信アプリの復号に失敗した場合（ステップＳ１９０５：Ｎｏ）、端末Ｔｉは、ステップＳ１９０７に移行する。一方、配信アプリの復号に成功した場合（ステップＳ１９０５：Ｙｅｓ）、端末Ｔｉは、復号した配信アプリを実行する（ステップＳ１９０６）。
【０１６６】
つぎに、端末Ｔｉは、ダウンロード済みアプリリスト７００を参照して、アプリ中継サービスがあるか否かを判断する（ステップＳ１９０７）。ここで、アプリ中継サービスがない場合（ステップＳ１９０７：Ｎｏ）、端末Ｔｉは、図２０に示すステップＳ２００１に移行する。
【０１６７】
一方、アプリ中継サービスがある場合（ステップＳ１９０７：Ｙｅｓ）、端末Ｔｉは、取得した自端末の位置情報に基づいて、配信アプリの配信エリア外に自端末が存在するか否かを判断する（ステップＳ１９０８）。ここで、配信エリア内に自端末が存在する場合（ステップＳ１９０８：Ｎｏ）、端末Ｔｉは、図２０に示すステップＳ２００１に移行する。
【０１６８】
一方、配信エリア外に自端末が存在する場合（ステップＳ１９０８：Ｙｅｓ）、端末Ｔｉは、アプリ中継サービスを起動して（ステップＳ１９０９）、図２０に示すステップＳ２００１に移行する。これにより、端末Ｔｉは、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。なお、中継端末Ｔｉのアプリケーション中継処理手順については、図２１を用いて後述する。
【０１６９】
図２０のフローチャートにおいて、まず、端末Ｔｉは、サーバ１０１または中継端末Ｔｊを探索する（ステップＳ２００１）。そして、端末Ｔｉは、サーバ１０１または中継端末Ｔｊを発見したか否かを判断する（ステップＳ２００２）。ここで、サーバ１０１または中継端末Ｔｊを発見しなかった場合（ステップＳ２００２：Ｎｏ）、端末Ｔｉは、図１９に示したステップＳ１９０１に戻る。
【０１７０】
一方、サーバ１０１または中継端末Ｔｊを発見した場合（ステップＳ２００２：Ｙｅｓ）、端末Ｔｉは、発見したサーバ１０１または中継端末Ｔｊと接続して認証処理を行う（ステップＳ２００３）。そして、端末Ｔｉは、自端末の認証に成功したか否かを判断する（ステップＳ２００４）。
【０１７１】
ここで、自端末の認証に失敗した場合（ステップＳ２００４：Ｎｏ）、端末Ｔｉは、図１９に示したステップＳ１９０１に戻る。一方、自端末の認証に成功した場合（ステップＳ２００４：Ｙｅｓ）、端末Ｔｉは、ダウンロード済みアプリリスト７００と自端末の位置情報をサーバ１０１に送信する（ステップＳ２００５）。
【０１７２】
つぎに、端末Ｔｉは、サーバ１０１からアプリケーションを受信するのを一定時間待つ（ステップＳ２００６）。一定時間は、例えば、数秒〜数十秒程度の時間である。そして、端末Ｔｉは、サーバ１０１から配信アプリ、復号アプリおよびアプリ中継サービスの少なくともいずれかのアプリケーションを受信したか否かを判断する（ステップＳ２００７）。
【０１７３】
ここで、いずれのアプリケーションも受信していない場合（ステップＳ２００７：Ｎｏ）、端末Ｔｉは、図１９に示したステップＳ１９０１に戻る。
【０１７４】
一方、いずれかのアプリケーションを受信した場合（ステップＳ２００７：Ｙｅｓ）、端末Ｔｉは、ダウンロード済みアプリリスト７００を更新して（ステップＳ２００８）、図１９に示したステップＳ１９０１に戻る。この際、アプリ中継サービスを起動している場合は、端末Ｔｉは、中継アプリリスト１６００も合わせて更新する。
【０１７５】
これにより、端末Ｔｉは、配信エリア内で配信アプリを復号して実行することができる。また、端末Ｔｉは、配信エリア外でアプリ中継サービスを起動して、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。
【０１７６】
なお、図１９に示したステップＳ１９０３において、復号アプリがない場合（ステップＳ１９０３：Ｎｏ）、端末Ｔｉは、暗号化された配信アプリの復号鍵の取得要求をサーバ１０１に送信することにしてもよい。これにより、暗号化された配信アプリを復号する復号鍵をサーバ１０１から取得して、配信アプリを実行可能にすることができる。
【０１７７】
（中継端末Ｔｉのアプリケーション中継処理手順）
つぎに、実施の形態１にかかる中継端末Ｔｉのアプリケーション中継処理手順について説明する。
【０１７８】
図２１は、実施の形態１にかかる中継端末Ｔｉのアプリケーション中継処理手順の一例を示すフローチャートである。図２１のフローチャートにおいて、まず、中継端末Ｔｉは、アクセスポイントＡＰを介して、近距離無線通信可能な他の端末Ｔｊを検出したか否かを判断する（ステップＳ２１０１）。
【０１７９】
ここで、中継端末Ｔｉは、他の端末Ｔｊを検出するのを待って（ステップＳ２１０１：Ｎｏ）、他の端末Ｔｊを検出した場合（ステップＳ２１０１：Ｙｅｓ）、検出した他の端末Ｔｊと接続して認証処理を行う（ステップＳ２１０２）。そして、中継端末Ｔｉは、他の端末Ｔｊの認証に成功したか否かを判断する（ステップＳ２１０３）。
【０１８０】
ここで、他の端末Ｔｊの認証に失敗した場合（ステップＳ２１０３：Ｎｏ）、中継端末Ｔｉは、本フローチャートによる一連の処理を終了する。
【０１８１】
一方、他の端末Ｔｊの認証に成功した場合（ステップＳ２１０３：Ｙｅｓ）、中継端末Ｔｉは、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００を受信したか否かを判断する（ステップＳ２１０４）。ここで、中継端末Ｔｉは、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００を受信するのを待つ（ステップＳ２１０４：Ｎｏ）。
【０１８２】
そして、中継端末Ｔｉは、他の端末Ｔｊから位置情報とダウンロード済みアプリリスト７００を受信した場合（ステップＳ２１０４：Ｙｅｓ）、中継アプリリスト１６００を参照して、受信したダウンロード済みアプリリスト７００に存在しない配信アプリがあるか否かを判断する（ステップＳ２１０５）。
【０１８３】
ここで、ダウンロード済みアプリリスト７００に存在しない配信アプリがない場合（ステップＳ２１０５：Ｎｏ）、中継端末Ｔｉは、本フローチャートによる一連の処理を終了する。
【０１８４】
一方、ダウンロード済みアプリリスト７００に存在しない配信アプリがある場合（ステップＳ２１０５：Ｙｅｓ）、中継端末Ｔｉは、中継アプリリスト１６００を参照して、受信した他の端末Ｔｊの位置情報に基づいて、配信アプリの中継エリア内に他の端末Ｔｊが存在するか否かを判断する（ステップＳ２１０６）。
【０１８５】
ここで、中継エリア内に他の端末Ｔｊが存在しない場合（ステップＳ２１０６：Ｎｏ）、中継端末Ｔｉは、本フローチャートによる一連の処理を終了する。
【０１８６】
一方、中継エリア内に他の端末Ｔｊが存在する場合（ステップＳ２１０６：Ｙｅｓ）、中継端末Ｔｉは、配信アプリと復号アプリを他の端末Ｔｊに送信して（ステップＳ２１０７）、本フローチャートによる一連の処理を終了する。
【０１８７】
これにより、中継端末Ｔｉは、中継エリア内に存在する近距離無線通信可能な他の端末Ｔｊに対して、配信エリア内で実行可能となる配信アプリを配信することができる。
【０１８８】
以上説明したように、実施の形態１にかかるサーバ１０１によれば、配信エリア内に存在する端末Ｔｉに対して、配信アプリとともにアプリ中継サービスを配信することができる。また、実施の形態１にかかる端末Ｔｉによれば、サーバ１０１から配信アプリを受信した場合、配信エリア内で配信アプリを復号して実行可能にすることができる。
【０１８９】
また、端末Ｔｉによれば、サーバ１０１からアプリ中継サービスを受信した場合、配信エリア外でアプリ中継サービスを起動して、配信アプリを他の端末Ｔｊに中継する中継端末Ｔｉとして動作することができる。また、実施の形態１にかかる中継端末Ｔｉによれば、中継エリア内に存在する他の端末Ｔｊを検出して、配信エリア内で実行可能となる配信アプリを他の端末Ｔｉに配信することができる。
【０１９０】
また、サーバ１０１によれば、配信エリア内に存在する端末Ｔｉを検出したことに応じて、端末Ｔｉの認証処理を行い、端末Ｔｉを認証した場合に、配信アプリおよびアプリ中継サービスを端末Ｔｉに送信することができる。これにより、アプリケーション配信システム２００を利用する正当なユーザに対してのみに、サーバ１０１から配信アプリおよびアプリ中継サービスを配信することができる。
【０１９１】
また、中継端末Ｔｉによれば、他の端末Ｔｊを検出したことに応じて、他の端末Ｔｊの認証処理を行い、他の端末Ｔｊを認証した場合に、配信アプリを他の端末Ｔｊに送信することができる。これにより、アプリケーション配信システム２００を利用する正当なユーザに対してのみに、中継端末Ｔｉから配信アプリを配信することができる。
【０１９２】
また、サーバ１０１によれば、配信エリアに対応する位置情報を用いて生成した暗号鍵を用いて配信アプリを暗号化することができる。また、サーバ１０１によれば、端末Ｔｉの位置情報を用いて生成した復号鍵により配信アプリの復号処理を行う復号アプリを、配信アプリとともに端末Ｔｉに送信することができる。これにより、端末Ｔｉに対して復号鍵を配布することなく、配信エリア内で配信アプリが復号されて実行可能となるように制御することができる。
【０１９３】
これらのことから、実施の形態１にかかるアプリケーション配信システム２００によれば、配信アプリの配信にかかる負荷をサーバ１０１と中継端末Ｔｉとに分散して、サーバ１０１への負荷集中を抑制することができる。これにより、サービス提供エリア（配信エリア）内にいるユーザに対して素早く配信アプリを配布することができ、サービス開始の遅れを防ぐことができる。また、中継端末Ｔｉによる配信アプリの配信はサービス提供エリア外で行われるため、サービス提供エリア内でのネットワーク負荷の集中を防止することができる。
【０１９４】
（実施の形態２）
つぎに、実施の形態２にかかるアプリケーション配信方法について説明する。なお、実施の形態１で説明した箇所と同様の箇所については、同一符号を付して説明を省略する。
【０１９５】
図２２は、実施の形態２にかかるアプリケーション配信方法の一実施例を示す説明図である。図２２において、サーバ２２０１は、アプリケーションを配信するコンピュータである。また、端末Ｔ（例えば、端末Ｔ１〜Ｔ４）は、無線通信可能なコンピュータであり、例えば、スマートフォン、携帯電話機、タブレット型ＰＣなどである。
【０１９６】
サーバ２２０１は、例えば、店舗、学校、イベント会場などに設置され、店舗やイベント会場の来場者や、学校に登校してきた生徒の端末装置Ｔにアプリケーションを配信する。例えば、サーバ２２０１が店舗に設置される場合、配信対象となるアプリケーションは、店舗で利用可能なクーポンアプリなどである。
【０１９７】
また、例えば、サーバ２２０１が学校に設置される場合、配信対象となるアプリケーションは、授業で使用される教材アプリなどである。例えば、サーバ２２０１がコンサートや音楽フェスティバルのイベント会場などに設置される場合、配信対象となるアプリケーションは、音楽再生アプリなどである。
【０１９８】
すなわち、店舗、学校、イベント会場などにサーバ２２０１を設置することにより、店舗やイベント会場の周辺、学校内の教室周辺などのローカルな場にいるユーザに対して、その場に応じたサービスを提供できるようになる。一方で、店舗や学校などに設置されたサーバ２２０１に対するアクセスが急激に増えると、アプリケーションの配信にかかる負荷が集中してしまう。
【０１９９】
そこで、実施の形態２では、ユーザが持つモバイルサーバＭＳを利用して、アプリケーションの配信にかかる負荷を分散して、サーバ２２０１への負荷集中を抑制する方法について説明する。以下、サーバ２２０１に端末Ｔ１〜Ｔ４が接続されている場合を想定して、サーバ２２０１および各端末Ｔ１〜Ｔ４の処理例について説明する。
【０２００】
（１）サーバ２２０１は、接続中の複数の端末Ｔから、モバイルサーバＭＳに対応付けられた第１端末を抽出する。ここで、モバイルサーバＭＳは、例えば、可搬型のコンピュータであり、アプリケーションを配信する機能を有する。ただし、モバイルサーバＭＳの機能は、端末Ｔで実行されるアプリケーションにより実現されることにしてもよい。
【０２０１】
図１の例では、端末Ｔ１のユーザは、端末Ｔ１とモバイルサーバＭＳ１とをセットで保持しており、端末Ｔ１とモバイルサーバＭＳ１が無線ＬＡＮやＢｌｕｅｔｏｏｔｈにより接続（ペアリング済み）されている場合を想定する。この場合、サーバ２２０１は、接続中の端末Ｔ１〜Ｔ４から、モバイルサーバＭＳ１に接続された端末Ｔ１を、第１端末として抽出する。
【０２０２】
（２）サーバ２２０１は、接続中の複数の端末Ｔから、接続先を切り替える第２端末を抽出する。具体的には、例えば、サーバ２２０１は、接続中の端末Ｔ１〜Ｔ４のうち、モバイルサーバＭＳ１に接続された端末Ｔ１とは異なる少なくともいずれかの端末Ｔを、第２端末として抽出することにしてもよい。図２２の例では、端末Ｔ３，Ｔ４が第２端末として抽出された場合を想定する。
【０２０３】
（３）サーバ２２０１は、抽出した第１端末に対して、アプリケーションとモバイルサーバＭＳの稼働指示とを送信する。ここで、アプリケーションは、配信対象となるアプリケーションであり、例えば、クーポンアプリ、教材アプリ、音楽再生アプリなどである。
【０２０４】
また、モバイルサーバＭＳの稼働指示は、第１端末に対して、モバイルサーバＭＳの機能を有効化して、モバイルサーバＭＳから第２端末にアプリケーションを配信するよう指示するためのものである。モバイルサーバＭＳの稼働指示には、例えば、モバイルサーバＭＳが第２端末と接続するためのネットワーク設定情報が含まれる。
【０２０５】
ここで、モバイルサーバＭＳと第２端末は、例えば、無線ＬＡＮによって接続される。この場合、ネットワーク設定情報は、例えば、無線ＬＡＮのネットワークを構築するためのＳＳＩＤ（Ｓｅｒｖｉｃｅ  Ｓｅｔ  Ｉｄｅｎｔｉｆｉｅｒ）、セキュリティ種別、パスワード、準拠規格およびチャネルなどの情報を含む。
【０２０６】
ＳＳＩＤは、モバイルサーバＭＳが無線ＬＡＮのアクセスポイントとして動作する場合の当該アクセスポイントの識別子である。また、セキュリティ種別、パスワード、準拠規格およびチャネルは、モバイルサーバＭＳと第２端末との通信で使用される暗号化方式、パスワード、準拠規格およびチャネルを示す。
【０２０７】
図２２の例では、サーバ２２０１は、第１端末として抽出した端末Ｔ１に対して、アプリケーションとモバイルサーバＭＳ１の稼働指示とを送信する。
【０２０８】
（４）サーバ２２０１は、抽出した第２端末に対して、接続先をモバイルサーバＭＳに切り替える切替指示を送信する。この切替指示には、モバイルサーバＭＳとの通信で使用されるネットワーク情報が含まれる。ネットワーク情報は、例えば、ＳＳＩＤおよびパスワードなどを含む。
【０２０９】
図２２の例では、サーバ２２０１は、第２端末として抽出した端末Ｔ３，Ｔ４に対して、接続先をモバイルサーバＭＳに切り替える切替指示を送信する。
【０２１０】
（５）端末Ｔ（第１端末）は、サーバ２２０１からモバイルサーバＭＳの稼働指示を受信したことに応じて、モバイルサーバＭＳの機能を有効化する。具体的には、例えば、端末Ｔ（第１端末）は、稼働指示に含まれるネットワーク設定情報をモバイルサーバＭＳに送信して、当該ネットワーク設定情報に基づくネットワーク設定を行うよう指示する。また、端末Ｔ（第１端末）は、サーバ２２０１から受信したアプリケーションをモバイルサーバＭＳに送信する。
【０２１１】
図２２の例では、端末Ｔ１は、例えば、モバイルサーバＭＳの稼働指示を受信したことに応じて、サーバ２２０１から受信したアプリケーションをモバイルサーバＭＳ１にアップロードして、モバイルサーバＭＳ１の機能を有効化する。
【０２１２】
（６）端末Ｔ（第２端末）は、サーバ２２０１から切替指示を受信したことに応じて、接続先をサーバ２２０１からモバイルサーバＭＳに切り替える。図２２の例では、端末Ｔ３，Ｔ４は、例えば、サーバ２２０１から切替指示を受信したことに応じて、サーバ２２０１との接続を切断する。そして、端末Ｔ３，Ｔ４は、サーバ２２０１からの切替指示に含まれるネットワーク情報に基づいて、モバイルサーバＭＳ１に接続する。
【０２１３】
（７）モバイルサーバＭＳは、第２端末が接続されたことに応じて、第１端末から受信したアプリケーションを第２端末に送信する。図２２の例では、モバイルサーバＭＳ１は、端末Ｔ３，Ｔ４が接続されたことに応じて、端末Ｔ１からダウンロードしたアプリケーションを端末Ｔ３，Ｔ４にそれぞれ送信する。
【０２１４】
このように、サーバ２２０１によれば、接続中の複数の端末Ｔから、モバイルサーバＭＳに対応付けられた第１端末を抽出して、配信対象のアプリケーションとモバイルサーバＭＳの稼働指示とを送信することができる。また、サーバ２２０１によれば、接続中の複数の端末Ｔから、接続先を切り替える第２端末を抽出して、接続先をモバイルサーバＭＳに切り替える切替指示を送信することができる。
【０２１５】
これにより、第１端末とペアリングされたモバイルサーバＭＳの機能を有効化して、モバイルサーバＭＳから第２端末にアプリケーションを配信させることができ、アプリケーションの配信にかかるサーバ２２０１への負荷集中を抑制することができる。
【０２１６】
なお、端末Ｔ３，Ｔ４は、モバイルサーバＭＳ１からのアプリケーションの受信が完了すると、モバイルサーバＭＳ１との接続を切断して、サーバ２２０１に接続し直すことにしてもよい。これにより、サーバ２２０１は、端末Ｔ３，Ｔ４に対して、アプリケーションを利用したサービスを開始することができる。
【０２１７】
（アプリケーション配信システム２３００のシステム構成例）
つぎに、実施の形態２にかかるアプリケーション配信システム２３００のシステム構成例について説明する。
【０２１８】
図２３は、アプリケーション配信システム２３００のシステム構成例を示す説明図である。図２３において、アプリケーション配信システム２３００は、サーバ２２０１と、端末Ｔ１〜Ｔｎ（ｎ：２以上の自然数）と、１以上のモバイルサーバＭＳ（例えば、モバイルサーバＭＳ１）と、を含む。
【０２１９】
ここで、サーバ２２０１は、サーバ情報２３１０を有する。サーバ情報２３１０の具体例については、図２５を用いて後述する。サーバ２２０１は、例えば、無線ＬＡＮのアクセスポイントを内蔵しており、当該アクセスポイントを介して端末Ｔｉと無線通信可能である（ｉ＝１，２，…，ｎ）。
【０２２０】
なお、図示は省略するが、サーバ２２０１は、例えば、図５および図６に示したような認証ＤＢ２２０および配信アプリリスト２３０を有することにしてもよい。
【０２２１】
端末Ｔ１〜Ｔｎは、例えば、サーバ２２０１に内蔵されたアクセスポイントの通信範囲内において、当該アクセスポイントを介してサーバ２２０１と無線通信可能である。各端末Ｔ１〜Ｔｎは、端末情報２３２０をそれぞれ有する。端末情報２３２０の具体例については、図２６を用いて後述する。
【０２２２】
モバイルサーバＭＳは、端末Ｔとセットで保持される可搬型のコンピュータであり、例えば、無線ＬＡＮ（あるいは、Ｂｌｕｅｔｏｏｔｈ）により端末Ｔと接続される。ただし、ユーザの中には、モバイルサーバＭＳを保持しているものもいれば、モバイルサーバＭＳを保持していないものもいる。
【０２２３】
図２３の例では、例えば、端末Ｔ１のユーザは、端末Ｔ１とセットでモバイルサーバＭＳ１を保持しているが、端末Ｔ２のユーザは、モバイルサーバＭＳを保持していない。以下の説明では、図２３に示すように、端末Ｔｉとセットで保持されて、端末Ｔｉに接続されたモバイルサーバＭＳを「モバイルサーバＭＳｉ」と表記する場合がある。
【０２２４】
なお、上述した説明では、無線ＬＡＮのアクセスポイントがサーバ２２０１に内蔵される場合を例に挙げて説明したが、これに限らない。例えば、図２に示したアプリケーション配信システム２００のように、サーバ２２０１に接続される複数のアクセスポイントＡＰを各所に設置し、各アクセスポイントＡＰを介して、サーバ２２０１と端末Ｔｉとが通信することができるようにしてもよい。
【０２２５】
（モバイルサーバＭＳｉのハードウェア構成例）
つぎに、モバイルサーバＭＳｉのハードウェア構成例について説明する。なお、サーバ２２０１のハードウェア構成例については、図３に示したサーバ１０１のハードウェア構成例と同様のため、図示および説明を省略する。また、端末Ｔｉのハードウェア構成例については、図４に示した端末Ｔｉのハードウェア構成例と同様のため、図示および説明を省略する。
【０２２６】
図２４は、モバイルサーバＭＳｉのハードウェア構成例を示すブロック図である。図２４において、モバイルサーバＭＳｉは、ＣＰＵ２４０１と、メモリ２４０２と、Ｉ／Ｆ２４０３と、ディスクドライブ２４０４と、ディスク２４０５と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）２４０６と、バッテリ２４０７と、を有する。また、各構成部は、バス２４００によってそれぞれ接続される。
【０２２７】
ここで、ＣＰＵ２４０１は、モバイルサーバＭＳｉの全体の制御を司る。メモリ２４０２は、例えば、ＲＯＭ、ＲＡＭおよびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２４０１のワークエリアとして使用される。メモリ２４０２に記憶されるプログラムは、ＣＰＵ２４０１にロードされることで、コーディングされている処理をＣＰＵ２４０１に実行させる。
【０２２８】
Ｉ／Ｆ２４０３は、通信回線を通じて近距離無線ネットワークに接続され、この近距離無線ネットワークを介して他の装置に接続される。そして、Ｉ／Ｆ２４０３は、近距離無線ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する。
【０２２９】
ディスクドライブ２４０４は、ＣＰＵ２４０１の制御に従ってディスク２４０５に対するデータのリード／ライトを制御する。ディスク２４０５は、ディスクドライブ２４０４の制御で書き込まれたデータを記憶する。ＰＭＵ２４０６は、バッテリ２４０７によって蓄えられた電力を、モバイルサーバＭＳｉの各構成部に駆動電源として供給する制御を行う。
【０２３０】
なお、モバイルサーバＭＳｉは、上述した構成部のほか、例えば、ＳＳＤ、入力パッド、ディスプレイなどを有することにしてもよい。
【０２３１】
（サーバ情報２３１０の具体例）
つぎに、サーバ２２０１が有するサーバ情報２３１０の具体例について説明する。サーバ情報２３１０は、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０２３２】
図２５は、サーバ情報２３１０の具体例を示す説明図である。図２５において、サーバ情報２３１０は、ＰＳｖＩＤ、保持コンテンツＩＤ一覧、位置情報、ユーザ訪問履歴および接続中端末一覧を有する。
【０２３３】
ここで、ＰＳｖＩＤは、サーバ２２０１を識別する識別子である。サーバ２２０１のＰＳｖＩＤは「ＰＳｖ＃１」である。保持コンテンツＩＤ一覧は、サーバ２２０１が保持しているアプリケーションを識別する識別子（例えば、ａｐｐ３）である。位置情報は、サーバ２２０１が設置された地点の座標位置（緯度、経度）を示す。
【０２３４】
ユーザ訪問履歴は、サーバ２２０１への接続前に端末Ｔｉが接続していた他のサーバを示す。例えば、「ＰＳｖ＃２→ＰＳｖ＃１」は、サーバ２２０１への接続前に端末Ｔｉが、ＰＳｖＩＤ「ＰＳｖ＃２」により識別される他のサーバに接続していたことを示す。ユーザ訪問履歴によれば、例えば、サーバ２２０１の周辺に設置されている他のサーバを把握することができる。
【０２３５】
接続中端末一覧は、サーバ２２０１に接続中の端末Ｔｉを識別するクライアントＩＤ（例えば、Ｔ１，Ｔ２，Ｔ３）と、サーバ２２０１に接続中の端末Ｔｉに接続されているモバイルサーバＭＳｉを識別するモバイルサーバＩＤ（例えば、ＭＳ１，ＭＳ３）とをリスト化して示す。
【０２３６】
（端末情報２３２０の具体例）
つぎに、端末Ｔｉが有する端末情報２３２０の具体例について説明する。端末情報２３２０は、例えば、図４に示したメモリ４０２に記憶される。ここでは、端末Ｔ１を例に挙げて、端末Ｔ１が有する端末情報２３２０の具体例について説明する。
【０２３７】
図２６は、端末情報２３２０の具体例を示す説明図である。図２６において、端末情報２３２０は、クライアント情報２６１０とモバイルサーバ情報２６２０とを含む。
【０２３８】
まず、クライアント情報２６１０は、クライアントＩＤ、保持コンテンツＩＤ一覧、ユーザ訪問経路およびヒモ付モバイルサーバＩＤを有する。ここで、クライアントＩＤは、端末Ｔｉ（図２６の例では、端末Ｔ１）を識別する識別子である。保持コンテンツＩＤ一覧は、端末Ｔｉが保持しているアプリケーションを識別する識別子である。
【０２３９】
ユーザ訪問経路は、端末Ｔｉが接続したサーバ（例えば、サーバ２２０１）を接続順に示す情報である。例えば、「ＰＳｖ＃２→ＰＳｖ＃１」は、端末Ｔ１が、ＰＳｖＩＤ「ＰＳｖ＃２」により識別されるサーバに接続した後、ＰＳｖＩＤ「ＰＳｖ＃１」により識別されるサーバ２２０１に接続したことを示す。
【０２４０】
ヒモ付モバイルサーバＩＤは、端末Ｔｉに対応付けられたモバイルサーバＭＳｉ、すなわち、端末Ｔｉとセットで保持されて、端末Ｔｉに接続（ペアリング）されたモバイルサーバＭＳｉを識別する識別子である。図２６の例では、端末Ｔ１に接続されたモバイルサーバＭＳ１のヒモ付モバイルサーバＩＤ「ＭＳ１」が示されている。なお、クライアント情報２６１０には、端末Ｔｉのリンク速度が含まれていてもよい。
【０２４１】
つぎに、モバイルサーバ情報２６２０は、モバイルサーバＩＤ、サーバタイプ、接続可能台数、リンク速度、稼働時間、準拠規格、周波数帯域およびヒモ付クライアントＩＤを有する。ここで、モバイルサーバＩＤは、モバイルサーバＭＳｉ（図２６の例では、モバイルサーバＭＳ１）を識別する識別子である。
【０２４２】
サーバタイプは、モバイルタイプまたはアプリタイプのいずれかを示す。モバイルタイプは、モバイルサーバＭＳｉが、端末Ｔｉとは異なる可搬型のコンピュータにより実現される場合に設定されるタイプである。アプリタイプは、モバイルサーバＭＳｉが、端末Ｔｉで実行されるアプリケーションにより実現される場合に設定されるタイプである。図２６の例では、モバイルサーバＭＳ１のサーバタイプは「モバイルタイプ」である。
【０２４３】
接続可能台数は、モバイルサーバＭＳｉが同時に接続可能な端末数（他の端末Ｔｊの数）を示す。リンク速度は、モバイルサーバＭＳｉのリンク速度を示す。稼働時間は、図２４に示したバッテリ２４０７に蓄えられた電力の残量に応じて変化する値であり、モバイルサーバＭＳｉが稼働できる残りの稼働時間を示す。
【０２４４】
準拠規格は、モバイルサーバＭＳｉで使用可能な無線ＬＡＮの規格である。周波数帯域は、モバイルサーバＭＳｉで使用可能な無線ＬＡＮのチャネルである。ヒモ付クライアントＩＤは、モバイルサーバＭＳｉに対応付けられた端末Ｔｉ、すなわち、モバイルサーバＭＳｉとセットで保持されて、モバイルサーバＭＳｉに接続された端末Ｔｉを識別する識別子である。図２６の例では、モバイルサーバＭＳ１に接続された端末Ｔｉのヒモ付クライアントＩＤ「Ｔ１」が示されている。
【０２４５】
なお、端末ＴｉにモバイルサーバＭＳｉが対応付けられていない場合には、端末Ｔｉの端末情報２３２０にモバイルサーバ情報２６２０は含まれない。
【０２４６】
（サーバ２２０１の機能的構成例）
図２７は、実施の形態２にかかるサーバ２２０１の機能的構成例を示すブロック図である。図２７において、サーバ２２０１は、接続部２７０１と、端末情報取得部２７０２と、負荷分散判断部２７０３と、第１の通知部２７０４と、第２の通知部２７０５と、配信部２７０６と、端末情報保存部２７０７と、コンテンツ保存部２７０８と、を含む構成である。接続部２７０１〜配信部２７０６は制御部となる機能であり、具体的には、例えば、図３に示したメモリ３０２、ディスク３０５などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０３により、その機能を実現する。また、端末情報保存部２７０７およびコンテンツ保存部２７０８は、例えば、メモリ３０２、ディスク３０５などの記憶装置により実現される。また、各機能部の処理結果は、例えば、メモリ３０２、ディスク３０５などの記憶装置に記憶される。
【０２４７】
接続部２７０１は、無線通信可能な端末Ｔｉと接続する。具体的には、例えば、まず、接続部２７０１は、自サーバに内蔵された無線ＬＡＮのアクセスポイントを介して、近距離無線通信可能な端末Ｔｉを検出する。つぎに、接続部２７０１は、検出した端末Ｔｉの認証処理を行う。
【０２４８】
ここで、端末Ｔｉが認証された場合（認証成功）、接続部２７０１は、端末Ｔｉの接続を維持する。一方、端末Ｔｉが認証されなかった場合（認証失敗）、接続部２７０１は、端末Ｔｉとの接続を切断する。なお、端末Ｔｉの認証処理は、例えば、図５に示したような認証ＤＢ２２０を用いて行われることにしてもよい。
【０２４９】
端末情報取得部２７０２は、端末Ｔｉが認証された場合、端末Ｔｉから端末情報２３２０を取得する。具体的には、例えば、端末情報取得部２７０２は、端末Ｔ１が認証された場合、図２６に示したような端末情報２３２０を端末Ｔ１から取得する。
【０２５０】
また、端末情報取得部２７０２は、端末Ｔｉから端末情報２３２０を取得した場合、サーバ情報２３１０の接続中端末一覧に端末ＴｉのクライアントＩＤを登録する。さらに、端末情報２３２０にモバイルサーバ情報２６２０が含まれる場合は、端末情報取得部２７０２は、サーバ情報２３１０の接続中端末一覧にモバイルサーバＭＳｉのモバイルサーバＩＤを登録する。
【０２５１】
端末情報保存部２７０７は、取得された端末Ｔｉの端末情報２３２０を記憶する。これにより、サーバ２２０１と接続中の各端末Ｔの端末情報２３２０を端末情報保存部２７０７に保存することができる。
【０２５２】
なお、サーバ２２０１と端末Ｔｉとの接続が切断された場合には、例えば、端末情報保存部２７０７から端末Ｔｉの端末情報２３２０が削除される。また、サーバ２２０１と端末Ｔｉとの接続が切断された場合には、例えば、サーバ情報２３１０の接続中端末一覧から、端末ＴｉのクライアントＩＤとモバイルサーバＭＳｉのモバイルサーバＩＤが削除される。
【０２５３】
負荷分散判断部２７０３は、接続中の複数の端末Ｔから、モバイルサーバＭＳｉに対応付けられた端末Ｔｉを抽出する。抽出対象となる端末Ｔｉは、例えば、配信対象のアプリケーションを未配信の端末Ｔｉである。配信済みのアプリケーションは、例えば、端末情報２３２０のクライアント情報２６１０に含まれる保持コンテンツＩＤ一覧から特定される。
【０２５４】
具体的には、例えば、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末Ｔの端末情報２３２０を参照して、端末情報２３２０にモバイルサーバ情報２６２０が含まれる端末Ｔｉを抽出する。そして、負荷分散判断部２７０３は、抽出した端末Ｔに対応付けられたモバイルサーバＭＳの中から、負荷分散（アプリケーションの配信）を依頼するモバイルサーバＭＳｉを決定する。具体的には、例えば、負荷分散判断部２７０３は、配信完了時間、稼働時間、接続可能台数、リンク速度などに基づいて、負荷分散を依頼するモバイルサーバＭＳｉを決定する。
【０２５５】
ここで、配信完了時間は、サーバ２２０１に接続中の複数の端末Ｔに対するアプリケーションの配信が完了するまでの時間である。負荷分散判断部２７０３は、例えば、アプリケーションの配信完了時間が早くなるように、負荷分散を依頼するモバイルサーバＭＳの組み合わせを決定することにしてもよい。
【０２５６】
より詳細に説明すると、負荷分散判断部２７０３は、例えば、抽出した端末Ｔに対応付けられた全てのモバイルサーバＭＳを、負荷分散の依頼先として決定することにしてもよい。これにより、アプリケーションの配信完了時間をできるだけ短縮することができる。
【０２５７】
また、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末の端末情報２３２０を参照して、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、稼働時間が閾値α以上のモバイルサーバＭＳを負荷分散の依頼先として決定してもよい。閾値αは、任意に設定可能であり、例えば、３０分程度の値に設定される。これにより、バッテリ切れの可能性があるモバイルサーバＭＳを負荷分散の依頼先から除外することができる。
【０２５８】
また、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末の端末情報２３２０を参照して、稼働時間が閾値α以上のモバイルサーバＭＳのうち、接続可能台数が多い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定してもよい。Ｎは、任意に設定可能であり、例えば、３台程度の値に設定される。これにより、バッテリ切れの可能性が低く、接続可能台数が多いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０２５９】
また、負荷分散判断部２７０３は、端末情報保存部２７０７に記憶された各端末の端末情報２３２０を参照して、稼働時間が閾値α以上のモバイルサーバＭＳのうち、リンク速度が速い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定してもよい。これにより、バッテリ切れの可能性が低く、リンク速度が速いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０２６０】
ここで、一例として、配信完了時間および稼働時間を考慮して、負荷分散を依頼するモバイルサーバＭＳｉを決定する場合の決定例について説明する。ここでは、あるイベント会場に設置されたサーバ２２０１に接続中の複数の端末Ｔを「端末Ｔ１〜Ｔ５０」の５０台（来場者：５０人）とする。なお、接続中の複数の端末Ｔの端末数は、例えば、サーバ情報２３１０の接続中端末一覧から特定される。
【０２６１】
また、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布する場合で、端末Ｔ１〜Ｔ５０のうちの端末Ｔ１，Ｔ３，Ｔ５（来場者の３人）が、８０２．１１ｇでモバイルサーバＭＳ１，ＭＳ３，ＭＳ５を提供可能である場合を想定する。なお、接続中の複数の端末Ｔに対応付けられたモバイルサーバＭＳは、例えば、サーバ情報２３１０の接続中端末一覧から特定される。
【０２６２】
まず、８０２．１１ｎ（２０ＭＨＺ）で構成されたサーバ２２０１のみで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定し、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループット（計測値）を「４０Ｍｂｐｓ」と仮定する。この場合、５０台への総転送量は５００ＭＢであり、配信完了時間は約１００秒（＝５００ＭＢ÷４０Ｍｂｐｓ）となる。
【０２６３】
つぎに、サーバ２２０１とモバイルサーバＭＳ１とで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定する。また、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０２６４】
この場合、全体の配信完了時間が短くなるのは、サーバ２２０１の配信完了時間とモバイルサーバＭＳ１の配信完了時間が等しくなるときである。例えば、モバイルサーバＭＳ１がアプリケーションを配信する端末数をｘ台とすると、サーバ２２０１の配信完了時間は、「（５０−ｘ）×１０ＭＢ÷４０Ｍｂｐｓ」で表すことができる。また、モバイルサーバＭＳ１の配信完了時間は、「ｘ×１０ＭＢ÷２０Ｍｂｐｓ」で表すことができる。そして、全体の配信完了時間は、約６６秒となる（サーバ２２０１：３３台、モバイルサーバＭＳ１：１７台）。
【０２６５】
つぎに、サーバ２２０１とモバイルサーバＭＳ１とモバイルサーバＭＳ３とで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定する。また、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０２６６】
この場合、全体の配信完了時間は、約５０秒となる（サーバ２２０１：２５台、モバイルサーバＭＳ１：１２．５台、モバイルサーバＭＳ３：１２．５台）。なお、モバイルサーバＭＳ１，ＭＳ３がアプリケーションを配信する端末数は同一とする。
【０２６７】
つぎに、サーバ２２０１とモバイルサーバＭＳ１とモバイルサーバＭＳ３とモバイルサーバＭＳ５とで、１０ＭＢのアプリケーションを、端末Ｔ１〜Ｔ５０に一斉配布すると仮定する。また、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０２６８】
この場合、全体の配信完了時間は、約４０秒となる（サーバ２２０１：２０台、モバイルサーバＭＳ１：１０台、モバイルサーバＭＳ３：１０台、モバイルサーバＭＳ５：１０台）。したがって、全体の配信完了時間は、サーバ２２０１とモバイルサーバＭＳ１，ＭＳ３，ＭＳ５で、１０ＭＢのアプリケーションを一斉配布する場合が最も早くなる。
【０２６９】
ここで、モバイルサーバＭＳ１，ＭＳ３，ＭＳ５の稼働時間をそれぞれ９時間、８時間、１７分と仮定し、上記閾値αを「３０分」と仮定する。この場合、モバイルサーバＭＳ５の稼働時間「１７分」は閾値α未満である。このため、バッテリ切れの可能性があるモバイルサーバＭＳ５は、負荷分散の依頼先から除外される。この結果、負荷分散の依頼先は、モバイルサーバＭＳ１とモバイルサーバＭＳ３の２台に決定される。
【０２７０】
また、負荷分散判断部２７０３は、接続中の複数の端末Ｔから、接続先を切り替える端末Ｔｊを抽出する（ｊ≠ｉ、ｊ＝１，２，…，ｎ）。抽出対象となる端末Ｔｉは、例えば、配信対象のアプリケーションを未配信の端末Ｔｉである。そして、負荷分散判断部２７０３は、全体の配信完了時間が短くなるように、負荷分散の依頼先に決定した各モバイルサーバＭＳに対して、抽出した接続先を切り替える端末Ｔｊを割り当てる。
【０２７１】
ここで、上記例のように、負荷分散の依頼先として、モバイルサーバＭＳ１とモバイルサーバＭＳ３の２台が決定された場合を想定する。
【０２７２】
この場合、上述したように、全体の配信完了時間（約５０秒）が短くなるときのサーバ２２０１に割り当てる端末数は、２５台である。また、モバイルサーバＭＳ１，ＭＳ３に割り当てる端末数は、残りの２５台となる。すなわち、接続中の端末Ｔ１〜Ｔ５０のうち、接続先の切替対象となる端末Ｔの端末数は、２５台となる。
【０２７３】
このため、負荷分散判断部２７０３は、接続中の端末Ｔ１〜Ｔ５０から、接続先を切り替える２５台の端末Ｔを抽出する。ただし、負荷分散の依頼先として決定されたモバイルサーバＭＳ１，ＭＳ３に対応付けられた端末Ｔ１，Ｔ３は抽出対象から除外する。
【０２７４】
具体的には、例えば、負荷分散判断部２７０３は、ダウンロード待ち時間が長い端末Ｔから順に、接続先を切り替える２５台の端末Ｔを抽出することにしてもよい。ダウンロード待ち時間は、アプリケーションのダウンロード待ちの端末Ｔがサーバ２２０１に接続してからの経過時間である。また、例えば、負荷分散判断部２７０３は、負荷分散の依頼先として決定されたモバイルサーバＭＳ１，ＭＳ３とリンク速度が近い端末Ｔを、接続先を切り替える端末Ｔｉとして優先的に抽出することにしてもよい。
【０２７５】
また、負荷分散判断部２７０３は、抽出した接続先を切り替える端末Ｔを、負荷分散の依頼先として決定したモバイルサーバＭＳに割り当てる。具体的には、例えば、負荷分散判断部２７０３は、接続先を切り替える端末Ｔとして抽出した２５台の端末Ｔを、負荷分散の依頼先として決定したモバイルサーバＭＳ１，ＭＳ３にラウンドロビンで割り当てる。
【０２７６】
なお、各モバイルサーバＭＳ１，ＭＳ３に割り当てられた端末を識別するクライアントＩＤは、例えば、後述するネットワーク設定情報の許可クライアントＩＤ一覧（例えば、図２８参照）に設定される。
【０２７７】
第１の通知部２７０４は、負荷分散の依頼先として決定されたモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、モバイルサーバＭＳｉの稼働指示を送信する。具体的には、例えば、第１の通知部２７０４は、プッシュ通知により、モバイルサーバＭＳｉの稼働指示を送信する。モバイルサーバＭＳｉの稼働指示には、例えば、無線ＬＡＮのネットワークを構築するためのネットワーク設定情報が含まれる。
【０２７８】
ここで、負荷分散の依頼先としてモバイルサーバＭＳ１が決定された場合を例に挙げて、モバイルサーバＭＳ１の稼働指示に含まれるネットワーク設定情報の具体例について説明する。
【０２７９】
図２８は、ネットワーク設定情報の具体例を示す説明図である。図２８において、ネットワーク設定情報２８００は、配布コンテンツＩＤ、モバイルサーバＩＤ、設定ＳＳＩＤ、セキュリティ種別、設定ＰＷＤ、準拠規格、チャネルおよび許可クライアントＩＤ一覧を有する。
【０２８０】
ここで、配布コンテンツＩＤは、配信対象のアプリケーションを識別する識別子である。モバイルサーバＩＤは、負荷分散の依頼先となるモバイルサーバＭＳｉを識別する識別子である。設定ＳＳＩＤは、モバイルサーバＭＳｉが無線ＬＡＮのアクセスポイントとして動作する場合の当該アクセスポイントの識別子である。
【０２８１】
また、セキュリティ種別、設定ＰＷＤ、準拠規格およびチャネルは、モバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークで使用される暗号化方式、パスワード、準拠規格およびチャネルである。許可クライアントＩＤ一覧は、配信対象のアプリケーションの配信先となる端末Ｔｊを識別するクライアントＩＤをリスト化したものである。
【０２８２】
図２７の説明に戻り、第２の通知部２７０５は、抽出された接続先の切替対象となる端末Ｔに対して、接続先をモバイルサーバＭＳｉに切り替える切替指示を送信する。ここで、接続先のモバイルサーバＭＳｉは、負荷分散の依頼先として決定されたモバイルサーバＭＳのうち、接続先の切替対象となる端末Ｔが割り振られたモバイルサーバＭＳｉである。
【０２８３】
具体的には、例えば、第２の通知部２７０５は、プッシュ通知により、接続先をモバイルサーバＭＳｉに切り替える切替指示を送信する。また、切替指示には、例えば、接続先のモバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークに接続するためのネットワーク情報が含まれる。
【０２８４】
ここで、モバイルサーバＭＳ１が接続先となる場合を例に挙げて、切替指示に含まれるネットワーク情報の具体例について説明する。
【０２８５】
図２９は、ネットワーク情報の具体例を示す説明図である。図２９において、ネットワーク情報２９００は、接続先ＳＳＩＤ、接続先設定ＰＷＤおよびダウンロードコンテンツＩＤを有する。
【０２８６】
ここで、接続先ＳＳＩＤは、接続先のモバイルサーバＭＳｉが無線ＬＡＮのアクセスポイントとして動作する場合の当該アクセスポイントの識別子である。接続先設定ＰＷＤは、接続先のモバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークで使用されるパスワードである。ダウンロードコンテンツＩＤは、接続先のモバイルサーバＭＳｉからダウンロードするアプリケーションを識別する識別子である。
【０２８７】
図２７の説明に戻り、コンテンツ保存部２７０８は、配信対象のアプリケーション（以下、「配信アプリ」という）を記憶する。具体的には、例えば、コンテンツ保存部２７０８は、アプリケーション配信システム２３００の管理者によって登録されたアプリケーションを記憶する。なお、新たなアプリケーションが登録されると、例えば、サーバ情報２３１０の保持コンテンツＩＤ一覧に、新たなアプリケーションのコンテンツＩＤが登録される。
【０２８８】
配信部２７０６は、配信アプリを端末Ｔｉに配信する。ここで、配信アプリは、例えば、コンテンツ保存部２７０８に記憶されたアプリケーションである。また、配信アプリは暗号化されている。このため、配信部２７０６は、配信アプリとともに、当該配信アプリを復号するための復号鍵を送信することにしてもよい。また、配信部２７０６は、配信アプリを受信した端末Ｔｉから復号鍵の取得要求を受信したことに応じて、配信アプリの復号鍵を端末Ｔｉに送信することにしてもよい。
【０２８９】
具体的には、例えば、配信部２７０６は、接続中の複数の端末Ｔのうち、接続先の切替対象となる端末Ｔを除く残余の端末Ｔに対して、配信アプリを送信する。この際、配信部２７０６は、負荷分散の依頼先として決定されたモバイルサーバＭＳｉに対応付けられた端末Ｔｉから、優先的に配信アプリを送信することにしてもよい。これにより、負荷分散の依頼先となるモバイルサーバＭＳｉのユーザに対して、配信アプリを優先的に配布することができる。
【０２９０】
なお、負荷分散判断部２７０３は、例えば、一定時間ごとに、接続中の複数の端末Ｔから、負荷分散の依頼先となるモバイルサーバＭＳｉを決定することにしてもよい。また、負荷分散判断部２７０３は、例えば、モバイルサーバＭＳｉに対応付けられた端末Ｔｉが接続される度に、当該端末Ｔｉに対応付けられたモバイルサーバＭＳｉを負荷分散の依頼先に決定することにしてもよい。
【０２９１】
また、負荷分散判断部２７０３は、例えば、接続中の複数の端末Ｔの端末数（例えば、配信アプリを未配信の端末数）が、所定の端末数以上の場合に、負荷分散の依頼先となるモバイルサーバＭＳｉを決定することにしてもよい。また、負荷分散判断部２７０３は、サーバ２２０１のみで配信アプリの配信を行う場合の配信完了時間が所定の時間以上の場合に、負荷分散の依頼先となるモバイルサーバＭＳｉを決定することにしてもよい。これにより、サーバ２２０１に対して急激な負荷の増加が見込まれないような状況では、サーバ２２０１のみで配信アプリの配信を行うことができる。
【０２９２】
なお、サーバ２２０１は、実施の形態１で説明したサーバ１０１と同様の機能（例えば、図８参照）を有することにしてもよい。
【０２９３】
（端末Ｔｉの機能的構成例）
図３０は、実施の形態２にかかる端末Ｔｉの機能的構成例を示すブロック図である。図３０において、端末Ｔｉは、接続部３００１と、端末情報処理部３００２と、コンテンツ取得部３００３と、通知受付部３００４と、稼働制御部３００５と、コンテンツ保存部３００６と、を含む構成である。接続部３００１〜稼働制御部３００５は制御部となる機能であり、具体的には、例えば、図４に示したメモリ４０２に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、公衆網Ｉ／Ｆ４０５や近距離無線Ｉ／Ｆ４０６により、その機能を実現する。また、コンテンツ保存部３００６は、例えば、メモリ４０２により実現される。また、各機能部の処理結果は、例えば、メモリ４０２に記憶される。
【０２９４】
接続部３００１は、無線通信可能なサーバ２２０１と接続する。具体的には、例えば、まず、接続部３００１は、近距離無線通信可能なサーバ２２０１を探索する。つぎに、接続部３００１は、探索したサーバ２２０１と接続して、端末Ｔｉの認証処理を行う。ここで、端末Ｔｉが認証された場合（認証成功）、サーバ２２０１との接続が維持される。一方、端末Ｔｉが認証されなかった場合（認証失敗）、サーバ２２０１との接続が切断される。
【０２９５】
端末情報処理部３００２は、接続されたサーバ２２０１に対して、自端末の端末情報を送信する。具体的には、例えば、自端末にモバイルサーバＭＳｉが接続されている場合には、接続部３００１は、図２６に示したような端末情報２３２０をサーバ２２０１にアップロードする。なお、端末ＴｉとモバイルサーバＭＳｉとの接続処理（ペアリング）は、例えば、ユーザの操作入力により行われる。
【０２９６】
コンテンツ取得部３００３は、配信アプリを取得する。具体的には、例えば、コンテンツ取得部３００３は、接続されたサーバ２２０１から配信アプリをダウンロードすることにより、配信アプリを取得する。配信アプリには、例えば、配信アプリを復号するための復号鍵が付与されている。取得された配信アプリは、例えば、コンテンツ保存部３００６に記憶される。
【０２９７】
なお、コンテンツ取得部３００３は、サーバ２２０１に対して、復号鍵の取得要求を送信することにより、サーバ２２０１から配信アプリの復号鍵を取得してもよい。
【０２９８】
通知受付部３００４は、接続されたサーバ２２０１から、自端末に接続されたモバイルサーバＭＳｉの稼働指示を受信する。モバイルサーバＭＳｉの稼働指示には、例えば、図２８に示したようなネットワーク設定情報２８００が含まれる。
【０２９９】
なお、モバイルサーバＭＳｉの稼働指示は、端末ＴｉにモバイルサーバＭＳｉが接続されており、かつ、モバイルサーバＭＳｉが負荷分散の依頼先として決定された場合に受信される。
【０３００】
稼働制御部３００５は、モバイルサーバＭＳｉの稼働指示が受信された場合、自端末に接続されたモバイルサーバＭＳｉの機能を有効にする。具体的には、例えば、稼働制御部３００５は、稼働指示に含まれるネットワーク設定情報（例えば、ネットワーク設定情報２８００）をモバイルサーバＭＳｉにアップロードして、当該ネットワーク設定情報に基づくネットワーク設定を行うよう指示する。
【０３０１】
また、稼働制御部３００５は、コンテンツ保存部３００６に記憶された配信アプリを、自端末に接続されたモバイルサーバＭＳｉに送信する。具体的には、例えば、稼働制御部３００５は、モバイルサーバＭＳｉの稼働指示が受信された場合に、モバイルサーバＭＳｉに配信アプリをアップロードすることにしてもよい。
【０３０２】
なお、モバイルサーバＭＳｉがアプリケーションにより実現される場合は、ネットワーク設定情報や配信アプリは、アプリケーション間通信により通知される。
【０３０３】
また、通知受付部３００４は、接続されたサーバ２２０１から、接続先をモバイルサーバＭＳｊに切り替える切替指示を受信する。具体的には、例えば、通知受付部３００４は、プッシュ通知により、接続先をモバイルサーバＭＳｊに切り替える切替指示を受信する。この切替指示には、例えば、図２９に示したようなネットワーク情報２９００が含まれる。
【０３０４】
また、接続部３００１は、接続先をモバイルサーバＭＳｊに切り替える切替指示が受信された場合、接続先をサーバ２２０１からモバイルサーバＭＳｊに切り替える。具体的には、例えば、接続部３００１は、サーバ２２０１との接続を切断して、切替指示に含まれるネットワーク情報２９００に記載された接続先ＳＳＩＤ、接続先設定ＰＷＤを用いて、モバイルサーバＭＳｊにより構築される無線ＬＡＮのネットワークに接続する。
【０３０５】
また、コンテンツ取得部３００３は、接続先がモバイルサーバＭＳｊに切り替わった場合、接続されたモバイルサーバＭＳｊから配信アプリをダウンロードすることにより、配信アプリを取得する。
【０３０６】
なお、端末Ｔｉは、実施の形態１で説明した端末Ｔｉと同様の機能（例えば、図９参照）を有することにしてもよい。
【０３０７】
（モバイルサーバＭＳｉの機能的構成例）
図３１は、実施の形態２にかかるモバイルサーバＭＳｉの機能的構成例を示すブロック図である。図３１において、モバイルサーバＭＳｉは、情報取得部３１０１と、設定部３１０２と、接続部３１０３と、配信部３１０４と、コンテンツ保存部３１０５と、を含む構成である。情報取得部３１０１〜配信部３１０４は制御部となる機能であり、具体的には、例えば、図２４に示したメモリ２４０２に記憶されたプログラムをＣＰＵ２４０１に実行させることにより、または、Ｉ／Ｆ２４０３により、その機能を実現する。また、コンテンツ保存部３１０５は、例えば、メモリ２４０２により実現される。また、各機能部の処理結果は、例えば、メモリ２４０２に記憶される。
【０３０８】
情報取得部３１０１は、配信アプリを取得する。具体的には、例えば、情報取得部３１０１は、接続された端末Ｔｉから配信アプリをダウンロードすることにより、配信アプリを取得する。配信アプリには、例えば、配信アプリを復号するための復号鍵が付与されている。取得された配信アプリは、例えば、コンテンツ保存部３１０５に記憶される。
【０３０９】
また、情報取得部３１０１は、接続された端末Ｔｉからネットワーク設定情報（例えば、ネットワーク設定情報２８００）を受信する。
【０３１０】
設定部３１０２は、受信されたネットワーク設定情報に基づいて、ネットワーク設定を行う。具体的には、例えば、設定部３１０２は、ネットワーク設定情報２８００に記載された設定ＳＳＩＤ、セキュリティ種別、設定ＰＷＤ等を用いて、無線ＬＡＮのネットワークを構築する。
【０３１１】
接続部３１０３は、近距離無線通信可能な端末Ｔｊと接続する。具体的には、例えば、まず、接続部３１０３は、近距離無線通信可能な端末Ｔｊを検出する。つぎに、接続部３１０３は、検出した端末Ｔｊの認証処理を行う。ここで、端末Ｔｊが認証された場合（認証成功）、接続部３１０３は、端末Ｔｊの接続を維持する。一方、端末Ｔｊが認証されなかった場合（認証失敗）、接続部３１０３は、端末Ｔｊとの接続を切断する。なお、端末Ｔｊの認証処理は、例えば、ネットワーク設定情報２８００に記載された設定ＰＷＤ、許可クライアントＩＤ一覧を用いて行われる。
【０３１２】
配信部３１０４は、接続された端末Ｔｊに配信アプリを配信する。配信アプリは、例えば、コンテンツ保存部３１０５に記憶されたアプリケーションである。具体的には、例えば、配信部３１０４は、接続された端末Ｔｊに、配信アプリとともに、当該配信アプリを復号するための復号鍵を送信することにしてもよい。
【０３１３】
なお、モバイルサーバＭＳｉは、例えば、許可クライアントＩＤ一覧に含まれるクライアントＩＤにより識別される全ての端末Ｔへの配信アプリの配信が完了すると、配信アプリを配信するサーバ機能を停止することにしてもよい。
【０３１４】
（端末情報アップロード処理手順）
つぎに、端末Ｔｉの端末情報アップロード処理手順について説明する。
【０３１５】
図３２は、実施の形態２にかかる端末Ｔｉの端末情報アップロード処理手順の一例を示すフローチャートである。図３２のフローチャートにおいて、まず、端末Ｔｉは、近距離無線通信可能なサーバ２２０１を探索して、サーバ２２０１を発見したか否かを判断する（ステップＳ３２０１）。
【０３１６】
ここで、端末Ｔｉは、サーバ２２０１を発見するのを待つ（ステップＳ３２０１：Ｎｏ）。そして、端末Ｔｉは、サーバ２２０１を発見した場合（ステップＳ３２０１：Ｙｅｓ）、サーバ２２０１と接続して認証処理を行う（ステップＳ３２０２）。そして、端末Ｔｉは、自端末の認証に成功したか否かを判断する（ステップＳ３２０３）。
【０３１７】
ここで、自端末の認証に失敗した場合（ステップＳ３２０３：Ｎｏ）、端末Ｔｉは、本フローチャートによる一連の処理を終了する。一方、自端末の認証に成功した場合（ステップＳ３２０３：Ｙｅｓ）、端末Ｔｉは、モバイルサーバＭＳｉとペアリングされているか否かを判断する（ステップＳ３２０４）。
【０３１８】
ここで、モバイルサーバＭＳｉとペアリングされていない場合（ステップＳ３２０４：Ｎｏ）、端末Ｔｉは、クライアント情報を含む端末情報をサーバ２２０１に送信して（ステップＳ３２０５）、本フローチャートによる一連の処理を終了する。
【０３１９】
一方、モバイルサーバＭＳｉとペアリングされている場合（ステップＳ３２０４：Ｙｅｓ）、端末Ｔｉは、クライアント情報とモバイルサーバ情報とを含む端末情報をサーバ２２０１に送信し（ステップＳ３２０６）、本フローチャートによる一連の処理を終了する。これにより、端末Ｔｉの端末情報をサーバ２２０１にアップロードすることができる。
【０３２０】
（負荷分散処理手順）
つぎに、サーバ２２０１の負荷分散処理手順について説明する。
【０３２１】
図３３は、実施の形態２にかかるサーバ２２０１の負荷分散処理手順の一例を示すフローチャートである。図３３のフローチャートにおいて、まず、サーバ２２０１は、各端末Ｔの端末情報２３２０を参照して、接続中の複数の端末Ｔから、モバイルサーバＭＳとペアリングされた端末Ｔを抽出する（ステップＳ３３０１）。
【０３２２】
つぎに、サーバ２２０１は、モバイルサーバＭＳとペアリングされた端末Ｔを抽出したか否かを判断する（ステップＳ３３０２）。ここで、端末Ｔを抽出した場合（ステップＳ３３０２：Ｙｅｓ）、サーバ２２０１は、抽出した端末Ｔの端末情報２３２０を参照して、負荷分散の依頼先として、稼働時間が閾値α以上のモバイルサーバＭＳを選択する（ステップＳ３３０３）。
【０３２３】
つぎに、サーバ２２０１は、選択したモバイルサーバＭＳとペアリングされた端末Ｔに配信アプリを送信する（ステップＳ３３０４）。そして、サーバ２２０１は、選択したモバイルサーバＭＳを使用したときの配信完了時間が短くなるように、接続先を切り替える端末Ｔの端末数を算出する（ステップＳ３３０５）。
【０３２４】
つぎに、サーバ２２０１は、接続中の複数の端末Ｔから、算出した端末数分、接続先を切り替える端末Ｔを抽出する（ステップＳ３３０６）。そして、サーバ２２０１は、選択したモバイルサーバＭＳとペアリングされた端末Ｔに対して、モバイルサーバＭＳの稼働指示を送信する（ステップＳ３３０７）。つぎに、サーバ２２０１は、抽出した接続先を切り替える端末Ｔに対して、接続先をモバイルサーバＭＳに切り替える切替指示を送信する（ステップＳ３３０８）。
【０３２５】
そして、サーバ２２０１は、残余の端末Ｔに配信アプリを送信して（ステップＳ３３０９）、本フローチャートによる一連の処理を終了する。なお、残余の端末Ｔとは、接続中の複数の端末Ｔのうち、負荷分散の依頼先のモバイルサーバＭＳとペアリングされた端末Ｔ、および、接続先を切り替える端末Ｔを除く端末Ｔである。
【０３２６】
また、ステップＳ３３０２において、モバイルサーバＭＳとペアリングされた端末Ｔが抽出されなかった場合（ステップＳ３３０２：Ｎｏ）、サーバ２２０１は、接続中の各端末Ｔに配信アプリを送信して（ステップＳ３３１０）、本フローチャートによる一連の処理を終了する。
【０３２７】
これにより、接続中の端末ＴとペアリングされたモバイルサーバＭＳを利用して配信アプリを配布することができる。
【０３２８】
（モバイルサーバ有効化処理手順）
つぎに、負荷分散の依頼先のモバイルサーバＭＳとペアリングされた端末Ｔｉのモバイルサーバ有効化処理手順について説明する。
【０３２９】
図３４は、実施の形態２にかかる端末Ｔｉのモバイルサーバ有効化処理手順の一例を示すフローチャートである。図３４のフローチャートにおいて、端末Ｔｉは、接続されたサーバ２２０１から配信アプリをダウンロードする（ステップＳ３４０１）。つぎに、端末Ｔｉは、接続されたサーバ２２０１から、自端末とペアリングされたモバイルサーバＭＳｉの稼働指示を受信したか否かを判断する（ステップＳ３４０２）。
【０３３０】
ここで、端末Ｔｉは、モバイルサーバＭＳｉの稼働指示を受信するのを待つ（ステップＳ３４０２：Ｎｏ）。そして、端末Ｔｉは、モバイルサーバＭＳｉの稼働指示を受信した場合（ステップＳ３４０２：Ｙｅｓ）、配信アプリと、モバイルサーバＭＳｉの稼働指示に含まれるネットワーク設定情報を、モバイルサーバＭＳｉに送信して（ステップＳ３４０３）、本フローチャートによる一連の処理を終了する。
【０３３１】
これにより、サーバ２２０１からの稼働指示に応じて、モバイルサーバＭＳｉのアプリケーションを配信する機能（サーバ機能）を有効にすることができる。
【０３３２】
（アプリケーション配信処理手順）
つぎに、モバイルサーバＭＳｉのアプリケーション配信処理手順について説明する。
【０３３３】
図３５は、実施の形態２にかかるモバイルサーバＭＳｉのアプリケーション配信処理手順の一例を示すフローチャートである。図３５のフローチャートにおいて、まず、モバイルサーバＭＳｉは、ペアリングされた端末Ｔｉから、配信アプリとネットワーク設定情報とを受信する（ステップＳ３５０１）。
【０３３４】
つぎに、モバイルサーバＭＳｉは、受信したネットワーク設定情報に基づいて、ネットワーク設定を行うことにより、無線ＬＡＮのネットワークを構築する（ステップＳ３５０２）。そして、モバイルサーバＭＳｉは、構築した無線ＬＡＮのネットワークを介して、ネットワーク設定情報の許可クライアントＩＤ一覧に含まれる端末Ｔが接続されたか否かを判断する（ステップＳ３５０３）。
【０３３５】
ここで、端末Ｔが接続されていない場合（ステップＳ３５０３：Ｎｏ）、モバイルサーバＭＳｉは、ステップＳ３５０５に移行する。一方、端末Ｔが接続された場合（ステップＳ３５０３：Ｙｅｓ）、モバイルサーバＭＳｉは、受信した配信アプリを端末Ｔに送信する（ステップＳ３５０４）。
【０３３６】
つぎに、モバイルサーバＭＳｉは、ステップＳ３５０２においてネットワーク設定を行ってから一定時間（例えば、１時間〜２時間）が経過したか否かを判断する（ステップＳ３５０５）。ここで、一定時間が経過した場合（ステップＳ３５０５：Ｙｅｓ）、モバイルサーバＭＳｉは、ステップＳ３５０７に移行する。
【０３３７】
一方、一定時間が経過していない場合（ステップＳ３５０５：Ｎｏ）、モバイルサーバＭＳｉは、許可クライアントＩＤ一覧に含まれる全ての端末Ｔへの配信アプリの配信が完了したか否かを判断する（ステップＳ３５０６）。ここで、配信アプリの配信が完了していない場合（ステップＳ３５０６：Ｎｏ）、モバイルサーバＭＳｉは、ステップＳ３５０３に戻る。
【０３３８】
一方、配信アプリの配信が完了した場合（ステップＳ３５０６：Ｙｅｓ）、モバイルサーバＭＳｉは、アプリケーションを配信するサーバ機能を停止して（ステップＳ３５０７）、本フローチャートによる一連の処理を終了する。これにより、ペアリングされた端末Ｔｉからダウンロードした配信アプリを、許可クライアントＩＤ一覧に含まれる端末Ｔに配信することができる。
【０３３９】
（アプリケーション取得処理手順）
つぎに、接続先の切替対象となる端末Ｔｉのアプリケーション取得処理手順について説明する。
【０３４０】
図３６は、実施の形態２にかかる端末Ｔｉのアプリケーション取得処理手順の一例を示すフローチャートである。図３６のフローチャートにおいて、まず、端末Ｔｉは、接続されたサーバ２２０１から、接続先をモバイルサーバＭＳに切り替える切替指示を受信したか否かを判断する（ステップＳ３６０１）。
【０３４１】
ここで、端末Ｔｉは、切替指示を受信するのを待つ（ステップＳ３６０１：Ｎｏ）。そして、端末Ｔｉは、切替指示を受信した場合（ステップＳ３６０１：Ｙｅｓ）、サーバ２２０１との接続を切断して、受信した切替指示に含まれるネットワーク情報を用いて、モバイルサーバＭＳにより構築される無線ＬＡＮのネットワークに接続する（ステップＳ３６０２）。
【０３４２】
つぎに、端末Ｔｉは、無線ＬＡＮのネットワークを介して、モバイルサーバＭＳから配信アプリをダウンロードする（ステップＳ３６０３）。そして、端末Ｔｉは、配信アプリのダウンロードが完了すると、モバイルサーバＭＳとの接続を切断して、サーバ２２０１に接続し直して（ステップＳ３６０４）、本フローチャートによる一連の処理を終了する。これにより、サーバ２２０１から指定された無線ＬＡＮのネットワークに接続して、配信アプリをダウンロードすることができる。
【０３４３】
以上説明したように、実施の形態２にかかるサーバ２２０１によれば、接続中の複数の端末Ｔから、モバイルサーバＭＳに対応付けられた端末Ｔを抽出して、配信アプリの配信にかかる負荷分散の依頼先となるモバイルサーバＭＳを決定することができる。
【０３４４】
具体的には、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられた全てのモバイルサーバＭＳを、負荷分散の依頼先として決定することができる。これにより、接続中の複数の端末Ｔに対する配信アプリの配信が完了するまでの配信完了時間をできるだけ短縮することができる。
【０３４５】
また、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、稼働時間が閾値α以上のモバイルサーバＭＳを負荷分散の依頼先として決定することができる。これにより、バッテリ切れの可能性があるモバイルサーバＭＳを負荷分散の依頼先から除外することができる。
【０３４６】
また、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、接続可能台数が多い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定することができる。これにより、接続可能台数が多いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０３４７】
また、例えば、サーバ２２０１によれば、抽出した端末Ｔに対応付けられたモバイルサーバＭＳのうち、リンク速度が速い上位Ｎ台のモバイルサーバＭＳを負荷分散の依頼先として決定することができる。これにより、リンク速度が速いモバイルサーバＭＳを優先的に負荷分散の依頼先に決定することができる。
【０３４８】
また、サーバ２２０１によれば、接続中の複数の端末Ｔから、接続先を切り替える端末Ｔを抽出して、負荷分散の依頼先に決定した各モバイルサーバＭＳに対して、抽出した接続先を切り替える端末Ｔを割り当てることができる。例えば、サーバ２２０１によれば、負荷分散の依頼先のモバイルサーバＭＳを使用したときの全体の配信完了時間が短くなるように、接続先を切り替える端末Ｔの端末数を算出することができる。そして、サーバ２２０１によれば、接続中の複数の端末Ｔから、接続先を切り替える端末Ｔとして、算出した端末数分の端末Ｔを抽出して、負荷分散の依頼先のモバイルサーバＭＳにラウンドロビンで割り当てることができる。
【０３４９】
また、サーバ２２０１によれば、負荷分散の依頼先として決定したモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、モバイルサーバＭＳｉの稼働指示を送信することができる。これにより、負荷分散の依頼先となるモバイルサーバＭＳｉの機能を有効化することができる。
【０３５０】
また、サーバ２２０１によれば、負荷分散の依頼先として決定したモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、優先的に配信アプリを送信することができる。これにより、負荷分散の依頼先となるモバイルサーバＭＳｉのユーザに対して、配信アプリを優先的に配布することができる。
【０３５１】
また、サーバ２２０１によれば、抽出した接続先の切替対象となる端末Ｔに対して、接続先をモバイルサーバＭＳｉに切り替える切替指示を送信することができる。これにより、接続中の複数の端末Ｔのうちの一部の端末Ｔの接続先を、負荷分散の依頼先となるモバイルサーバＭＳに切り替えさせることができる。
【０３５２】
また、サーバ２２０１によれば、負荷分散の依頼先のモバイルサーバＭＳｉに対応付けられた端末Ｔｉに対して、無線ＬＡＮのネットワークを構築するためのネットワーク設定情報を含む稼働指示を送信することができる。これにより、サーバ２２０１が指定した設定ＳＳＩＤ、セキュリティ種別、設定ＰＷＤ等を用いて、無線ＬＡＮのネットワークを構築させることができる。
【０３５３】
また、サーバ２２０１によれば、接続先の切替対象となる端末Ｔに対して、モバイルサーバＭＳｉにより構築される無線ＬＡＮのネットワークに接続するためのネットワーク情報を含む切替指示を送信することができる。これにより、サーバ２２０１が指定した接続先ＳＳＩＤ、接続先設定ＰＷＤを用いて、無線ＬＡＮのネットワークに接続させることができる。
【０３５４】
また、実施の形態２にかかる端末Ｔｉによれば、ペアリングされたモバイルサーバＭＳｉの稼働指示を受信したことに応じて、モバイルサーバＭＳｉの機能を有効にするとともに、配信アプリをモバイルサーバＭＳｉに送信することができる。これにより、自端末とペアリングされたモバイルサーバＭＳｉに無線ＬＡＮのネットワークを構築させて、配信アプリの配信を行わせることができる。
【０３５５】
また、実施の形態２にかかるモバイルサーバＭＳｉによれば、ペアリングされた端末Ｔｉからネットワーク設定情報を受信したことに応じて、当該ネットワーク設定情報に基づく無線ＬＡＮのネットワークを構築して、他の端末Ｔｊに配信アプリを配信することができる。
【０３５６】
また、実施の形態２にかかる端末Ｔｉによれば、接続先をモバイルサーバＭＳｊに切り替える切替指示を受信したことに応じて、接続先をサーバ２２０１からモバイルサーバＭＳｊに切り替えて、配信アプリをダウンロードすることができる。
【０３５７】
これらのことから、実施の形態２にかかるアプリケーション配信システム２３００によれば、配信アプリの配信にかかる負荷をサーバ２２０１とモバイルサーバＭＳｉとに分散して、サーバ２２０１への負荷集中を抑制することができる。これにより、サーバ２２０１が設置された場にいるユーザに対して素早く配信アプリを配布することができ、サービス開始の遅れを防ぐことができる。
【０３５８】
ここで、アプリケーション配信システム２３００により短縮される配信完了時間について説明する。まず、あるイベント会場にいる５０人のユーザに、１０ＭＢの配信アプリを一斉配布する場合で、２人のユーザが８０２．１１ｇでモバイルサーバＭＳをそれぞれ提供可能である場合を想定する。
【０３５９】
この場合、例えば、８０２．１１ｎ（２０ＭＨＺ）で構成されたサーバ２２０１のみで配信を行うと、上述したように、配信完了時間は約１００秒となる。これに対して、サーバ２２０１と２台のモバイルサーバＭＳとで配信を行うと、上述したように、配信完了時間は約５０秒となる。すなわち、２台のモバイルサーバＭＳを使用することで、配信完了時間が約５０秒短縮される計算となる。
【０３６０】
つぎに、あるイベント会場に順次来場してくる５０人のユーザに、１０ＭＢの配信アプリを逐次配布する場合で、１人〜３人の来場者が８０２．１１ｇでモバイルサーバＭＳを提供可能であると仮定する。この場合、８０２．１１ｎ（２０ＭＨＺ）で構成されたサーバ２２０１のみで配信を行うと、配信完了時間は約１００秒となる。
【０３６１】
これに対して、モバイルサーバＭＳを持つ１人〜３人のユーザが来場してくる順番を変化させながら配信完了時間をそれぞれ試算すると、モバイルサーバＭＳが、１台で「８３．７秒」、２台で「７４．６秒」、３台で「６８．３秒」に短縮される計算となる。ただし、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定し、８０２．１１ｇのＴＣＰスループットを「２０Ｍｂｐｓ」と仮定する。
【０３６２】
つぎに、あるイベント会場に順次来場してくる５０人のユーザに、１０ＭＢの配信アプリを逐次配布する場合で、１人〜３人の来場者が８０２．１１ｎ（２０ＭＨＺ）でモバイルサーバＭＳを提供可能であると仮定する。
【０３６３】
この場合、モバイルサーバＭＳを持つ１人〜３人のユーザが来場してくる順番を変化させながら配信完了時間をそれぞれ試算すると、モバイルサーバＭＳが、１台で「７５．３秒」、２台で「６４．４秒」、３台で「５７．４秒」に短縮される計算となる。ただし、８０２．１１ｎ（２０ＭＨＺ）のＴＣＰスループットを「４０Ｍｂｐｓ」と仮定する。
【０３６４】
なお、本実施の形態で説明したアプリケーション配信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本アプリケーション配信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本アプリケーション配信プログラムは、インターネット等のネットワークを介して配布してもよい。
【０３６５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０３６６】
（付記１）サーバが、特定のエリア内に存在する端末を検出し、検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信し、
前記端末が、前記サーバから前記第１および第２のアプリケーションを受信した場合、前記エリア外で前記第２のアプリケーションを起動することにより、検出した前記他の端末に前記第１のアプリケーションを送信する、
ことを特徴とするアプリケーション配信方法。
【０３６７】
（付記２）前記第１のアプリケーションは、暗号化されており、前記エリア内で復号されて実行可能となることを特徴とする付記１に記載のアプリケーション配信方法。
【０３６８】
（付記３）前記サーバは、前記エリア内に存在する前記端末を検出したことに応じて、前記端末の認証処理を行い、前記端末を認証した場合に、前記第１および第２のアプリケーションを前記端末に送信することを特徴とする付記２に記載のアプリケーション配信方法。
【０３６９】
（付記４）前記端末は、前記他の端末を検出したことに応じて、前記他の端末の認証処理を行い、前記他の端末を認証した場合に、前記第１のアプリケーションを前記他の端末に送信することを特徴とする付記３に記載のアプリケーション配信方法。
【０３７０】
（付記５）前記第１のアプリケーションは、前記エリアに対応する位置情報を用いて生成された暗号鍵により暗号化されており、
前記端末は、自端末の位置情報を取得して、当該位置情報を用いて生成した復号鍵により前記第１のアプリケーションの復号処理を行うことを特徴とする付記４に記載のアプリケーション配信方法。
【０３７１】
（付記６）前記端末は、自端末の位置情報から特定される緯度経度情報をハッシュ関数に与えることにより得られるハッシュ値を復号鍵として生成することを特徴とする付記５に記載のアプリケーション配信方法。
【０３７２】
（付記７）前記サーバは、前記エリア内に存在する前記端末に、前記第１のアプリケーションを復号する復号鍵を送信し、
前記端末は、前記サーバから受信した前記復号鍵により前記第１のアプリケーションを復号することを特徴とする付記４に記載のアプリケーション配信方法。
【０３７３】
（付記８）コンピュータに、
特定のエリア内に存在する端末を検出し、
検出した前記端末に対して、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを送信する、
処理を実行させることを特徴とするアプリケーション配信プログラム。
【０３７４】
（付記９）特定のエリア内に存在する端末を検出した場合に、前記エリアに対応付けられた第１のアプリケーションと、前記エリア外で起動され、前記第１のアプリケーションを他の端末に中継する機能を有する第２のアプリケーションとを前記端末に送信する、
制御部を有することを特徴とするサーバ。
【０３７５】
（付記１０）サーバが、接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信し、
前記第１端末が、前記稼働指示を受信したことに応じて、前記モバイルサーバの機能を有効にするとともに、前記アプリケーションを前記モバイルサーバに送信し、
前記第２端末が、前記切替指示を受信したことに応じて、接続先を前記サーバから前記モバイルサーバに切り替え、
前記モバイルサーバが、前記第２端末が接続されたことに応じて、前記アプリケーションを前記第２端末に送信する、
ことを特徴とするアプリケーション配信方法。
【０３７６】
（付記１１）前記サーバは、
前記複数の端末から、前記モバイルサーバに対応付けられ、かつ、前記モバイルサーバが稼働可能な残り時間が閾値以上となる第１端末を抽出することを特徴とする付記１０に記載のアプリケーション配信方法。
【０３７７】
（付記１２）前記サーバは、
前記第１端末を複数抽出した場合、前記複数の端末に対する前記アプリケーションの配信が完了するまでの配信完了時間が短くなるように、複数抽出した前記第１端末それぞれに前記第２端末を割り当てることを特徴とする付記１１に記載のアプリケーション配信方法。
【０３７８】
（付記１３）前記稼働指示には、近距離無線ネットワークを構築するためのネットワーク設定情報が含まれており、
前記切替指示には、前記近距離無線ネットワークに接続するためのネットワーク情報が含まれており、
前記第１端末は、前記ネットワーク設定情報に基づくネットワーク設定を行うよう指示することにより、前記モバイルサーバの機能を有効にし、
前記モバイルサーバは、前記ネットワーク設定情報に基づいて、前記近距離無線ネットワークを構築し、
前記第２端末は、前記ネットワーク情報に基づいて、前記近距離無線ネットワークに接続する、ことを特徴とする付記１２に記載のアプリケーション配信方法。
【０３７９】
（付記１４）前記サーバは、
前記アプリケーションを配信する機能を有するモバイルサーバに対応付けられた端末が複数存在する場合、各モバイルサーバの接続可能台数またはリンク速度の少なくともいずれかの情報に基づいて、前記第１端末を抽出することを特徴とする付記１３に記載のアプリケーション配信方法。
【０３８０】
（付記１５）コンピュータに、
接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、
前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、
前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信する、
処理を実行させることを特徴とするアプリケーション配信プログラム。
【０３８１】
（付記１６）接続中の複数の端末から、アプリケーションを配信する機能を有するモバイルサーバに対応付けられた第１端末と、接続先を切り替える第２端末とを抽出し、前記第１端末に対して、前記アプリケーションと前記モバイルサーバの稼働指示とを送信し、前記第２端末に対して、接続先を前記モバイルサーバに切り替える切替指示を送信する、
制御部を有することを特徴とするサーバ。
【符号の説明】
【０３８２】
１０１，２２０１  サーバ
２００，２３００  アプリケーション配信システム
２２０  認証ＤＢ
２３０  配信アプリリスト
７００  ダウンロード済みアプリリスト
８０１，１７０１  検出部
８０２，１７０２  認証部
８０３，２７０６，３１０４  配信部
９０１  位置取得部
９０２  探索部
９０３  アプリ取得部
９０４  アプリ実行部
１５００  中継端末用認証ＤＢ
１６００  中継アプリリスト
１７０３  中継部
２３１０  サーバ情報
２３２０  端末情報
２６１０  クライアント情報
２６２０  モバイルサーバ情報
２７０１，３００１，３１０３  接続部
２７０２  端末情報取得部
２７０３  負荷分散判断部
２７０４  第１の通知部
２７０５  第２の通知部
２７０７  端末情報保存部
２７０８，３００６，３１０５  コンテンツ保存部
２８００  ネットワーク設定情報
２９００  ネットワーク情報
３００２  端末情報処理部
３００３  コンテンツ取得部
３００４  通知受付部
３００５  稼働制御部
３１０１  情報取得部
３１０２  設定部
Ｔ，Ｔ１〜Ｔｎ，Ｔｉ，Ｔｊ  端末
【国際調査報告】
2016132454.tif 000039
2016132454.tif 000040
2016132454.tif 000041
2016132454.tif 000042