(57)【要約】【課題】きめ細かく状態を監視することができる情報提示装置、システム、プログラム、および提示方法を提供する。【解決手段】実施形態の情報提示装置は、提示部と、管理部とを持つ。提示部は、ウェブコンテンツを取得して、取得した前記ウェブコンテンツを提示する。管理部は、前記提示部を監視するとともに、前記提示部の状態が、「正常」であるか、「異常」であるか、を少なくとも表す状態情報を取得する。【選択図】図２
2018136783.tif 000002
【特許請求の範囲】
【請求項１】
ウェブコンテンツを取得して、取得した前記ウェブコンテンツを提示する提示部と、
前記提示部を監視するとともに、前記提示部の状態が、「正常」であるか、「異常」であるか、を少なくとも表す状態情報を取得する管理部と、
を備える情報提示装置。
【請求項２】
前記管理部は、前記管理部と前記提示部との間の通信が切断された場合、または前記提示部からの要求に対して前記管理部が応答しない事象が所定時間継続した場合、または前記管理部からの要求に対して前記提示部が応答しない事象が所定時間継続した場合に、前記状態情報が「異常」であると判定する、
請求項１に記載の情報提示装置。
【請求項３】
前記管理部は、前記提示部のプロセスに関するプロセス情報を取得し、前記プロセスのうちの少なくとも１個のプロセスに関する前記プロセス情報が、予め定められた「異常」のパターンに対応する場合に、前記状態情報が「異常」であると判定する、
請求項１または２に記載の情報提示装置。
【請求項４】
前記予め定められた「異常」のパターンは、前記プロセス情報が含む前記ウェブコンテンツのタイトルの情報が予め定められた「異常」のパターンに一致する場合に該当する、
請求項３に記載の情報提示装置。
【請求項５】
前記管理部は、前記状態情報が「異常」を表す場合に、前記提示部の稼働中のプロセスを全部停止させてから、前記提示部を起動し直すことにより、前記提示部を復旧させる、
請求項１から４までのいずれか一項に記載の情報提示装置。
【請求項６】
前記管理部は、前記提示部の状態が「正常」または「異常」のいずれであるかがが不明である場合に、前記提示部の稼働中のプロセスを全部停止させてから、前記提示部を起動し直すことにより、前記提示部を復旧させる、
請求項１から５までのいずれか一項に記載の情報提示装置。
【請求項７】
前記管理部は、情報提示装置に接続されたディスプレイ装置の電源状態がオンまたはオフのいずれであるかを表す電源状態情報の取得を試み、電源状態情報を取得できない場合に、前記ディスプレイ装置が「異常」であると判定する、
請求項１から６までのいずれか一項に記載の情報提示装置。
【請求項８】
請求項１から７までのいずれか一項に記載の情報提示装置と、
前記情報提示装置に接続され、前記情報提示装置が備える提示部が提示する画像を表示するディスプレイ装置と、
前記提示部に前記ウェブコンテンツを配信するウェブサーバー装置と、
を備えるシステム。
【請求項９】
コンピューターを、
ウェブコンテンツを取得して、取得した前記ウェブコンテンツを提示する提示部と、
前記提示部を監視するとともに、前記提示部の状態が、「正常」であるか、「異常」であるか、あるいは「正常」または「異常」のいずれであるかがが「不明」であるか、を少なくとも表す状態情報を取得する管理部と、
を備える情報提示装置として機能させるためのプログラム。
【請求項１０】
ウェブコンテンツを取得して、取得した前記ウェブコンテンツを提示する提示過程と、
前記提示過程を監視するとともに、前記提示過程の状態が、「正常」であるか、「異常」であるか、を少なくとも表す状態情報を取得する管理過程と、
有する提示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報提示装置、システム、プログラム、および提示方法に関する。
【背景技術】
【０００２】
例えばＨＴＭＬ等のマークアップ言語を用いてコンテンツを記述し、ユーザーに対して提示する所謂ウェブシステムは、様々な形態で広く利用されている。ウェブシステムを用いるメリットの一つは、汎用的なブラウザーをクライアント側で稼働させておくことで、サーバー側から供給するコンテンツに様々な表現を持たせることができる点である。また、コンテンツの内部にスクリプト（コマンドの並びで表現されるプログラム）を含ませることにより、予め定めた手順をコンピューターに実行させることも可能である。
【０００３】
そして、ウェブシステムにおいても、起こりえる障害等の早期検出と安定的な運用のために、システムを監視する技術が用いられる。
【０００４】
従来技術では、ＴＣＰやＨＴＴＰなどといったプロトコルにおいて、通信接続が有効に維持されていることの確認を行うための一手法として、キープアライブ通信が用いられている。これは、相互に接続される通信主体間で、「アライブ」（alive）状態であることを示すメッセージを定期的に相手方に向けて送信するものである。この手法では、相手方から所定の時間内にメッセージが到着しない場合に、何らかの異常が起こっている可能性を検知することができる。
また、従来技術では、前記のウェブシステムにおいても、クライアント（ウェブブラウザー）からサーバーに対して定期的にメッセージを送信する手法が取り入れられている場合がある。その場合、クライアント側からのメッセージをサーバー側で監視することにより、サーバー側は、通信障害が起こったり、クライアントが通信接続から離脱したりといった事象の可能性を検知する。
【０００５】
また、コンピューター上で稼働するプロセスを監視するために、コンピューターのオペレーティングシステムが管理するプロセスのリストを参照することも行われる。また、オペレーティングシステムに対してプロセスから発行されるコマンドの履歴のパターンに基づいて、プロセスを監視する技術も存在する。
【０００６】
一例として、ディスプレイ装置で情報を提示するシステムが、無人で、あるいは遠隔地からの監視により稼働することが望まれる場合も多い。その場合、ディスプレイ装置はユーザーによって見られるのみであり、そのディスプレイ装置や、そのディスプレイ装置に接続されたコンピューター等を操作する操作者は、少なくともそのディスプレイ装置の近傍には存在しないことが想定される。このような形態のシステムにおいて、単にコンピューター（クライアント）がサーバーとの通信を維持しているか否かといったことだけでなく、よりきめ細かくシステムの状態を監視できることが望まれる。ここで、システムの状態とは、より具体的には、コンテンツ（プログラム）が正常に稼働しているか、あるいは異常が発生しているか、などといったことである。
【０００７】
特に、ウェブの技術を用いて情報提示のシステムを構築する場合には、前述の通り多様なコンテンツの表現を実現することが可能である。しかし一方では、単純な画像や単純な音声のみを提示する場合に比べて、相対的にプログラム（スクリプト）等の障害が発生する頻度が高いことも事実である。つまり、基本的に無人で運用されるウェブシステムにおいて、システムの状態監視をきめ細かく行うことは、特に強く求められる。
【０００８】
また、システムで何らかの障害が検知されたとき、そのシステムが自動的に復旧することも、望まれる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−１０８６５８号公報
【特許文献２】特開２０１６−０１２２０８号公報
【非特許文献】
【００１０】
【非特許文献１】Robert Braden（Editor），"4.2.3.6 TCP Keep-Alives"，"Requirements for Internet Hosts -- Communication Layers"，［online］，October 1989，Network Working Group，Internet Engineering Task Force，Request for Comments: 1122，Pages 101-102，［平成 29 年（西暦2017年）1月10日検索］，インターネット＜URL：https://tools.ietf.org/html/rfc1122#page-101＞
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする課題は、きめ細かく状態を監視することができる情報提示装置、システム、プログラム、および提示方法を提供することである。
【課題を解決するための手段】
【００１２】
実施形態の情報提示装置は、提示部と、管理部とを持つ。提示部は、ウェブコンテンツを取得して、取得した前記ウェブコンテンツを提示する。管理部は、前記提示部を監視するとともに、前記提示部の状態が、「正常」であるか、「異常」であるか、を少なくとも表す状態情報を取得する。
【図面の簡単な説明】
【００１３】
【図１】実施形態のシステム（デジタルサイネージシステム）の構成例を示す概略図。
【図２】実施形態のコンピューター２００およびウェブサーバー装置４００の、それぞれの概略機能構成を示すブロック図。
【図３】実施形態のコンピューター２００とウェブサーバー装置４００とが協調して動作する処理のシーケンスを示す概略図。
【図４】実施形態のブラウザー制御処理部２２３がブラウザー２１０の監視を行う処理の手順を示すフローチャート。
【図５】実施形態においてブラウザーの状態を判定する処理のより詳細な手順を示すフローチャート。
【図６】実施形態のコンピューター２００の内部におけるローカル接続の状態の遷移を示す状態遷移図。
【発明を実施するための形態】
【００１４】
以下、実施形態の情報提示装置、システム、プログラム、および提示方法を、図面を参照して説明する。
【００１５】
図１は、本実施形態によるシステムの構成例を示す概略図である。同図に示すシステム１は、典型的には、ウェブブラウザー（Ｗｅｂブラウザー）を利用したデジタルサイネージシステムとして機能する。図示するように、システム１は、ディスプレイ装置１００と、コンピューター２００（情報提示装置）と、ネットワーク３００と、ウェブサーバー装置４００と、管理用ＰＣ・６００と、を含んで構成される。
なお、システム１は、デジタルサイネージシステムであることには限定されない。コンテンツを提示するための任意のシステムに本実施形態を適用してよい。
【００１６】
ディスプレイ装置１００は、コンピューター２００から出力される画像や映像を表示する機能を有する。ディスプレイ装置１００は、例えば、液晶パネルや、有機ＥＬや、陰極線管などを用いて実現される。ディスプレイ装置１００は、縦方向および横方向に多数配置された画素の並びを１枚の画像として表示する。また、ディスプレイ装置１００は、動画（映像）を表示することもできる。」
【００１７】
コンピューター２００は、ディスプレイ装置１００にコンテンツを表示させる機能を有する。コンピューター２００の具体的な形態は任意である。コンピューター２００は、具体的には、パソコン（パーソナルコンピューター，ＰＣ）、携帯電話、スマホ（スマートフォン）、タブレットなどといった機器である。コンピューター２００は、ＣＰＵ（中央処理装置）を備えており、このＣＰＵによってプログラムを走らせることができる。後述するブラウザーや管理エージェントといった機能は、プログラムとして記述され、コンピューター２００のＣＰＵで実行される。
【００１８】
なお、例えばスマホやタブレット端末やタブレットＰＣなどといった機器のように、コンピューター２００とディスプレイ装置１００とは、一体の装置として構成されていてもよい。また、コンピューター２００とディスプレイ装置１００とは、別体の装置として構成されていてもよい。コンピューター２００は、例えば、セットトップボックス（ＳＴＢ）の形態であってもよい。
【００１９】
ネットワーク３００は、情報機器間でのデータ通信を可能とする通信手段である。ネットワークに接続された機器同士は、ネットワーク３００を経由して相互にデータを送信したり受信したりすることができる。ネットワーク３００においては、例えばＩＰ（インターネットプロトコル）などといった通信規約に基づいた通信が行われる。ネットワーク３００は、有線（銅線や、光ケーブルなど）の通信手段で実現されてもよいし、無線（電波など）の通信手段で実現されてもよいし、有線と無線とを組み合わせて実現されてもよい。図示する構成例では、ネットワーク３００は、コンピューター２００とウェブサーバー装置４００と管理用ＰＣ・６００とに接続されている。
【００２０】
ウェブサーバー装置４００は、コンテンツを管理し、コンピューター２００からの要求に応じて、コンテンツをコンピューター２００に配信する。また、ウェブサーバー装置４００は、コンピューター２００上で稼働する機能の動きと状態を管理する。
【００２１】
なお、本実施形態において、コンテンツの種類は問われない。コンテンツは、画像／映像や、音声や、テキストなどを表現するためのデータである。一部のコンテンツは、例えば、ＨＴＭＬ（ハイパーテキストマークアップ言語）で記述される。ＨＴＭＬコンテンツは、内部にプログラム（例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述されたスクリプト）を含む場合もある。
なお、コンテンツがＨＴＭＬ以外で記述されてもよい。また、コンテンツは、プレーンテキストや、画像（例えば、ＪＰＥＧファイルや、ＰＮＧファイルなど）や、映像（動画）や、音声であってもよい。
【００２２】
管理用ＰＣ・６００は、ディスプレイ装置１００に表示するコンテンツに関するコンテンツ情報を定義したり、維持したりするためのパーソナルコンピューターである。コンテンツ情報は、コンテンツそのもの（ＨＴＭＬ等で記述）や、コンテンツの動作や、コンテンツの動作条件や、表示開始日時や、表示終了日時などといった項目を含む情報である。
【００２３】
図示するシステム１において、コンピューター２００は、ネットワーク３００を経由して、ウェブサーバー装置４００に接続することができる。また、管理用ＰＣ・６００も、ネットワーク３００を経由して、ウェブサーバー装置４００に接続することができる。
【００２４】
図２は、コンピューター２００と、ウェブサーバー装置４００の、それぞれの概略機能構成を示すブロック図である。
まず、コンピューター２００の機能構成について説明する。コンピューター２００は、ブラウザー２１０（提示部）と、管理エージェント２２０（管理部）と、の機能を含んで構成される。
【００２５】
ブラウザー２１０は、ＨＴＭＬで記述されたコンテンツを解釈し、そのコンテンツを画面に表示する機能を有する。また、ＨＴＭＬコンテンツにはスクリプトを含めることができる。スクリプトは、例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）で記述される。ブラウザー２１０は、ＨＴＭＬコンテンツ内に記述されたスクリプトを実行する機能を有する。典型的には、ブラウザー２１０は、ソフトウェアで実現される。なお、「ブラウザー」は、「ウェブブラウザー」とも呼ばれる。
つまり、ブラウザー２１０は、ウェブコンテンツを取得して、取得したウェブコンテンツを提示するものである。ここで、ウェブコンテンツは、ＨＴＭＬデータ（内部にスクリプトを含んでもよい）、画像データ、映像（動画）データ、音声データ、テキストデータ等という形態を取り得る。ウェブコンテンツにおいては、画像や映像や音声やテキストが、必要に応じて適宜レイアウトされる。このレイアウトを規定するデータがＨＴＭＬによる記述であっても良い。
【００２６】
管理エージェント２２０は、コンピューター２００およびブラウザー２１０の動作を管理する機能を有する。具体的には、管理エージェント２２０は、ブラウザー２１０を起動し、その起動後にはブラウザー２１０が正常に動作しているか否かを監視する。ブラウザー２１０に異常が発生した場合は、管理エージェント２２０は、ブラウザー２１０の復旧を行う。具体的には、管理エージェント２２０は、異常が発生したブラウザー２１０を終了させ、そしてブラウザー２１０を再起動することで、ブラウザー２１０の復旧を行う。
つまり、管理エージェント２２０は、ブラウザー２１０を監視するとともに、ブラウザー２１０の状態が、「正常」であるか、「異常」であるか、を少なくとも表す状態情報を取得する。つまり、管理エージェント２２０は、ブラウザー２１０を管理するとともに、監視する。なお、ブラウザー２１０の状態情報は、他の状態を含んでもよい。他の状態とは、例えば、「不明」、「接続中」などである。
【００２７】
また、管理エージェント２２０は、管理エージェント２２０とブラウザー２１０との間の通信（ローカル接続）が切断された場合、または管理エージェント２２０からの要求に対してブラウザー２１０が応答しない事象が所定時間継続した場合に、ブラウザー２１０の状態情報が「異常」であると判定する。
また、管理エージェント２２０は、ブラウザー２１０のプロセスに関するプロセス情報を取得し、プロセスのうちの少なくとも１個のプロセスに関するプロセス情報が、予め定められた「異常」のパターンに対応する場合に、状態情報が「異常」であると判定する。
ここで、予め定められた「異常」のパターンは、プロセス情報が含むウェブコンテンツのタイトルの情報が、予め定められた「異常」のパターンに一致する場合に該当する。例えば、ＨＴＭＬに含まれるスクリプトが、自スクリプトの実行において異常事象が生じたとき、当該ＨＴＭＬコンテンツのタイトルを所定のパターンの文字列に設定する。これにより、管理エージェント２２０は、状態情報が「異常」であると判定できる。
【００２８】
また、管理エージェント２２０は、ネットワーク３００を経由してウェブサーバー装置４００に接続し、ブラウザー２１０の状態に関する情報をウェブサーバー装置４００に送信する。
【００２９】
図示するように、管理エージェント２２０は、ローカル接続処理部２２１と、管理接続処理部２２２と、ブラウザー制御処理部２２３と、管理エージェント制御処理部２２４と、タイマー処理部２２５と、を含んで構成される。典型的には、管理エージェント２２０は、ソフトウェアで実現される。管理エージェント２２０を構成する各部の機能は、次の通りである。
【００３０】
ローカル接続処理部２２１は、ブラウザー２１０と管理エージェント２２０との間のコンピューター２００内におけるローカルな接続を行う。
管理接続処理部２２２は、管理エージェント２２０と、ウェブサーバー装置４００のエージェント管理部４３０との間の通信接続に関する処理を行う。
ブラウザー制御処理部２２３は、ブラウザー２１０の動きを制御する。つまり、ブラウザー制御処理部２２３は、ブラウザー２１０を監視したり、異常等が発生した場合にはブラウザー２１０を復旧させたりする。
管理エージェント制御処理部２２４は、管理エージェント２２０全体の動きを制御する。
タイマー処理部２２５は、管理エージェント２２０が様々な管理を行う上で所定の時間が経過したときに必要となるトリガーを与えるものである。タイマー処理部２２５は、他の機能部から呼び出されることによって、所定時間のタイマーとして機能する。一例として、通信の相手方からの応答を待つとき、タイマー処理部２２５は、指定されたタイムアウト時間が経過した時点でその旨を呼び出し元に通知する。また、一例として、定期的な処理をくり返し行いたい場合、タイマー処理部２２５は、指定された時間が経過する毎に、呼び出し元が指定した処理を行う。
【００３１】
ブラウザー２１０と管理エージェント２２０の機能および動作について、さらに詳細に説明する。
【００３２】
ブラウザー２１０は、管理エージェント２２０のブラウザー制御処理部２２３によって起動される。なお、起動時のパラメーター等の指定により、ブラウザー２１０の起動後に、ブラウザー２１０がウェブサーバー装置４００からプレーヤー２１１を取得する。プレーヤー２１１は、ＨＴＭＬで記述されたＨＴＭＬコンテンツの一つである。前述の通り、ＨＴＭＬコンテンツは実行可能なスクリプトを含むことができる。ブラウザー２１０上でプレーヤー２１１が起動すると、プレーヤー２１１は、ウェブサーバー装置４００に接続し、ウェブサーバー装置４００からの指示を待ち受ける。また、ブラウザー２１０は、ウェブサーバー装置４００からの指示に応じて、コンテンツデータ２１２を取得し、そのコンテンツデータ２１２を解釈し、そのコンテンツをディスプレイ装置１００に表示させる。
【００３３】
プレーヤー２１１は、ウェブサーバー装置４００からの制御下で動作する。そして、プレーヤー２１１は、ウェブサーバー装置４００から取得するコンテンツを、制御されたタイミングでディスプレイ装置１００に表示させる。なお、表示等は、ブラウザー２１０の機能により行われる。
【００３４】
コンテンツデータ２１２は、ブラウザー２１０がユーザーに対して提示するコンテンツを含むデータである。
【００３５】
次に、ウェブサーバー装置４００の機能構成について説明する。図示するように、ウェブサーバー装置４００は、プレーヤー管理部４１０と、コンテンツ管理部４２０と、エージェント管理部４３０と、を含んで構成される。
【００３６】
プレーヤー管理部４１０は、ウェブサーバー装置４００とコンピューター２００上のプレーヤー２１１との間の通信接続を管理する。
コンテンツ管理部４２０は、コンピューター２００側からの管理に基づいて、プレーヤー２１１やコンテンツデータ２１２を配信する。プレーヤー２１１やコンテンツデータ２１２は、ＨＴＭＬで記述され、必要に応じて画像や音声等のデータを伴うものである。プレーヤー２１１やコンテンツデータ２１２は、配信先であるコンピューター２００上のブラウザー２１０によって解釈・実行されるものである。
エージェント管理部４３０は、ウェブサーバー装置４００とコンピューター２００上の管理エージェント２２０との間の通信接続を管理する。
【００３７】
次に、処理の手順および流れについて説明する。
図３は、コンピューター２００とウェブサーバー装置４００とが協調して動作する処理のシーケンスを示す概略図である。以下、このシーケンスに沿って説明する。
管理エージェント制御処理部２２４がブラウザー２１０を起動するまでのフローを示す。
【００３８】
ステップＳ０１０において、管理エージェント２２０の管理エージェント制御処理部２２４は、管理接続を開始する。具体的には、管理エージェント制御処理部２２４は、管理接続処理部２２２を呼び出す。
ステップＳ０１１において、管理エージェント２２０とウェブサーバー装置４００との間でネットワーク接続を確立する。具体的には、ステップＳ０１０で起動された管理接続処理部２２２が、ウェブサーバー装置４００のエージェント管理部４３０に接続を要求し、両者間での接続を確立させる。
【００３９】
ステップＳ０２０において、管理エージェント制御処理部２２４は、ローカル接続を開始する。具体的には、管理エージェント制御処理部２２４が、ローカル接続処理部２２１を呼び出す。
ステップＳ０２１において、ステップＳ０２０において呼び出されたローカル接続処理部２２１が、ポートをリッスン（listen）し始める。これにより、ローカル接続処理部２２１が、ブラウザー２１０からの通信接続を待ち受ける状態となる。ローカル接続処理部２２１がポートをリッスンしている状態において、ブラウザー２１０は、そのポートに接続を要求することができるようになる。
【００４０】
ステップＳ０３０において、管理エージェント制御処理部２２４が、ブラウザー起動処理を開始する。具体的には、管理エージェント制御処理部２２４が、まず、ブラウザー制御処理部２２３を呼び出す。
ステップＳ０３１において、ブラウザー制御処理部２２３が、ブラウザー２１０を起動する。このとき、ブラウザー制御処理部２２３は、ブラウザー２１０がプレーヤー２１１のＨＴＭＬファイルを取得するよう、プレーヤー２１１のＵＲＬ（ユニフォーム・リソース・ロケーター）をパラメーターとして指定する。例えば、ブラウザー２１０の実行ファイルのパス名が「file://program_files/browser.exe」であり、ウェブサーバー装置４００が保持するプレーヤー２１１のＨＴＭＬファイルのＵＲＬが「http://23.34.45.56/player.html」であるとき、ブラウザー制御処理部２２３は、「file://program_files/browser.exe http://23.34.45.56/player.html」という命令を実行する。
【００４１】
ステップＳ０３２において、ブラウザー２１０は、自身の起動時のパラメーターとして指定されたＵＲＬを用いて、ウェブサーバー装置４００のコンテンツ管理部４２０にプレーヤー２１１のＨＴＭＬファイルを要求する。
ステップＳ０３３において、コンテンツ管理部４２０は、ブラウザー２１０からの要求に基づいて、プレーヤー２１１のＨＴＭＬファイルをブラウザー２１０に返す。
ステップＳ０３４において、ブラウザー２１０は、プレーヤー２１１を表示する。プレーヤー２１１のＨＴＭＬファイルにはプレーヤー２１１の機能を実現するためのスクリプトが含まれている。例えば、ブラウザー２１０の解釈実行系がそのスクリプトを実行することにより、以下の処理手順におけるプレーヤー２１１の機能が動作する。
【００４２】
ステップＳ０３５において、プレーヤー２１１とウェブサーバー装置４００のプレーヤー管理部４１０との間での通信接続が確立する。具体的には、プレーヤー２１１が、プレーヤー管理部４１０にネットワーク経由で接続する。
ステップＳ０３６において、プレーヤー２１１とローカル接続処理部２２１との間でのローカル接続が確立する。ローカル接続処理部２２１は既にリッスンを開始した状態であったため、プレーヤー２１１が、ローカル接続処理部２２１にネットワーク接続する。
【００４３】
ステップＳ０３７において、プレーヤー管理部４１０は、プレーヤー２１１に対してコンテンツの取得を指示する。このときプレーヤー管理部４１０が送信するコンテンツ取得指示は、プレーヤー２１１が取得すべきコンテンツのＵＲＬを含む。また、このコンテンツ取得指示は、予め管理用ＰＣ・６００において定義された情報を持つものである。つまり、上記のコンテンツ取得指示に関して、プレーヤー管理部４１０がプレーヤー２１１に対して、コンテンツ取得指示を送る時刻（指示時刻）や、プレーヤー２１１がそのコンテンツを表示する時刻（表示時刻）が、予め管理用ＰＣ・６００で定義される。また、プレーヤー２１１が取得すべきコンテンツを特定する情報（例えば、コンテンツのファイルのＵＲＬ）もまた、予め管理用ＰＣ・６００で定義される。
【００４４】
ステップＳ０３８において、プレーヤー２１１は、ウェブサーバー装置４００のコンテンツ管理部４２０から、コンテンツを取得する。具体的には、プレーヤー２１１は、プレーヤー管理部４１０側からステップＳ０３７において指示された情報（コンテンツを特定する情報）に基づいて、コンテンツ管理部４２０にコンテンツを要求する。そして、コンテンツ管理部４２０は、要求されたコンテンツをプレーヤー２１１に返す。
ステップＳ０３９において、プレーヤー２１１は、ステップＳ０３７において指示された情報（表示時刻）に基づき、ステップＳ０３８で取得したコンテンツを、ブラウザー画面の出力として、表示する。
【００４５】
ステップＳ０４０において、管理エージェント制御処理部２２４は、タイマー処理を開始する。具体的には、管理エージェント制御処理部２２４がタイマー処理部２２５を起動することにより、管理エージェント２２０が定期的にブラウザー２１０の状態を確認するように設定する。
ステップＳ０４１において、タイマー処理部２２５が、タイマーの満了をトリガーとして、ブラウザー制御処理部２２３を呼び出し、ブラウザー２１０の監視を行う。つまり、タイマー処理部２２５が、定期的に（タイマーの設定時間ごとに）ブラウザー制御処理部２２３を呼び出す。ブラウザー制御処理部２２３は、ブラウザー２１０を監視することにより、そのときのブラウザーの状態が正常状態であるか異常状態であるかを判定する。異常があった場合には、ブラウザー制御処理部２２３が、ブラウザー２１０の復旧処理を行う。
【００４６】
図４は、ブラウザー制御処理部２２３がブラウザー２１０の監視を行う処理の手順を示すフローチャートである。このフローチャートが示す処理は、図３のステップＳ０４１に示した、ブラウザー２１０を監視する処理である。以下、このフローチャートに沿って、処理手順を説明する。
【００４７】
ステップＳ１０１において、ブラウザー制御処理部２２３は、ブラウザーの状態を判定する。ブラウザー制御処理部２２３は、ブラウザー状態が明らかであるか不明であるかを判定し、また、ブラウザー状態が明らかである場合にはその状態が、「正常」、「接続中」、「異常」のいずれであるかを判定する。
なお、ブラウザー状態の判定方法の詳細については後で図５を参照しながら説明する。
【００４８】
ステップＳ１０２において、ブラウザー制御処理部２２３は、ステップＳ１０１での判定結果に基づく条件分岐を行う。ブラウザー状態が正常で、且つローカル接続状態が維持されている場合（ステップＳ１０２：ＹＥＳ）には、ブラウザー２１０をそのまま稼働させつづければ良いため、本フローチャート全体の処理（ブラウザー監視処理）を終了する。その他の場合（ステップＳ１０２：ＮＯ）には、次のステップＳ１０３に進む。
なお、上記のローカル接続状態の維持については、後で図６を参照しながら説明する。
【００４９】
ステップＳ１０３において、ブラウザー制御処理部２２３は、ステップＳ１０１での判定結果に基づく条件分岐をさらに行う。
ブラウザー状態が明らかで且つブラウザー状態が「正常」または「接続中」の場合（ステップＳ１０３：ＹＥＳ）には、ブラウザー２１０をそのまま稼働させ続ければ良いため、本フローチャート全体の処理（ブラウザー監視処理）を終了する。その他の場合（ステップＳ１０３：ＮＯ）には、次のステップＳ１０４に進む。
【００５０】
ステップＳ１０３までの判定の処理の結果、ステップＳ１０４に進むのは、ブラウザー状態が不明である場合、および、ブラウザー状態が明らかで且つブラウザー状態が「異常」である場合である。
ステップＳ１０４において、ブラウザー制御処理部２２３は、ブラウザープロセスをすべて停止させる。ブラウザーは、複数のプロセス（オペレーティングシステムによって管理される処理の単位）が協調して動作することにより全体として必要な機能を実現するように構成されている場合がある。本ステップでの処理は、それらのプロセスを一旦すべて終了させるものである。
ステップＳ１０５において、ブラウザー制御処理部２２３は、ブラウザーを起動する。ブラウザーの起動方法は、ステップＳ０３１（図３）における起動方法と同様である。
【００５１】
図５は、ブラウザー状態を判定する処理の詳細な手順を示すフローチャートである。この判定処理は、ステップＳ１０１（図４）において説明した処理である。
【００５２】
なお、管理エージェント２２０は、ブラウザーの状態を内部のメモリーに保持することができる。前述の通り、ブラウザー状態は、「正常」、「異常」、「接続中」、「不明」のいずれかに分類される。ブラウザー状態が明らかであるとき、状態は、「正常」、「異常」、「接続中」のいずれかである。
【００５３】
また、ブラウザー状態を判定するため、ブラウザー制御処理部２２３は、コンピューター２００のオペレーティングシステムが管理するブラウザー２１０のプロセスの情報を参照する。このプロセスの情報は、プロセスに対応するプログラムの名称の情報を含む。例えば、ブラウザー２１０の機能を実現するプログラムの実行形式ファイルの名称が「mybrowser.exe」である場合、プロセスの情報はこの名称の情報を含んでいる。したがって、ブラウザー制御処理部２２３は、多数のプロセスの中から特定のブラウザーのプロセスを絞り込んで、それらのプロセスの情報をオペレーティングシステムから取得することができる。ブラウザー２１０の機能は、１個のプロセスで構成される場合もあり、複数個のプロセスで構成される場合もある。複数個のプロセスで構成される場合、それらのプロセスのうちのいずれかが、その時点においてブラウザー２１０が提示しているコンテンツのタイトルの情報を属性として有する。下に説明する処理では、コンテンツのタイトルの情報に基づいて、ブラウザーの状態を取得する。
【００５４】
コンテンツのタイトルは、例えば、ＨＴＭＬファイルのヘッダー部分に含まれる「ＴＩＴＬＥ」タグで指定される場合がある。また例えば、ＨＴＭＬコンテンツのファイルに含まれるスクリプトが所定の命令を実行することにより、そのコンテンツのタイトルを設定することもできる。つまり、コンテンツのタイトルが、そのコンテンツ（プログラム）の現在の状態（即ち、ブラウザー状態）を表すように、コンテンツを制作しておく。コンテンツ状態は、例えば、「正常タイトル」、「接続中タイトル」、「異常タイトル」の３種類のタイトルによって区別される。
なお、コンテンツ状態に対応するタイトルの種類は、上記のものに限定されない。また、状態の種類数も３つに限定されない。
【００５５】
また、コンテンツのタイトルを有するプロセスが何らかの理由で存在しない場合（例えば、処理のエラーによりプロセスが消失した場合など）、管理エージェント２２０は、ブラウザー状態が「不明」であると判定する。下のフローチャートで示す処理では、そのような判定が行われる。
【００５６】
以下、このフローチャートに沿って説明する。
ステップＳ２０１において、ブラウザー制御処理部２２３は、コンピューター２００で稼働中のプロセスの一覧を検査し、ブラウザープロセスが１つ以上存在するか否かを判定する。ブラウザープロセスが１つ以上存在する場合（ステップＳ２０１：ＹＥＳ）には、ステップＳ２０３に進む。その他の場合、即ちブラウザープロセスが１つも存在しない場合（ステップＳ２０１：ＮＯ）には、ステップＳ２０２に進む。
ステップＳ２０２においては、ブラウザー制御処理部２２３は、ブラウザー状態を「異常」に設定する。そして、本フローチャート全体の処理（ブラウザー状態の判定処理）を終了する。
【００５７】
ステップＳ２０３において、ブラウザー制御処理部２２３は、ブラウザー状態を「不明」に初期設定する。ステップＳ２０４以後の処理においてブラウザー状態が「正常」、「接続中」、「異常」のいずれにも設定されなかった場合、最終的に、ブラウザー状態はここで設定される「不明」となる。
【００５８】
ステップＳ２０４からＳ２１１までの処理は、繰り返し処理である。ブラウザー制御処理部２２３は、これらのステップの処理を、ブラウザープロセスごとに繰り返して実行する。ただし、条件分岐によってこの繰り返しのループを途中で抜ける場合もある。
【００５９】
ステップＳ２０５において、ブラウザー制御処理部２２３は、ブラウザーのタイトルが正常タイトルと一致するか否かを判定する。その時点でのそのブラウザープロセスに関するタイトルの情報が正常タイトルと一致する場合（ステップＳ２０５：ＹＥＳ）には、ステップＳ２０６に進む。その他の場合、即ちその時点でのそのブラウザープロセスに関するタイトルの情報が正常タイトルと一致しない場合（ステップＳ２０５：ＮＯ）には、ステップＳ２０７に進む。
ステップＳ２０６においては、ブラウザー制御処理部２２３は、ブラウザー状態を「正常」に設定する。そして、本フローチャート全体の処理を終了する。
【００６０】
ステップＳ２０７において、ブラウザー制御処理部２２３は、ブラウザーのタイトルが接続中タイトルと一致するか否かを判定する。その時点でのそのブラウザープロセスに関するタイトルの情報が接続中タイトルと一致する場合（ステップＳ２０７：ＹＥＳ）には、ステップＳ２０８に進む。その他の場合、即ちその時点でのそのブラウザープロセスに関するタイトルの情報が接続中タイトルと一致しない場合（ステップＳ２０７：ＮＯ）には、ステップＳ２０９に進む。
ステップＳ２０８においては、ブラウザー制御処理部２２３は、ブラウザー状態を「接続中」に設定する。そして、本フローチャート全体の処理を終了する。
【００６１】
ステップＳ２０９において、ブラウザー制御処理部２２３は、ブラウザーのタイトルが異常タイトルと一致するか否かを判定する。その時点でのそのブラウザープロセスに関するタイトルの情報が異常タイトルと一致する場合（ステップＳ２０９：ＹＥＳ）には、ステップＳ２１０に進む。その他の場合、即ちその時点でのそのブラウザープロセスに関するタイトルの情報が異常タイトルと一致しない場合（ステップＳ２０９：ＮＯ）には、ステップＳ２１１に進む。
ステップＳ２１０においては、ブラウザー制御処理部２２３は、ブラウザー状態を「異常」に設定する。そして、本フローチャート全体の処理を終了する。
【００６２】
ステップＳ２１１は、ステップＳ２０４からＳ２１１までの繰り返しのループの終了点である。
ステップＳ２１１に制御が移った場合には、ブラウザー制御処理部２２３は、次のブラウザープロセスがある場合には、そのブラウザープロセスに関する処理を行うために、制御をステップＳ２０４に戻す。
ステップＳ２１１に制御が移ったときに、既にすべてのブラウザープロセスの処理が終了している場合には、ブラウザー制御処理部２２３は、本フローチャート全体の処理を終了する。
【００６３】
以上のように、図５に示した処理によれば、管理エージェント２２０のブラウザー制御処理部２２３は、ブラウザーのプロセスが有するタイトル（コンテンツのタイトル）の情報をオペレーティングシステム経由で取得することにより、ブラウザー状態を把握する。
【００６４】
図６は、ローカル接続の状態の遷移を示す状態遷移図である。ローカル接続の状態を判定する処理は、ステップＳ１０２（図４）において説明した処理である。
その前提として、ステップＳ０３６（図２）で説明したように、プレーヤー２１１は、ローカル接続処理部２２１との接続を確立する。プレーヤー２１１とローカル接続処理部２２１との間の接続確立後は、プレーヤー２１１は、ローカル接続処理部２２１に対して定期的に生死確認要求を送信し、それに応じてローカル接続処理部２２１からの生死確認応答を受信する。また、ローカル接続処理部２２１は、プレーヤー２１１との間の無通信状態が一定時間継続したと認識した場合には、プレーヤー２１１に対して生死確認要求を送信し、プレーヤー２１１からの生死確認応答を受信する。なお、生死確認要求の電文を「pingメッセージ」と呼び、生死確認応答の電文を「pongメッセージ」と呼ぶ。
一定時間以内に応答がない場合、タイムアウトしてリトライする。タイムアウト回数がタイムアウト上限回数を超過した場合には、ローカル接続処理部２２１は、ブラウザー２１０がフリーズした（応答しなくなった）と判定して、接続を切断する。
【００６５】
また、この状態遷移の過程において、タイムアウト回数がカウントされる。管理エージェント２２０は、その時点でのタイムアウト回数を一時的に格納するためのメモリーを含んでいる。
また、状態遷移の過程で、タイマー処理部２２５の機能が使用される。
タイマー処理部２２５は、予め指定された時間が満了したときに、満了（タイムアウト）した旨を通知する。図６におけるＴＯ１やＴＯ２は、タイマーの種類に対応する。そして、タイマーの種類ごとに、所定のタイムアウトの長さが定められている。なお、タイムアウトの長さは、例えば「秒」単位の数値として、予め設定しておくようにする。
そして、プレーヤー２１１とローカル接続処理部２２１との間での、双方からの生死確認要求及び生死確認応答のやりとりにより、ローカル接続の維持の状態が判定可能である。
【００６６】
つまり、管理エージェント２２０は、下記のいずれか（少なくとも１つ）の場合に、状態情報が「異常」であると判定する。
ａ）管理エージェント２２０とブラウザー２１０との間の通信が切断された場合、
ｂ）管理エージェント２２０からの要求に対してブラウザー２１０が応答しない事象が所定時間継続した場合。
なお、管理エージェント２２０とブラウザー２１０との間の通信が切断される原因は、ブラウザー２１０のフリーズや、ブラウザー２１０側からの切断や、その他の異常などである。
【００６７】
以下、図６の状態遷移図に沿って説明する。
【００６８】
［状態Ｓ３０１］
ローカル接続状態を監視する処理が開始されると、まず状態Ｓ３０１に遷移する。
状態Ｓ３０１において、ローカル接続処理部２２１は、タイマーをセットする。ここでは、ローカル接続処理部２２１は、タイムアウトＴＯ１をセットする。タイムアウトＴＯ１の具体的な時間の長さは適宜設定される。
Ｓ３０１の状態においてＴＯ１がタイムアウトする前にローカル接続処理部２２１が何らかのメッセージを受信したときには、状態Ｓ３０２に遷移する。
Ｓ３０１の状態においてＴＯ１がタイムアウトしたときには、状態Ｓ３０３に遷移する。
【００６９】
［状態Ｓ３０２］
状態Ｓ３０２において、ローカル接続処理部２２１は、タイムアウト回数を０に設定（リセット）する。また、ローカル接続処理部２２１は、タイムアウトＴＯ２を停止（キャンセル）させる。これにより、タイムアウトＴＯ２はタイムアウトしなくなる。
状態Ｓ３０２におけるこれらの処理の終了後には、状態Ｓ３０１に遷移する。
【００７０】
［状態Ｓ３０３］
状態Ｓ３０３において、ローカル接続処理部２２１は、プレーヤー２１１に対してpingメッセージを送信するとともに、タイムアウトＴＯ２をセットする。
状態Ｓ３０３においてＴＯ２がタイムアウトする前にローカル接続処理部２２１がpongメッセージを受信すると、状態Ｓ３０２に遷移する。
状態Ｓ３０３においてＴＯ２がタイムアウトすると、状態Ｓ３０４に遷移する。
【００７１】
［状態Ｓ３０４］
状態Ｓ３０４において、ローカル接続処理部２２１は、タイムアウト回数に１を加算する。
状態Ｓ３０４の上記の処理の終了後には、状態Ｓ３０５に遷移する。
【００７２】
［状態Ｓ３０５］
状態Ｓ３０５において、ローカル接続処理部２２１は、タイムアウト回数が上限に達しているか否かを判定し、その判定結果に応じて状態の遷移先を変える。
具体的には、（タイムアウト回数≦タイムアウト上限）ならば、状態Ｓ３０３に遷移する。
そして、（タイムアウト回数＞タイムアウト上限）ならば、状態Ｓ３０６に遷移する。
【００７３】
［状態Ｓ３０６］
状態Ｓ３０６において、ローカル接続処理部２２１は、プレーヤー２１１との間の接続を切断する。
状態Ｓ３０６の上記の処理の終了後には、終了状態に遷移し、本状態遷移図が示す全体の処理を終了する。
【００７４】
ここで、システムの復旧処理についてまとめると、次の通りである。
管理エージェント２２０は、状態情報が「異常」を表す場合に、ブラウザー２１０の稼働中のプロセスを全部停止させてから、ブラウザー２１０を起動し直すことにより、ブラウザー２１０を復旧させる。図５で説明した通り、状態情報が「異常」を示すのは、ブラウザープロセスが１つも存在しない場合（図５のステップＳ２０１：ＮＯ）や、ブラウザープロセスのいずれか１個についてブラウザーのタイトルが異常タイトルと一致することが検知された場合（図５のステップＳ２０９：ＹＥＳ）である。
また、管理エージェント２２０は、ブラウザー２１０の状態が「正常」または「異常」のいずれであるかがが不明である場合に、ブラウザー２１０の稼働中のプロセスを全部停止させてから、ブラウザー２１０を起動し直すことにより、ブラウザー２１０を復旧させる。
【００７５】
上記の実施形態では、ブラウザー２１０や管理エージェント２２０の機能をソフトウェアによって実現することとした。しかし、同等の機能をＬＳＩ等のハードウェア（集積回路）によって実現することとしてもよい。
【００７６】
また、上記の実施形態では、管理エージェント２２０は、「正常」、「異常」、「接続中」、「不明」の４つの状態を判定するものとした。しかし、管理エージェント２２０は、少なくとも「正常」あるいは「異常」のいずれかを区別できればよい。その他の状態については、判定できてもできなくてもどちらでもよい。また、判定すべき状態の種類の数も、４には限られず、３以下でもよいし、５以上でもよい。
【００７７】
また、管理エージェント２２０が、ディスプレイ装置１００の電源の異常を検知するようにしてもよい。具体的には、管理エージェント２２０は、コンピューター２００に接続されたディスプレイ装置１００の電源状態がオンまたはオフのいずれであるかを表す電源状態情報の取得を試みる。そして、電源状態情報を取得できない場合に、管理エージェント２２０は、ディスプレイ装置１００が「異常」であると判定する。
【００７８】
以上説明した少なくともひとつの実施形態によれば、コンピューター２００が、ブラウザー２１０の状態が、「正常」であるか「異常」であるかを少なくとも表す状態情報を取得する管理エージェント２２０を持つことにより、ウェブサーバー装置４００との間の通信だけでなく、コンピューター２００の内部に起因する異常を、検出できる可能性が高まる。
【００７９】
なお、上述した実施形態におけるコンピューター２００やウェブサーバー装置４００が有する機能をコンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８１】
１…システム、１００…ディスプレイ装置、２００…コンピューター（情報提示装置）、２１０…ブラウザー（提示部）、２１１…プレーヤー、２１２…コンテンツデータ、２２０…管理エージェント（管理部）、２２１…ローカル接続処理部、２２２…管理接続処理部、２２３…ブラウザー制御処理部、２２４…管理エージェント制御処理部、２２５…タイマー処理部、３００…ネットワーク、４００…ウェブサーバー装置、４１０…プレーヤー管理部、４２０…コンテンツ管理部、４３０…エージェント管理部、６００…管理用ＰＣ
【図１】
2018136783.tif 000003
【図２】
2018136783.tif 000004
【図３】
2018136783.tif 000005
【図４】
2018136783.tif 000006
【図５】
2018136783.tif 000007
【図６】
2018136783.tif 000008