(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
ユーザの利用時間を正確に算出するために、OS(オペレーティングシステム)が備える実行中のプロセスのログを出力する機能を用いてログを出力し、そのログを解析する方法が考えられる。しかしながら、実行中の全てのプロセスに関する情報をログとして記録すると、ログデータが莫大になり、端末負荷が高くなるという問題があった。
【0006】
特許文献1は、アプリケーションの利用実績として、アプリケーションの起動から終了までの実行時間を収集している。アプリケーションはバックグラウンドで実行されることがあり、アプリケーションの実行時間とユーザの利用時間が必ずしも一致するものではない。特許文献1のアプリケーションの利用実績は、ユーザの利用時間を正確に表すものではないという問題があった。
【0007】
特許文献2には、アクティブなアプリケーションの識別情報をログに記録することで、情報処理装置にインストールされているアプリケーションを検出することが記載されている。特許文献2には、識別情報をログに記録する際に時刻情報も記録することが記載されているが、アクティブなアプリケーションを終了したことを示すログは記録しておらず、アプリケーションの利用時間を正確に求めることはできないという問題かあった。
【0008】
また、テレビなどの外部の表示装置に接続する情報端末では、情報端末の電源をオフせずにテレビの電源のみをオフする場合や、テレビが情報端末からの映像を表示せずに他のソース(例えば、地デジ放送や他の映像機器)からの映像を表示する場合がある。この場合、情報端末で検出したアクティブなアプリケーションは実際にはユーザが利用しておらず、ユーザの利用時間を正確に示すものではないという問題があった。
【0009】
本発明は、上記に鑑みてなされたものであり、より正確にユーザのアプリケーションの利用時間を取得することを目的とする。
【課題を解決するための手段】
【0010】
第1の本発明に係るログ記録装置は、
自装置の表示状態を示す出力情報を自装置に接続された機器に対して送信する表示装置に接続され、アプリケーションをインストールして実行可能な情報端末が備えるログ記録装置であって、フォアグラウンドで実行されているアプリケーションの情報を取得するフォアグラウンドアプリ取得手段と、
前記出力情報に基づいて前記表示装置に当該情報端末の画面が表示されているか否かを検出する表示状態取得手段と、アプリケーションがフォアグラウンドで実行されている時間から前記表示装置に当該情報端末の画面が表示されていない時間を除いた時間を前記アプリケーションの利用時間としてログに記録するログ記録手段と、前記ログを保持するログ保持手段と、を有することを特徴とする。
【0011】
第2の本発明に係るログ記録方法は、
自装置の表示状態を示す出力情報を自装置に接続された機器に対して送信する表示装置に接続され、アプリケーションをインストールして実行可能な情報端末によって実行されるログ記録方法であって、フォアグラウンドで実行されているアプリケーションの情報を取得するステップと、
前記出力情報に基づいて前記表示装置に当該情報端末の画面が表示されているか否かを検出するステップと、アプリケーションがフォアグラウンドで実行されている時間から前記表示装置に当該情報端末の画面が表示されていない時間を除いた時間を前記アプリケーションの利用時間としてログ保持手段のログに記録するステップと、を有することを特徴とする。
【0012】
第3の本発明に係るログ記録プログラムは上記情報端末の各手段としてコンピュータを動作させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、より正確にユーザのアプリケーションの利用時間を取得することができる。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について図面を用いて説明する。
【0016】
図1は、本実施の形態における情報端末の構成を示す機能ブロック図である。
図1の情報端末1はテレビなどの表示装置2に接続されるセットトップボックスであり、HDMIケーブルにより表示装置2に接続されている。
【0017】
図1に示す情報端末1は、オペレーティングシステム11、オペレーティングシステム11上で動作するログ取得部12、HDMIインタフェース14(表示状態取得手段)、及びネットワークインタフェース15を備える。情報端末1には、オペレーティングシステム11上で動作する複数のアプリ13A,13B,13Cがインストールされて、ユーザはアプリ13A,13B,13Cを利用する。情報端末1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは情報端末1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0018】
オペレーティングシステム11は、プロセス管理部111(フォアグラウンドアプリ取得手段)とアプリケーション処理部112を備える。プロセス管理部111は、オペレーティングシステム11が実行するプロセスを管理し、ログ取得部12の問い合わせに応じてフォアグラウンドで実行中のアプリケーション(以下、「フォアグラウンドアプリ」と称する)の情報を返信する。フォアグラウンドアプリは、ユーザの操作対象となるアプリケーションであり、多くの場合、情報端末1の表示部に最前面で表示される。アプリケーション処理部112は、情報端末1にインストールされたアプリ13A,13B,13C及びログ取得部12を動作させる。
【0019】
ログ取得部12は、ログデータ記録部121(ログ記録手段)、ログデータ保持部122(ログ保持手段)、及びログデータ送信部123を備える。ログ取得部12は、他のアプリ13A,13B,13Cと同様にオペレーティングシステム11上で動作する。あるいは、オペレーティングシステム11にログ取得部12の機能を備えてもよい。
【0020】
ログデータ記録部121は、所定の間隔で、現在のフォアグラウンドアプリの情報をプロセス管理部111に問い合わせて、タイムスタンプとフォアグラウンドアプリの情報をログデータ保持部122に記録する。
【0021】
また、ログデータ記録部121は、HDMIインタフェース14を監視し、表示装置2の表示が切り替わったときに、タイムスタンプ、フォアグラウンドアプリの情報及びHDMI信号の情記録部報をログデータ保持部122に記録する。ログデータ記録部121は、アプリケーションがフォアグラウンドで実行されている時間から表示装置2に情報端末1の画面が表示されていない時間を除いた時間をアプリケーションの利用時間とするように、表示装置2の表示状態の変化に応じてログを記録する。表示装置2は、電源がオン・オフされると、電源のオン・オフ情報をHDMIインタフェース14に送信し、出力映像のソースを切り替えると、表示装置2に接続された機器に対して映像出力情報を送信する。
【0022】
ログデータ保持部122は、タイムスタンプ、起動又は終了したアプリケーションの情報、アプリケーションの利用時間、及びHDMI信号の情報を記載したログを保持する。タイムスタンプは、アプリケーションを起動又は終了したときの時刻である。起動又は終了したアプリケーションの情報は、例えば、起動したアプリケーションの名称、終了したアプリケーションの名称である。アプリケーションの利用時間は、アプリケーションの名称とそのアプリケーションを利用していた時間の情報である。HDMI信号の情報は、表示装置2での表示状態が変化したときに記録されるログであり、表示装置2の電源のオン・オフの状態や情報端末1の画面を表示しているか否かを示す情報である。
【0023】
ログデータ送信部123は、ログデータ保持部122からログを読み出し、ネットワークインタフェース15を介して、ログをログ管理DB3へ送信する。ログデータ送信部123は、アプリ13A,13B,13Cごとに利用時間を集計し、集計結果をログ管理DB3へ送信してもよい。
【0024】
ログ管理DB3は、情報端末1からログを受信して格納し、ログを集計してアプリ13A,13B,13Cごとの利用時間を求める。なお、
図1では情報端末1を1つのみ図示しているが、ログ管理DB3は複数の情報端末1と接続し、複数の情報端末1のそれぞれからログを受信する。
【0025】
次に、本実施の形態におけるログ収集アプリの動作について説明する。
【0026】
図2は、本実施の形態におけるログ収集アプリの処理の流れを示すフローチャートである。
【0027】
ログ取得部12が動作を開始すると、ログデータ記録部121は、所定のタイミングで、現在フォアグラウンドで実行しているアプリケーションの情報をプロセス管理部111に問い合わせる(ステップS11)。この問い合わせに対して、プロセス管理部111は、フォアグラウンドアプリの名称を返答する。
【0028】
ログデータ記録部121は、ログデータ保持部122から、前回記録した最新のログに記録されたフォアグラウンドアプリの名称とタイムスタンプを取得する(ステップS12)。
【0029】
ログデータ記録部121は、ログが取得できない、あるいはステップS12で取得したログにフォアグラウンドアプリの名称が記録されているか否か判定する(ステップS13)。例えば、ログデータ記録部121の処理が1回目であってログデータ保持部122にログが記録されていない場合や、前回記録時にはフォアグラウンドでアプリケーションが実行されていなかった場合、例えば、アプリ選択メニューが表示されておりフォアグラウンドで実行されているアプリケーションが無い場合は、ログにフォアグラウンドアプリの名称が記録されていない。
【0030】
ステップS12でログが取得できないか、取得したログにフォアグラウンドアプリの名称が記録されていない場合(ステップS13のNO)、ログデータ記録部121は、ステップS11で得たフォアグラウンドアプリを起動したアプリとしてタイムスタンプとともにログデータ保持部122に記録する(ステップS14)。
【0031】
一方、ステップS12で取得したログにフォアグラウンドアプリの名称が記録されている場合(ステップS13のYES)、ログデータ記録部121は、ステップS11で得たフォアグラウンドアプリとステップS12で取得したログに記録されたフォアグラウンドアプリが一致するか否か判定する(ステップS15)。
【0032】
ステップS11で得たフォアグラウンドアプリとログに記録されたフォアグラウンドアプリが一致しない場合(ステップS15のNO)、ログデータ記録部121は、ステップS11で得たフォアグラウンドアプリを起動したアプリとしてタイムスタンプとともにログデータ保持部122に記録し、ステップS12で取得したログに記録されたフォアグラウンドアプリを終了したアプリとして利用時間とともにログデータ保持部122に記録する(ステップS16)。終了したアプリの利用時間は、ステップS12で取得したログに記録されたタイムスタンプから現在時刻までの経過時間により求める。
【0033】
ステップS11で得たフォアグラウンドアプリとログに記録されたフォアグラウンドアプリが一致する場合は(ステップS15のYES)、ログ取得部12は、ログを記録しないで処理を終える。
【0034】
ログ取得部12は、以上の処理を所定の間隔で実行する。
【0035】
続いて、表示装置2からHDMI信号を受信したときの処理について説明する。
【0036】
図3は、情報端末1が表示装置2からHDMI信号を受信したときの処理の流れを示すフローチャートである。情報端末1がHDMI信号を受信すると
図3に示す割り込み処理が発生する。
【0037】
ログ取得部12は、HDMI信号を取得し(ステップS21)、表示装置2の表示画面が切り替わったか否か判定する(ステップS22)。表示画面が切り替わっていないときは処理を終了する(ステップS22のNO)。
【0038】
表示装置2の表示画面が切り替わった場合(ステップS22のYES)、ログ取得部12は、HDMI信号に基づいて、表示装置2が情報端末1の画面を表示しているか否か判定する(ステップS23)。
【0039】
表示装置2が情報端末1の画面を表示している場合(ステップS23のYES)、例えば、表示装置2の電源がオンになり、表示装置2の入力ソースが情報端末1である場合、ログ取得部12は、タイムスタンプとフォアグラウンドアプリの情報を取得し、タイムスタンプ、フォアグラウンドアプリの名称、及びHDMI信号の情報をログデータ保持部122に記録する(ステップS24)。
【0040】
表示装置2が情報端末1の画面を表示していない場合(ステップS23のNO)、例えば、表示装置2の電源がオフになった、あるいは表示装置2の入力ソースが情報端末1から別の映像機器に切り替わった場合、ログ取得部12は、ログデータ保持部122の最新のログに記載されたフォアグラウンドアプリを終了したアプリとして、タイムスタンプ、終了したアプリケーションの名称、利用時間、及びHDMI信号の情報をログデータ保持部122に記録する(ステップS25)。
【0041】
図4は、本実施の形態における情報端末がログを取得するタイミングを示す図である。同図には、フォアグラウンドで実行されているアプリケーションと画面の表示状態(表示ON又は表示OFF)を示している。
【0042】
ログ取得部12は、所定の間隔で、フォアグラウンドアプリの情報を取得する。
図4では、時刻t1〜t9のそれぞれの時刻において、フォアグラウンドアプリの情報を取得している。また、ログ取得部12は、HDMIインタフェース14を監視し、表示装置2において情報端末1の画面の表示状態が変化したときにログを記録する。
【0043】
表示装置2の電源がONにされて、アプリAがフォアグラウンドで実行される。
【0044】
ログ取得部12は、画面の表示状態が表示OFFから表示ONに変化したことを検知すると、フォアグラウンドアプリ(ここではアプリA)の情報を取得し、表示ONになったこととアプリAの利用が開始されたことをログに記録する(ログL1)。
【0045】
時刻t1,t2,t3では、表示状態に変化はなく、フォアグラウンドアプリも変更されていないので、ログ取得部12はログを記録しない。
【0046】
その後、アプリBがフォアグラウンドで実行されると、アプリAはバックグラウンドで実行される。
【0047】
時刻t4では、フォアグラウンドアプリがアプリAからアプリBに変更されたので、アプリAの利用が終了したこと及びアプリBの利用が開始されたことをログに記録する(ログL2)。
【0048】
時刻t5ではアプリBがそのままフォアグラウンドで実行されているので、ログ取得部12はログを記録しない。
【0049】
その後、アプリBが終了し、アプリAが再びフォアグラウンドで実行される。
【0050】
時刻t6では、フォアグラウンドアプリがアプリBからアプリAに変更されたので、アプリBの利用が終了したこと及びアプリAの利用が開始されたことをログに記録する(ログL3)。
【0051】
その後、表示装置2の電源がオフにされる、あるいは表示装置2の入力ソースが変更されて情報端末1の画面の表示されなくなる。
【0052】
ログ取得部12は、画面の表示状態が表示ONから表示OFFに変化したことを検知すると、表示OFFになったこととアプリAの利用が終了したことをログに記録する(ログL4)。情報端末1の画面が表示OFFになった後は、アプリAはフォアグラウンドで実行されているが、利用時間としてカウントされないように、アプリAは終了したものとして扱う。
【0053】
時刻t7では、アプリAがフォアグラウンドで実行されているが、情報端末1の画面は表示装置2で表示されていないので、ログ取得部12はログを記録しない。
【0054】
その後、表示装置2の電源がオンにされる、あるいは表示装置2の入力ソースが変更されて情報端末1の画面が表示される。
【0055】
ログ取得部12は、画面の表示状態が表示OFFから表示ONに変化したことを検知すると、フォアグラウンドアプリ(ここではアプリA)の情報を取得し、表示ONになったこととアプリAの利用が開始されたことをログに記録する(ログL5)。
【0057】
時刻t9では、フォアグラウンドで実行されていたアプリAが終了していたので、アプリAの利用が終了したことをログに記録する(ログL6)。
【0058】
なお、ログを収集する収集間隔を長くしてログの量を減らす、あるいは、収集間隔を短くし、より正確にアプリケーションの利用時間を算出することができる。また、フォアグラウンドで実行されているアプリケーションが変更されたタイミングでログを記録してもよい。表示状態の変化に基づいてログを記録する場合も、時刻t1〜t9のタイミングでログを記録してもよい。
【0059】
続いて、記録されるログについて説明する。
【0060】
図5は、ユーザの操作により変化したフォアグラウンドアプリを示す図であり、
図6は、
図5のようにフォアグラウンドアプリが変化したときに、ログデータ保持部122に記録されるデータの例を示す図である。
【0061】
最初は、ログは記録されていないものとする。
【0062】
ユーザの操作によりアプリAが起動してフォアグラウンドで実行されているときに、ログ取得部12が
図2の処理を開始すると、ステップS11において、「アプリA」がフォアグラウンドで実行されていることを検出する。
【0063】
ステップS12でログを取得できないので、ステップS14へ進み、現在時刻をタイムスタンプに記録し、アプリ起動ログにフォアグラウンドアプリの名称「アプリA」を記録する(
図6の通番1)。
【0064】
その後、「アプリA」がログに記録されてからアプリBがフォアグラウンドで実行されるまでの間に、ログ取得部12が
図2の処理を開始した場合、ステップS11では「アプリA」がフォアグラウンドで実行されていることを検出し、ステップS12では「アプリA」がアプリ起動ログに記録された通番1のログを取得する。ステップS11,S12で取得したアプリケーションは共に「アプリA」となるので、ステップS15において、フォアグラウンドで実行中のアプリケーションとログに記録されたアプリケーションが一致すると判定されて、新たなログは記録されない。
【0065】
フォアグラウンドで実行されるアプリケーションがアプリAからアプリBに変更された後、ログ取得部12が
図2の処理を開始すると、ステップS11では「アプリB」がフォアグラウンドで実行されていることを検出し、ステップS12では「アプリA」がアプリ起動ログに記録された通番1のログを取得する。
【0066】
ステップS15において、ステップS11,S12で取得したアプリケーションが異なると判定され、ステップS16へ進む。ステップS16では、現在時刻をタイムスタンプに記録し、アプリ起動ログに「アプリB」を記録するとともに、アプリ終了ログに「アプリA」と記録し、現在時刻と前回記録したログのタイムスタンプとの差分をとって「アプリA」のアプリ利用時間ログを算出し、ログに記録する(
図6の通番2)。
【0067】
以上の処理を繰り返し、フォアグラウンドアプリが変化したタイミングでのみログを記録する。このとき、アプリケーションがフォアグラウンドで実行されている間の時間をそのアプリケーションの利用時間として算出する。
【0068】
その後、ユーザが表示装置2の電源をオフにすると、表示装置2から情報端末1へHDMI信号が送信されて、ログ取得部12は、
図3の処理を開始する。
【0069】
表示装置2の表示画面がオンからオフになり、情報端末1の画面が表示されていないので、ログ取得部12は処理をステップS25へ進める。ログ取得部12は、直前のログでアプリ起動ログに記録された「アプリA」をアプリ終了ログに記録し、現在時刻と直前のログのタイムスタンプとの差分をとって「アプリA」のアプリ利用時間ログを算出し、表示装置2の電源がオフになったことを示すHDMI信号ログを記録する(
図6の通番6)。
【0070】
その後、ユーザが表示装置2の電源をオンにすると、表示装置2から情報端末1へHDMI信号が送信されて、ログ取得部12は、
図3の処理を開始する。
【0071】
表示装置2の表示画面がオフからオンになり、情報端末1の画面が表示されているので、ログ取得部12は処理をステップS24へ進める。ログ取得部12は、「アプリA」がフォアグラウンドで実行されていることを検出し、現在時刻をタイムスタンプに記録し、アプリ起動ログに「アプリA」を記録するとともに、表示装置2の電源がオンになったことを示すHDMI信号ログを記録する(
図6の通番7)。
【0072】
以上のように蓄積されたログデータは、所定のタイミングでログデータ保持部122から読み出され、ログデータ送信部123によりログ管理DB3へ送信される。
【0073】
ログ管理DB3は、複数の情報端末1から受信したログを集計し、アプリケーション毎の利用時間を求め、求めた利用時間を人気指標としたアプリケーションのランキングを提供する。
【0074】
なお、本実施の形態では、情報端末1がアプリケーションの利用時間を算出しているが、情報端末1は、タイムスタンプとフォアグラウンドアプリのみを記載し、ログ管理DB3がログに基づいてアプリケーションの利用時間を算出してもよい。
【0075】
以上説明したように、本実施の形態によれば、表示装置2に接続され、アプリケーションをインストールして実行可能な情報端末1の備えるログ取得部12が、フォアグラウンドで実行されているアプリケーションの情報を取得し、HDMI信号を監視して表示装置2に情報端末1の画面が表示されているか否か検出し、アプリケーションがフォアグラウンドで実行されている時間から、表示装置2に情報端末1の画面が表示されていない時間を除いた時間をアプリケーションの利用時間として記録することにより、ユーザのアプリケーションの利用時間をより正確に取得することができる。その結果、アプリケーションの利用時間に基づく信頼度の高いランキングを提供できる。
【0076】
実行中のプロセスの全てについて、プロセスネームとプロセス順を取得してログに記録した場合、実行中のプロセスは数十から数百に及ぶためにログが莫大な量となってしまう。本実施の形態では、フォアグラウンドで実行中のアプリケーションの情報を取得し、フォアグラウンドアプリが変化したときのみログに記録するため、ログの量を大幅に削減することができる。また、情報端末1の画面が表示されていないときは、アプリケーションの利用時間としてカウントしないことで、より正確にアプリケーションの利用時間を計測できる。
【解決手段】表示装置2に接続され、アプリケーションをインストールして実行可能な情報端末1の備えるログ取得部12が、フォアグラウンドで実行されているアプリケーションの情報を取得し、HDMI(登録商標)信号を監視して表示装置2に情報端末1の画面が表示されているか否か検出し、アプリケーションがフォアグラウンドで実行されている時間から、表示装置2に情報端末1の画面が表示されていない時間を除いた時間をアプリケーションの利用時間として記録する。