以下に図面を参照して、本発明にかかる表示制御プログラム、表示制御方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる表示制御方法の一実施例を示す説明図である。図1において、情報処理装置100は、表示情報の表示を制御するコンピュータである。情報処理装置100は、例えば、スマートフォン、携帯電話機、タブレットPC(Personal Computer)などである。
表示情報は、外部のコンピュータから情報処理装置100に送信される情報である。表示情報は、例えば、プッシュ型のサービスを提供するサーバからプッシュ通知により送信される。表示情報としては、例えば、各種メッセージ、広告情報、災害情報、渋滞情報、運行情報などが挙げられる。
ここで、プッシュ通知では、サーバ側が指定した複数のユーザ(端末)にデータを一斉送信することができる。一方で、端末側でデータを受け取った際の端末やユーザの状態に応じて、メッセージの表示の有無を決めたり、メッセージの表示内容を変更したりすることが望ましい場合がある。
例えば、気温や湿度が高く熱中症の危険が高まっているときに、こまめな水分補給や休憩を促すメッセージをプッシュ通知で送信するとする。このメッセージは、屋外で行動している人には、注意喚起となって有用な情報であるといえる。一方で、屋内などの温度、湿度ともに快適な場所にいる人にとっては、メッセージがわずらわしいものとなることがある。
このため、例えば、端末が有するセンサ(温度センサ、湿度センサ等)の情報をサーバにアップし、サーバ側でセンサの情報をもとに周囲の温度や湿度を判断して、快適な環境下にいる端末へはプッシュ通知しないというやり方が考えられる。ところが、このやり方では、端末からサーバにセンサの情報を送信することになる。サーバ側にユーザの情報を定期的に通知することはセキュリティ面に不安がある。
この問題を解決する方法として、例えば、プッシュ通知のテキストデータを、表示条件を含んだデータとすることが考えられる。具体的には、端末側でデータを受け取った際に、端末の各種センサの情報から特定される状態と表示条件との比較を行い、メッセージの表示有無や表示内容を変更する。プッシュ通知するデータは、例えば、JavaScript(登録商標)のようなスクリプト言語によって記述される。
しかし、この方法では、プッシュ通知によるデータを受信した端末がセンサを有していない場合には、表示条件との比較ができず、メッセージの表示有無や表示内容を変更することができない。また、端末が有するセンサの情報だけでは判断できない表示条件を指定することができない。
そこで、本実施の形態では、装置構成の違いといった、情報を受け取る装置側のばらつきによる表示情報の表示への影響を抑制して、ユーザ等の状態に応じた表示を行う表示制御方法について説明する。以下、情報処理装置100の処理例について説明する。
(1)情報処理装置100は、表示情報と、表示情報を表示する表示条件と、情報処理装置100に関する情報の取得手順とを受け付ける。ここで、表示情報は、例えば、プッシュ型のサービスを提供するサーバからプッシュ通知により送信される表示対象となる情報である。表示条件は、表示情報を表示するか否かを決定するための条件である。
情報処理装置100に関する情報は、装置本体や周囲の状態を特定する情報であってもよく、また、情報処理装置100のユーザについての情報(例えば、生体情報)であってもよい。すなわち、情報処理装置100に関する情報は、装置本体やユーザの状態を特定するための情報である。
取得手順は、情報処理装置100の周辺デバイスや各種センサ、あるいは、任意のサーバなどから情報を取得する指示(命令、手順)を示す。周辺デバイスは、近距離無線通信により情報処理装置100と通信可能なデバイスである。各種センサは、情報処理装置100が有するセンサであり、例えば、温度センサや湿度センサなどである。任意のサーバは、任意に指定可能なサーバであり、例えば、何らかの情報をもとに新たな情報を提供する情報提供サーバである。
図1の例では、情報処理装置100は、プッシュ型のサービスを提供するサーバから、スクリプトデータ110を受け付けた場合を想定する。スクリプトデータ110は、スクリプト言語によって記述されており、コンパイラによる機械語への変換をせずに直接実行することができる情報である。
スクリプトデータ110は、表示情報111と、表示情報111を表示する表示条件112と、情報処理装置100に関する情報の取得手順113とを含む。ここでは、表示情報111は、熱中症を防止するために、こまめな水分補給や休憩を促すメッセージである場合を想定する。
(2)情報処理装置100は、受け付けた取得手順に基づき、自装置に関する情報を取得する。図1の例では、情報処理装置100は、受け付けたスクリプトデータ110を解析して、取得手順113に従って、情報処理装置100に関する情報を取得する。ここでは、情報処理装置100が、温度センサ、湿度センサを有しておらず、近距離無線通信により無線接続された周辺デバイス120から、周辺デバイス120によって取得された温度と湿度の情報を取得した場合を想定する。
(3)情報処理装置100は、取得した自装置に関する情報が、受け付けた表示条件を満たすか否かを判定する。図1の例では、情報処理装置100は、周辺デバイス120から取得した情報が、表示条件112を満たすか否かを判定する。ここでは、表示条件112が、温度と湿度がともに閾値以上であるという条件である場合を想定する。温度、湿度それぞれの閾値は、例えば、熱中症の危険性が高くなる温度、湿度に設定される。
(4)情報処理装置100は、判定した判定結果に基づき、受け付けた表示情報の表示を制御する。図1の例では、情報処理装置100は、周辺デバイス120から取得した情報が表示条件112を満たすと判定した場合、表示情報111を表示する。すなわち、周辺デバイス120から取得した情報が示す温度と湿度がともに閾値以上であれば、熱中症の危険性が高いため、情報処理装置100は表示情報111を表示する。
一方、情報処理装置100は、周辺デバイス120から取得した情報が表示条件112を満たさないと判定した場合、表示情報111を表示しない。すなわち、周辺デバイス120から取得した情報が示す温度と湿度がともに閾値未満であれば、熱中症の危険性が高くないため、情報処理装置100は表示情報111を表示しない。
このように、情報処理装置100によれば、表示情報と、表示情報を表示する表示条件と、情報処理装置100に関する情報の取得手順とを受け付けることができる。そして、情報処理装置100によれば、受け付けた取得手順に基づき、自装置に関する情報を取得し、取得した自装置に関する情報が、受け付けた表示条件を満たすか否かを判定し、判定した判定結果に基づき、受け付けた表示情報の表示を制御することができる。
これにより、装置構成の違いといった、情報を受け取る装置側のばらつきによる表示情報の表示への影響を抑制することができる。このため、装置側で情報を受け付けた際のユーザ等の状態に応じて、表示の有無を決めたり、表示内容を変更したりすることが可能となり、プッシュ通知による効果的な情報提供を行うことができる。
図1の例では、情報処理装置100が温度センサや湿度センサを有していなくても、周辺デバイス120から温度と湿度の情報を取得して表示条件112と比較することができ、その結果に応じて表示情報111の表示を制御することができる。これにより、気温や湿度が高く熱中症の危険性が高い状態にあるユーザに対して、こまめな水分補給や休憩を促すメッセージを表示して注意喚起することができる。換言すれば、熱中症の危険性が高くない状態にあるユーザに対しては過剰な注意喚起を防いで、情報提供がユーザにとってわずらわしいものとなることを防ぐことができる。
(情報配信システム200のシステム構成例)
つぎに、実施の形態にかかる情報配信システム200について説明する。
図2は、情報配信システム200のシステム構成例を示す説明図である。図2において、情報配信システム200は、端末T1〜Tn(nは、2以上の自然数)と、プッシュサーバ201と、情報提供サーバ202と、を含む。情報配信システム200において、端末T1〜Tn、プッシュサーバ201および情報提供サーバ202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、移動体通信網、LAN(Local Area Network)、WAN(Wide Area Network)などである。
端末T1〜Tnは、情報配信システム200のユーザが使用するコンピュータであり、例えば、スマートフォン、携帯電話機、タブレットPCなどである。図1に示した情報処理装置100は、例えば、端末T1〜Tnのうちのいずれかに対応する。
以下の説明では、端末T1〜Tnのうちの任意の端末を「端末Ti」と表記する場合がある(i=1,2,…,n)。
端末Tiは、近距離無線通信により周辺デバイスdvと通信可能である。周辺デバイスdvは、例えば、bluetooth(登録商標)によりペアリングされたウェアラブル端末や、無線LANのアクセスポイント、あるいは、ビーコン信号を発信するビーコン装置などである。ウェアラブル端末は、ユーザが身につけて移動したり操作したりできるデバイスである。ウェアラブル端末としては、例えば、時計型デバイス、メガネ型デバイス、ペンダント型デバイスなどがある。
プッシュサーバ201は、ユーザ情報DB(Database)220、利用可能資源DB230および送信データDB240を有し、プッシュ通知により端末Tiに送信データDを送信するコンピュータである。ユーザ情報DB220および利用可能資源DB230の記憶内容については、図5および図6を用いて後述する。
送信データDB240は、送信データID(identification)と送信データDとを対応付けて記憶する。送信データIDは、送信データDを一意に識別する識別子である。送信データDは、スクリプト言語によって記述された、コンパイラによる機械語への変換をせずに直接実行することができるスクリプトデータである。
また、送信データDB240において、各送信データDは、例えば、当該送信データDがどの利用可能資源に対応するものであるかを示す情報と対応付けて記憶されている。利用可能資源とは、送信データDの実行時に端末Tiにおいて利用可能な資源であり、例えば、端末Tiが有するセンサ、近距離無線通信により無線接続される周辺デバイスdv、およびネットワーク210を介して接続される情報提供サーバ202などである。送信データDのデータ構造例については、図7〜図9を用いて後述する。
情報提供サーバ202は、端末Tiから送信される情報をもとに新たな情報を提供するコンピュータである。例えば、情報提供サーバ202は、端末Tiの位置情報(例えば、緯度、経度、高度)を受信すると、端末Tiの位置情報に対応する住所を特定して、特定した住所を示す住所情報を端末Tiに送信することができる。これにより、端末Tiの位置情報を住所に変換して提供することができる。
なお、図2の例では、プッシュサーバ201と情報提供サーバ202とを別々に設けることにしたが、これに限らない。例えば、プッシュサーバ201が、情報提供サーバ202の機能を有することにしてもよい。
(端末Tiのハードウェア構成例)
つぎに、端末Tiのハードウェア構成例について説明する。
図3は、端末Tiのハードウェア構成例を示すブロック図である。図3において、端末Tiは、CPU(Central Processing Unit)301と、メモリ302と、各種センサ303と、I/F(Interface)304と、ディスプレイ305と、入力装置306と、を有する。また、各構成部はバス300によってそれぞれ接続される。
ここで、CPU301は、端末Tiの全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
各種センサ303は、例えば、温度センサ、湿度センサ、傾きセンサ(加速度センサ)、GPS(Global Positioning System)ユニットなどを含む。GPSユニットは、GPS衛星からの電波を受信し、端末Tiの位置情報を出力する。端末Tiの位置情報は、例えば、緯度、経度および高度などの地球上の1点を特定する情報を含む。また、端末Tiは、DGPS(Differential GPS)により、GPSユニットから出力される位置情報を補正することにしてもよい。
I/F304は、無線通信回路とアンテナを有し、ネットワーク210を介して他のコンピュータ(例えば、プッシュサーバ201、情報提供サーバ202)に接続される。そして、I/F304は、ネットワーク210と自装置内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
ディスプレイ305は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ305は、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
入力装置306は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置306は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
なお、端末Tiは、上述した構成部のほかに、例えば、ディスクドライブ、ディスク、SSD(Solid State Drive)等を有することにしてもよい。また、端末Tiは、USBメモリ等の補助記憶装置を接続可能であってもよい。
(プッシュサーバ201等のハードウェア構成例)
つぎに、プッシュサーバ201および情報提供サーバ202のハードウェア構成例について説明する。ここでは、プッシュサーバ201および情報提供サーバ202を「プッシュサーバ201等」と表記する。
図4は、プッシュサーバ201等のハードウェア構成例を示すブロック図である。図4において、プッシュサーバ201等は、CPU401と、メモリ402と、I/F403と、ディスクドライブ404と、ディスク405と、を有する。また、各構成部は、バス400によってそれぞれ接続される。
ここで、CPU401は、プッシュサーバ201等の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
I/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示した端末T1〜Tn)に接続される。そして、I/F403は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。I/F403には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ404は、CPU401の制御に従ってディスク405に対するデータのリード/ライトを制御する。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する。ディスク405としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
なお、プッシュサーバ201等は、上述した構成部のほかに、例えば、SSD、キーボード、マウス、ディスプレイ等を有することにしてもよい。また、プッシュサーバ201等は、USBメモリ等の補助記憶装置を接続可能であってもよい。
(ユーザ情報DB220および利用可能資源DB230の記憶内容)
つぎに、図5および図6を用いて、プッシュサーバ201が有するユーザ情報DB220および利用可能資源DB230の記憶内容について説明する。なお、プッシュサーバ201が有する各種DB220,230,240は、例えば、図4に示したメモリ402、ディスク405等の記憶装置により実現される。
図5は、ユーザ情報DB220の記憶内容の一例を示す説明図である。図5において、ユーザ情報DB220は、ユーザID、ユーザ名、端末IDおよびアドレスのフィールドを有し、各フィールドに情報を設定することで、ユーザ情報500−1〜500−nをレコードとして記憶する。
ここで、ユーザIDは、情報配信システム200のユーザを一意に識別する識別子である。ユーザ名は、ユーザの名称である。端末IDは、ユーザが使用する端末Tiを一意に識別する識別子である。アドレスは、端末Tiのメールアドレスである。例えば、ユーザ情報500−1は、ユーザID「U1」のユーザのユーザ名「富士太郎」、端末ID「T1」およびアドレス「・・・」を示す。
図6は、利用可能資源DB230の記憶内容の一例を示す説明図である。図6において、利用可能資源DB230は、端末IDおよび各種可否フラグのフィールドを有し、各フィールドに情報を設定することで、利用可能資源情報600−1〜600−nをレコードとして記憶する。各種可否フラグは、GPS可否フラグ、bluetooth可否フラグ、温度センサ可否フラグ、湿度センサ可否フラグ、傾きセンサ可否フラグ、マナーモード状態可否フラグ、周辺探索可否フラグ、サーバ通信可否フラグおよびフィードバック可否フラグである。
端末IDは、端末Tiを一意に識別する識別子である。各種可否フラグ(フィードバック可否フラグを除く)は、端末Tiの利用可能資源を示す情報である。ここでは、各種可否フラグが「1」の場合は、利用可能な資源であることを示す。各種可否フラグが「0」の場合は、利用可能な資源ではないことを示す。
具体的には、GPS可否フラグは、GPSユニットの利用を許可するか否かを示す情報である。bluetooth可否フラグは、bluetooth(登録商標)によりペアリングされた周辺デバイスdvの利用を許可するか否かを示す情報である。温度センサ可否フラグは、温度センサの利用を許可するか否かを示す情報である。湿度センサ可否フラグは、湿度センサの利用を許可するか否かを示す情報である。
傾きセンサ可否フラグは、傾きセンサの利用を許可するか否かを示す情報である。マナーモード状態可否フラグは、マナーモードの設定状態を示す情報の利用を許可するか否かを示す情報である。周辺探索可否フラグは、無線LANにより接続される周辺デバイス(アクセスポイント)の利用を許可するか否かを示す情報である。サーバ通信可否フラグは、情報提供サーバ202の利用を許可するか否かを示す情報である。
また、フィードバック可否フラグは、フィードバック情報の送信を許可するか否かを示す情報である。ここでは、フィードバック可否フラグが「1」の場合は、フィードバック情報の送信を許可することを示す。フィードバック可否フラグが「0」の場合は、フィードバック情報の送信を許可しないことを示す。
(送信データDのデータ構造例)
つぎに、図7〜図9を用いて、送信データDのデータ構造例について説明する。なお、図7〜図9では、送信データDを簡略化して示している。
図7は、送信データDのデータ構造例を示す説明図(その1)である。図7において、送信データD1は、GPSユニットの利用が許可(GPS可否フラグ「1」)され、情報提供サーバ202の利用が許可(サーバ通信可否フラグ「1」)されている端末向けの送信データDのデータ構造例を示す。
送信データD1は、表示情報(符号701)と、表示条件(符号703,705)と、取得手順(符号702,704)と、を含む。送信データD1は、スクリプト言語によって記述されており、コンパイラによる機械語への変換をせずに直接実行することができる。送信データD1を実行時の端末Tiの動作は、以下の通りである。
まず、端末Tiは、送信データD1に記述された取得手順(符号702)に基づき、GPSユニットの位置情報の取得を試みる。ここで、GPSユニットの位置情報を取得できなければ、端末Tiは、表示条件(符号703)に従って、表示情報(符号701)の1を表示する。一方、GPSユニットの位置情報を取得できれば、端末Tiは、取得手順(符号704)に基づき、GPSユニットの位置情報をもとに情報提供サーバ202からの情報の取得を試みる。
ここで、情報提供サーバ202からの情報を取得できなければ、端末Tiは、表示条件(符号705)に従って、表示情報(符号701)の2を表示する。一方、情報提供サーバ202からの情報を取得できれば、端末Tiは、表示条件(符号705)に従って、情報提供サーバ202から取得した情報を表示する。
図8は、送信データDのデータ構造例を示す説明図(その2)である。図8において、送信データD2は、GPSユニットの利用が許可(GPS可否フラグ「1」)され、情報提供サーバ202の利用が不許可(サーバ通信可否フラグ「0」)となっている端末向けの送信データDのデータ構造例を示す。
送信データD2は、表示情報(符号801)と、表示条件(符号803)と、取得手順(符号802)と、を含む。送信データD2は、スクリプト言語によって記述されており、コンパイラによる機械語への変換をせずに直接実行することができる。送信データD2を実行時の端末Tiの動作は、以下の通りである。
まず、端末Tiは、送信データD2に記述された取得手順(符号802)に基づき、GPSユニットの位置情報の取得を試みる。ここで、GPSユニットの位置情報を取得できなければ、端末Tiは、表示条件(符号803)に従って、表示情報(符号801)の1を表示する。一方、GPSユニットの位置情報を取得できれば、端末Tiは、表示条件(符号803)に従って、表示情報(符号801)の2を表示する。
図9は、送信データDのデータ構造例を示す説明図(その3)である。図9において、送信データD3は、GPSユニットおよび情報提供サーバ202の利用がともに不許可(GPS可否フラグ「0」、サーバ通信可否フラグ「0」)となっている端末向けの送信データDのデータ構造例を示す。
送信データD3は、表示情報(符号901)と、表示条件(符号902)とを含む。送信データD3は、スクリプト言語によって記述されており、コンパイラによる機械語への変換をせずに直接実行することができる。送信データD3を実行時の端末Tiの動作は、以下の通りである。
端末Tiは、表示条件(符号902)に従って、表示情報(符号901)の1を表示する。すなわち、送信データD3の場合、端末Tiは、プッシュ通知により送信されてきた表示情報を表示するだけである。
なお、図示は省略するが、端末Tiからプッシュサーバ201に対してフィードバック情報を送信する場合、各送信データD1〜D3には、フィードバック情報の送信手順が記述される。
(プッシュサーバ201の機能的構成例)
つぎに、プッシュサーバ201の機能的構成例について説明する。
図10は、プッシュサーバ201の機能的構成例を示すブロック図である。図10において、プッシュサーバ201は、受付部1001と、決定部1002と、通信制御部1003と、を含む構成である。受付部1001〜通信制御部1003は制御部となる機能であり、具体的には、例えば、図4に示したメモリ402、ディスク405などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、I/F403により、その機能を実現する。各機能部の処理結果は、例えば、メモリ402、ディスク405などの記憶装置に記憶される。
受付部1001は、プッシュ通知の対象となる送信データDを受け付ける。ここで、送信データDは、表示情報と、表示情報を表示する表示条件と、端末Tiに関する情報の取得手順とを含む。表示情報は、表示対象となる情報である。表示条件は、表示情報を表示するか否かを決定するための条件である。
端末Tiに関する情報は、端末Ti本体や周囲の状態を特定する情報や、端末Tiのユーザについての情報(例えば、生体情報)である。端末Tiに関する情報は、例えば、端末Tiが有する各種センサ303(図3参照)、近距離無線通信により端末Tiと無線接続される周辺デバイスdv、あるいは、ネットワーク210を介して端末Tiと接続される情報提供サーバ202から取得される。
取得手順は、各種センサ303、周辺デバイスdv、情報提供サーバ202等から端末Tiに関する情報を取得する指示(命令、手順)を示す。例えば、送信データDは、図7〜図9に示したような、スクリプト言語によって記述された、コンパイラによる機械語への変換をせずに直接実行することができるスクリプトデータである。
また、送信データDは、フィードバック情報の送信手順を含むことにしてもよい。ここで、フィードバック情報とは、送信データDが送信された端末Tiにおいて表示された表示情報を特定する情報である。送信手順は、プッシュサーバ201へフィードバック情報を送信する指示(命令、手順)を示す。
具体的には、例えば、受付部1001は、I/F403により、外部のコンピュータから、プッシュ通知の対象となる送信データDを受け付ける。外部のコンピュータは、例えば、オペレータが使用するPCである。また、例えば、受付部1001は、不図示のキーボードやマウス等を用いたオペレータの操作入力により、プッシュ通知の対象となる送信データDを受け付けることにしてもよい。
受け付けた送信データDは、例えば、送信データIDと対応付けて、送信データDB240(図2参照)に記憶される。
なお、送信データDは、例えば、端末Tiの利用可能資源を考慮して作成される。具体的には、例えば、作成者は、利用可能資源DB230(図6参照)に記憶された各種可否フラグのうち任意に選んだ可否フラグの組合せごとに、当該可否フラグが全て「1」である、すなわち、全て許可されている場合を想定して送信データDを作成する。これにより、どの資源の利用を許可しているかによって様々なバリエーションの送信データDを作成することができる。
決定部1002は、端末Tiに送信する送信データDを決定する。具体的には、例えば、まず、決定部1002は、利用可能資源DB230を参照して、端末Tiの利用可能資源を特定する。そして、決定部1002は、送信データDB240を参照して、特定した利用可能資源に対応する送信データDを、端末Tiに送信する送信データDに決定する。
例えば、端末Tiの利用可能資源が、GPSユニットおよび情報提供サーバ202のみであるとする。この場合、GPSユニットおよび情報提供サーバ202の利用が許可されている場合を想定して作成された送信データD(例えば、図7に示した送信データD1)が、端末Tiに送信する送信データDに決定される。
決定された決定結果は、例えば、図11に示すようなプッシュ通知情報テーブル1100に記憶される。プッシュ通知情報テーブル1100は、例えば、メモリ402、ディスク405などの記憶装置により実現される。ここで、プッシュ通知情報テーブル1100の記憶内容について説明する。
図11は、プッシュ通知情報テーブル1100の記憶内容の一例を示す説明図である。図11において、プッシュ通知情報テーブル1100は、送信データIDおよび端末IDのフィールドを有し、各フィールドに情報を設定することで、プッシュ通知情報(例えば、プッシュ通知情報1100−1,1100−2)をレコードとして記憶する。
ここで、送信データIDは、端末Tiに送信する送信データDを一意に識別する識別子である。端末IDは、送信データDの送信先である端末Tiを一意に識別する識別子である。例えば、プッシュ通知情報1100−1は、端末T1に送信する送信データDの送信データID「D1」を示す。
図10の説明に戻り、通信制御部1003は、端末Tiに送信データDを送信する。具体的には、例えば、通信制御部1003は、プッシュ通知情報テーブル1100を参照して、各端末Tiに送信する送信データDを特定し、特定した送信データDを各端末Tiにプッシュ通知により送信する。なお、送信データDの宛先として設定される端末Tiのアドレスは、例えば、ユーザ情報DB220から特定される。
通信制御部1003は、端末Tiからフィードバック情報を受信する。フィードバック情報には、例えば、端末Tiの端末ID、送信データDの送信データID、および表示情報を特定する情報(表示無しを含む)が含まれる。
例えば、端末Tiに送信データD1(図7参照)が送信された結果、表示情報(符号701)の1が表示されたとする。また、送信データD1には、プッシュサーバ201に対してフィードバック情報を送信する命令が含まれているとする。この場合、送信データD1の表示情報(符号701)の1が表示されたことを示すフィードバック情報が、端末Tiからプッシュサーバ201に送信される。
受信されたフィードバック情報は、例えば、図12に示すようなフィードバック情報テーブル1200に記憶される。フィードバック情報テーブル1200は、例えば、メモリ402、ディスク405などの記憶装置により実現される。ここで、フィードバック情報テーブル1200の記憶内容について説明する。
図12は、フィードバック情報テーブル1200の記憶内容の一例を示す説明図である。図12において、フィードバック情報テーブル1200は、端末ID、送信データIDおよびフィードバック情報のフィールドを有し、各フィールドに情報を設定することで、フィードバック情報(例えば、フィードバック情報1200−1)をレコードとして記憶する。
例えば、フィードバック情報1200−1は、端末T1において送信データD1の表示情報に含まれるmessage1が表示されたことを示す。
通信制御部1003は、端末Tiから受信したフィードバック情報を出力する。具体的には、例えば、通信制御部1003は、フィードバック情報テーブル1200内のフィードバック情報を、オペレータ(例えば、情報配信システム200の管理者)が使用するPCなどに送信することにしてもよい。
例えば、フィードバック情報1200−1によれば、オペレータは、送信データD1が端末T1に送信された結果、端末T1においてGPSユニットの位置情報を取得できず、送信データD1の表示情報(符号701)の1が表示されたことがわかる。
(端末Tiの機能的構成例)
図13は、端末Tiの機能的構成例を示すブロック図である。図13において、端末Tiは、通信制御部1301と、取得部1302と、判定部1303と、表示制御部1304と、を含む構成である。通信制御部1301〜表示制御部1304は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302に記憶される。
通信制御部1301は、表示情報と、表示情報を表示する表示条件と、自端末に関する情報の取得手順とを含む送信データDを受信する。送信データDには、フィードバック情報の送信手順が含まれていてもよい。具体的には、例えば、通信制御部1301は、プッシュサーバ201からプッシュ通知により送信される送信データDを受信する。
取得部1302は、受信された送信データDに含まれる取得手順に基づき、自端末に関する情報を取得する。具体的には、例えば、取得部1302は、受信された送信データDを読み込んで解析し、取得手順に従って、自端末に関する情報を取得する。
より具体的には、例えば、取得部1302は、取得手順に基づき、近距離無線通信により自端末と無線接続された周辺デバイスdvから、周辺デバイスdvによって取得された情報を取得する。周辺デバイスdvは、例えば、bluetooth(登録商標)によりペアリングされたウェアラブル端末や、無線LANのアクセスポイントなどである。周辺デバイスdvから取得される情報としては、例えば、ウェアラブル端末から取得される端末Tiのユーザの体温、血圧、脈拍、心拍数等の生体情報や、アクセスポイントから取得される位置情報(アクセスポイントの設置場所名など)がある。
また、取得部1302は、取得手順に基づき、自端末が有する各種センサ303によって取得された情報を取得する。各種センサ303から取得される情報としては、例えば、温度センサ、湿度センサ、傾きセンサ、GPSユニット等の出力値がある。また、例えば、取得部1302は、取得手順に基づき、自端末の設定情報を取得する。設定情報は、例えば、端末Tiにおけるマナーモードの設定状況を示す情報である。
また、取得部1302は、取得手順に基づき、ネットワーク210を介して、周辺デバイスdvまたは各種センサ303から取得した情報を情報提供サーバ202に送信することにより、情報提供サーバ202から当該情報に基づき提供される情報を取得する。情報提供サーバ202から取得される情報としては、例えば、GPSユニットの出力値(例えば、緯度、経度、高度)を情報提供サーバ202に送信することにより得られる住所情報や渋滞情報などがある。住所情報は、GPSユニットの出力値に対応する住所を示す情報である。渋滞情報は、GPSユニットの出力値に対応する住所付近の渋滞状況を示す情報である。
また、取得部1302は、取得手順に基づき、ネットワーク210を介して、メモリ302に記憶された端末Tiの情報を情報提供サーバ202に送信することにより、情報提供サーバ202から当該情報に基づき提供される情報を取得することにしてもよい。端末Tiの情報は、例えば、端末Tiの端末IDや、端末TiのユーザのユーザIDなどである。端末Tiの情報に基づき情報提供サーバ202から取得される情報としては、例えば、端末Tiのユーザについての飛行機や電車の予約情報がある。
判定部1303は、取得された自端末に関する情報が、送信データDに含まれる表示条件を満たすか否かを判定する。具体的には、例えば、判定部1303は、送信データDを読み込んで解析し、取得された自端末に関する情報が表示条件を満たすか否かを判定する。表示条件としては、例えば、以下に示すようなものが挙げられる。
・温度が閾値以上あるいは閾値未満であるか?
・湿度が閾値以上あるいは閾値未満であるか?
・体温が閾値以上あるいは閾値未満であるか?
・血圧が閾値以上あるいは閾値未満であるか?
・脈拍が閾値以上あるいは閾値未満であるか?
・心拍数が閾値以上あるいは閾値未満であるか?
・アクセスポイントの設置場所名が特定の場所名であるか?
・住所情報が特定の住所を示す住所情報であるか?
・マナーモードが設定されていないか?
・周辺デバイスdvから情報が取得できたか?
・各種センサ303から情報が取得できたか?
・情報提供サーバ202から情報が取得できたか?
表示制御部1304は、判定された判定結果に基づき、送信データDに含まれる表示情報の表示を制御する。具体的には、例えば、表示制御部1304は、自端末に関する情報が表示条件を満たす場合に、ディスプレイ305(図3参照)に表示情報を表示する。また、表示制御部1304は、自端末に関する情報が表示条件を満たさない場合には、表示情報を表示しない。
例えば、取得部1302によって、端末Tiと無線接続された周辺デバイスdvから体温を示す生体情報が取得され、判定部1303によって、当該生体情報が示す体温が閾値以下であるかという表示条件を満たすと判定されたとする。この場合、表示制御部1304は、例えば、後述の図14に示すような通知画面1400をディスプレイ305に表示する。
また、例えば、取得部1302によって、情報提供サーバ202から飛行機の予約情報および渋滞情報が取得され、判定部1303によって、当該予約情報および渋滞情報が取得できたかという表示条件を満たすと判定されたとする。この場合、表示制御部1304は、例えば、後述の図15に示すような通知画面1500をディスプレイ305に表示する。
また、通信制御部1301は、送信データDに含まれる送信手順に基づき、フィードバック情報を送信する。具体的には、例えば、通信制御部1301は、送信データDを読み込んで解析し、表示情報の表示の制御が行われた結果、フィードバック情報をプッシュサーバ201に送信する。フィードバック情報には、例えば、端末Tiの端末ID、送信データDの送信データID、および表示情報を特定する情報(表示無しを含む)が含まれる。
(通知画面の画面例)
つぎに、図14および図15を用いて、端末Tiのディスプレイ305に表示される通知画面の画面例について説明する。
図14は、通知画面の画面例を示す説明図(その1)である。図14において、端末Tiのディスプレイ305に通知画面1400が表示されている。通知画面1400は、端末Tiと無線接続された周辺デバイスdvにより計測されたユーザの体温が閾値以下である場合に表示される表示情報1401を含む。ここでは、登山者であるユーザに対して情報通知を行う場合を想定する。
通知画面1400によれば、登山者であるユーザに対して、体温が低下しており、このままでは危険な状態に陥る可能性があるため、山小屋等に早めに避難すべきであることを警告することができる。
図15は、通知画面の画面例を示す説明図(その2)である。図15において、端末Tiのディスプレイ305に通知画面1500が表示されている。通知画面1500は、端末Tiのユーザが予約している当日の飛行機の予約情報および渋滞情報が取得された場合に表示される表示情報1501と、ルート探索ボタン1502と、を含む。
通知画面1500によれば、ユーザに対して、国道41号線○×交差点で事故が発生したため、飛行機に搭乗するために車で飛行場に向かっている場合は注意すべきであることを警告することができる。また、通知画面1500において、例えば、図3に示した入力装置306を用いたユーザの操作入力により、ルート探索ボタン1502を選択すると、経路探索サービスを提供するサーバにアクセスして、飛行場までの回避ルートを探索することができる。
(プッシュサーバ201の通知処理手順)
つぎに、図16を用いて、プッシュサーバ201の通知処理手順について説明する。
図16は、プッシュサーバ201の通知処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、プッシュサーバ201は、図5に示したユーザ情報DB220から選択されていない未選択のユーザ情報を選択する(ステップS1601)。
そして、プッシュサーバ201は、利用可能資源DB230から、選択したユーザ情報の端末IDに対応する利用可能資源情報を取得する(ステップS1602)。つぎに、プッシュサーバ201は、送信データDB240を参照して、取得した利用可能資源情報から特定される利用可能資源に対応する送信データDを、端末Tiに送信する送信データDに決定する(ステップS1603)。
そして、プッシュサーバ201は、決定した送信データDの送信データIDと、選択したユーザ情報の端末IDとを対応付けて表すプッシュ通知情報をプッシュ通知情報テーブル1100に登録する(ステップS1604)。つぎに、プッシュサーバ201は、ユーザ情報DB220から選択されていない未選択のユーザ情報があるか否かを判断する(ステップS1605)。
ここで、未選択のユーザ情報がある場合(ステップS1605:Yes)、プッシュサーバ201は、ステップS1601に戻る。一方、未選択のユーザ情報がない場合(ステップS1605:No)、プッシュサーバ201は、送信データDB240から選択されていない未選択の送信データDを選択する(ステップS1606)。
そして、プッシュサーバ201は、プッシュ通知情報テーブル1100を参照して、選択した送信データDの送信データIDに対応する端末IDを特定する(ステップS1607)。つぎに、プッシュサーバ201は、ユーザ情報DB220を参照して、特定した端末IDに対応するアドレスを送信データDの宛先に設定する(ステップS1608)。
そして、プッシュサーバ201は、宛先を設定した送信データDをプッシュ通知により一斉送信する(ステップS1609)。つぎに、プッシュサーバ201は、送信データDB240から選択されていない未選択の送信データDがあるか否かを判断する(ステップS1610)。
ここで、未選択の送信データDがある場合(ステップS1610:Yes)、プッシュサーバ201は、ステップS1606に戻る。一方、未選択の送信データDがない場合には(ステップS1610:No)、プッシュサーバ201は、本フローチャートによる一連の処理を終了する。
これにより、端末Tiの利用可能資源に応じた送信データDを、端末Tiに対してプッシュ通知により送信することができる。
(端末Tiの表示制御処理手順)
つぎに、図17を用いて、端末Tiの表示制御処理手順について説明する。
図17は、端末Tiの表示制御処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、端末Tiは、プッシュサーバ201から送信データDを受信したか否かを判断する(ステップS1701)。ここで、端末Tiは、送信データDを受信するのを待つ(ステップS1701:No)。
そして、端末Tiは、送信データDを受信した場合(ステップS1701:Yes)、受信した送信データDを解析する(ステップS1702)。つぎに、端末Tiは、近距離無線通信により自端末と無線接続された周辺デバイスdvから情報を取得する指示が含まれるか否かを判断する(ステップS1703)。
ここで、周辺デバイスdvから情報を取得する指示が含まれていない場合(ステップS1703:No)、端末Tiは、ステップS1705に移行する。一方、周辺デバイスdvから情報を取得する指示が含まれる場合(ステップS1703:Yes)、端末Tiは、周辺デバイスdvから情報を取得する(ステップS1704)。
つぎに、端末Tiは、情報提供サーバ202から情報を取得する指示が含まれるか否かを判断する(ステップS1705)。ここで、情報提供サーバ202から情報を取得する指示が含まれていない場合(ステップS1705:No)、端末Tiは、ステップS1707に移行する。一方、情報提供サーバ202から情報を取得する指示が含まれる場合(ステップS1705:Yes)、端末Tiは、情報提供サーバ202から情報を取得する(ステップS1706)。
つぎに、端末Tiは、周辺デバイスdvおよび/または情報提供サーバ202から取得した情報に基づいて、送信データDに含まれる表示条件を満たすか否かを判定する(ステップS1707)。ここで、表示条件を満たさない場合(ステップS1707:No)、端末Tiは、ステップS1710に移行する。
一方、表示条件を満たす場合(ステップS1707:Yes)、端末Tiは、送信データDに含まれる表示情報、あるいは、周辺デバイスdvおよび/または情報提供サーバ202から取得した情報に基づいて、通知画面を作成する(ステップS1708)。つぎに、端末Tiは、作成した通知画面をディスプレイ305に表示する(ステップS1709)。
そして、端末Tiは、プッシュサーバ201にフィードバック情報を送信して(ステップS1710)、本フローチャートによる一連の処理を終了する。フィードバック情報には、例えば、端末Tiの端末ID、送信データDの送信データID、および表示情報を特定する情報(表示無しを含む)が含まれる。
これにより、プッシュサーバ201から送信データDを受信した際のユーザや端末本体の状態に応じて、表示の有無を決めたり、表示内容を変更したりすることができる。
以上説明したように、実施の形態にかかるプッシュサーバ201によれば、スクリプト言語によって記述された、表示情報と、表示情報を表示する表示条件と、端末Tiに関する情報の取得手順とを含む送信データDを、端末Tiに対してプッシュ通知により送信することができる。
これにより、サーバ側で様々な表示条件を設定して、端末Tiにおける表示情報の表示を制御させることができる。また、端末側の装置構成の違いなどを想定して、表示条件と比較するための情報の取得手順を定めておくことで、端末側のばらつきによる表示情報の表示への影響を抑制することができる。また、JavaScriptのようなスクリプト言語を利用することで、送信データDを比較的簡易に作成でき、表示情報や表示条件の変更、追加等にかかる作業負荷を抑えることができる。
また、プッシュサーバ201によれば、端末Tiの利用可能資源に基づいて、端末Tiに送信する送信データDを決定することができる。これにより、端末Tiで利用できない資源にかかる記述、例えば、当該資源からの情報の取得手順の記述等を含まない送信データDを選んで端末Tiに送信することができ、データサイズを削減して通信量を抑えることができる。
また、プッシュサーバ201によれば、端末Tiからフィードバック情報を受信して、受信したフィードバック情報を出力することができる。出力形式としては、例えば、I/F403による外部のコンピュータへの送信、メモリ402、ディスク405などの記憶装置への記憶、不図示のディスプレイへの表示などがある。
これにより、どのような情報が表示されやすく、どのような情報が表示されにくいのかといった特徴を把握しやすくさせることができる。この結果、例えば、地域、時期、時間帯等に応じて異なる傾向を見出すことが可能となり、ユーザにとってより有用な情報となる送信データDの作成を支援することができる。
また、実施の形態にかかる端末Tiによれば、プッシュサーバ201から、スクリプト言語によって記述された、表示情報と、表示情報を表示する表示条件と、自端末に関する情報の取得手順と、を含む送信データDを受信することができる。そして、端末Tiによれば、送信データDに含まれる取得手順に基づき、自端末に関する情報を取得し、取得した自端末に関する情報が、送信データDに含まれる表示条件を満たすか否かを判定し、判定した判定結果に基づき、送信データDに含まれる表示情報の表示を制御することができる。
これにより、送信データDを受信した際の端末側の状態(ユーザや端末本体の状態)に応じて、表示の有無を決めたり、表示内容を変更したりすることができる。また、送信データDに表示条件と比較するための情報の取得手順が定められており、装置構成の違いといった、端末側のばらつきによる表示情報の表示への影響を抑制することができる。
また、端末Tiによれば、取得手順に基づき、自端末が有する各種センサ303によって取得された情報を取得することができる。これにより、送信データDを受信した際のユーザや端末本体の状態を特定するための情報を各種センサ303から得ることができる。
また、端末Tiによれば、取得手順に基づき、近距離無線通信により自端末Tiと無線接続された周辺デバイスdvから、周辺デバイスdvによって取得された情報を取得することができる。これにより、たとえ端末Tiが各種センサ303を有していなくても、送信データDを受信した際のユーザや端末本体の状態を特定するための情報を周辺デバイスdvから得ることができる。
また、端末Tiによれば、取得手順に基づき、ネットワーク210を介して、周辺デバイスdvまたは各種センサ303から取得した情報を情報提供サーバ202に送信することにより、情報提供サーバ202から当該情報に基づき提供される情報を取得することができる。
これにより、各種センサ303や周辺デバイスdvからの情報だけでは判定できないような表示条件についても、情報提供サーバ202からの情報をもとに判定することが可能となる。例えば、GPSユニットの出力値だけでは、端末Tiがいる住所を特定できず、住所に紐付いた渋滞情報をピンポイントで表示することができない場合がある。このような場合に、GPSユニットの出力値をもとに情報提供サーバ202から住所情報を得ることにより、端末Tiがいる住所に紐付いた渋滞情報の表示を実現することができる。
また、端末Tiによれば、判定結果に基づき表示した表示情報を特定するフィードバック情報をプッシュサーバ201に送信することができる。これにより、どのような情報が表示されやすく、どのような情報が表示されにくいのかといった特徴を把握するための情報を、情報配信側(例えば、情報配信システム200の管理者)に提供することが可能となる。
なお、本実施の形態で説明した表示制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本表示制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本表示制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)情報処理装置が実行する表示制御プログラムにおいて、
表示情報と、前記表示情報を表示する表示条件と、前記情報処理装置に関する情報の取得手順とを受け付け、
受け付けた前記取得手順に基づき、自装置に関する情報を取得し、
取得した自装置に関する情報が、受け付けた前記表示条件を満たすか否かを判定し、
判定した判定結果に基づき、受け付けた前記表示情報の表示を制御する、
処理を前記情報処理装置のコンピュータに実行させることを特徴とする表示制御プログラム。
(付記2)前記取得する処理は、
前記取得手順に基づき、近距離無線通信により自装置と無線接続された周辺デバイスから、前記周辺デバイスによって取得された情報を取得する、ことを特徴とする付記1に記載の表示制御プログラム。
(付記3)前記取得する処理は、
前記取得手順に基づき、自装置が有するセンサによって取得された情報を取得する、ことを特徴とする付記2に記載の表示制御プログラム。
(付記4)前記取得する処理は、
前記取得手順に基づき、ネットワークを介して、前記周辺デバイスまたは前記センサから取得した情報を情報提供サーバに送信することにより、前記情報提供サーバから当該情報に基づき提供される情報を取得する、ことを特徴とする付記3に記載の表示制御プログラム。
(付記5)前記受け付ける処理は、
ネットワークを介して、プッシュ型のサービスを提供するサーバから、スクリプト言語によって記述された、前記表示情報と前記表示条件と前記取得手順とを含むスクリプトデータを受け付ける、ことを特徴とする付記1〜4のいずれか一つに記載の表示制御プログラム。
(付記6)前記コンピュータに、
前記判定結果に基づき表示した表示情報を特定する情報を前記サーバに送信する、処理を実行させることを特徴とする付記5に記載の表示制御プログラム。
(付記7)情報処理装置が実行する表示制御方法において、
表示情報と、前記表示情報を表示する表示条件と、前記情報処理装置に関する情報の取得手順とを受け付け、
受け付けた前記取得手順に基づき、自装置に関する情報を取得し、
取得した自装置に関する情報が、受け付けた前記表示条件を満たすか否かを判定し、
判定した判定結果に基づき、受け付けた前記表示情報の表示を制御する、
処理を前記情報処理装置のコンピュータが実行することを特徴とする表示制御方法。
(付記8)表示情報と、前記表示情報を表示する表示条件と、自装置に関する情報の取得手順とを受け付け、
受け付けた前記取得手順に基づき、自装置に関する情報を取得し、
取得した自装置に関する情報が、受け付けた前記表示条件を満たすか否かを判定し、
判定した判定結果に基づき、受け付けた前記表示情報の表示を制御する、
制御部を有することを特徴とする情報処理装置。