以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[第1の実施形態]
はじめに、第1の実施形態におけるサービス提供システムについて説明する。図1は、サービス提供システムの一例を示す図である。
図1に示すように、サービス提供システム100は、第1のアプリケーション配信装置110、端末120、バッファサービス提供サーバ130、第2のアプリケーション配信装置140を有する。バッファサービス提供サーバ130と、第1のアプリケーション配信装置110及び第2のアプリケーション配信装置140とは、インターネットやLAN(Local Area Network)等に代表されるネットワーク150を介して接続されている。
なお、図1の例では、第1のアプリケーション配信装置110は学校に設置されており、第2のアプリケーション配信装置140は、端末120を有するユーザ121の自宅に設置されている。
第1のアプリケーション配信装置110は、アプリケーションを配信する装置であり、サービス提供装置の一実施形態である。第1のアプリケーション配信装置110は、ユーザ121が端末120を携行して学校内(所定範囲内)に移動し配信サービスにチェックインすることで、端末120と接続した場合、端末120に対して学習用アプリケーションを配信する。これにより、ユーザ121は、学習用アプリケーションを利用して学校内で所定の授業を受けることができる。なお、所定範囲内とは、例えば、第1のアプリケーション配信装置110より出力される電波を受信可能な範囲や、SSIDを取得可能な範囲等、第1のアプリケーション配信装置110に関連する範囲を指すものとする。また、チェックインとは、配信サービスを提供する第1のアプリケーション配信装置110からのチェックイン要求に応じて、端末120が自動的に第1のアプリケーション配信装置110へ接続することをいう。
また、第1のアプリケーション配信装置110は、端末120に配信した学習用アプリケーション、学習用アプリケーションのID、学習用アプリケーションの実行に必要なデータ等のコピーをバッファサービス提供サーバ130に送信する。これにより、ユーザ121が端末120を携行して学校外(所定範囲外)に移動した場合でも、端末120は、例えば、第2のアプリケーション配信装置140を介してバッファサービス提供サーバ130より学習用アプリケーションの配信を受けることができる。
端末120は、スマートフォンやタブレット等の、ユーザ121が携行可能な移動端末である。端末120は、第1のアプリケーション配信装置110より提供される配信サービスにチェックインすることで、配信サービスに対応する学習用アプリケーションの配信を受ける。
また、端末120は、第2のアプリケーション配信装置140より提供される配信サービスにチェックインすることで、配信サービスに対応する学習用アプリケーションの配信を受ける。なお、端末120では、第1のアプリケーション配信装置110により提供される配信サービスへのチェックインを、第2のアプリケーション配信装置140により配信サービスの提供を受ける場合においても維持することができる。これにより、端末120は、第1のアプリケーション配信装置110より提供される配信サービスに対応する学習用アプリケーションと同じ学習用アプリケーションの配信を、第2のアプリケーション配信装置140より受けることができる。
なお、配信サービスへのチェックインが維持されるのは、端末120が所定範囲外に移動した場合でも、学習用アプリケーションを使用するものと判断した場合に限られるものとする。所定範囲外に移動した場合でも学習用アプリケーションを使用するものと判断する場合とは、例えば、第1のアプリケーション配信装置110との通信が切断される際に、ユーザ121が継続して使用する旨の指示を端末120に入力した場合等が挙げられる。この場合、端末120では、所定範囲外に移動した場合でも、ユーザ121が継続して学習用アプリケーションを使用するものと判断する。
バッファサービス提供サーバ130は、各種情報を格納するバッファサービスを提供する。バッファサービス提供サーバ130では、第1のアプリケーション配信装置110から送信された、学習用アプリケーション、学習用アプリケーションのID、学習用アプリケーションの実行に必要なデータ等のコピーを格納する。
なお、第1のアプリケーション配信装置110では、配信した学習用アプリケーション、学習用アプリケーションのID、学習用アプリケーションの実行に必要なデータ等(以下、「サービスデータ」)のコピーをバッファサービス提供サーバ130に送信する。
また、バッファサービス提供サーバ130は、第2のアプリケーション配信装置140からのサービスデータ送信要求に応じて、サービスデータのコピーを第2のアプリケーション配信装置140に送信する。
第2のアプリケーション配信装置140は、アプリケーションを配信する装置であり、サービス提供装置の一実施形態である。第2のアプリケーション配信装置140は、ユーザ121が端末120を携行して自宅内(所定範囲内)に移動し、配信サービスにチェックインすることで、端末120と接続した場合、バッファサービス提供サーバ130よりサービスデータのコピーを取得する。
また、第2のアプリケーション配信装置140は、バッファサービス提供サーバ130より取得したサービスデータのコピーに含まれる学習用アプリケーションを、学習用アプリケーションのIDとともに端末120に配信する。
これにより、自宅内に移動したユーザ121は、学習用アプリケーションを利用して、自宅で授業内容を復習したり、追加演習(宿題)等に取り組むことができる。つまり、所定範囲内(学校内)の端末120に対して提供される配信サービスの提供範囲を、所定範囲外(学校外(本実施形態では、自宅))にも拡張することが可能となる。
次に、第1のアプリケーション配信装置110、端末120、バッファサービス提供サーバ130、第2のアプリケーション配信装置140のハードウェア構成について説明する。なお、第1のアプリケーション配信装置110、端末120、バッファサービス提供サーバ130、第2のアプリケーション配信装置140は、いずれも、同様のハードウェア構成を有している。このため、以下では、端末120のハードウェア構成について、図2を用いて説明するものとする。
図2は、端末のハードウェア構成の一例を示す図である。図2に示すように、端末120は、CPU201、ROM(Read Only Memory)202、RAM(Random Access Memory)203を備える。また、端末120は、補助記憶部204、入力部205、表示部206、通信部207、GPS部208、ドライブ部209を備える。なお、端末120の各部は、バス210を介して相互に接続されている。
CPU201は、補助記憶部204にインストールされた各種プログラム(例えば、学習用アプリケーション)を実行するコンピュータである。ROM202は、不揮発性メモリである。ROM202は、補助記憶部204に格納された各種プログラムをCPU201が実行するために必要な各種プログラム、データ等を格納する主記憶部として機能する。具体的には、ROM202はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する。
RAM203は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリであり、主記憶部として機能する。RAM203は、補助記憶部204に格納された各種プログラムがCPU201によって実行される際に展開される、作業領域を提供する。
補助記憶部204は、端末120にインストールされた各種プログラムや、各種プログラムを実行する際に用いるデータ、各種プログラムを実行するために必要な「他のプログラム」(例えば、配信サービスの提供範囲を拡張するためのプログラム)等を格納する。入力部205は、ユーザ121が端末120に対して各種指示を入力する際に用いられる。表示部206は、学習用アプリケーションの学習用画面等を表示する。
通信部207は、端末120が接続する外部機器(第1のアプリケーション配信装置110、第2のアプリケーション配信装置140等)と通信するためのデバイスである。第1のアプリケーション配信装置110、第2のアプリケーション配信装置140より配信される学習用アプリケーションや各種データ等は、通信部207を介して受信される。
GPS部208は、端末120の現在の位置情報を取得するためのデバイスである。ドライブ部209は記録媒体220をセットするためのデバイスである。ここでいう記録媒体220には、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体220には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等も含まれる。
なお、補助記憶部204に格納される他のプログラムは、例えば、配布された記録媒体220がドライブ部209にセットされ、記録媒体220に記録された他のプログラムがドライブ部209により読み出されることで格納されるものとする。あるいは、学習用アプリケーションと同様に、通信部207を介して受信されることで格納されてもよい。
次に、サービス提供システム100において、配信サービスのチェックインを維持したまま、自宅内で学習用アプリケーションの配信を受ける処理(「サービス提供範囲拡張処理」)について説明する。図3から図9はサービス提供システムにおけるサービス提供範囲拡張処理を説明するための図である。
図3(a)に示すように、端末120が学校内に移動し、第1のアプリケーション配信装置110と接続可能な所定範囲内に入ると、第1のアプリケーション配信装置110は、端末120に対してチェックイン要求を送信する。これにより、端末120は、第1のアプリケーション配信装置110が提供する配信サービスにチェックインする。
端末120がチェックインすると、第1のアプリケーション配信装置110では、端末120に対して配信するアプリケーション(本実施形態では学習用アプリケーション)のID(ID="App−α")を端末120に配信する。
アプリケーションのIDを受信した端末120では、図3(b)に示すように、受信したアプリケーションのIDに基づいてトークン300を生成する。トークン300は、第1のアプリケーション配信装置110に関する情報(P1)とアプリケーションのIDに関する情報(α)とが含まれるトークン301(トークン名="トークン1(P1、α)")を有する。また、トークン300は、端末120に関する情報(M)とアプリケーションのIDに関する情報(α)とが含まれるトークン302(トークン名="トークン1(M、α)")を有する。
トークン300を生成すると、端末120では、図3(c)に示すように、トークン301(トークン名="トークン1(P1、α)")を、第1のアプリケーション配信装置110に送信する。また、端末120では、接続履歴情報310を更新する。図3(c)に示すように、接続履歴情報310は、情報の項目として、"接続先"と"アプリケーションID"と"位置情報"とを有する。
"接続先"には、端末120が接続した第1のアプリケーション配信装置110に関する情報(P1)が記録される。"アプリケーションID"には、第1のアプリケーション配信装置110より配信されたアプリケーションのIDが記録される。"位置情報"には、端末120が第1のアプリケーション配信装置110に接続した際の位置情報が、GPS部208により取得されて記録される。
トークン301を受信した第1のアプリケーション配信装置110では、図4(a)に示すように、ID="App−α"により特定されるアプリケーション400(学習用アプリケーション)を、端末120に配信する。アプリケーション400が配信された端末120では、アプリケーション400を実行する。これにより、端末120の表示部206には、学習用画面が表示される。
端末120に対してアプリケーション400を配信した第1のアプリケーション配信装置110では、図4(b)に示すように、バッファサービス提供サーバ130に対して、トークン301と、サービスデータ401のコピー(サービスデータ401')を送信する。トークン301とサービスデータ401'とを受信したバッファサービス提供サーバ130では、トークン301とサービスデータ401'とを紐付けて格納する。
その後、端末120が所定範囲外に移動することで、端末120による配信サービスへのチェックインを維持したまま、端末120と第1のアプリケーション配信装置110との通信が切断されたとする。あるいは、第1のアプリケーション配信装置110の電源がOFFとなることで(所定範囲外となり)、端末120による配信サービスへのチェックインを維持したまま、端末120と第1のアプリケーション配信装置110との通信が切断されたとする。
ここで、第1のアプリケーション配信装置110との通信が切断される際に、ユーザ121が継続して使用する旨の指示を端末120に入力したとする。この場合、図5(a)に示すように、端末120では、トークン302(トークン名="トークン1(M、α)")を継続して保持し、配信サービスへのチェックインを維持する。つまり、配信サービスへのチェックインを維持することとは、端末120がトークン302を継続して保持することを指す。
一方、端末120と第1のアプリケーション配信装置110との通信が切断されることで、端末120では、アプリケーション400の実行を終了するとともに、インストールされているアプリケーション400を削除する。つまり、端末120では、配信サービスへのチェックインを維持してアプリケーション400を削除する。
その後、ユーザ121が端末120を携行して自宅に移動したとする。図5(b)は、ユーザ121が端末120を携行して自宅に移動したことを示している。
ユーザ121が自宅に移動したことで、端末120が、第2のアプリケーション配信装置140と接続可能な所定範囲内に入ると、第2のアプリケーション配信装置140は、端末120に対してチェックイン要求を送信する。これにより、端末120は、第2のアプリケーション配信装置140が提供する配信サービスにチェックインする(図6(a)参照)。なお、第2のアプリケーション配信装置140では、端末120がトークン302を有していると判断した場合、端末120からトークン302が送信されるまで待機している。
第2のアプリケーション配信装置140にチェックインした端末120では、接続履歴情報310を更新する。図6(a)に示すように、接続履歴情報310において、"接続先"には、端末120が接続した第2のアプリケーション配信装置140に関する情報(P2)が記録される。また、"位置情報"には、端末120が第2のアプリケーション配信装置140に接続した際の位置情報が、GPS部208により取得されて記録される。なお、この時点では、第2のアプリケーション配信装置140よりアプリケーション400が提供されていないため、"接続先"="P2"に対応する"アプリケーションID"は、空欄のままである。
接続履歴情報310を更新した端末120では、図6(b)に示すように、第2のアプリケーション配信装置140に対して、トークン302(トークン名="トークン1(M、α)")を送信することで、アプリケーション400の配信を要求する。
更に、トークン302を送信した端末120では、図7(a)に示すように、第2のアプリケーション配信装置140に対して、トークン生成指示を送信する。これにより、第2のアプリケーション配信装置140では、バッファサービス提供サーバ130との間の通信に用いるトークン700を生成する。
トークン700は、バッファサービス提供サーバ130に関する情報(B)が含まれるトークン701(トークン名="トークン2(B)")を有する。また、トークン700は、第2のアプリケーション配信装置140に関する情報(P2)が含まれるトークン702(トークン名="トークン2(P2)")を有する。
トークン700を生成すると、第2のアプリケーション配信装置140では、図7(b)に示すように、トークン701とトークン302とを対応付けてバッファサービス提供サーバ130に送信することで、サービスデータ送信要求を送信する。
これにより、バッファサービス提供サーバ130では、トークン701とトークン302とが対応付けられたサービスデータ送信要求を受信する。トークン701とトークン302が対応付けられたサービスデータ送信要求を受信したバッファサービス提供サーバ130では、既に格納しているトークンの中から、トークン302に対応するトークンを検索する。
図8(a)は、バッファサービス提供サーバ130による検索の結果、トークン302に対応するトークンとして、トークン301が検索された様子を示している。図8(a)に示すように、バッファサービス提供サーバ130では、トークン302に対応するトークン301に対応付けて格納していたサービスデータ401'を、送信すべきサービスデータと判断する。また、バッファサービス提供サーバ130では、トークン302と対応付けて送信されたトークン701に基づいて、サービスデータ401'の送信先を、第2のアプリケーション配信装置140と判断する。
図8(b)は、バッファサービス提供サーバ130が、サービスデータ401'とトークン701とを対応付けて、第2のアプリケーション配信装置140に対して送信する様子を示している。図8(b)に示すように、バッファサービス提供サーバ130が、サービスデータ401'とトークン701とを、第2のアプリケーション配信装置140に送信することで、第2のアプリケーション配信装置140では、これを受信する。
サービスデータ401'とトークン701とを対応付けて受信した第2のアプリケーション配信装置140では、図9(a)に示すように、受信したトークン701が、トークン702に対応しているか否かを判断する。受信したトークン701が、トークン702に対応している場合、第2のアプリケーション配信装置140では、受信したトークン701が、サービスデータ送信要求に対する正しい応答であると判断する。一方、受信したトークン701が、トークン702に対応していない場合、第2のアプリケーション配信装置140では、受信したトークン701が、サービスデータ送信要求に対する正しい応答ではないと判断する。なお、図9(a)の例は、受信したトークン701が、トークン702に対応しており、サービスデータ送信要求に対する正しい応答であると判断した場合を示している。
更に、第2のアプリケーション配信装置140では、受信したトークン701が、トークン702に対応している場合、サービスデータ401'が、トークン302に対応するアプリケーションを含むと判断する。つまり、端末120から要求のあったアプリケーションを含むと判断する。
サービスデータ401'が端末120から要求のあったアプリケーションを含むと判断した第2のアプリケーション配信装置140では、アプリケーション400及びIDを、端末120に送信する。図9(b)は、第2のアプリケーション配信装置140が、アプリケーション400及びIDを端末120に送信した様子を示している。
図9(b)に示すように、アプリケーション400及びIDが端末120に送信されると、端末120では、アプリケーション400を実行する。これにより、端末120の表示部206には、学習用画面が表示される。
また、アプリケーション400及びIDを受信した端末120では、接続履歴情報310を更新する。具体的には、接続履歴情報310の"アプリケーションID"に、受信したアプリケーション400のID(ID="App−α")を記録する。
以上で、サービス提供範囲拡張処理が終了する。以降、端末120のユーザ121は、自宅内において学習用アプリケーションを利用することができる。
次に、サービス提供システム100の機能構成について説明する。図10は、端末の機能構成の一例を示す図である。
図10に示すように、端末120は、トークン生成部1001、トークン保存部1002、サービス制御部1003、トークン生成指示部1004、接続履歴情報保存部1005、位置情報取得部1006を有する。
トークン生成部1001は、サービス制御部1003より、アプリケーションのIDを含むトークン生成依頼を受信した場合に、トークン300を生成する。トークン生成部1001は、生成したトークン300をサービス制御部1003に送信する。
トークン保存部1002は、サービス制御部1003より、トークン302の保存指示を受信した場合に、トークン302をトークンDB1011に保存する。また、トークン保存部1002は、サービス制御部1003より、トークン302の読み出し指示を受信した場合に、トークンDB1011よりトークン302を読み出し、サービス制御部1003に送信する。
サービス制御部1003は、第1または第2のアプリケーション配信装置110、140との接続または切断を制御する。サービス制御部1003では、端末120が、第1または第2のアプリケーション配信装置110、140と接続可能な所定範囲に移動した場合に、第1または第2のアプリケーション配信装置110、140からチェックイン要求を受信する。
チェックイン要求を受信したサービス制御部1003では、トークンDB1011にトークン302が保存されているか否かを判断し、判断結果を含むチェックインを行う。
また、サービス制御部1003では、トークン302が保存されていないと判断した場合のチェックインに応じて、第1のアプリケーション配信装置110より送信されるIDを受信する。第1のアプリケーション配信装置110よりIDを受信した場合、サービス制御部1003では、受信したIDを、トークン生成依頼とともにトークン生成部1001に送信する。
また、サービス制御部1003は、トークン生成部1001において生成されたトークン300のうち、トークン301を第1のアプリケーション配信装置110に送信する一方、トークン302をトークン保存指示とともにトークン保存部1002に送信する。
また、サービス制御部1003は、チェックイン要求を受信した際に、トークンDB1011にトークン302が保存されていると判断した場合には、トークン302を読み出し、トークン生成指示とともに、トークン生成指示部1004に送信する。
また、サービス制御部1003は、第1または第2のアプリケーション配信装置110、140に接続した場合、接続履歴情報保存部1005に対して、接続履歴情報の更新を指示する。なお、サービス制御部1003は、接続履歴情報の更新を指示する際に、位置情報取得部1006に対して位置情報の取得指示を送信し、取得指示に応じて位置情報取得部1006より送信された位置情報を、接続履歴情報保存部1005に送信する。
また、サービス制御部1003は、第1または第2のアプリケーション配信装置110、140より、アプリケーション400を受信した場合に、アプリケーション400を実行する。なお、サービス制御部1003では、端末120と第1または第2のアプリケーション配信装置110、140との通信が切断されると、アプリケーション400の実行を終了するとともにアプリケーション400を削除する。つまり、サービス制御部1003は、アプリケーション400を削除する削除部としても機能する。
トークン生成指示部1004は、サービス制御部1003より、トークン302とともにトークン700の生成指示を受信すると、第2のアプリケーション配信装置140に対して、トークン302とトークン生成指示とを送信する。これにより、トークン生成指示部1004は、アプリケーション400の配信を要求する。
接続履歴情報保存部1005は、サービス制御部1003より接続履歴情報の更新指示を受信すると、受信した更新指示に含まれる、接続先の情報、アプリケーションのIDの情報、位置情報に基づいて、接続履歴情報DB1012の接続履歴情報310を更新する。
位置情報取得部1006は、サービス制御部1003より位置情報の取得指示を受信すると、現在の位置情報をGPS部208に基づいて取得し、取得した位置情報をサービス制御部1003に送信する。
次に、第1及び第2のアプリケーション配信装置110、140の機能構成について説明する。なお、第1及び第2のアプリケーション配信装置110、140は、同じ機能構成を有しているものとする。図11は、第1及び第2のアプリケーション配信装置の機能構成の一例を示す図である。
図11に示すように、第1及び第2のアプリケーション配信装置110、140は、サービスデータ保存部1101、トークン保存部1102、サービス制御部1103を有する。また、第1及び第2のアプリケーション配信装置110、140は、受信サービスデータ判断部1104、トークン保存部1105、トークン生成部1106を有する。
サービスデータ保存部1101は、端末120に配信している学習用アプリケーション、ID及び学習用アプリケーションの実行に必要なデータを、サービスデータとしてサービスデータ用DB1111に保存する。また、サービス制御部1103からの指示に基づいて、サービスデータ用DB1111に保存しているサービスデータのコピーを読み出し、サービス制御部1103に送信する。
トークン保存部1102は、サービス制御部1103からのトークン保存指示に基づいて、端末120より送信されたトークン301をトークンDB1112に保存する。また、サービス制御部1103からのトークン読み出し指示に基づいて、トークンDB1112に保存しているトークン301を読み出し、サービス制御部1103に送信する。
サービス制御部1103は、端末120によるチェックインに際して、端末120がトークン302を有していないと判断した場合には、端末120に対してアプリケーションのIDを配信する。
また、サービス制御部1103は、端末120に対してアプリケーションのIDを送信することで、端末120よりトークン301を受信した場合には、トークン保存部1102に対して、受信したトークン301の保存を指示する。また、サービス制御部1103は、端末120よりトークン301を受信した場合には、端末120に対してアプリケーション400を配信する。これにより、サービス制御部1103は、第1のアプリケーション配信装置110において、配信部として機能する。なお、サービス制御部1103では、アプリケーション400の配信を開始すると、サービスデータ保存部1101に対して、サービスデータの保存を指示する。
また、サービス制御部1103は、所定のタイミングでサービスデータ保存部1101に対してサービスデータの読み出しを指示し、指示に応じて読み出されたサービスデータのコピーを、トークン301とともにバッファサービス提供サーバ130に送信する。
また、サービス制御部1103は、受信サービスデータ判断部1104において取得されたサービスデータ401'についての保存指示を受信した場合には、サービスデータ保存部1101に対して、サービスデータ401'の保存指示を送信する。更に、受信サービスデータ判断部1104より、アプリケーション400の配信指示を受信した場合には、端末120に対して、アプリケーション400及びIDを配信する。これにより、サービス制御部1103は、第2のアプリケーション配信装置140においても配信部として機能する。
トークン生成部1106は、端末120よりトークン302を受信する。また、トークン生成部1106は、端末120よりトークン生成指示を受信した場合に、バッファサービス提供サーバ130に関する情報と、第2のアプリケーション配信装置140に関する情報とを含む、トークン700を生成する。
また、トークン生成部1106は、受信したトークン302と、生成したトークン700のうちのトークン701とを含む、サービスデータ送信要求をバッファサービス提供サーバ130に送信する(つまり、トークン生成部1106は、送信部としても機能する)。
また、トークン生成部1106は、生成したトークン700のうちのトークン702を、トークン保存部1105に送信する。
トークン保存部1105は、トークン生成部1106から送信されたトークン702を、トークンDB1113に保存する。また、トークン保存部1105は、受信サービスデータ判断部1104からの問い合わせに対して、トークンDB1113に保存されているトークン702を読み出して、受信サービスデータ判断部1104に送信する。
受信サービスデータ判断部1104は、トークン生成部1106により送信されたサービスデータ送信要求に対して、バッファサービス提供サーバ130より送信された応答を受信する。バッファサービス提供サーバ130より送信される応答には、トークン701とサービスデータ401'とが含まれる。
また、受信サービスデータ判断部1104は、受信した応答に含まれるトークン701が、トークンDB1113に保存されたトークン702に対応するか否かを判断する。これにより、受信アプリケーション判断部1014では、受信した応答が、サービスデータ送信要求に対する正しい応答であるか否かを判断する。また、受信サービスデータ判断部1104では、受信した応答に含まれるアプリケーションが、端末120より要求されたアプリケーション400であるか否かを判断する。
また、受信サービスデータ判断部1104は、受信した応答が、サービスデータ送信要求に対する正しい応答であると判断した場合に、受信した応答に含まれるサービスデータ401'についての保存指示をサービス制御部1103に送信する。また、受信した応答に含まれるアプリケーション400についての配信指示をサービス制御部1103に送信する。
次に、バッファサービス提供サーバ130の機能構成について説明する。図12は、バッファサービス提供サーバの機能構成の一例を示す図である。
図12に示すように、バッファサービス提供サーバ130は、サービスデータ保存部1201、送信サービスデータ判断部1202を有する。
サービスデータ保存部1201は、第1のアプリケーション配信装置110より、トークン301と対応付けて送信されたサービスデータ401'を受信し、トークン301と対応付けてサービスデータ用DB1211に保存する。また、サービスデータ保存部1201は、送信サービスデータ判断部1202からの検索指示に応じて、サービスデータ用DB1211を検索することで得られたサービスデータを、送信サービスデータ判断部1202に送信する。
送信サービスデータ判断部1202は、第2のアプリケーション配信装置140より、サービスデータ送信要求を受信した場合に、送信要求に含まれるトークン701、トークン302を抽出する。
また、送信サービスデータ判断部1202は、抽出したトークン302に対応するトークン301と対応付けられたサービスデータを検索するよう、サービスデータ保存部1201に検索指示を送信する。
また、送信サービスデータ判断部1202は、送信した検索指示に応じてサービスデータ保存部1201より送信されたサービスデータと、サービスデータ送信要求より抽出したトークン701とを対応付けて、第2のアプリケーション配信装置140に送信する。
次に、サービス提供システム100におけるサービス提供範囲拡張処理の流れについて説明する。図13は、サービス提供システム100におけるサービス提供範囲拡張処理のシーケンス図である。
図13に示すように、はじめに第1のアプリケーション配信装置110が、ステップS1301において第1のアプリケーション配信処理を実行する。
続いて、端末120が、ステップS1302においてアプリケーション実行処理を実行する。
これにより、端末120では、第1のアプリケーション配信装置110との間で、サービスの提供範囲拡張に必要な情報(アプリケーションのID、トークン302)の送受信を行った後、学習用アプリケーションの実行を開始する。
端末120により学習用アプリケーションの実行が開始される時点で、バッファサービス提供サーバ130では、バッファサービス提供処理(ステップS1303)を開始しているものとする。これにより、バッファサービス提供サーバ130では、第1のアプリケーション配信処理(ステップS1301)が実行されることで送信される、サービスの提供範囲拡張に必要な情報(トークン301及びサービスデータ401')を受信する。
端末120では、第1のアプリケーション配信装置110との接続が切断されるまで、学習用アプリケーションの実行を継続する。そして、第1のアプリケーション配信装置110との接続が切断されると、学習用アプリケーションの実行を終了するとともに、配信サービスへのチェックインを維持したまま学習用アプリケーションを削除する。
続いて第2のアプリケーション配信装置140が、ステップS1304において第2のアプリケーション配信処理を実行する。更に、端末120が、ステップS1305においてアプリケーション実行処理を実行する。
これにより、端末120では、第2のアプリケーション配信装置140との間で、サービスの拡張範囲拡張に必要な情報(トークン302、トークン生成指示)の送受信を行う。また、第2のアプリケーション配信装置140では、バッファサービス提供サーバ130との間で、サービスの提供範囲拡張に必要な情報(トークン302、トークン701、サービスデータ401')の送受信を行う。この結果、端末120では、学習用アプリケーションを実行することができる。
次に、図13のサービス継続処理に含まれる各処理(アプリケーション実行処理S1302、S1305、第1及び第2のアプリケーション配信処理S1301、S1304、バッファサービス提供処理S1303)の詳細について説明する。
はじめに、端末120によるアプリケーション実行処理(S1302、S1305)について説明する。
図14は、端末によるアプリケーション実行処理のフローチャートである。図14に示すように、ステップS1401において、端末120のサービス制御部1003は、第1または第2のアプリケーション配信装置110、140に接続したか否かを判断する。
ステップS1401において、接続していないと判断した場合には、接続するまで待機する。一方、ステップS1401において、接続したと判断した場合には、ステップS1402に進む。
ステップS1402において、端末120のサービス制御部1003は、トークン保存部1002にトークン302が保存されているか否かを判断する。ステップS1402においてトークン302が保存されていないと判断した場合には、ステップS1403に進む。
ステップS1403において、端末120のサービス制御部1003は、第1のアプリケーション配信装置110よりアプリケーションのIDを受信する。また、ステップS1404において、端末120のトークン生成部1001は、受信したアプリケーションのIDに基づいて、トークン300を生成する。更に、ステップS1405において、端末120のサービス制御部1003は、生成したトークン300のうち、トークン301を第1のアプリケーション配信装置110に送信する。
一方、ステップS1402においてトークン302が保存されていると判断した場合には、ステップS1406に進む。
ステップS1406において、端末120のトークン生成指示部1004は、トークン302を第2のアプリケーション配信装置140に送信する。また、ステップS1207において、端末120のトークン生成指示部1004は、第2のアプリケーション配信装置140に対して、トークン生成指示を送信する。
ステップS1408において、端末120の位置情報取得部1006は、位置情報を取得する。ステップS1409において、端末120の接続履歴情報保存部1005は、接続履歴情報310を更新する。
ステップS1410において、端末120のサービス制御部1003は、第1または第2のアプリケーション配信装置110、140より、アプリケーション400を受信し、受信したアプリケーション400を実行する。
ステップS1411において、端末120のサービス制御部1003は、アプリケーション400が終了したか否かを判断する。ステップS1411においてアプリケーション400が終了していないと判断した場合には、終了するまで待機する。一方、ステップS1411において、アプリケーション400が終了したと判断した場合には、ステップS1412に進む。
ステップS1412において、端末120のサービス制御部1003は、アプリケーション400を削除した後、アプリケーション実行処理を終了する。
次に、第1及び第2のアプリケーション配信装置110、140により実行されるアプリケーション配信処理(ステップS1301、S1304)の詳細について説明する。図15は、アプリケーション配信装置によるアプリケーション配信処理のフローチャートである。
ステップS1501において、第1及び第2のアプリケーション配信装置110、140のサービス制御部1103は、端末120が接続したか否かを判断する。ステップS1501において、端末120が接続していないと判断した場合には、端末120が接続するまで待機する。
一方、ステップS1501において、端末120が接続したと判断した場合には、ステップS1502に進む。ステップS1502において、第1及び第2のアプリケーション配信装置110、140のサービス制御部1103は、端末120によるチェックインに基づいて、端末120がトークン302を有しているか否かを判断する。
ステップS1502において、端末120がトークン302を有していないと判断した場合には、ステップS1503に進む。ステップS1503において、第1のアプリケーション配信装置110のサービス制御部1103は、アプリケーションのIDを端末120に送信する。
ステップS1504において、第1のアプリケーション配信装置110のサービス制御部1103は、端末120よりトークン301を受信する。更に、ステップS1505において、第1のアプリケーション配信装置110のサービス制御部1103は、端末120に対してアプリケーション400を配信する。
ステップS1506において、第1のアプリケーション配信装置110のサービス制御部1103は、トークン301とサービスデータ401'とを対応付けてバッファサービス提供サーバ130に送信する。
一方、ステップS1502において、端末120がトークン302を有していると判断した場合には、ステップS1507に進む。ステップS1507において、第2のアプリケーション配信装置140のトークン生成部1106は、端末120よりトークン302を受信したか否かを判断する。ステップS1507において、トークン302を受信していないと判断した場合には、ステップS1501に戻る。
一方、ステップS1507において、トークン302を受信したと判断した場合には、ステップS1508に進む。ステップS1508において、第2のアプリケーション配信装置140のトークン生成部1106は、端末120よりトークン生成指示を受信したか否かを判断する。ステップS1508において、トークン生成指示を受信していないと判断した場合には、ステップS1501に戻る。
一方、ステップS1508において、トークン生成指示を受信したと判断した場合には、ステップS1509に進む。
ステップS1509において、第2のアプリケーション配信装置140のトークン生成部1106は、トークン700を生成する。
ステップS1510において、第2のアプリケーション配信装置140のトークン生成部1106は、受信したトークン302と生成したトークン701と対応付けて、サービスデータ送信要求としてバッファサービス提供サーバ130に送信する。
ステップS1511において、第2のアプリケーション配信装置140の受信サービスデータ判断部1104は、バッファサービス提供サーバ130より、サービスデータ送信要求に対する応答を受信したか否かを判断する。ステップS1511において、サービスデータ送信要求に対する応答を受信していないと判断した場合には、受信するまで待機する。
一方、ステップS1511において、トークン701とサービスデータ401'を受信したことで、サービスデータ送信要求に対する応答を受信したと判断した場合には、ステップS1512に進む。ステップS1512において、第2のアプリケーション配信装置140の受信サービスデータ判断部1104は、サービスデータ送信要求に対する応答に含まれるトークン701が、トークン702に対応するか否かを判断する。
ステップS1512において、対応すると判断した場合には、ステップS1513に進む。ステップS1513において、第2のアプリケーション配信装置140のサービス制御部1103は、サービスデータ送信要求に対する応答に含まれるアプリケーション400を、端末120に配信してステップS1514に進む。一方、ステップS1512において、対応しないと判断した場合には、端末120にアプリケーション400を配信することなく、ステップS1514に進む。
ステップS1514において、第1及び第2のアプリケーション配信装置110、140は、配信サービスを終了するか否かを判断する。ステップS1514において、配信サービスを終了しないと判断した場合には、アプリケーション400の配信を継続する。一方、配信サービスを終了すると判断した場合には、アプリケーション配信処理を終了する。
次に、バッファサービス提供サーバ130により実行されるバッファサービス提供処理(ステップS1303)の詳細について説明する。図16は、バッファサービス提供サーバ130により実行されるバッファサービス提供処理のフローチャートである。
ステップS1601において、バッファサービス提供サーバ130のサービスデータ保存部1201は、第1のアプリケーション配信装置110より、トークン301とサービスデータ401'とを受信したか否かを判断する。ステップS1601において受信していないと判断した場合には、ステップS1603に進む。
一方、ステップS1601において、トークン301とサービスデータ401'とを受信したと判断した場合には、ステップS1602に進む。ステップS1602において、バッファサービス提供サーバ130のサービスデータ保存部1201は、受信したトークン301とサービスデータ401'とを対応付けて保存する。
ステップS1603において、バッファサービス提供サーバ130の送信サービスデータ判断部1202は、第2のアプリケーション配信装置140より、トークン302とトークン701とを含むサービスデータ送信要求を受信したか否かを判断する。ステップS1603において受信していないと判断した場合には、ステップS1606に進む。
一方、ステップS1603において、受信したと判断した場合には、ステップS1604に進む。ステップS1604において、バッファサービス提供サーバ130のサービスデータ保存部1201は、受信したサービスデータ送信要求に含まれるトークン302に基づいて、送信すべきサービスデータを検索する。
ステップS1605において、バッファサービス提供サーバ130の送信サービスデータ判断部1202は、サービスデータ保存部1201により検索されたサービスデータ401'を受信する。更に、受信したサービスデータ401'と、受信したサービスデータ送信要求に含まれるトークン701とを第2のアプリケーション配信装置140に送信する。
ステップS1606において、第1及び第2のアプリケーション配信装置110、140のサービスデータ保存部1201は、バッファサービス提供処理を終了するか否かを判断する。ステップS1606において、終了しないと判断した場合には、ステップS1601に戻る。一方、終了すると判断した場合には、バッファサービス提供処理を終了する。
以上の説明から明らかなように、本実施形態に係るサービス提供システム100では、第1のアプリケーション配信装置110が、所定範囲内の端末120に配信するアプリケーションをバッファサービス提供サーバ130に格納しておく。そして、端末120が所定範囲外であって、第2のアプリケーション配信装置140の所定範囲内に移動した場合、端末120は、バッファサービス提供サーバ130に格納されたアプリケーションを、第2のアプリケーション配信装置140を介して受信する。
これにより、所定範囲内の端末に対して提供されるサービスの提供範囲を拡張することが可能となる。
[第2の実施形態]
上記第1の実施形態では、第1のアプリケーション配信装置110と接続可能な所定範囲から移動した際の移動先のアプリケーション配信装置が1台である場合について説明した。しかしながら、移動先にあるアプリケーション配信装置は1台とは限られず、複数台ある場合も想定される。
そこで、第2の実施形態では、移動先にあるアプリケーション配信装置が2台の場合の端末120の接続先について説明する。
図17は、端末による接続例を示す図である。図17に示すように、第2の実施形態に係るサービス提供システム1700は、第2のアプリケーション配信装置140に加え、第2のアプリケーション配信装置141を有する。
図17(a)は、端末120が第1のアプリケーション配信装置110と接続し、第1のアプリケーション配信装置110より、学習用アプリケーションの配信を受けている様子を示している。
一方、図17(b)は、端末120が第1のアプリケーション配信装置110との接続を切断し、第2のアプリケーション配信装置140と接続し、第2のアプリケーション配信装置140より、学習用アプリケーションの配信を受けている様子を示している。
図17(b)に示すように、端末120は、第1のアプリケーション配信装置110との接続が切断した際に、第2のアプリケーション配信装置140と第2のアプリケーション配信装置141とから、チェックイン要求を受けるものとする。
ここで、端末120では、位置情報取得部1006により取得される位置情報に基づいて、第2のアプリケーション配信装置140、141のうち、いずれのアプリケーション配信装置が端末120に近いかを判断する。そして、端末120では、近い方のアプリケーション配信装置により提供される配信サービスにチェックインする。
図17(b)の例では、第2のアプリケーション配信装置141より、第2のアプリケーション配信装置140の方が、端末120に近い。このため、端末120では、第2のアプリケーション配信装置140により提供される配信サービスにチェックインする。この結果、バッファサービス提供サーバ130に格納されているアプリケーション400は、第2のアプリケーション配信装置140を介して、端末120に配信される。
図18は、端末によるアプリケーション実行処理のフローチャートである。図14を用いて説明した端末120によるアプリケーション実行処理との相違点は、ステップS1801、ステップS1802である。
ステップS1801において、端末120は、複数のチェックイン要求を受信した場合に、最も近いアプリケーション配信装置を判断する。
ステップS1802において、端末120は、最も近いアプリケーション配信装置に接続したか否かを判断する。ステップS1802において、接続していないと判断した場合には、ステップS1801に戻る。一方、ステップS1802において、接続したと判断した場合には、ステップS1402に進む。なお、ステップS1402以降の処理は、図14のステップS1402以降の処理と同じであるため、ここでは説明を省略する。
以上の説明から明らかなように、本実施形態に係るサービス提供システム1700では、移動先にあるアプリケーション配信装置が複数台の場合、端末120では、最も近いアプリケーション配信装置に接続する。これにより、所定範囲内の端末に対して提供されるサービスの提供範囲を拡張した場合に、より安定した通信状態を確保することができる。
[第3の実施形態]
上記第1の実施形態において、第1のアプリケーション配信装置110では、アプリケーション400を端末120に送信した後に、サービスデータ401'を1回のみ、バッファサービス提供サーバ130に送信した。しかしながら、サービスデータ401'を送信する回数は1回に限定されず、端末120が接続されている間、定期的に最新のサービスデータ401'を送信するようにしてもよい。
また、上記第1の実施形態では、サービスデータ401'を第2のアプリケーション配信装置140に送信した後のバッファサービス提供サーバ130の処理について特に言及しなかった。しかしながら、バッファサービス提供サーバ130では、サービスデータ401'を第2のアプリケーション配信装置140に送信した後に、サービスデータ401'を削除するようにしてもよい。また、サービスデータ401'の送信が完了したことを、第1のアプリケーション配信装置110に通知するようにしてもよい。
また、上記第1の実施形態では、第2のアプリケーション配信装置140においてアプリケーション400の配信が開始された後の処理について特に言及しなかった。しかしながら、第2のアプリケーション配信装置140においても、第1のアプリケーション配信装置110と同様に、サービスデータのコピーを、バッファサービス提供サーバ130に送信するようにしてもよい。これにより、端末120が、更に、第1及び第2のアプリケーション配信装置110、140とは異なる第3のアプリケーション配信装置の所定範囲内に位置した場合に、同様のサービス提供範囲拡張処理を実現することができる。あるいは、端末120が、再び、第1のアプリケーション配信装置110の所定範囲内に位置した場合に、同様のサービス提供範囲拡張処理を実現することができる。
また、上記第1及び第2の実施形態では、サービス提供システム100、1700がバッファサービス提供サーバ130を有するものとして説明した。しかしながら、バッファサービス提供サーバ130の機能は、例えば、第1または第2のアプリケーション配信装置110、140が有していてもよい。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
サービス提供装置によるサービス提供方法であって、該サービス提供装置が、
端末の位置が前記サービス提供装置に関連する所定範囲内かに基づき、該サービス提供装置が提供するサービスに、該端末がチェックインしたか否かを判断し、
前記端末がチェックインしたと判断した場合には、チェックインしたサービスに対応するアプリケーションを配信し、
前記端末の位置が所定範囲外になった場合に前記端末によって削除される前記アプリケーションを、サーバに送信し、
他のサービス提供装置に関連する他の所定範囲内において、該他のサービス提供装置が提供するサービスにチェックインしていた前記端末の位置が、前記サービス提供装置に関連する所定範囲内になった場合、サーバに記憶されている、該他のサービス提供装置が提供するサービスに対応するアプリケーションを取得する、
ことを特徴とするサービス提供方法。
(付記2)
前記端末がチェックインしたと判断した場合に、前記端末にて生成された、前記サービス提供装置に関する情報を含む第1のトークンを前記端末より取得することを特徴とする付記1に記載のサービス提供方法。
(付記3)
前記第1のトークンを、前記端末の位置が所定範囲外になった場合に前記端末によって削除される前記アプリケーションと対応付けて前記サーバに送信することで前記サーバに記憶させることを特徴とする付記2に記載のサービス提供方法。
(付記4)
前記他のサービス提供装置に関連する他の所定範囲内において、該他のサービス提供装置が提供するサービスにチェックインしていた前記端末の位置が、前記サービス提供装置に関連する所定範囲内になった場合、前記端末に関する情報を含み、前記第1のトークンに対応する第2のトークンを前記端末より受信し、前記サーバに送信し、
送信された前記第2のトークンに対応する前記第1のトークンと対応付けて前記サーバに記憶されている、前記他のサービス提供装置が提供するサービスに対応するアプリケーションを取得することを特徴とする付記3に記載のサービス提供方法。
(付記5)
前記端末からの指示に基づいて、前記他のサービス提供装置に関する情報を含む第3のトークンと、該第3のトークンに対応し前記サーバに関する情報を含む第4のトークンとを生成し、生成した該第4のトークンを前記第2のトークンとともに、前記サーバに送信することを特徴とする付記4に記載のサービス提供方法。
(付記6)
前記サーバに記憶されている、前記他のサービス提供装置が提供するサービスに対応するアプリケーションと前記第4のトークンとを、前記サーバから取得し、
前記サーバから取得した前記第4のトークンが、前記第3のトークンと対応していた場合に、前記サーバから取得した前記アプリケーションを、前記他の所定範囲内に含まれる前記端末に配信することを特徴とする付記5に記載のサービス提供方法。
(付記7)
サービス提供装置と端末とを有するサービス提供システムであって、
前記サービス提供装置は、
端末の位置がサービス提供装置に関連する所定範囲内かに基づき、該サービス提供装置が提供するサービスに、該端末がチェックインしたか否かを判断する判断部と、
前記端末がチェックインしたと判断した場合には、チェックインしたサービスに対応するアプリケーションを配信する配信部と、
前記端末の位置が所定範囲外になった場合に前記端末によって削除される前記アプリケーションを、サーバに送信する送信部と、
他のサービス提供装置に関連する他の所定範囲内において、該他のサービス提供装置が提供するサービスにチェックインしていた前記端末の位置が、前記サービス提供装置に関連する所定範囲内になった場合、サーバに記憶されている、該他のサービス提供装置が提供するサービスに対応するアプリケーションを取得する取得部と、を有し、
前記端末は、
前記サービス提供装置に関連する所定範囲内に位置することで、該サービス提供装置が提供するサービスにチェックインするチェックイン部と、
チェックインした前記サービスに対応するアプリケーションの配信を受ける第1の受信部と、
前記端末の位置が所定範囲外になった場合に、受信した前記アプリケーションを、所定範囲外で使用するものか否かを判断する判断部と、
受信した前記アプリケーションを所定範囲外で使用すると判断した場合には、前記サービスへのチェックインを維持して前記アプリケーションを削除する削除部と、
チェックインした前記サービスを提供する他のサービス提供装置に関連する他の所定範囲内に位置した場合、前記サーバに記憶されている前記アプリケーションを、前記他のサービス提供装置を介して受信する第2の受信部と
を有することを特徴とするサービス提供システム。
(付記8)
端末の位置がサービス提供装置に関連する所定範囲内かに基づき、該サービス提供装置が提供するサービスに、該端末がチェックインしたか否かを判断する判断部と、
前記端末がチェックインしたと判断した場合には、チェックインしたサービスに対応するアプリケーションを配信する配信部と、
前記端末の位置が所定範囲外になった場合に前記端末によって削除される前記アプリケーションを、サーバに送信する送信部と、
他のサービス提供装置に関連する他の所定範囲内において、該他のサービス提供装置が提供するサービスにチェックインしていた前記端末の位置が、前記サービス提供装置に関連する所定範囲内になった場合、サーバに記憶されている、該他のサービス提供装置が提供するサービスに対応するアプリケーションを取得する取得部と
を有することを特徴とするサービス提供装置。
(付記9)
サービス提供装置に関連する所定範囲内に位置することで、該サービス提供装置が提供するサービスにチェックインするチェックイン部と、
チェックインした前記サービスに対応するアプリケーションの配信を受ける第1の受信部と、
前記端末の位置が所定範囲外になった場合に、受信した前記アプリケーションを、所定範囲外で使用するものか否かを判断する判断部と、
受信した前記アプリケーションを所定範囲外で使用すると判断した場合には、前記サービスへのチェックインを維持して前記アプリケーションを削除する削除部と、
チェックインした前記サービスを提供する他のサービス提供装置に関連する他の所定範囲内に位置した場合、サーバに記憶されている前記アプリケーションを、前記他のサービス提供装置を介して受信する第2の受信部と
を有することを特徴とする端末。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。