(57)【特許請求の範囲】
【請求項１】
１以上のサーバ上でそれぞれ蓄積されるリアルタイムデータを取得して利用する１以上のクライアントに対して、前記各サーバに対する前記リアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得インタフェースシステムであって、
前記各クライアントからの購読対象となる前記リアルタイムデータの種別に係る情報について、ユーザからの登録の要求を受け付けて購読状況として保持する購読データ登録部と、
前記購読状況に基づいて、取得する前記リアルタイムデータおよび対象となる前記サーバを特定し、対象となる前記サーバから対象の前記リアルタイムデータを取得して取得データとして蓄積するデータ取得部と、
前記取得データに蓄積された前記リアルタイムデータについて、前記購読状況に基づいて購読している前記クライアントを特定し、対象の前記クライアントに対して送信するデータ転送部とを有し、
前記データ取得部は、さらに、前記各サーバからＰＵＬＬ型のデータ取得を行うＰＵＬＬ型取得部と、ＰＵＳＨ型のデータ取得を行うＰＵＳＨ型取得部とを有し、購読対象の前記リアルタイムデータの取得の開始時に、前記ＰＵＬＬ型取得部によって対象の前記サーバから購読対象の前記リアルタイムデータに係る当該開始時までの履歴データを一括で取得し、その後、前記ＰＵＳＨ型取得部によって前記各サーバから購読対象の前記リアルタイムデータに係る追加データが送信されるのを待ち受け、
前記データ転送部は、前記データ取得部の前記ＰＵＬＬ型取得部および前記ＰＵＳＨ型取得部によって前記各サーバからそれぞれ取得された前記リアルタイムデータに係る前記履歴データおよび前記追加データを、対象の前記クライアントに対してＰＵＳＨ型のインタフェースにより送信することを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項２】
請求項１に記載のリアルタイムデータ取得インタフェースシステムにおいて、
当該リアルタイムデータ取得インタフェースシステムおよび前記各クライアントは、クライアント端末上の同一のＷｅｂブラウザ上で稼働するソフトウェアプログラムとして構成されることを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項３】
請求項１に記載のリアルタイムデータ取得インタフェースシステムにおいて、
当該リアルタイムデータ取得インタフェースシステムは、独立したサーバシステムとして構成されることを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項４】
請求項３に記載のリアルタイムデータ取得インタフェースシステムにおいて、
前記データ取得部は、購読対象の前記リアルタイムデータの取得の開始時に、購読対象の前記リアルタイムデータに係る前記履歴データが既に前記取得データに蓄積されている場合は、対象の前記サーバからの前記履歴データの取得を行わずに、前記取得データから前記履歴データを取得することを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項５】
１以上のサーバ上でそれぞれ蓄積されるリアルタイムデータを取得して利用する１以上のクライアントに対して、前記各サーバに対する前記リアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得インタフェースシステムとしてコンピュータを機能させるリアルタイムデータ取得インタフェースプログラムであって、
前記各クライアントからの購読対象となる前記リアルタイムデータの種別に係る情報について、ユーザからの登録の要求を受け付けて購読状況として保持する購読データ登録処理と、
前記購読状況に基づいて、取得する前記リアルタイムデータおよび対象となる前記サーバを特定し、対象となる前記サーバから対象の前記リアルタイムデータを取得して取得データとして蓄積するデータ取得処理と、
前記取得データに蓄積された前記リアルタイムデータについて、前記購読状況に基づいて購読している前記クライアントを特定し、対象の前記クライアントに対して送信するデータ転送処理とを有し、
前記データ取得処理は、さらに、前記各サーバからＰＵＬＬ型のデータ取得を行うＰＵＬＬ型取得処理と、ＰＵＳＨ型のデータ取得を行うＰＵＳＨ型取得処理とを有し、購読対象の前記リアルタイムデータの取得の開始時に、前記ＰＵＬＬ型取得処理によって対象の前記サーバから購読対象の前記リアルタイムデータに係る当該開始時までの履歴データを一括で取得し、その後、前記ＰＵＳＨ型取得処理によって前記各サーバから購読対象の前記リアルタイムデータに係る追加データが送信されるのを待ち受け、
前記データ転送処理は、前記データ取得処理の前記ＰＵＬＬ型取得処理および前記ＰＵＳＨ型取得処理によって前記各サーバからそれぞれ取得された前記リアルタイムデータに係る前記履歴データおよび前記追加データを、対象の前記クライアントに対してＰＵＳＨ型のインタフェースにより送信することを特徴とするリアルタイムデータ取得インタフェースプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントによってサーバからデータを取得する技術に関し、特に、時々刻々と変化するデータをリアルタイムでサーバから取得するためのインタフェースをクライアントに対して提供するリアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、例えば株価やサーバのＣＰＵ使用率等の、時々刻々と変化するデータの状況をグラフやチャート等の形式で画面上にリアルタイムで表示するようなソフトウェアプログラムへのニーズが高まっている。特に、企業の業務システムの分野などでは、サーバやシステム等の複数の情報源からデータを集め、これらを集計してまとめて一覧的に表示するようないわゆる“ダッシュボード”と呼ばれるクライアントプログラムを用いて、経営者等のマネジメント層が、業務の状況を示す情報や業務判断の指標となる情報などをリアルタイムで視覚的に参照できるようにすることが行われている。
【０００３】
このようなソフトウェアプログラムの動作としては、基本的に、起動時において、データを蓄積している各サーバ等から起動時点までの履歴データを必要に応じて取得して画面に表示する。また、起動後は、時間の経過に伴って各サーバ等において新たなデータが追加・更新される毎に、当該データをサーバ等から取得して画面を更新する。
【０００４】
一般的にクライアントプログラムがデータを蓄積しているサーバ等からデータを取得する手法としては、主にＰＵＬＬ型（ポーリング型）とＰＵＳＨ型（イベント型）の２つの手法がある。ＰＵＬＬ型のデータ取得は、クライアントがサーバに対して欲しいデータの場所（ＵＲＬ（Uniform Resource Locator）等）を指定してデータの取得を要求すると、サーバは即時に該当データを抽出してクライアントに対して送信する方式であり、例えばＷｅｂブラウザによるＷｅｂサーバからのデータ取得などが該当する。
【０００５】
一方、ＰＵＳＨ型のデータ取得は、クライアントがサーバに対して欲しいデータの識別子（トピック）等を予め登録（サブスクライブ、購読）しておく。サーバは、該当するデータが追加・登録された等のイベントの発生時に、当該データをクライアント対して送信する。このような方式は、例えばアドビシステムズ社のＢｌａｚｅＤＳなどのソフトウェアやＣｏｍｅｔ等の公知技術を利用して実装することができる。
【０００６】
例えば、ＢｌａｚｅＤＳでは、クライアントのＷｅｂブラウザに組み込まれたプラグインソフトウェア（Ｆｌａｓｈ  Ｐｌａｙｅｒ）からサーバに対して常駐のコネクションを確立し、当該コネクションを利用してＰＵＳＨ型のデータ取得を実現している。また、Ｃｏｍｅｔでは、サーバがクライアントからのリクエストに対してすぐに応答せず保留状態にしておき、サーバ上で何らかのイベントが発生したときに応答することで、ＰＵＳＨ型のデータ取得を実現している。
【０００７】
ここで、クライアントが時々刻々と変化するリアルタイムデータをサーバから取得する場合に、ＰＵＬＬ型のデータ取得を利用する場合は、サーバに対して定期的に新たに追加・更新されたデータの有無を問い合わせる必要がある。しかし、問い合わせの間隔が長すぎるとデータのリアルタイム性が低下し、逆に問い合わせの間隔が短すぎるとサーバやネットワークに過大な負荷がかかってしまうという課題がある。一方、ＰＵＳＨ型のデータ取得を利用する場合は、起動時点までの過去の履歴データを取得することが困難になるという課題がある。
【０００８】
このような課題に対して、例えば、特開平１１−４５１９９号公報（特許文献１）には、以下のような技術が記載されている。配信情報を保存するＷＷＷプロキシは、各配信情報についてＷＷＷクライアントにおける利用頻度の評価値に基づいてイベント型配信に適した配信情報を更新的に決定し、ＷＷＷサーバがこの決定結果にしたがって配信情報をイベント型配信又はポーリング型配信する。さらに、情報要求に係る配信情報を保存しているか否か、及び、情報要求に係る配信情報がイベント型配信に適しているか否かに基づいて保存中の配信情報をＷＷＷクライアントに送信する処理、又は、ＷＷＷクライアントの情報要求をＷＷＷサーバに送信する処理を選択的に実行する。
【０００９】
これにより、ポーリング方式及びイベント方式の情報配信方法のそれぞれの利点を活用して情報配信ネットワーク全体における情報保存領域の最小化、及び、情報取得に必要な処理の最少化を実現するように情報を自動的に分散配置することが可能となる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１１−４５１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
いわゆる“ダッシュボード”等のようなソフトウェアプログラムにおいては、上述したように、複数の異なるサーバ等から時々刻々と変化するリアルタイムデータを取得してくる必要がある。このとき、起動時点までの履歴データも含めて取得するためにはＰＵＬＬ型とＰＵＳＨ型のデータ取得を組み合わせて行う必要がある。
【００１２】
この点、特許文献１のような従来技術では、クライアントでの配信情報の利用頻度の評価値に基づいて、当該データをＰＵＬＬ型で配信するかＰＵＳＨ型で配信するかを決定することで、ＰＵＬＬ型とＰＵＳＨ型のそれぞれの利点を活用することが可能である。しかしながら、ここではＵＲＬ等で特定される配信情報毎の振り分けであり、上述したリアルタイムデータの取得の際のように、同一のＵＲＬ等から取得するデータであっても、起動時はＰＵＬＬ型によって履歴データを一括取得し、その後はＰＵＳＨ型によってデータに追加・更新があった場合にのみデータを取得するというような振り分けを行うことは想定されていない。
【００１３】
また、”ダッシュボード”のようなソフトウェアプログラムでは、ユーザの目的等に応じて、データを表示する画面や取得するデータの種類を追加・変更するような場合も多い。このとき、新たに追加する画面に対して、データの取得先となるサーバに対するＰＵＬＬ型とＰＵＳＨ型とを組み合わせたデータ取得の仕組みをその都度開発することはユーザや開発者にとって負荷が高く非効率である。
【００１４】
そこで本発明の目的は、サーバに蓄積されるリアルタイムデータを利用するクライアントに対して、各サーバからリアルタイムデータを容易に取得するための統一的なインタフェースを提供するリアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラムを提供することにある。
【００１５】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１７】
本発明の代表的な実施の形態によるリアルタイムデータ取得インタフェースシステムは、１以上のサーバ上でそれぞれ蓄積されるリアルタイムデータを取得して利用する１以上のクライアントに対して、前記各サーバに対する前記リアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得インタフェースシステムであって、以下の特徴を有するものである。
【００１８】
すなわち、リアルタイムデータ取得インタフェースシステムは、前記各クライアントからの購読対象となる前記リアルタイムデータの種別に係る情報について、ユーザからの登録の要求を受け付けて購読状況として保持する購読データ登録部と、前記購読状況に基づいて、取得する前記リアルタイムデータおよび対象となる前記サーバを特定し、対象となる前記サーバから対象の前記リアルタイムデータを取得して取得データとして蓄積するデータ取得部と、前記取得データに蓄積された前記リアルタイムデータについて、前記購読状況に基づいて購読している前記クライアントを特定し、対象の前記クライアントに対して送信するデータ転送部とを有する。
【００１９】
前記データ取得部は、さらに、前記各サーバからＰＵＬＬ型のデータ取得を行うＰＵＬＬ型取得部と、ＰＵＳＨ型のデータ取得を行うＰＵＳＨ型取得部とを有し、購読対象の前記リアルタイムデータの取得の開始時に、前記ＰＵＬＬ型取得部によって対象の前記サーバから購読対象の前記リアルタイムデータに係る当該開始時までの履歴データを一括で取得し、その後、前記ＰＵＳＨ型取得部によって前記各サーバから購読対象の前記リアルタイムデータに係る追加データが送信されるのを待ち受ける。
【００２０】
また、本発明は、コンピュータをリアルタイムデータ取得インタフェースシステムとして機能させるプログラムにも適用することができる。
【発明の効果】
【００２１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２２】
本発明の代表的な実施の形態によれば、サーバに蓄積されるリアルタイムデータを利用するクライアントに対して、各サーバからリアルタイムデータを容易に取得するための統一的なインタフェースを提供することが可能となる。すなわち、クライアントからは、履歴データと新たな追加データとを区別することなく単一の手法によって取得することができるため、クライアント側の開発が容易となる。また、データの取得先のサーバが追加となったり、サーバからのデータの取得手順が変更等されたりした場合でも、クライアントからはこれらを隠蔽して、リアルタイムデータへのシームレスなアクセスを維持することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施の形態であるリアルタイムデータ取得インタフェースシステムを有する情報処理システムの構成例について概要を示した図である。
【図２】本発明の一実施の形態における識別子情報のデータ構成および具体的なデータの例について示した図である。
【図３】本発明の一実施の形態における購読状況のデータ構成および具体的なデータの例について示した図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２５】
本発明の一実施の形態であるリアルタイムデータ取得インタフェースシステムは、いわゆる“ダッシュボード”プログラムのような、時々刻々と変化するリアルタイムデータをグラフやチャート、ゲージ等によって視覚的に表示するようなクライアントプログラムに対して、サーバとの間の中間レイヤとして、各サーバに対するデータの取得（ＰＵＬＬ型およびＰＵＳＨ型でのデータ取得）に係る部分を隠蔽し、データ取得のための統一的なインタフェースを提供するシステムである。
【００２６】
＜システム構成＞
図１は、本発明の一実施の形態であるリアルタイムデータ取得インタフェースシステムを有する情報処理システムの構成例について概要を示した図である。当該情報処理システムは、例えばクラウドコンピューティングシステムなどを構成する複数のサーバから、株価等の業務的なデータや、ＣＰＵ使用率等のシステム的なデータ等の時々刻々と変化するリアルタイムデータを取得して、その状況をクライアント端末上で稼働するいわゆる“ダッシュボード”プログラム等のクライアントプログラムによって視覚的に表示する。これにより、経営者等のマネジメント層などからなるユーザがリアルタイムデータの状況を容易に把握することを可能とするものである。
【００２７】
図１において、情報処理システムは、例えば企業の業務システムや、クラウドコンピューティングシステムなどを構成する複数のサーバ１０と、ユーザが保有するクライアント端末上で稼働するＷｅｂブラウザ２０とから構成される。当該Ｗｅｂブラウザ２０は、図示しないネットワークを介して各サーバ１０と通信することが可能である。
【００２８】
各サーバ１０は、処理する業務等に応じて種々の構成をとり得るが、基本的な構成としては、業務処理等を実行するアプリケーション１１、および時間の経過に伴ってアプリケーション１１によって随時取得もしくは生成されたリアルタイムデータを蓄積・保持するデータベースもしくはファイル等からなるデータ１６を有する。アプリケーション１１としては、例えば、株価データを取得・提供するような業務アプリケーションプログラムや、ＣＰＵ使用率やメモリ使用量などのシステム情報を取得するようなユーティリティプログラムなど、時々刻々と変化するリアルタイムデータを取得、生成する種々のプログラムやシステム等が該当する。
【００２９】
各サーバ１０は、データ１６に蓄積されたリアルタイムデータをクライアントに対して提供するためのインタフェース（以下では“ＩＦ”と表記する場合がある）機能を実装するデータ提供ＩＦ１２を有する。このデータ提供ＩＦ１２は、クライアントからのＰＵＬＬ型のデータ取得に対応するためのＰＵＬＬ型ＩＦ１３と、ＰＵＳＨ型のデータ取得に対応するためのＰＵＳＨ型ＩＦ１４とを有する。上述したように、ＰＵＬＬ型ＩＦ１３は、例えば図示しないＷｅｂサーバプログラムおよびこの上で稼働するアプリケーションプログラムによって実装される。また、ＰＵＳＨ型ＩＦ１４は、例えばＢｌａｚｅＤＳなどの既存ソフトウェアやＣｏｍｅｔなどの公知技術を利用して実装される。
【００３０】
また、サーバ１０は、各クライアントによって登録（サブスクライブ、購読）された、ＰＵＳＨ型ＩＦ１４を利用して取得したいデータの識別子（トピック）の内容を保持するファイル等からなる購読トピック１５を有する。
【００３１】
一方、クライアント端末上で稼働するＷｅｂブラウザ２０上では、各サーバ１０から取得したリアルタイムデータを集計、加工してグラフ等により視覚的に画面表示する“ダッシュボード”プログラムとしてのクライアント４０が稼働している。クライアント４０は、例えばＷｅｂブラウザ２０に組み込まれたＦｌａｓｈ  Ｐｌａｙｅｒ等のプラグインソフトウェア上で稼働するウィジェット等の形式で実装され、表示画面毎に複数稼働することが可能である。また、１つの表示画面で複数種類のリアルタイムデータの情報をまとめて表示することも可能である。リアルタイムデータの視覚的な表示の手段としては、例えば、折れ線チャートや、ゲージ、メーターなど、種々のものを採用することができる。
【００３２】
また、Ｗｅｂブラウザ２０上では、クライアント４０によるサーバ１０からのリアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得ＩＦシステム３０が稼働している。本実施の形態では、リアルタイムデータ取得ＩＦシステム３０を、例えばＷｅｂブラウザ２０に組み込まれたＦｌａｓｈ  Ｐｌａｙｅｒ等のプラグインソフトウェア上で稼働するソフトウェアプログラムとして実装しており、Ｗｅｂブラウザ２０上で稼働する複数のクライアント４０から共用してアクセスすることができる。
【００３３】
一方、リアルタイムデータ取得ＩＦシステム３０をＷｅｂブラウザ２０上ではなく独立したサーバシステム上で稼動させて、複数のクライアント端末上のＷｅｂブラウザ２０（各Ｗｅｂブラウザ２０上で稼働する複数のクライアント４０）から共用してアクセス可能なように構成することも可能である。
【００３４】
リアルタイムデータ取得ＩＦシステム３０は、例えば、ソフトウェアプログラムによって実装される購読データ登録部３１、データ取得部３２、およびデータ転送部３５の各部と、各サーバ１０から取得したリアルタイムデータを蓄積・保持するデータベースもしくはファイル等からなる取得データ３８を有する。また、各サーバ１０からＰＵＳＨ型ＩＦ１４を介して取得可能なデータの識別子（トピック）についてのマスタ情報を保持するファイル等からなる識別子情報３６、および各クライアント４０によって登録された、欲しい（購読したい）データについての識別子の情報を保持するファイル等からなる購読状況３７を有する。
【００３５】
購読データ登録部３１は、各クライアント４０からの欲しい（購読したい）データの登録や削除、変更の要求を受け付けて購読状況３７に格納する。また、購読状況３７が変更されたことをデータ取得部３２に通知するなどにより、後述するデータ取得部３２が各サーバ１０から現在購読対象となっているデータを取得できるようにしてもよい。
【００３６】
データ取得部３２は、購読状況３７および識別子情報３６に基づいて、取得するリアルタイムデータおよび対象のサーバ１０を特定し、対象のサーバ１０のデータ提供ＩＦ１２を介して対象のリアルタイムデータを取得して取得データ３８に蓄積する。また、リアルタイムデータを取得したことをデータ転送部３５に通知するなどにより、後述するデータ転送部３５がクライアント４０に対してリアルタイムにデータを転送できるようにしてもよい。
【００３７】
このデータ取得部３２は、サーバ１０のデータ提供ＩＦ１２に対応する形で、ＰＵＬＬ型のデータ取得を行うためのＰＵＬＬ型取得部３３と、ＰＵＳＨ型のデータ取得を行うためのＰＵＳＨ型取得部３４とを有する。上述したように、ＰＵＬＬ型取得部３３は、例えばサーバ１０に対するＷｅｂアクセスの形でデータをダウンロードして取得する。また、ＰＵＳＨ型取得部３４は、例えばＢｌａｚｅＤＳなどの既存ソフトウェアやＣｏｍｅｔなどの公知技術を利用して実装される。
【００３８】
データ取得部３２は、リアルタイムデータ取得ＩＦシステム３０の起動時、もしくはクライアント４０の起動時（ユーザによって購読データ登録部３１から購読状況３７に新たに購読対象のリアルタイムデータが登録されたときを含む）、すなわち、購読対象の各リアルタイムデータの各サーバ１０からの取得の開始時に、ＰＵＬＬ型取得部３３により、対象のサーバ１０のＰＵＬＬ型ＩＦ１３を介してデータ１６から取得開始時点までの購読対象のデータに係る履歴データを一括で取得する。このとき、取得範囲の始点となるタイムスタンプ等を指定して、履歴データの取得範囲を限定するようにしてもよい。一方、取得開始後は、ＰＵＳＨ型取得部３４によって、各サーバ１０のＰＵＳＨ型ＩＦ１４を介して対象のリアルタイムデータが送信されるのを待ち受ける。
【００３９】
データ転送部３５は、取得データ３８に蓄積されたリアルタイムデータについて、購読状況３７を参照して購読している（送信先となる）クライアント４０を特定し、対象のクライアント４０に対して送信する。送信に際しては、例えば取得データ３８における各データのタイムスタンプを利用したり、データ毎に送信済み／未済のフラグを設けたりして、前回の送信以降の未送信のデータを判別し、未送信のデータのみを送信するようにする。送信のタイミングとしては、データ取得部３２からのリアルタイムデータを取得した旨の通知をトリガとしたり、所定の間隔で定期的に送信したりすることができる。
【００４０】
これにより、クライアント４０については、例えばユーザがＷｅｂブラウザ２０上での操作によって、欲しいリアルタイムデータの識別子（トピック）をリアルタイムデータ取得ＩＦシステム３０の購読データ登録部３１を介して登録することにより、取得開始時点までの履歴データおよび取得開始後に新たに追加・更新されたデータについて、これらを区別することなく、統一されたインタフェース（ＰＵＳＨ型）によってデータ転送部３５から取得する（配信を受ける）ことができる。
【００４１】
また、対象のリアルタイムデータを提供するサーバ１０に対するデータ取得の実装部分（サーバ１０毎のデータ提供ＩＦの１２の相違、ＰＵＬＬ型／ＰＵＳＨ型のインタフェース間での取得手順の相違、履歴データと新たな追加データとの取得方法の相違等）をリアルタイムデータ取得ＩＦシステム３０によって吸収し隠蔽するため、クライアント４０の開発負荷を大幅に削減することができる。
【００４２】
＜データ構成＞
図２は、リアルタイムデータ取得ＩＦシステム３０の識別子情報３６のデータ構成および具体的なデータの例について示した図である。識別子情報３６は、リアルタイムデータ取得ＩＦシステム３０が各サーバ１０からＰＵＳＨ型のデータ取得によって取得可能なリアルタイムデータの識別子（トピック）についてのマスタ情報を保持するテーブルであり、例えば、識別子、対象サーバ、および対象データなどの項目を有する。
【００４３】
識別子の項目は、リアルタイムデータ取得ＩＦシステム３０と各サーバ１０との間で、ＰＵＳＨ型のデータ取得においてリアルタイムデータ取得ＩＦシステム３０が取得したいデータの種別（トピック）を特定する識別子の情報を保持する。この値は、例えばリアルタイムデータ取得ＩＦシステム３０のデータ取得部３２および各サーバ１０のデータ提供ＩＦ１２によって構成されるＰＵＳＨ型のデータ取得の仕組みの中で、トピック毎に一意になるように割り振られる。
【００４４】
対象サーバの項目は、対象の識別子によって特定されるリアルタイムデータを提供するサーバ１０を特定する情報を保持する。図２の例ではサーバ名（ホスト名やマシン名等）によって特定しているが、サーバ１０のＩＰアドレス等の他の情報によって特定するものであってもよい。
【００４５】
対象データの項目は、対象の識別子によって特定されるリアルタイムデータの種別を特定する情報を保持する。図２の例では説明の便宜上データの名称（“ＣＰＵ利用率”等）によって特定しているが、対象のサーバ１０においてデータを特定できる情報であれば、データの識別ＩＤやデータベースのカラム名等の他の情報によって特定するものであってもよい。なお、識別子情報３６の各レコードは、予め登録して用意しておいてもよいし、クライアント４０から新たなリアルタイムデータの取得要求を受けた時点で動的にレコードを追加するようにしてもよい。
【００４６】
図２の例では、リアルタイムデータ取得ＩＦシステム３０が、“サーバＡ”からは識別子“１００”の“ＣＰＵ使用率”のデータと、識別子“１１０”の“メモリ使用量”のデータとが取得可能であり、“サーバＢ”からは識別子“２００”の“銘柄Ｚの株価”のデータが取得可能であることを示している。
【００４７】
図３は、リアルタイムデータ取得ＩＦシステム３０の購読状況３７のデータ構成および具体的なデータの例について示した図である。購読状況３７は、各クライアント４０によって登録された、欲しい（購読したい）データについての識別子の情報を保持するテーブルであり、例えば、識別子、購読クライアント、宛先情報などの項目を有する。
【００４８】
識別子の項目は、各クライアント４０が購読したいデータの種別を特定する識別子の情報を保持する。この値は、上述の識別子情報３６に登録された識別子の項目と対応する。購読クライアントの項目は、対象の識別子によって特定されるリアルタイムデータについて購読の登録を行っているクライアント４０を特定する情報を保持する。図３の例では便宜上クライアント名によって特定しているが、クライアント４０のプロセスＩＤやマシン名、ホスト名等の他の情報によって特定するものであってもよい。
【００４９】
宛先情報は、対象の識別子によって特定されるリアルタイムデータを購読しているクライアント４０（購読クライアント）について、データを送信する際の宛先に係る情報を保持する。例えば、クライアント４０のプロセスＩＤや、通信コネクションのセッションＩＤ、ＩＰアドレス、キュー名など、リアルタイムデータ取得ＩＦシステム３０のデータ転送部３５がクライアント４０に対してデータを送信する際の手段に応じて種々の値を設定し得る。
【００５０】
図３の例では、識別子“１００”のデータ（“サーバＡ”の“ＣＰＵ使用率”）を“クライアントａ”および“クライアントｂ”が購読したいデータとして登録している。また、識別子“１１０”のデータ（“サーバＡ”の“メモリ使用量”）を“クライアントａ”が購読したいデータとしており、識別子“２００”のデータ（“サーバＢ”の“銘柄Ｚの株価”）を“クライアントｃ”が購読したいデータとして登録していることを示している。
【００５１】
なお、上述の図２、図３で示した各テーブルのデータ構成（項目）はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。また、各サーバ１０における購読トピック１５、データ１６、およびリアルタイムデータ取得ＩＦシステム３０における取得データ３８については、リアルタイムデータの種別や内容、ＰＵＳＨ型でのデータ取得の実装手法などによって種々の構成をとり得るため、ここでの説明は省略する。
【００５２】
＜処理の流れ＞
以下では、本実施の形態のリアルタイムデータ取得ＩＦシステム３０を有する情報処理システムにおいて、クライアント４０がサーバ１０からリアルタイムデータを取得して視覚的に表示する際の処理の流れの例について説明する。
【００５３】
図１において、ユーザがクライアント端末上で“ダッシュボード”プログラムを実行するためにＷｅｂブラウザ２０を起動し、所定のＵＲＬにアクセスすると、リアルタイムデータ取得ＩＦシステム３０がＦｌａｓｈ  Ｐｌａｙｅｒ上で起動する。さらに、ユーザは、“ダッシュボード”の画面（ウィジェット）を利用して表示したいリアルタイムデータの種別を特定する識別子（トピック）をリアルタイムデータ取得ＩＦシステム３０の購読データ登録部３１を介して購読状況３７に登録して、クライアント４０を起動する。なお、起動の都度ユーザがリアルタイムデータを指定してクライアント４０を起動するのではなく、予め定められた種別のリアルタイムデータや前回実行時に表示していたリアルタイムデータを対象としたクライアント４０を自動的に起動するようにしてもよい。
【００５４】
リアルタイムデータ取得ＩＦシステム３０のデータ取得部３２は、起動時に、購読状況３７に登録された各識別子に係るリアルタイムデータについて、識別子情報３６を参照して対象となるサーバ１０を特定する。なお、ユーザが購読対象のリアルタイムデータを購読データ登録部３１によって指定する際に、対象となるサーバ１０も合わせて指定できるようにしてもよい。また、このとき指定された情報を識別子情報３６に登録するようにしてもよい。
【００５５】
その後、データ取得部３２は、ＰＵＬＬ型取得部３３によって対象の各サーバ１０のＰＵＬＬ型ＩＦ１３を介して起動時点（データ取得の開始時点）までに蓄積されている履歴データをデータ１６からそれぞれ取得する。取得した履歴データは取得データ３８に格納する。なお、ＰＵＬＬ型取得部３３による過去の履歴データの取得処理の実行は、起動時に限らず、起動後の運用中においても、ユーザから購読データ登録部３１を介して新たな購読対象のリアルタイムデータが購読状況３７に登録され（クライアント４０が追加され）、新たなリアルタイムデータの取得を開始する場合にも実行される。
【００５６】
その後、データ転送部３５は、取得データ３８に格納された履歴データに係る識別子の情報に基づいて、購読状況３７を参照してクライアント４０および送信時の宛先情報を取得し、この情報に従って対象のクライアント４０に対して履歴データを送信する。これにより、例えば、株価情報は株価チャートを表示するクライアント４０に送信され、ＣＰＵ使用率のデータはＣＰＵ使用率の推移を表示するクライアント４０に送信され、それぞれ必要に応じてクライアント４０毎の所定の画面（ウィジェット）によって表示される。
【００５７】
一方、データ取得部３２は、上記のようにＰＵＬＬ型取得部３３によってデータ取得の開始時点までの履歴データを一括して取得するとともに、ＰＵＳＨ型取得部３４によって対象の各サーバ１０のＰＵＳＨ型ＩＦ１４との間で通信コネクションを確立し、サーバ１０から送信されるデータの待ち受けを開始する。
【００５８】
その後の運用中において、サーバ１０上で時間の経過とともにデータの変動があって新たなデータがデータ１６に追加・更新された場合、サーバ１０のデータ提供ＩＦ１２は、当該データが購読トピック１５に登録されたものである場合には、これをＰＵＳＨ型ＩＦ１４によってリアルタイムデータ取得ＩＦシステム３０のＰＵＳＨ型取得部３４に対して送信する。リアルタイムデータ取得ＩＦシステム３０のデータ取得部３２では、ＰＵＳＨ型取得部３４が受信したリアルタイムデータを取得データ３８に格納する。
【００５９】
その後、データ転送部３５は、取得データ３８に新たに追加されたリアルタイムデータに係る識別子の情報に基づいて、起動時と同様に、購読状況３７を参照してクライアント４０および送信時の宛先情報を取得し、この情報に従って対象のクライアント４０に対してリアルタイムデータを送信する。データを受信したクライアント４０では、受信したデータを反映させて画面の表示を更新することで、時々刻々と変化するデータの状況をリアルタイムで視覚的に表示することができる。
【００６０】
以上に説明したように、本発明の一実施の形態であるリアルタイムデータ取得ＩＦシステム３０によれば、サーバ１０に蓄積されるリアルタイムデータを利用するクライアント４０に対して、各サーバ１０からリアルタイムデータを容易に取得するための統一的なインタフェースを提供することが可能となる。すなわち、クライアント１０からは、履歴データと新たな追加データとを区別することなく単一の手法によって取得することができるため、クライアント１０側の開発が容易となる。また、データの取得先のサーバ１０が追加となったり、サーバ１０からのデータの取得手順が変更等されたりした場合でも、リアルタイムデータ取得ＩＦシステム３０で吸収することでクライアント４０からはこれらを隠蔽して、リアルタイムデータへのシームレスなアクセスを維持することができる。
【００６１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６２】
例えば、本実施の形態では、クライアント４０として、リアルタイムデータの状況を画面（ウィジェット）上に表示する“ダッシュボード”プログラムを例に挙げて説明しているが、クライアント４０はこのようなものに限らず、取得したリアルタイムデータを利用するソフトウェアや情報処理端末等であればよいことは当然である。
【００６３】
また、リアルタイムデータ取得ＩＦシステム３０をクライアント端末のＷｅｂブラウザ２０上ではなく、独立したサーバシステムとして構成した場合に、複数のクライアント端末から同一のサーバ１０の同一のリアルタイムデータに対して重複して購読の登録がされる場合が生じ得る。このとき、各サーバ１０から取得したデータを蓄積する取得データ３８をキャッシュ的に取り扱い、新たに起動したクライアント４０が欲しいデータ（履歴データ）が取得データ３８上にすでに蓄積されている場合は、サーバ１０に対してＰＵＬＬ型のデータ取得により履歴データを取得することを行わずに、取得データ３８から履歴データを取得してクライアント４０に対して送信するよう構成することも可能である。
【００６４】
また、上記のように独立したサーバシステムとして構成した場合、各サーバ１０上で蓄積されるリアルタイムデータをリアルタイムデータ取得ＩＦシステム３０上に集約して蓄積することが可能となり、監査やシステム稼働状況の監視等に必要となるデータを一元的に管理する用途として利用することも可能である。
【産業上の利用可能性】
【００６５】
本発明は、時々刻々と変化するデータをリアルタイムでサーバから取得するためのインタフェースをクライアントに対して提供するリアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラムに利用可能である。
【符号の説明】
【００６６】
１０…サーバ、１１…アプリケーション、１２…データ提供インタフェース（ＩＦ）、１３…ＰＵＬＬ型インタフェース（ＩＦ）、１４…ＰＵＳＨ型インタフェース（ＩＦ）、１５…購読トピック、１６…データ、
２０…Ｗｅｂブラウザ、
３０…リアルタイムデータ取得インタフェース（ＩＦ）システム、３１…購読データ登録部、３２…データ取得部、３３…ＰＵＬＬ型取得部、３４…ＰＵＳＨ型取得部、３５…データ転送部、３６…識別子情報、３７…購読状況、３８…取得データ、
４０…クライアント。
【図１】
0005632303.tif 000002
【図２】
0005632303.tif 000003
【図３】
0005632303.tif 000004