説明

リアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラム

【課題】リアルタイムデータを利用するクライアントに対して容易に取得するための統一的なインタフェースを提供するリアルタイムデータ取得IFシステムを提供する。
【解決手段】購読対象となるデータについてユーザからの登録を受け付けて購読状況37として保持する購読データ登録部31と、購読状況37に基づいてデータおよびサーバ10を特定してデータを取得し、取得データ38として蓄積するデータ取得部32と、取得データ38に蓄積されたデータについて購読状況37に基づいてクライアント40を特定して送信するデータ転送部35とを有し、データ取得部32はさらにPULL型取得部33とPUSH型取得部34とを有し、データの取得の開始時にPULL型取得部33によってサーバ10から当該開始時までの履歴データを取得し、その後PUSH型取得部34によって各サーバ10から追加データが送信されるのを待ち受ける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントによってサーバからデータを取得する技術に関し、特に、時々刻々と変化するデータをリアルタイムでサーバから取得するためのインタフェースをクライアントに対して提供するリアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラムに適用して有効な技術に関するものである。
【背景技術】
【0002】
近年、例えば株価やサーバのCPU使用率等の、時々刻々と変化するデータの状況をグラフやチャート等の形式で画面上にリアルタイムで表示するようなソフトウェアプログラムへのニーズが高まっている。特に、企業の業務システムの分野などでは、サーバやシステム等の複数の情報源からデータを集め、これらを集計してまとめて一覧的に表示するようないわゆる“ダッシュボード”と呼ばれるクライアントプログラムを用いて、経営者等のマネジメント層が、業務の状況を示す情報や業務判断の指標となる情報などをリアルタイムで視覚的に参照できるようにすることが行われている。
【0003】
このようなソフトウェアプログラムの動作としては、基本的に、起動時において、データを蓄積している各サーバ等から起動時点までの履歴データを必要に応じて取得して画面に表示する。また、起動後は、時間の経過に伴って各サーバ等において新たなデータが追加・更新される毎に、当該データをサーバ等から取得して画面を更新する。
【0004】
一般的にクライアントプログラムがデータを蓄積しているサーバ等からデータを取得する手法としては、主にPULL型(ポーリング型)とPUSH型(イベント型)の2つの手法がある。PULL型のデータ取得は、クライアントがサーバに対して欲しいデータの場所(URL(Uniform Resource Locator)等)を指定してデータの取得を要求すると、サーバは即時に該当データを抽出してクライアントに対して送信する方式であり、例えばWebブラウザによるWebサーバからのデータ取得などが該当する。
【0005】
一方、PUSH型のデータ取得は、クライアントがサーバに対して欲しいデータの識別子(トピック)等を予め登録(サブスクライブ、購読)しておく。サーバは、該当するデータが追加・登録された等のイベントの発生時に、当該データをクライアント対して送信する。このような方式は、例えばアドビシステムズ社のBlazeDSなどのソフトウェアやComet等の公知技術を利用して実装することができる。
【0006】
例えば、BlazeDSでは、クライアントのWebブラウザに組み込まれたプラグインソフトウェア(Flash Player)からサーバに対して常駐のコネクションを確立し、当該コネクションを利用してPUSH型のデータ取得を実現している。また、Cometでは、サーバがクライアントからのリクエストに対してすぐに応答せず保留状態にしておき、サーバ上で何らかのイベントが発生したときに応答することで、PUSH型のデータ取得を実現している。
【0007】
ここで、クライアントが時々刻々と変化するリアルタイムデータをサーバから取得する場合に、PULL型のデータ取得を利用する場合は、サーバに対して定期的に新たに追加・更新されたデータの有無を問い合わせる必要がある。しかし、問い合わせの間隔が長すぎるとデータのリアルタイム性が低下し、逆に問い合わせの間隔が短すぎるとサーバやネットワークに過大な負荷がかかってしまうという課題がある。一方、PUSH型のデータ取得を利用する場合は、起動時点までの過去の履歴データを取得することが困難になるという課題がある。
【0008】
このような課題に対して、例えば、特開平11−45199号公報(特許文献1)には、以下のような技術が記載されている。配信情報を保存するWWWプロキシは、各配信情報についてWWWクライアントにおける利用頻度の評価値に基づいてイベント型配信に適した配信情報を更新的に決定し、WWWサーバがこの決定結果にしたがって配信情報をイベント型配信又はポーリング型配信する。さらに、情報要求に係る配信情報を保存しているか否か、及び、情報要求に係る配信情報がイベント型配信に適しているか否かに基づいて保存中の配信情報をWWWクライアントに送信する処理、又は、WWWクライアントの情報要求をWWWサーバに送信する処理を選択的に実行する。
【0009】
これにより、ポーリング方式及びイベント方式の情報配信方法のそれぞれの利点を活用して情報配信ネットワーク全体における情報保存領域の最小化、及び、情報取得に必要な処理の最少化を実現するように情報を自動的に分散配置することが可能となる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平11−45199号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
いわゆる“ダッシュボード”等のようなソフトウェアプログラムにおいては、上述したように、複数の異なるサーバ等から時々刻々と変化するリアルタイムデータを取得してくる必要がある。このとき、起動時点までの履歴データも含めて取得するためにはPULL型とPUSH型のデータ取得を組み合わせて行う必要がある。
【0012】
この点、特許文献1のような従来技術では、クライアントでの配信情報の利用頻度の評価値に基づいて、当該データをPULL型で配信するかPUSH型で配信するかを決定することで、PULL型とPUSH型のそれぞれの利点を活用することが可能である。しかしながら、ここではURL等で特定される配信情報毎の振り分けであり、上述したリアルタイムデータの取得の際のように、同一のURL等から取得するデータであっても、起動時はPULL型によって履歴データを一括取得し、その後はPUSH型によってデータに追加・更新があった場合にのみデータを取得するというような振り分けを行うことは想定されていない。
【0013】
また、”ダッシュボード”のようなソフトウェアプログラムでは、ユーザの目的等に応じて、データを表示する画面や取得するデータの種類を追加・変更するような場合も多い。このとき、新たに追加する画面に対して、データの取得先となるサーバに対するPULL型とPUSH型とを組み合わせたデータ取得の仕組みをその都度開発することはユーザや開発者にとって負荷が高く非効率である。
【0014】
そこで本発明の目的は、サーバに蓄積されるリアルタイムデータを利用するクライアントに対して、各サーバからリアルタイムデータを容易に取得するための統一的なインタフェースを提供するリアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラムを提供することにある。
【0015】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0016】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0017】
本発明の代表的な実施の形態によるリアルタイムデータ取得インタフェースシステムは、1以上のサーバ上でそれぞれ蓄積されるリアルタイムデータを取得して利用する1以上のクライアントに対して、前記各サーバに対する前記リアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得インタフェースシステムであって、以下の特徴を有するものである。
【0018】
すなわち、リアルタイムデータ取得インタフェースシステムは、前記各クライアントからの購読対象となる前記リアルタイムデータの種別に係る情報について、ユーザからの登録の要求を受け付けて購読状況として保持する購読データ登録部と、前記購読状況に基づいて、取得する前記リアルタイムデータおよび対象となる前記サーバを特定し、対象となる前記サーバから対象の前記リアルタイムデータを取得して取得データとして蓄積するデータ取得部と、前記取得データに蓄積された前記リアルタイムデータについて、前記購読状況に基づいて購読している前記クライアントを特定し、対象の前記クライアントに対して送信するデータ転送部とを有する。
【0019】
前記データ取得部は、さらに、前記各サーバからPULL型のデータ取得を行うPULL型取得部と、PUSH型のデータ取得を行うPUSH型取得部とを有し、購読対象の前記リアルタイムデータの取得の開始時に、前記PULL型取得部によって対象の前記サーバから購読対象の前記リアルタイムデータに係る当該開始時までの履歴データを一括で取得し、その後、前記PUSH型取得部によって前記各サーバから購読対象の前記リアルタイムデータに係る追加データが送信されるのを待ち受ける。
【0020】
また、本発明は、コンピュータをリアルタイムデータ取得インタフェースシステムとして機能させるプログラムにも適用することができる。
【発明の効果】
【0021】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0022】
本発明の代表的な実施の形態によれば、サーバに蓄積されるリアルタイムデータを利用するクライアントに対して、各サーバからリアルタイムデータを容易に取得するための統一的なインタフェースを提供することが可能となる。すなわち、クライアントからは、履歴データと新たな追加データとを区別することなく単一の手法によって取得することができるため、クライアント側の開発が容易となる。また、データの取得先のサーバが追加となったり、サーバからのデータの取得手順が変更等されたりした場合でも、クライアントからはこれらを隠蔽して、リアルタイムデータへのシームレスなアクセスを維持することができる。
【図面の簡単な説明】
【0023】
【図1】本発明の一実施の形態であるリアルタイムデータ取得インタフェースシステムを有する情報処理システムの構成例について概要を示した図である。
【図2】本発明の一実施の形態における識別子情報のデータ構成および具体的なデータの例について示した図である。
【図3】本発明の一実施の形態における購読状況のデータ構成および具体的なデータの例について示した図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0025】
本発明の一実施の形態であるリアルタイムデータ取得インタフェースシステムは、いわゆる“ダッシュボード”プログラムのような、時々刻々と変化するリアルタイムデータをグラフやチャート、ゲージ等によって視覚的に表示するようなクライアントプログラムに対して、サーバとの間の中間レイヤとして、各サーバに対するデータの取得(PULL型およびPUSH型でのデータ取得)に係る部分を隠蔽し、データ取得のための統一的なインタフェースを提供するシステムである。
【0026】
<システム構成>
図1は、本発明の一実施の形態であるリアルタイムデータ取得インタフェースシステムを有する情報処理システムの構成例について概要を示した図である。当該情報処理システムは、例えばクラウドコンピューティングシステムなどを構成する複数のサーバから、株価等の業務的なデータや、CPU使用率等のシステム的なデータ等の時々刻々と変化するリアルタイムデータを取得して、その状況をクライアント端末上で稼働するいわゆる“ダッシュボード”プログラム等のクライアントプログラムによって視覚的に表示する。これにより、経営者等のマネジメント層などからなるユーザがリアルタイムデータの状況を容易に把握することを可能とするものである。
【0027】
図1において、情報処理システムは、例えば企業の業務システムや、クラウドコンピューティングシステムなどを構成する複数のサーバ10と、ユーザが保有するクライアント端末上で稼働するWebブラウザ20とから構成される。当該Webブラウザ20は、図示しないネットワークを介して各サーバ10と通信することが可能である。
【0028】
各サーバ10は、処理する業務等に応じて種々の構成をとり得るが、基本的な構成としては、業務処理等を実行するアプリケーション11、および時間の経過に伴ってアプリケーション11によって随時取得もしくは生成されたリアルタイムデータを蓄積・保持するデータベースもしくはファイル等からなるデータ16を有する。アプリケーション11としては、例えば、株価データを取得・提供するような業務アプリケーションプログラムや、CPU使用率やメモリ使用量などのシステム情報を取得するようなユーティリティプログラムなど、時々刻々と変化するリアルタイムデータを取得、生成する種々のプログラムやシステム等が該当する。
【0029】
各サーバ10は、データ16に蓄積されたリアルタイムデータをクライアントに対して提供するためのインタフェース(以下では“IF”と表記する場合がある)機能を実装するデータ提供IF12を有する。このデータ提供IF12は、クライアントからのPULL型のデータ取得に対応するためのPULL型IF13と、PUSH型のデータ取得に対応するためのPUSH型IF14とを有する。上述したように、PULL型IF13は、例えば図示しないWebサーバプログラムおよびこの上で稼働するアプリケーションプログラムによって実装される。また、PUSH型IF14は、例えばBlazeDSなどの既存ソフトウェアやCometなどの公知技術を利用して実装される。
【0030】
また、サーバ10は、各クライアントによって登録(サブスクライブ、購読)された、PUSH型IF14を利用して取得したいデータの識別子(トピック)の内容を保持するファイル等からなる購読トピック15を有する。
【0031】
一方、クライアント端末上で稼働するWebブラウザ20上では、各サーバ10から取得したリアルタイムデータを集計、加工してグラフ等により視覚的に画面表示する“ダッシュボード”プログラムとしてのクライアント40が稼働している。クライアント40は、例えばWebブラウザ20に組み込まれたFlash Player等のプラグインソフトウェア上で稼働するウィジェット等の形式で実装され、表示画面毎に複数稼働することが可能である。また、1つの表示画面で複数種類のリアルタイムデータの情報をまとめて表示することも可能である。リアルタイムデータの視覚的な表示の手段としては、例えば、折れ線チャートや、ゲージ、メーターなど、種々のものを採用することができる。
【0032】
また、Webブラウザ20上では、クライアント40によるサーバ10からのリアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得IFシステム30が稼働している。本実施の形態では、リアルタイムデータ取得IFシステム30を、例えばWebブラウザ20に組み込まれたFlash Player等のプラグインソフトウェア上で稼働するソフトウェアプログラムとして実装しており、Webブラウザ20上で稼働する複数のクライアント40から共用してアクセスすることができる。
【0033】
一方、リアルタイムデータ取得IFシステム30をWebブラウザ20上ではなく独立したサーバシステム上で稼動させて、複数のクライアント端末上のWebブラウザ20(各Webブラウザ20上で稼働する複数のクライアント40)から共用してアクセス可能なように構成することも可能である。
【0034】
リアルタイムデータ取得IFシステム30は、例えば、ソフトウェアプログラムによって実装される購読データ登録部31、データ取得部32、およびデータ転送部35の各部と、各サーバ10から取得したリアルタイムデータを蓄積・保持するデータベースもしくはファイル等からなる取得データ38を有する。また、各サーバ10からPUSH型IF14を介して取得可能なデータの識別子(トピック)についてのマスタ情報を保持するファイル等からなる識別子情報36、および各クライアント40によって登録された、欲しい(購読したい)データについての識別子の情報を保持するファイル等からなる購読状況37を有する。
【0035】
購読データ登録部31は、各クライアント40からの欲しい(購読したい)データの登録や削除、変更の要求を受け付けて購読状況37に格納する。また、購読状況37が変更されたことをデータ取得部32に通知するなどにより、後述するデータ取得部32が各サーバ10から現在購読対象となっているデータを取得できるようにしてもよい。
【0036】
データ取得部32は、購読状況37および識別子情報36に基づいて、取得するリアルタイムデータおよび対象のサーバ10を特定し、対象のサーバ10のデータ提供IF12を介して対象のリアルタイムデータを取得して取得データ38に蓄積する。また、リアルタイムデータを取得したことをデータ転送部35に通知するなどにより、後述するデータ転送部35がクライアント40に対してリアルタイムにデータを転送できるようにしてもよい。
【0037】
このデータ取得部32は、サーバ10のデータ提供IF12に対応する形で、PULL型のデータ取得を行うためのPULL型取得部33と、PUSH型のデータ取得を行うためのPUSH型取得部34とを有する。上述したように、PULL型取得部33は、例えばサーバ10に対するWebアクセスの形でデータをダウンロードして取得する。また、PUSH型取得部34は、例えばBlazeDSなどの既存ソフトウェアやCometなどの公知技術を利用して実装される。
【0038】
データ取得部32は、リアルタイムデータ取得IFシステム30の起動時、もしくはクライアント40の起動時(ユーザによって購読データ登録部31から購読状況37に新たに購読対象のリアルタイムデータが登録されたときを含む)、すなわち、購読対象の各リアルタイムデータの各サーバ10からの取得の開始時に、PULL型取得部33により、対象のサーバ10のPULL型IF13を介してデータ16から取得開始時点までの購読対象のデータに係る履歴データを一括で取得する。このとき、取得範囲の始点となるタイムスタンプ等を指定して、履歴データの取得範囲を限定するようにしてもよい。一方、取得開始後は、PUSH型取得部34によって、各サーバ10のPUSH型IF14を介して対象のリアルタイムデータが送信されるのを待ち受ける。
【0039】
データ転送部35は、取得データ38に蓄積されたリアルタイムデータについて、購読状況37を参照して購読している(送信先となる)クライアント40を特定し、対象のクライアント40に対して送信する。送信に際しては、例えば取得データ38における各データのタイムスタンプを利用したり、データ毎に送信済み/未済のフラグを設けたりして、前回の送信以降の未送信のデータを判別し、未送信のデータのみを送信するようにする。送信のタイミングとしては、データ取得部32からのリアルタイムデータを取得した旨の通知をトリガとしたり、所定の間隔で定期的に送信したりすることができる。
【0040】
これにより、クライアント40については、例えばユーザがWebブラウザ20上での操作によって、欲しいリアルタイムデータの識別子(トピック)をリアルタイムデータ取得IFシステム30の購読データ登録部31を介して登録することにより、取得開始時点までの履歴データおよび取得開始後に新たに追加・更新されたデータについて、これらを区別することなく、統一されたインタフェース(PUSH型)によってデータ転送部35から取得する(配信を受ける)ことができる。
【0041】
また、対象のリアルタイムデータを提供するサーバ10に対するデータ取得の実装部分(サーバ10毎のデータ提供IFの12の相違、PULL型/PUSH型のインタフェース間での取得手順の相違、履歴データと新たな追加データとの取得方法の相違等)をリアルタイムデータ取得IFシステム30によって吸収し隠蔽するため、クライアント40の開発負荷を大幅に削減することができる。
【0042】
<データ構成>
図2は、リアルタイムデータ取得IFシステム30の識別子情報36のデータ構成および具体的なデータの例について示した図である。識別子情報36は、リアルタイムデータ取得IFシステム30が各サーバ10からPUSH型のデータ取得によって取得可能なリアルタイムデータの識別子(トピック)についてのマスタ情報を保持するテーブルであり、例えば、識別子、対象サーバ、および対象データなどの項目を有する。
【0043】
識別子の項目は、リアルタイムデータ取得IFシステム30と各サーバ10との間で、PUSH型のデータ取得においてリアルタイムデータ取得IFシステム30が取得したいデータの種別(トピック)を特定する識別子の情報を保持する。この値は、例えばリアルタイムデータ取得IFシステム30のデータ取得部32および各サーバ10のデータ提供IF12によって構成されるPUSH型のデータ取得の仕組みの中で、トピック毎に一意になるように割り振られる。
【0044】
対象サーバの項目は、対象の識別子によって特定されるリアルタイムデータを提供するサーバ10を特定する情報を保持する。図2の例ではサーバ名(ホスト名やマシン名等)によって特定しているが、サーバ10のIPアドレス等の他の情報によって特定するものであってもよい。
【0045】
対象データの項目は、対象の識別子によって特定されるリアルタイムデータの種別を特定する情報を保持する。図2の例では説明の便宜上データの名称(“CPU利用率”等)によって特定しているが、対象のサーバ10においてデータを特定できる情報であれば、データの識別IDやデータベースのカラム名等の他の情報によって特定するものであってもよい。なお、識別子情報36の各レコードは、予め登録して用意しておいてもよいし、クライアント40から新たなリアルタイムデータの取得要求を受けた時点で動的にレコードを追加するようにしてもよい。
【0046】
図2の例では、リアルタイムデータ取得IFシステム30が、“サーバA”からは識別子“100”の“CPU使用率”のデータと、識別子“110”の“メモリ使用量”のデータとが取得可能であり、“サーバB”からは識別子“200”の“銘柄Zの株価”のデータが取得可能であることを示している。
【0047】
図3は、リアルタイムデータ取得IFシステム30の購読状況37のデータ構成および具体的なデータの例について示した図である。購読状況37は、各クライアント40によって登録された、欲しい(購読したい)データについての識別子の情報を保持するテーブルであり、例えば、識別子、購読クライアント、宛先情報などの項目を有する。
【0048】
識別子の項目は、各クライアント40が購読したいデータの種別を特定する識別子の情報を保持する。この値は、上述の識別子情報36に登録された識別子の項目と対応する。購読クライアントの項目は、対象の識別子によって特定されるリアルタイムデータについて購読の登録を行っているクライアント40を特定する情報を保持する。図3の例では便宜上クライアント名によって特定しているが、クライアント40のプロセスIDやマシン名、ホスト名等の他の情報によって特定するものであってもよい。
【0049】
宛先情報は、対象の識別子によって特定されるリアルタイムデータを購読しているクライアント40(購読クライアント)について、データを送信する際の宛先に係る情報を保持する。例えば、クライアント40のプロセスIDや、通信コネクションのセッションID、IPアドレス、キュー名など、リアルタイムデータ取得IFシステム30のデータ転送部35がクライアント40に対してデータを送信する際の手段に応じて種々の値を設定し得る。
【0050】
図3の例では、識別子“100”のデータ(“サーバA”の“CPU使用率”)を“クライアントa”および“クライアントb”が購読したいデータとして登録している。また、識別子“110”のデータ(“サーバA”の“メモリ使用量”)を“クライアントa”が購読したいデータとしており、識別子“200”のデータ(“サーバB”の“銘柄Zの株価”)を“クライアントc”が購読したいデータとして登録していることを示している。
【0051】
なお、上述の図2、図3で示した各テーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。また、各サーバ10における購読トピック15、データ16、およびリアルタイムデータ取得IFシステム30における取得データ38については、リアルタイムデータの種別や内容、PUSH型でのデータ取得の実装手法などによって種々の構成をとり得るため、ここでの説明は省略する。
【0052】
<処理の流れ>
以下では、本実施の形態のリアルタイムデータ取得IFシステム30を有する情報処理システムにおいて、クライアント40がサーバ10からリアルタイムデータを取得して視覚的に表示する際の処理の流れの例について説明する。
【0053】
図1において、ユーザがクライアント端末上で“ダッシュボード”プログラムを実行するためにWebブラウザ20を起動し、所定のURLにアクセスすると、リアルタイムデータ取得IFシステム30がFlash Player上で起動する。さらに、ユーザは、“ダッシュボード”の画面(ウィジェット)を利用して表示したいリアルタイムデータの種別を特定する識別子(トピック)をリアルタイムデータ取得IFシステム30の購読データ登録部31を介して購読状況37に登録して、クライアント40を起動する。なお、起動の都度ユーザがリアルタイムデータを指定してクライアント40を起動するのではなく、予め定められた種別のリアルタイムデータや前回実行時に表示していたリアルタイムデータを対象としたクライアント40を自動的に起動するようにしてもよい。
【0054】
リアルタイムデータ取得IFシステム30のデータ取得部32は、起動時に、購読状況37に登録された各識別子に係るリアルタイムデータについて、識別子情報36を参照して対象となるサーバ10を特定する。なお、ユーザが購読対象のリアルタイムデータを購読データ登録部31によって指定する際に、対象となるサーバ10も合わせて指定できるようにしてもよい。また、このとき指定された情報を識別子情報36に登録するようにしてもよい。
【0055】
その後、データ取得部32は、PULL型取得部33によって対象の各サーバ10のPULL型IF13を介して起動時点(データ取得の開始時点)までに蓄積されている履歴データをデータ16からそれぞれ取得する。取得した履歴データは取得データ38に格納する。なお、PULL型取得部33による過去の履歴データの取得処理の実行は、起動時に限らず、起動後の運用中においても、ユーザから購読データ登録部31を介して新たな購読対象のリアルタイムデータが購読状況37に登録され(クライアント40が追加され)、新たなリアルタイムデータの取得を開始する場合にも実行される。
【0056】
その後、データ転送部35は、取得データ38に格納された履歴データに係る識別子の情報に基づいて、購読状況37を参照してクライアント40および送信時の宛先情報を取得し、この情報に従って対象のクライアント40に対して履歴データを送信する。これにより、例えば、株価情報は株価チャートを表示するクライアント40に送信され、CPU使用率のデータはCPU使用率の推移を表示するクライアント40に送信され、それぞれ必要に応じてクライアント40毎の所定の画面(ウィジェット)によって表示される。
【0057】
一方、データ取得部32は、上記のようにPULL型取得部33によってデータ取得の開始時点までの履歴データを一括して取得するとともに、PUSH型取得部34によって対象の各サーバ10のPUSH型IF14との間で通信コネクションを確立し、サーバ10から送信されるデータの待ち受けを開始する。
【0058】
その後の運用中において、サーバ10上で時間の経過とともにデータの変動があって新たなデータがデータ16に追加・更新された場合、サーバ10のデータ提供IF12は、当該データが購読トピック15に登録されたものである場合には、これをPUSH型IF14によってリアルタイムデータ取得IFシステム30のPUSH型取得部34に対して送信する。リアルタイムデータ取得IFシステム30のデータ取得部32では、PUSH型取得部34が受信したリアルタイムデータを取得データ38に格納する。
【0059】
その後、データ転送部35は、取得データ38に新たに追加されたリアルタイムデータに係る識別子の情報に基づいて、起動時と同様に、購読状況37を参照してクライアント40および送信時の宛先情報を取得し、この情報に従って対象のクライアント40に対してリアルタイムデータを送信する。データを受信したクライアント40では、受信したデータを反映させて画面の表示を更新することで、時々刻々と変化するデータの状況をリアルタイムで視覚的に表示することができる。
【0060】
以上に説明したように、本発明の一実施の形態であるリアルタイムデータ取得IFシステム30によれば、サーバ10に蓄積されるリアルタイムデータを利用するクライアント40に対して、各サーバ10からリアルタイムデータを容易に取得するための統一的なインタフェースを提供することが可能となる。すなわち、クライアント10からは、履歴データと新たな追加データとを区別することなく単一の手法によって取得することができるため、クライアント10側の開発が容易となる。また、データの取得先のサーバ10が追加となったり、サーバ10からのデータの取得手順が変更等されたりした場合でも、リアルタイムデータ取得IFシステム30で吸収することでクライアント40からはこれらを隠蔽して、リアルタイムデータへのシームレスなアクセスを維持することができる。
【0061】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0062】
例えば、本実施の形態では、クライアント40として、リアルタイムデータの状況を画面(ウィジェット)上に表示する“ダッシュボード”プログラムを例に挙げて説明しているが、クライアント40はこのようなものに限らず、取得したリアルタイムデータを利用するソフトウェアや情報処理端末等であればよいことは当然である。
【0063】
また、リアルタイムデータ取得IFシステム30をクライアント端末のWebブラウザ20上ではなく、独立したサーバシステムとして構成した場合に、複数のクライアント端末から同一のサーバ10の同一のリアルタイムデータに対して重複して購読の登録がされる場合が生じ得る。このとき、各サーバ10から取得したデータを蓄積する取得データ38をキャッシュ的に取り扱い、新たに起動したクライアント40が欲しいデータ(履歴データ)が取得データ38上にすでに蓄積されている場合は、サーバ10に対してPULL型のデータ取得により履歴データを取得することを行わずに、取得データ38から履歴データを取得してクライアント40に対して送信するよう構成することも可能である。
【0064】
また、上記のように独立したサーバシステムとして構成した場合、各サーバ10上で蓄積されるリアルタイムデータをリアルタイムデータ取得IFシステム30上に集約して蓄積することが可能となり、監査やシステム稼働状況の監視等に必要となるデータを一元的に管理する用途として利用することも可能である。
【産業上の利用可能性】
【0065】
本発明は、時々刻々と変化するデータをリアルタイムでサーバから取得するためのインタフェースをクライアントに対して提供するリアルタイムデータ取得インタフェースシステムおよびリアルタイムデータ取得インタフェースプログラムに利用可能である。
【符号の説明】
【0066】
10…サーバ、11…アプリケーション、12…データ提供インタフェース(IF)、13…PULL型インタフェース(IF)、14…PUSH型インタフェース(IF)、15…購読トピック、16…データ、
20…Webブラウザ、
30…リアルタイムデータ取得インタフェース(IF)システム、31…購読データ登録部、32…データ取得部、33…PULL型取得部、34…PUSH型取得部、35…データ転送部、36…識別子情報、37…購読状況、38…取得データ、
40…クライアント。

【特許請求の範囲】
【請求項1】
1以上のサーバ上でそれぞれ蓄積されるリアルタイムデータを取得して利用する1以上のクライアントに対して、前記各サーバに対する前記リアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得インタフェースシステムであって、
前記各クライアントからの購読対象となる前記リアルタイムデータの種別に係る情報について、ユーザからの登録の要求を受け付けて購読状況として保持する購読データ登録部と、
前記購読状況に基づいて、取得する前記リアルタイムデータおよび対象となる前記サーバを特定し、対象となる前記サーバから対象の前記リアルタイムデータを取得して取得データとして蓄積するデータ取得部と、
前記取得データに蓄積された前記リアルタイムデータについて、前記購読状況に基づいて購読している前記クライアントを特定し、対象の前記クライアントに対して送信するデータ転送部とを有し、
前記データ取得部は、さらに、前記各サーバからPULL型のデータ取得を行うPULL型取得部と、PUSH型のデータ取得を行うPUSH型取得部とを有し、購読対象の前記リアルタイムデータの取得の開始時に、前記PULL型取得部によって対象の前記サーバから購読対象の前記リアルタイムデータに係る当該開始時までの履歴データを一括で取得し、その後、前記PUSH型取得部によって前記各サーバから購読対象の前記リアルタイムデータに係る追加データが送信されるのを待ち受けることを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項2】
請求項1に記載のリアルタイムデータ取得インタフェースシステムにおいて、
当該リアルタイムデータ取得インタフェースシステムおよび前記各クライアントは、クライアント端末上の同一のWebブラウザ上で稼働するソフトウェアプログラムとして構成されることを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項3】
請求項1に記載のリアルタイムデータ取得インタフェースシステムにおいて、
当該リアルタイムデータ取得インタフェースシステムは、独立したサーバシステムとして構成されることを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項4】
請求項3に記載のリアルタイムデータ取得インタフェースシステムにおいて、
前記データ取得部は、購読対象の前記リアルタイムデータの取得の開始時に、購読対象の前記リアルタイムデータに係る前記履歴データが既に前記取得データに蓄積されている場合は、対象の前記サーバからの前記履歴データの取得を行わずに、前記取得データから前記履歴データを取得することを特徴とするリアルタイムデータ取得インタフェースシステム。
【請求項5】
1以上のサーバ上でそれぞれ蓄積されるリアルタイムデータを取得して利用する1以上のクライアントに対して、前記各サーバに対する前記リアルタイムデータの取得のためのインタフェースを提供するリアルタイムデータ取得インタフェースシステムとしてコンピュータを機能させるリアルタイムデータ取得インタフェースプログラムであって、
前記各クライアントからの購読対象となる前記リアルタイムデータの種別に係る情報について、ユーザからの登録の要求を受け付けて購読状況として保持する購読データ登録処理と、
前記購読状況に基づいて、取得する前記リアルタイムデータおよび対象となる前記サーバを特定し、対象となる前記サーバから対象の前記リアルタイムデータを取得して取得データとして蓄積するデータ取得処理と、
前記取得データに蓄積された前記リアルタイムデータについて、前記購読状況に基づいて購読している前記クライアントを特定し、対象の前記クライアントに対して送信するデータ転送処理とを有し、
前記データ取得処理は、さらに、前記各サーバからPULL型のデータ取得を行うPULL型取得処理と、PUSH型のデータ取得を行うPUSH型取得処理とを有し、購読対象の前記リアルタイムデータの取得の開始時に、前記PULL型取得処理によって対象の前記サーバから購読対象の前記リアルタイムデータに係る当該開始時までの履歴データを一括で取得し、その後、前記PUSH型取得処理によって前記各サーバから購読対象の前記リアルタイムデータに係る追加データが送信されるのを待ち受けることを特徴とするリアルタイムデータ取得インタフェースプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−150762(P2012−150762A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−10803(P2011−10803)
【出願日】平成23年1月21日(2011.1.21)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】