(第1の実施形態)
図1は、この発明の第1の実施形態に係わるデータ蓄積配信サーバを備えた監視システムの構成を示すブロック図である。
この実施形態の監視システムは、監視対象場所に配置された複数台のWebカメラC1〜Cnを通信ネットワークNWを介してデータ蓄積配信サーバSV0に接続すると共に、このデータ蓄積配信サーバSV0に対し監視センタ等を設置される複数台の再生用クライアント端末TM1〜TMm、及び管理用クライアント端末MMを上記通信ネットワークNWを介して接続したものである。またデータ蓄積配信サーバSV0には、ドアセンサDS等のセンサ群も上記通信ネットワークNW、或いはディジタルI/O17を介して接続される。
通信ネットワークNWとしては、例えば有線LAN(Local Area Network)を使用したIP網が用いられるが、必ずしも有線LANに限るものではなく、インターネットやCATV(Cable Television)網、無線LAN等のその他コンピュータネットワークを使用することも可能である。
上記WebカメラC1〜Cnは、カメラ本体にエンコーダ及びデータ通信機能を付加したもので、このエンコーダが持つ符号化方式により例えばJPEG(Joint Photographic Experts Group) 映像Webカメラ又はMPEG−4(Motion Picture Experts Group -4)映像Webカメラとして動作する。
JPEG映像Webカメラ(例えばC1)は、データ蓄積配信サーバSV0との間で通信ネットワークNWを介してHTTP/TCP/IP(Hyper Text Transport Protocol/Transmission Control Protocol/Internet Protocol)に従い通信を行う。JPEG映像データの伝送は、先ずデータ蓄積配信サーバSV0がJPEG映像WebカメラC1に対し映像取得のためのCGI要求を発行し、この要求に応答してJPEG映像WebカメラC1がデータ蓄積配信サーバSV0へJPEG映像データの1フレームを送信することにより行われる。すなわち、CGI要求の発行と映像の送信は1フレームごとに行われる。
MPEG−4映像Webカメラ(例えばCn)は、データ蓄積配信サーバSV0との間で通信ネットワークNWを介してRTSP-RTP/UDP(又はTCP/IP)に従い通信を行う。MPEG−4映像データの伝送は、先ずデータ蓄積配信サーバSV0がMPEG−4映像Webカメラ3に対しRTSPにより映像取得を要求し、この要求に応答してMPEG−4映像WebカメラCnがデータ蓄積配信サーバSV0へRTPによりMPEG−4映像データを送信することにより行われる。この映像データの伝送は、データ蓄積配信サーバSV0がMPEG−4映像WebカメラCnに対しRTSPにより停止命令を発行するまで続けられる。
一方、再生用クライアント端末TM1〜TMmは、例えばワークステーション又はパーソナル・コンピュータにより構成され、所有するデコーダの種類によりJPEG再生クライアント端末或いはMPEG−4再生クライアント端末として動作する。
JPEG再生クライアント端末(例えばTM1)は、データ蓄積配信サーバSV0との間で通信ネットワークNWを介してHTTP/TCP/IPに従い通信を行う。JPEG映像データの配信は、先ずJPEG再生クライアントTM1からデータ蓄積配信サーバSV0に対し映像取得のためのCGI要求を発行し、この要求に応答してデータ蓄積配信サーバSV0がJPEG再生クライアント端末TM1に向けJPEG映像データの1フレームを送信することにより行われる。すなわち、JPEG映像データの送信は1フレームごとに行われる。JPEG再生クライアント端末TM1は、受信したJPEG映像データをデコーダにより伸張して表示器に表示する。
MPEG−4再生クライアント端末(例えばTMm)は、データ蓄積配信サーバSV0との間で通信ネットワークNWを介してHTTP/TCP/IPに従い通信を行う。MPEG−4映像データの配信は、先ずMPEG−4再生クライアント端末TMmからデータ蓄積配信サーバSV0に対し映像取得のためのCGI要求を発行し、このCGI要求に応答してデータ蓄積配信サーバSV0が要求元のMPEG−4再生クライアント端末TMmへMPEG−4映像データを1GOV(Group Of VOP(Video Object Plane))分送信することにより行われる。すなわち、MPEG−4映像データの送信は1GOVごとに行われる。MPEG−4再生クライアント端末TMmは、受信したMPEG−4映像データをデコーダにより伸張して表示器に表示する。
管理用クライアント端末MMは、データ蓄積配信サーバSV0との間で通信ネットワークNWを介してHTTP/TCP/IPに従い以下のような通信を行う。すなわち、データ蓄積配信サーバSV0は、パスワード等の照合により権限を持つ特定の人からの命令のみを受け付ける。命令には、設定情報(設定ファイル)のダウンロードを指示する命令、設定ファイルのアップロードを指示する命令、データ蓄積配信サーバSV0にアップロードされた設定ファイルの内容により動作の変更を指示する命令がある。
データ蓄積配信サーバSV0は、例えばパーソナル・コンピュータにより構成される。図2はそのハードウエア構成を示すブロック図である。データ蓄積配信サーバSV0は、CPU(Central Processing Unit)101を備え、このCPU101に、バス102を介してネットワークインタフェース(ネットワークI/F)103と、シリアルインタフェース(シリアルI/F)104と、メモリ106と、ハードディスクドライブ・インタフェース(HDDI/F)107とを接続したものからなる。
ネットワークI/F103は、通信ネットワークNWとの間で通信を行うためのインタフェース動作を行う。シリアルI/F104にはディジタルI/O105が接続され、このディジタルI/O105はドアセンサDSの検出データを受信する。メモリ106は、CPU101がプログラムを実行するために使用される。HDDI/F107は、ハードディスクドライブ(HDD)21との間でデータの書き込み及び読み出し処理を行う。
図3は、HDD21内における記録領域の構成を示すものである。HDD21には、オペレーティングシステム(OS)のプログラム群を格納するOS用領域211と、WebカメラC1〜Cnから送られた映像データを格納する映像データ用領域212と、映像記録プログラム群領域213とが設けられている。映像記録プログラム群領域213には、実行ファイル用ディレクトリ2131と、設定ファイル用ディレクトリ2132と、状態情報出力用ディレクトリ2133が格納される。実行ファイル用ディレクトリ2131はプログラムの実行ファイルを保持するために使用される。設定ファイル用ディレクトリ2132は、設定情報を保持するための使用される。状態情報出力用ディレクトリ2133は、後述する複数のプラグインプロセスが自身の動作状態を示すために出力する状態情報ファイルを保持する。
ところで、データ蓄積配信サーバSV0は、映像データを取り扱うプログラムの一般系として、WebカメラC1〜Cnから送信された映像データを受信する処理を実行するプログラムと、受信されたデータの、上記HDD21への書き込み及び読み出し処理を実行するプログラムと、HDD21から読み出された映像データを上記再生用クライアント端末TM1〜TMmへ送信する処理を実行するプログラムとを備える。これらのプログラムをプラグインプロセス(以後PPと略称する)と呼称する。
図1はこの実施形態のデータ蓄積配信サーバSV0が備えるPPの種類を示すもので、マスタコントロール・プラグインプロセス(マスタコントロールPP)11と、JPEG受信PP12と、MPEG受信PP13と、JPEG送信PP14と、MPEG送信PP15と、PreHTTP−PP16と、ユーザ管理PP18と、スケジュール設定PP19と、蓄積サービスPP20とがある。なお、データ蓄積配信サーバSV0は上記各PPの他にディジタルI/O17を備える。
上記各PP及びディジタルI/O17は、サーバ内のシステムネットワーク10を介してデータの転送を行う。このサーバ内のシステムネットワーク10を使用したデータ転送方式には、PULL型方式と、PUSH型方式の2方式がある。
PULL型方式は、図5(a)に示すように伝送開始トリガを受信側Aが持つ方式である。Aがデータを欲するタイミングで、送信側Bに対し映像送信要求を送信(1)し、この要求に応答してBからAにデータを送信(2)する。ここで、図5(a)のAのようにPULL型でデータを受信することを「PULL型入力」と呼称し、「PULL−IN」と記述する。また、図5(a)のBのように、PULL型でデータを送信することを「PULL型出力」と呼称し、「PULL−OUT」と記述する。
PUSH型方式は、図5(b)に示すようにデータ伝送開始のトリガを送信側Bがもつ方式である。送信側Bがデータを送信したいタイミングで、受信側Aに対しデータを送信(1)する。ここで、図5(b)のAのように、PUSH型でデータを受信することを「PUSH型入力」と呼称し、「PUSH−IN」と記述する。また、図5(b)のBのように、PUSH型でデータを送信することを「PUSH型出力」と呼称し、「PUSH−OUT」と記述する。
データ蓄積配信サーバSV0が備える各PPは、サーバSV0内における映像データの転送を行うために、図4に示すように上記「PULL−IN」、「PULL−OUT」、「PUSH−IN」及び「PUSH−OUT」用のデータ転送インタフェース31〜34を備える。これらのデータ転送インタフェース31〜34はそれぞれ、複数のチャンネルを有する。
例えば、PULL−INインタフェース31はch−0からch−n1までのチャンネルを有し、PUSH−INインタフェース33はch−0からch−n3までのチャンネルを有する。また、PULL−OUT32はch−0からch−n2までのチャンネルを有し、PUSH−OUT34はch−0からch−n4までのチャンネルを有する。
さらに各PP11〜20は、上記映像データ転送用のインタフェース31〜34とは別に制御用ポート35も備えている。この制御用ポート35は、PPの制御用命令を通信するためのもので、PPごとに1チャンネル以上存在する。
なお、プラグインプロセスの用途によっては、特定のデータ転送インタフェースがチャンネル数を持たない(=0)場合もある。例えば、「PUSH−IN」及び「PUSH−OUT」のチャンネルが0個だったり、「PULL−IN」及び「PULL−OUT」のチャンネルが0個の場合もある。また、PP固有の映像データの入出力チャンネルを持つが、一般型の上記「PUSH−IN」、「PUSH−OUT」、「PULL−IN」及び「PULL−OUT」31〜34のチャンネルを持たないという形態もある。さらに、後述するように、映像データを扱わずにデータ蓄積配信サーバSV0の管理用情報のみを扱うプラグインプロセスもある。
上記各プラグインプロセス(PP)11〜20は、実行ファイル形式でデータ蓄積配信サーバSV0にインストールされ、このインストールされた実行ファイルを実行することによって起動される。上記各プラグインプロセス(PP)11〜20の実行ファイルは、図3に示したHDD21内の実行ファイル用ディレクトリ2131に格納される。動作中のプラグインプロセスには識別名が付与される。ただし、一つのデータ蓄積配信サーバSV0内で、同種のプラグインプロセスが複数動作することもあるため、プラグインプロセスの実行ファイル名をそのまま識別名にはせず、全てのプラグインプロセスに対しユニークな識別名が与えられる。この識別名の付与は、管理用クライアント端末MMにおいて管理者の入力操作により行われる。
動作中のプラグインプロセスについては、その状態情報を記した状態情報ファイル350が生成され、この状態情報ファイル350は図3に示したHDD21内の状態情報出力用ディレクトリ2133から出力される。状態情報ファイル350には、例えば図11に示すように制御ポート情報351と、状態フラグ352とが含まれる。制御ポート情報351は、プラグインプロセスが命令を受け渡しする際のソケットポート番号を示す。状態フラグ352は、「稼動中」、「異常終了」及び「正常終了」の各状態を表示するために使用される。なお、後述するように各プラグインプロセスは、起動時に自身が使用するソケットポート番号を取得する。PreHTTP−PP16は、この状態情報ファイル350を確認することで、データ蓄積配信サーバSV0が備えるプラグインプロセスの稼動状況を知る。
次に、この実施形態に係わるデータ蓄積配信サーバSV0が備える各プラグインプロセスの機能を説明する。
[マスタコントロールPP11]
マスタコントロールPP11は、データ蓄積配信サーバSV0上で動作するプログラムであり、設定ファイル22に記述された情報に基づき各PPへの起動命令の送信、各PPへの設定情報の送付、及び設定管理者からの指示の受付をそれぞれ行う。マスタコントロールPP11は、データ蓄積配信サーバSV0の起動時に自動的に起動され、データ蓄積配信サーバSV0の動作中は常に動作している。マスタコントロールPP11はデータ蓄積配信サーバSV0に1つ存在する。なお、データ蓄積配信サーバ装置が複数のサーバにより構成される場合には、いずれか1台のサーバ上でマスタコントロールPP11が1つ動作する。
[蓄積サービスPP20]
蓄積サービスPP20は、データ蓄積配信サーバSV0上で動作するプログラムであり、HDD21に映像データを記録すると共に、HDD21から映像データを読み出す処理を実行する。この蓄積サービスPP20は入力インタフェースにPUSH−INのチャンネルを複数持ち、出力インタフェースにPULL−OUTのチャンネルを複数持つ。
データ蓄積配信サーバSV0に設けられたHDD21内には、図3に示したように映像データ用領域212が用意されており、この映像データ用領域212は映像データ保持用に区切られた複数の映像記録用チャンネルが存在する。映像記録用チャンネルへの映像データの記録は、チャンネル毎に循環記録方式、つまり映像データを領域の先頭から記録していき、領域の末尾まで映像を記録し終えると先頭から映像データを上書きしていく方式により行われる。
蓄積サービスPP20は、各映像記録用チャンネルに映像データを記録していく際に、映像記録用チャンネル毎に独立した一意のフレーム番号(1からの連番)を映像データに付けることにより映像データを管理する。クライアントが記録された映像データの中から所望の映像データを指定する時には、映像記録用チャンネル番号と上記フレーム番号を用いて映像データを指定する。
図6に示すように、この実施形態の蓄積サービスPP20は、PUSH−INのチャンネルを4つ、HDD21内の映像記録チャンネルを4つ(図示せず)、PULL−OUTのチャンネルを5つ持つ。各PUSH−IN、映像記録チャンネル、及びPULL−OUTの各チャンネル番号には関連性を持たせてある。
蓄積サービスPP20のPUSH−IN側では、映像データを受け取ったPUSH−INのチャンネル番号と同一番号の映像記録チャンネルに映像データを記録する。例えば、PUSH−INの0チャンネルに入力された映像データは、映像記録チャンネルの0チャンネルに記録される。蓄積サービスPP20のPULL−OUT側では、映像データ要求を受け取ったPUSH−OUTのチャンネル番号と同一の映像記録チャンネルから映像データが読み出される。例えば、PULL−OUTの0チャンネルにおいて映像要求を受け付けた場合には、映像記録チャンネルの0チャンネルから映像データが読み出され、この読み出された映像データがPULL−OUTの0チャンネルから要求元の送信PPへ返送される。
PUSH−INで入力された映像データの単位と、PULL−OUTから出力される映像データの単位は同じである。扱う映像データがJPEGの映像データの場合には、PUSH−INでは1フレーム単位で映像データが入力され、PULL−OUTでは1フレーム単位で映像データが読み出されて要求元の送信PPへ返送される。これに対し扱う映像データがMPEG−4の映像データの場合には、PUSH−INでは1GOV単位で映像データが入力され、PULL−OUTでは1GOV単位で映像データが読み出されて要求元の送信PPへ送信される。
蓄積サービスPP20において、各PUSH−INチャンネルがどの受信PP12,13からの映像データを受け付けるか、各PULL−OUTチャンネルがどの送信PP14,15へ映像データの送信を許可しているかの設定は、マスタコントロールPP11から送付される設定情報に従う。
[JPEG受信PP12]
JPEG受信PP12は、データ蓄積配信サーバSV0上で動作するプログラムであり、JPEG映像WebカメラC1と通信ネットワークNWを介して通信を行い、JPEG映像データを受信して蓄積サービスPP20に転送する処理を実行する。
この実施形態のJPEG受信PP12は、図6に示すようにこのPP12固有の入力チャンネル(PULL−IN+Threadチャンネル)を備え、さらに複数のPUSH−OUTチャンネルと、複数のPULL−OUTチャンネルを備える。また、図6では図示を省略しているが、JPEG受信PP12は制御用ポート(図4の35)を持つ。PULL−IN+Threadチャンネルは、JPEG映像Webカメラ(例えばC1)と通信を行うために使用される。
その通信手順は以下のように設定される。すなわち、先ずJPEG映像Webカメラに対しログインコマンドを発行して通信を開始し、続いて映像データの受信フレームレートに合わせて適時映像取得要求を送信する。そして、この映像取得要求に応答してJPEG映像Webカメラから送られるJPEG映像データを受信し、所望の映像データの受信が終了した時に、ログアウトコマンドを発行して通信を終了する。
JPEG受信PP12は、JPEG映像WebカメラC1から映像データを受信したタイミングに同期して、PUSH−OUTチャンネルから蓄積サービスPP20へ上記受信された映像データを送信する。またJPEG受信PP12は、JPEG映像WebカメラC1から受信した最新の映像データをメモリ106に保持する。そして、JPEG受信PP12のPULL−OUTチャンネルにおいて、JPEG送信PP14から映像要求を受けた場合に、メモリ106上に保持されている映像データをJPEG送信PP14へ返信する。これにより、JPEG映像WebカメラC1により撮像された映像データを蓄積せずにクライアント端末TM1〜TMmへ配信する、いわゆるダイレクトサービスが可能となる。
JPEG受信PP12が、どのようなフレームレートでJPEG映像WebカメラC1から映像データを受信するかはマスタコントロールPP11から送付される設定情報に従う。また同様に、JPEG映像WebカメラC1の識別情報(IPアドレス情報)、及びPUSH−OUTでの映像出力先、つまり蓄積サービスPP20の識別情報及び蓄積サービスPP20のPUSH−INチャンネル番号の設定についても、マスタコントロールPP11から送付される設定情報に従う。
この実施形態のJPEG受信PP12は、一つのPPにつき、一つのJPEG映像Webカメラと通信を行う。データ蓄積配信サーバSV0が複数のJPEG映像Webカメラから映像を受信する場合には、データ蓄積配信サーバSV0内に複数のJPEG受信PPを用意する。そして、これらのJPEG受信PPを上記複数のJPEG映像Webカメラに1対1に対応付けてそれぞれ動作させる。なお、複数のJPEG映像Webカメラとそれぞれ通信をするように設定された1個のJPEG受信PPを用意してもよい。
なお、一般的にJPEG映像Webカメラとの通信方式は、JPEG映像Webカメラの製造メーカ毎に異なる固有の方式となっている。したがって、例えばJPEG映像Webカメラとして複数のメーカの製品を用いる場合には、各メーカのJPEG映像Webカメラに対してそれぞれ固有のJPEG受信PP12を用意する必要がある。
[MPEG受信PP13]
MPEG受信PP13は、データ蓄積配信サーバSV0上で動作するプログラムであり、MPEG映像Webカメラ(例えばCn)と通信ネットワークNWを介して通信を行ってMPEG−4映像データを受信し、この受信されたMPEG−4映像データを蓄積サービスPP20へ転送する処理を実行する。
この実施形態のMPEG受信PP13は、図6に示すようにこのPP13固有の入力チャンネルを備え、さらに複数のPUSH−OUTチャンネルと、複数のPULL−OUTチャンネルを備える。上記固有の入力チャンネルは、MPEG映像Webカメラとの間で通信を行うために使用される。
MPEG受信PP13は、MPEG映像WebカメラCnから映像データを受信したタイミングに同期して、当該受信された映像データをPUSH−OUTチャンネルから蓄積サービスPP20へ転送する。またMPEG受信PP13は、MPEG映像WebカメラCnから受信した最新の映像データをメモリ106に保持する。そして、MPEG受信PP13のPULL−OUTチャンネルにおいて、MPEG送信PP15から映像要求を受けた場合に、メモリ106に保持されている映像データをMPEG送信PP15へ返信する。これにより、MPEG映像WebカメラCnにより撮像された映像データを蓄積せずにクライアント端末TM1〜TMmへ配信する、いわゆるダイレクトサービスが可能となる。
なお、通信相手先となるMPEG映像Webカメラの識別情報(IPアドレス情報)、PUSH−OUTでの映像出力先、つまり蓄積サービスPP20の識別情報、及び蓄積サービスPP20のPUSH−INチャンネル番号の設定は、マスタコントロールPP11から送付される設定情報に従う。
また、この実施形態のMPEG受信PP13は、一つのPPにつき、一つのMPEG映像Webカメラと通信を行う。データ蓄積配信サーバSV0が複数のMPEG映像Webカメラから映像データを受信する場合には、データ蓄積配信サーバSV0内に複数のMPEG受信PPを用意する。そして、これらのMPEG受信PPを上記複数のMPEG映像Webカメラに1対1に対応付けてそれぞれ動作させる。なお、複数のMPEG映像Webカメラとそれぞれ通信をするように設定された1個のMPEG受信PPを用意してもよい。
[JPEG送信PP14]
JPEG送信PP14は、データ蓄積配信サーバSV0上で動作するプログラムであり、JPEG再生クライアント端末(例えばTM1)から通信ネットワークNWを介して映像要求を受け付けた場合に、蓄積サービスPP20またはJPEG受信PP12に映像要求を発行する。そして、この要求に応答して上記蓄積サービスPP20から読み出されたのち転送された映像データ、又はJPEG受信PP12で受信されたのち転送された映像データを、JPEG再生クライアント端末TM1へ送信する処理を実行する。
この実施形態のJPEG送信PP14は、図6に示すようにこのPP固有の複数の出力チャンネルを備え、さらに複数のPULL−INチャンネルを備えている。上記複数の出力チャンネルはそれぞれ、JPEG再生クライアントとの間で通信を行うために使用される。
またJPEG送信PP14は、JPEG再生クライアント端末TM1から映像要求を受け付けたタイミングに同期して、PULL−INチャンネルから蓄積サービスPP20又はJPEG受信PP12に対し映像要求を発行する。映像要求の発行先を指定する判断情報、つまり映像要求を蓄積サービスPP20とするか、或いはJPEG受信PP12とするかを指定する情報は、JPEG再生クライアント端末TM1から送られる映像要求の引数に含まれている。
[MPEG送信PP15]
MPEG送信PP15は、データ蓄積配信サーバSV0上で動作するプログラムであり、MPEG再生クライアント端末(例えばTMm)から通信ネットワークNWを介して映像要求を受け取った場合に、蓄積サービスPP20又はMPEG受信PP13に対し映像要求を発行する。そして、この要求に応答して上記蓄積サービスPP20から読み出されたのち転送された映像データ、或いはMPEG受信PP13で受信されたのち転送された映像データを、要求元のMPEG再生クライアント端末TMmへ送信する処理を実行する。
この実施形態のMPEG送信PP15は、図6に示すようにこのPP固有の複数の出力チャンネルを備え、さらに複数のPULL−INチャンネルを備えている。上記固有の複数の出力チャネルはそれぞれ、MPEG再生クライアント端末と通信を行うために使用される。
またMPEG送信PP15は、MPEG再生クライアント端末TMmから映像要求を受け付けたタイミングに同期して、PULL−INチャンネルから蓄積サービスPP20又はMPEG受信PP13に映像要求を発行する。映像要求の発行先を指定する判断情報、つまり映像要求を蓄積サービスPP20とするか、或いはMPEG受信PP13とするかを指定する情報は、MPEG再生クライアント端末TMmから送られる映像要求の引数に含まれている。
[PreHTTP−PP16]
PreHTTP−PP16は、データ蓄積配信サーバSV0上で動作するプログラムであり、再生用クライアント端末TM1〜TMmからの要求を受け付け、この要求を稼動中の各送信PPに転送する処理を実行する。
ソケット通信において80番ポートで待ち受けることが可能なプログラムは一つである。このため、本実施形態ではPreHTTP−PP16が80番ポートで再生用クライアント端末TM1〜TMmからの要求通信の待ち受けを行う。再生用クライアント端末TM1〜TMmからの要求通信が、現在稼動中の送信PP、例えばJPEG送信PP14又はMPEG送信PP15宛てのものであれば、要求通信を当該送信PPに引き継がせる。すなわち、ディスクリプタパッシングを使用する。
引き継ぎ後は、当該引継先の送信PPと要求元の再生用クライアント端末TM1〜TMmとの間で、PreHTTP−PP16を介することなく通信が可能となる。再生用クライアント端末TM1〜TMmからの要求通信が、稼動中の送信PP宛てでなければ、一般的なHTTPサーバと同等な動きを行う。例えば、要求先のディレクトリに対する権限チェックを行い、要求ファイルの返信又はCGI処理を行う。
また、後述するがPreHTTP−PP16は、マスタコントロールPP11からの起動命令に基づいて各PPを起動させるための処理を実行する。
[ユーザ管理PP18]
ユーザ管理PP18は、データ蓄積配信サーバSV0上で動作するプログラムであり、チャンネル毎にユーザのアクセス権限を設定する。どのチャンネルにどのユーザがどういった権限をもっているかを表す情報、つまりアクセス権限情報は、設定ファイル22に記載してある。ユーザ管理PP18は、マスタコントロールPP11からアクセス権限情報を取得する。データ蓄積配信サーバSV0のアクセス権限判定は、ユーザ管理PP18が行う。
例えば、視聴ユーザを制限する場合には次のような処理が行われる。すなわち、視聴対象がJPEG映像データの場合には、JPEG送信PP14に対しログイン処理を行う前に、JPEG再生クライアント端末はユーザによるユーザ識別情報及び視聴希望チャンネルの指定情報の入力を受け付ける。なお、この実施形態ではユーザ識別情報をユーザ名及びパスワードとする。上記ユーザ識別情報が入力されると、JPEG再生クライアント端末はログイン要求と共に上記ユーザ識別情報をデータ蓄積配信サーバSV0に転送する。データ蓄積配信サーバSV0で受信されたユーザ識別情報は、JPEG送信PP14へ転送される。
JPEG送信PP14は内部にユーザの権限情報を保持せず、ユーザ識別情報をユーザ管理PP18に送付し、権限チェックを依頼する。この依頼に対し、ユーザ管理PP18からの返答が「権限有」であれば、JPEG送信PP14はJPEG再生クライアント端末に対しログイン成功を返信する。そして、以後ログアウトするまでの間に、JPEG送信PP14はJPEG再生クライアント端末から送られるログイン時指定のチャンネルへの映像要求に応じる。これに対しユーザ管理PP18からの返答が「権限無し」だったとする。この場合JPEG送信PP14は、JPEG再生クライアント端末にログイン失敗を返答して通信を終了する。
以上述べた権限の判定処理及びその判定結果に応じた信号通知処理は、MPEG映像の場合においても同様に行われる。MPEG送信PP15は、MPEGクライアント端末からのログイン処理においてユーザ識別情報を受け取り、ユーザ管理PP18に問い合わせた結果によりログイン成功か失敗かを判定する。
[スケジュール設定PP19]
スケジュール設定PP19は、データ蓄積配信サーバSV0上で動作するプログラムであり、外部センサからの情報を受け取り、この受け取った情報をもとにJPEG受信PP12又はMPEG受信PP13に対し受信レートの変更の指示する。どの信号を受けた時に、どの受信PPをどのレートに変更するかといった情報は、設定ファイル22に記載してある。この実施形態のデータ蓄積配信サーバSV0は、ドアセンサDS等から発生されるセンサ信号を、通信ネットワークNWを介して図2に示したネットワークI/F103で受信し、さらにディジタルI/O17により受信する。
[ディジタルI/O17]
ディジタルI/O17は、データ蓄積配信サーバSV0上で動作するプログラムであり、図2に示すシリアルインタフェース104に接続されたディジタルI/Oインタフェース105を監視する。そして、後述する設定ファイル22に記載された指示に従い、ディジタルI/O105の変化を他のPPに通知する。
以上述べた各プラグインプロセス(PP)は、設定ファイル22に記載された設定情報に基づいて処理を実行する。設定ファイル22は、データ蓄積配信サーバSV0内のHDD21に記憶されている。図7はこの設定ファイル22に記載された設定情報の構成を示すものである。
設定ファイル22は、階層L1に属する設定情報群220と、階層L2に属する複数の設定情報群221〜228とから構成される。
このうち先ず階層L1の設定情報群220は、マスタコントロールPP11が使用する設定情報を記述したもので、PP存在情報2201と、PP間接続情報2202と、サービスチャネル情報2203とを含んでいる。
PP存在情報2201には、データ蓄積配信サーバSV0内で動作する各PPの一覧(起動すべきPPの一覧)が記述されている。なお、後述する第2の実施形態のように各PPが複数のデータ蓄積配信サーバに分散配置されている場合には、各PPがどのサーバに存在するかを表す情報も記述される。
PP間接続情報2202には、各PPの入出力インタフェース(PULL−IN,PULL−OUT,PUSH−IN,PUSH−OUT)が、どのPPの入出力インタフェースに接続されるかを表す情報が記述される。
サービスチャンネル情報2203には、どのPPの入出力インタフェースをどのサービスの何番のチャンネルに割り当てるかを表す情報が記述される。
一方、階層L2には、JPEG受信PP用の設定情報群221と、MPEG受信PP用の設定情報群222と、蓄積サービスPP用の設定情報群223と、JPEG送信PP用の設定情報群224と、MPEG送信PP用の設定情報群225と、PreHTTP−PP用の設定情報群226と、ユーザ管理PP用の設定情報群227と、スケジュール設定PP用の設定情報群228とが属する。
JPEG受信PP用設定情報群221には、接続先となるJPEG映像WebカメラC1のIPアドレスを示す「接続WebカメラIPアドレス」2211と、JPEG映像WebカメラC1から受信する映像データの受信データレートを示す「映像取得レート」2212と、各出力チャンネルへの出力データレートを示す「出力チャンネル別出力レート表」2213が記述される。
MPEG受信PP用設定情報群222には、接続先となるMPEG映像WebカメラCnのIPアドレスを示す「接続WebカメラIPアドレス」2221と、各出力チャンネルへの出力データレートを示す「出力チャンネル別出力レート表」2222が記述される。
蓄積サービスPP用設定情報群223には、入力チャンネルとHDD21上のチャンネルとの対応を示す「入力チャンネル・記録チャンネル対応表」2231と、出力チャンネルとHDD21上のチャンネルとの対応を示す「出力チャンネル・記録チャンネル対応表」2232と、出力チャンネルがどの送信PPへの映像データの送信を許可するかを示す「出力チャンネル・接続許可PP対応表」2233が記述される。
JPEG送信PP用設定情報群224には、出力チャンネル別の処理内容を示す「出力チャンネル・処理内容対応表」2241が記述される。ここで、処理内容とは、例えば映像データのサイズを変更する処理や、映像の一部にモザイクをかける処理のことをいう。
MPEG送信PP用設定情報群225には、出力チャンネル別の処理内容を示す「出力チャンネル・処理内容対応表」2251が記述される。
PreHTTP−PP用設定情報群226には、配信要求元となる再生用クライアント端末TM1〜TMmからの要求文内で指定されるURLと、転送先PPとの対応を示す「要求URL・転送先PP対応表」2261が記述される。すなわち、PreHTTP−PP16が、各再生用クライアント端末TM1〜TMmからの要求通信をどのPPに引き継がせるかを示す情報が記述される。
ユーザ管理PP用設定情報群227には、データ蓄積配信サーバSV0にアクセス可能なユーザの一覧を示す「ユーザ存在情報」2271と、どのユーザがどのサービスチャンネルにアクセスできるかを示す「サービスチャンネル別ユーザ権限表」2272とが記述される。
スケジュール設定PP用設定情報群228には、センサから検出データが入力された時に、どの受信PPにどういった命令を出すかを示す「センサ情報・処理応表表」2281が記述される。
以上のように設定情報を、マスタコントロールPP11用のL1と、その他のPP用のL2とに階層分けしたことにより、PPの種類を増やすときの拡張性をマスタコントロールPP11に持たせることができる。
すなわち、階層L1は共通フォーマットの項目であるため、今後PPの種類を増やす場合にも同様の情報を追加すればよい。階層L2はPPの種類毎に異なる項目となるが、マスタコントロールPP11からはブラックボックスとして取り扱われる。換言すると、後述するようにマスタコントロールPP11は、階層L2の各設定情報群221〜228に記述されている設定情報を各PP12〜20に送付する処理を行うが、マスタコントロールPP11自身が階層L2に記述されている設定情報に基づき、何らかの処理を実行することはない。このため、今後PPの種類を増やしたとしても、マスタコントロールPP11に変更を加える必要はない。これは動作しているデータ蓄積配信サーバSV0に、後付けでPPを追加できることを意味する。
次に、以上のように構成されたデータ蓄積配信サーバSV0の動作を説明する。
(1)起動時の動作
図8にこの起動時におけるサーバSV0の処理手順と処理内容を示す。
データ蓄積配信サーバSV0は、先ずステップ8aによりOSを起動処理し、続いてOSの起動時のバッチ処理ファイルに記述された情報に従い、マスタコントロールPP11及びPreHTTP−PP16をそれぞれ起動する。
起動されるとマスタコントロールPP11は、ステップ8bにおいて設定ファイル22の階層L1の設定情報群220を読み込む。そして、この読み込んだ設定ファイル22の設定情報群220から、データ蓄積配信サーバSV0が何台のサーバで構成されているかを判定する。この実施形態では、データ蓄積配信サーバSV0は1台のサーバにより構成されているので、上記設定情報群220に基づく判定により、サーバは1台と認識される。
次にマスタコントロールPP11は、ステップ8cにおいてPreHTTP−PP16に対しPPの稼動状況を問い合わせ、現在稼動しているPPのリストを作成する。このリストには、各PPのソケットポート番号も記載される。なお、データ蓄積配信サーバSV0が複数のサーバにより構成されている場合には、これら全てのサーバのPreHTTP−PPに対しPPの稼働状況を問い合わせる。
続いてマスタコントロールPP11は、ステップ8dにおいて、設定ファイル22に記述された起動すべきPPの情報と、各PPの稼動状況とを比較する。そして、この比較の結果、あるPPが起動すべきPP情報に存在しかつ稼動中であれば、当該PPについては無変更とする。
これに対し、あるPPが起動すべきPP情報に存在しかつ未稼働であれば、当該PPを起動させるようにPreHTTP−PP16に命令する。なお、データ蓄積配信サーバSV0が複数のサーバにより構成されている場合には、設定ファイル22から当該PPが存在するサーバの情報を参照し、該当するサーバのPreHTTP−PPに対し該当するPPの起動命令を与える。PreHTTP−PP16は上記命令を受けると、起動対象のPPの起動処理を行う。
なお、PPは起動に際し、自身が使用するソケットポート番号の取得を行い、状態情報ファイル350を出力する。また、PreHTTP−PP16は、PPが出力する状態情報ファイル350を参照して、各PPの稼動状況及び稼動中のPPのソケットポート番号をマスタコントロールPP11に転送する。
一方、あるPPが起動すべきPP情報に未存在でかつ稼動中の場合には、マスタコントロールPP11は当該PPに終了するように命令する。
例えば、本実施形態ではデータ蓄積配信サーバSV0は1台で構成されているので、上記マスタコントロールPP11からPreHTTP−PP16に対する問い合わせに対し、PreHTTP−PP16は稼動中のPPは存在しないと返答する。この返答を受けてマスタコントロールPP11は、PreHTTP−PP16に対し、JPEG受信PP12、MPEG受信PP13、蓄積サービスPP20、JPEG送信PP14、MPEG送信PP15、ユーザ管理PP18、及びスケジュールPP19の起動を命令する。この命令に対しPreHTTP−PP16は、起動対象のPPの実行ファイルを実行してPPを起動する。
かくして、設定ファイル22に記述された全てのPPが起動され、不要なPPは停止された状態となる。
上記各PPの起動処理が終了すると、マスタコントロールPP11はステップ8eにより、上記起動されたPreHTTP−PP16、JPEG受信PP12、MPEG受信PP13、蓄積サービスPP20、JPEG送信PP14、MPEG送信PP15、ユーザ管理PP18、及びスケジュール設定PP19に対しそれぞれ、設定ファイル22の階層L2の設定情報群221〜228を送付する。
また、このときマスタコントロールPP11は、階層L1のPP間接続情報2202中から各PPに対応する情報を抽出し、この抽出した接続情報もPPへ送付する。なお、各PPについて、上記PP間接続情報2202中からどの情報を抽出すればよいかについては、階層L1のPP存在情報2201に記述されている。さらに、各PPが接続する他のPPのソケットポート番号についても、マスタコントロールPP11から各PPへ送付される。
以後各PPはそれぞれ、上記マスタコントロールPP11から送られた設定ファイル22の階層L2の設定情報221〜228に従って処理動作を開始する。
本実施形態では、以下JPEG蓄積サービスの1chを蓄積サービスPP20のPULL−OUTの1chに対応付け、MPEG−4記録サービスの1chを蓄積サービスPP20のPULL−OUTの2chに対応付け、さらにJPEGダイレクトサービスの1chをJPEG受信PP12のPULL−OUTの1chに対応付け、MPEGダイレクトサービスの1chをMPEG受信PP13のPULL−OUTの1chに対応付ける場合を例にとって説明を行う。
(2)定常時におけるJPEG映像データの蓄積と配信
JPEG受信PP12宛ての階層L2の設定情報221には、接続するWebカメラのIPアドレス2211、映像データの受信フレームレート2212、出力先のPPとその入力チャンネルとの関係を示す表が記述されている。
JPEG受信PP12は、上記IPアドレス2211で示されたJPEG映像WebカメラC1から、上記受信フレームレート2212により指定されたフレームレートによりJPEG映像データを受信する。そして、この受信されたJPEG映像データを、出力チャネルから蓄積サービスPPのPULL−INへ転送する。例えば、図6においては、出力チャネルch0から蓄積サービスPP20のPUSH−IN(入力チャネルch1)へ転送する。
一方、上記マスタコントロールPP11から蓄積サービスPP20へ送付された階層L2の設定情報223には、PUSH−IN番号とPULL−OUT番号とHDD21の記録チャンネルとの対応表が記述されている。例えば、図6の例では、PUSH−IN番号(入力チャンネルch1)と、PULL−OUT番号(出力チャンネルch1)と、HDD21の記録チャンネル番号との間は、同じ番号で対応している。JPEG受信PP12からJPEG映像データが転送されると、蓄積サービスPP20はこの映像データをPUSH−INの入力チャンネルch1で受信し、この受信された映像データをHDD21内の映像データ用領域212の記録チャンネルch1に記録する。
視聴ユーザは、再生用のクライアント端末(例えばTM1)において視聴したいサービスチャンネルの情報とログイン情報(ユーザ識別情報)を入力する。再生用のクライアント端末にはJPEG映像再生クライアントソフトウエアが備えられており、端末はこのソアトウエアを実行させてサービスチャンネル及びログイン情報をデータ蓄積配信サーバSV0に送付する。
データ蓄積配信サーバSV0は、PreHTTP−PP16により上記サービスチャンネル及びログイン情報を受け取り、受け取ったサービスチャンネル及びログイン情報をサービスチャンネルの窓口となるJPEG送信PP14に転送する。なお、この転送においては、ソケット通信の管理情報がPreHTTP−PP16からJPEG送信PP14へ通知される。すなわち、先に述べたディスクリプタパッシングが行われる。以後、再生用のクライアント端末TM1とJPEG送信PP14との間では、PreHTTP−PP16を介することなく直接通信が行われる。なお、ユーザが望むサービスチャンネルをJPEG蓄積サービスの1chとする。
JPEG送信PP14は、PreHTTP−PP16からサービスチャンネル及びログイン情報を受け取ると、ユーザ管理PP18に対し問い合わせを行う。ユーザ管理PP18は、JPEG送信PP14からサービスチャンネル及びログイン情報を受け取ると、受け取ったログイン情報を階層L2のユーザ存在情報2271と比較し、その比較結果、つまり権限の正否情報をJPEG送信PP14に返送する。
JPEG送信PP14は、ユーザ管理PP17から受け取った権限の成否情報を再生用のクライアント端末TM1に通知する。例えば、成功時には権限があることを示すキーを発行し、これを成否情報としてクライアント端末TM1に送付する。以後、クライアント端末TM1はログアウトまでの間、上記キーを用いて通信を行う。これに対し不成功だった場合には、権限がない旨のメッセージをクライアント端末TM1まで伝え、通信を切断する。
次に、クライアント端末TM1は、上記キーと、受信したい映像のフレーム番号(サービスチャンネル内で一意に決まる値)を、JPEG送信PP14に送付する。JPEG送信PP14は、クライアント端末TM1から送られたキーによりログイン状態か否かを判別する。そして、ログイン状態でなければ、即座に通信を切断する。
これに対しログイン状態であれば、JPEG蓄積サービスPP20が備える出力チャンネルのうち、対応する出力チャネルch1に対しフレーム番号のフレームを要求する。蓄積サービスPP20は、JPEG送信PP14から要求されたフレーム番号の映像データを、HDD21上の記録チャンネルch1から読み出し、読み出されたJPEG映像データをJPEG送信PP14へ転送する。JPEG送信PP14は、蓄積サービスPP20から転送されたJPEG映像データを対応するPULL−OUTから要求元のクライアント端末TM1へ送信する。
なお、データ蓄積配信サーバSV0からJPEG映像データを連続的に取得して動画として再生する場合、クライアント端末TM1はJPEG送信PP14に対し1フレーム毎に映像データの要求を行う。
(3)MPEG映像データの蓄積と配信
MPEG受信PP13宛ての階層L2の設定情報222には、接続するWebカメラのIPアドレス2221と、出力先のPPと入力チャンネルとの対応表が記述されている。MPEG受信PP13は、上記IPアドレス2221で示されたMPEG映像WebカメラCnから、MPEG映像データを受信する。そして、この受信されたMPEG映像データを、出力チャネルから蓄積サービスPP20のPULL−INへ転送する。例えば、図6においては、出力先のPPとその入力チャンネルで示された蓄積サービスPP20のPUSH−IN(入力チャンネルch2)へ転送する。
MPEG受信PP13から映像データが転送されると蓄積サービスPP20は、当該映像データをPUSH−INの第2チャンネルで受信する。そして、受信された映像データをHDD21上の記録チャンネルch2に記録する。
視聴ユーザは、再生用のクライアント端末(例えばTMm)において視聴したいサービスチャンネルの情報とログイン情報(ユーザ識別情報)を入力する。再生用のクライアント端末にはMPEG映像再生クライアントソフトウエアが備えられており、端末はこのソアトウエアを実行させてサービスチャンネル及びログイン情報をデータ蓄積配信サーバSV0に送付する。
データ蓄積配信サーバSV0は、PreHTTP−PP16において上記サービスチャンネル及びログイン情報を受け取り、受け取ったサービスチャンネル及びログイン情報をサービスチャンネルの窓口となるMPEG送信PP15に転送する。なお、この転送においては、ソケット通信の管理情報がPreHTTP−PP16からMPEG送信PP15へ通知される。すなわち、先に述べたディスクリプタパッシングが行われる。以後、再生用のクライアント端末TMmとMPEG送信PP15との間では、PreHTTP−PP16を介することなく直接通信が行われる。なお、ユーザが望むサービスチャンネルをMPEG蓄積サービスの1chとする。
MPEG送信PP15は、PreHTTP−PPから、サービスチャンネルとログイン情報を受け、ユーザ管理PP17に問い合わせる。ユーザ管理PP18は、MPEG送信PP15から、サービスチャンネルとログイン情報を受け取ると、階層L2のユーザ存在情報2271と比較し、その比較結果、つまり権限の正否情報をMPEG送信PP15に返送する。
MPEG送信PP15は、ユーザ管理PP18から受け取った権限の成否情報を再生用のクライアント端末TMmに通知する。例えば、成功時には権限があることを示すキーを発行し、これを成否情報としてクライアント端末TMmに送付する。以後、クライアント端末TMmはログアウトまでの間、上記キーを用いて通信を行う。これに対し不成功だった場合には、権限がない旨のメッセージをクライアント端末TMmまで伝え、通信を切断する。
次に、クライアント端末TMmは、上記キーと、受信したい映像のGOV番号(サービスチャンネル内で一意に決まる値)を、MPEG送信PP15に送付する。MPEG送信PP15は、クライアント端末TMmから送られたキーによりログイン状態か否かを判別する。この結果、ログイン状態でなければ即座に通信を切断する。
一方ログイン状態であれば、蓄積サービスPP20のPULL−OUTの2chに、フレーム番号のフレームを要求する。蓄積サービスPP20は、MPEG送信PP15から要求されたGOV番号のMPEG−4映像データを、HDD21上の記録チャンネルch2から読み出し、MPEG送信PP15へを転送する。MPEG送信PP15は、蓄積サービスPP20から転送されたMPEG−4映像データを、対応するPULL−OUTから要求元のクライアント端末TMmへ送信する。
なお、データ蓄積配信サーバSV0からMPEG−4映像データを連続的に取得して動画として再生する場合、クライアント端末TMmはMPEG送信PP15に対し1GOV毎に映像データの要求を行う。
(4)ダイレクトサービスを利用したJPEG映像データの配信
クライアントPCを用いて映像を視聴するユーザに、データ蓄積配信サーバSV0の内側のPPの構成を意識させないために、PPの出力チャンネルとは別にサービス別にチャンネル番号を指定できるようにする。これをサービスチャンネルと呼称する。
サービスはユーザに提供する機能の種類毎に存在する。この実施形態では、蓄積した映像データを視聴する蓄積配信サービスと、受信PP12,13で受信された映像データを蓄積することなく視聴するダイレクトサービスが存在する。
ここで、ダイレクトサービスとは、先に述べたようにWebカメラC1〜Cnの映像データを再生用のクライアント端末TM1〜TMmへリアルタイム配信するサービスである。一般にWebカメラC1〜Cnよりもデータ蓄積配信サーバSV0の方が高性能である。このため、WebカメラC1〜Cnに再生用のクライアント端末TM1〜TMmが直接アクセスする構成であると、WebカメラC1〜Cnの処理負荷が増加して配信が困難になる。これを防ぐために、ダイレクトサービスによりデータ蓄積配信サーバSV0を介してクライアントPCに対するリアルタイムの映像配信処理を行う。なお、用途によっては、データ蓄積配信サーバSV0に映像記録用のHDD21を実装せずに、ダイレクトサービスのみを提供してもよい。
将来、映像データの変換処理を行うPPを追加すれば、映像変換サービスとしてユーザに提供する機能が追加され、また映像データを画像認識により処理するPPや、その認識結果を保持するデータベースを管理するPPを追加すれば、認識サービスとしてユーザに提供する機能が追加されることになる。また、蓄積サービスPP20の中で、JPEG映像データを記録するために使用されるチャンネルと、MPEG−4映像データを記録するために使用されるチャンネルとで、サービスを分けてよい。
上記ダイレクトサービスを利用してJPEG映像データの配信を受けようとする場合、視聴ユーザは再生用のクライアント端末(例えばTM1)において視聴したいサービスチャンネルの情報とログイン情報(ユーザ識別情報)を入力する。再生用のクライアント端末TM1にはJPEG映像再生クライアントソフトウエアが備えられており、端末はこのソアトウエアを実行させてサービスチャンネル及びログイン情報をデータ蓄積配信サーバSV0に送付する。
データ蓄積配信サーバSV0は、PreHTTP−PP16により上記サービスチャンネル及びログイン情報を受け取り、受け取ったサービスチャンネル及びログイン情報をサービスチャンネルの窓口となるJPEG送信PP14に転送する。ここでは、視聴ユーザが望むサービスチャンネルをJPEGダイレクトサービスの1chとする。
JPEG送信PP14は、PreHTTP−PP16からサービスチャンネルとログイン情報を受け取り、ユーザ管理PP18に問い合わせる。ユーザ管理PP18は、JPEG送信PP14からサービスチャンネルとログイン情報を受け取ると、階層L2のユーザ存在情報2271と比較し、その結果、つまり権限の正否情報をJPEG受信PP14に返送する。
JPEG送信PP14は、ユーザ管理PP18から受け取った権限の成否情報を要求元の再生用クライアント端末TM1に通知する。例えば、成功時には権限があることを示すキーを発行し、これを成否情報としてクライアント端末TM1に送付する。以後、クライアント端末TM1はログアウトまでの間、上記キーを用いて通信を行う。これに対し不成功だった場合には、権限がない旨のメッセージをクライアント端末TM1まで伝え、通信を切断する。
次に、再生用クライアント端末TM1は、上記キーをJPEG送信PP14に送付する。JPEG送信PP14は、クライアント端末TM1から受信したキーによりログイン状態か否かを判別する。その結果、ログイン状態でなければ即座に通信を切断する。
これに対しログイン状態であれば、JPEG受信PP12のPULL−OUTの1chに対し映像データの転送を要求する。JPEG受信PP12は、JPEG映像カメラC1から受信した最新のJPEG映像データをJPEG送信PP14に転送する。JPEG送信PP14は、JPEG受信PP12から転送されたJPEG映像データを、再生用クライアント端末TM1に送信する。
なお、データ蓄積配信サーバSV0からJPEG映像データを連続的に取得して動画として再生する場合、クライアント端末TM1はJPEG送信PP14に対し1フレーム毎に映像データの要求を行う。
なお、一つのサービスは複数のPPで跨ってよい。例えば、JPEG受信PPが二つ以上あった場合には、JPEGダイレクトサービスの1chを1個目のJPEG受信PPのPULL−OUTの1chに、またJPEGダイレクトサービスの2chを2個目のJPEG受信PPのPULL−OUTの1chに割り当てる。
また、一つのサービスチャンネルは、複数のPPを跨ぎ、同一PP内でも複数の出力チャンネルをサービスチャンネルに割り当てるようにしてもよい。例えば、複数の蓄積サービスPPがある場合、1個目の蓄積サービスPPのPULL−OUTの1chと2chをJPEG蓄積サービスの1chと2chに割り当て、2個目の蓄積サービスPPのPULL−OUTの1chと2chをJPEG蓄積サービスの3chと4chに割り当てる。サービスチャンネルのチャンネル番号は、離散させてもよいが重複させてはならない。
(5)ダイレクトサービスを利用したMPEG−4映像データの配信
視聴ユーザは、再生用のクライアント端末(例えばTMm)において視聴したいサービスチャンネルの情報とログイン情報(ユーザ識別情報)を入力する。再生用のクライアント端末TMmにはMPEG映像再生クライアントソフトウエアが備えられており、端末TMmはこのソアトウエアを実行させてサービスチャンネル及びログイン情報をデータ蓄積配信サーバSV0に送付する。
データ蓄積配信サーバSV0は、PreHTTP−PP16により上記サービスチャンネル及びログイン情報を受け取り、受け取ったサービスチャンネル及びログイン情報をサービスチャンネルの窓口となるMPEG送信PP15に転送する。ここでは、視聴ユーザが望むサービスチャンネルをMPEGダイレクトサービスの1chとする。
MPEG送信PP15は、PreHTTP−PP16からサービスチャンネルとログイン情報を受け取り、ユーザ管理PP18に問い合わせる。ユーザ管理PP18は、MPEG送信PP15からサービスチャンネルとログイン情報を受け取ると、階層L2のユーザ存在情報2271と比較し、その比較結果、つまり権限の正否情報をMPEG送信PP15に返送する。
MPEG送信PP15は、ユーザ管理PP18から受け取った権限の成否情報を要求元の再生用クライアント端末TMmに通知する。例えば、成功時には権限があることを示すキーを発行し、これを成否情報としてクライアント端末TMmに送付する。以後、クライアント端末TMmはログアウトまでの間、上記キーを用いて通信を行う。これに対し不成功だった場合には、権限がない旨のメッセージをクライアント端末TMmまで伝え、通信を切断する。
次に、再生用クライアント端末TMmは、上記キーをMPEG送信PP15に送付する。MPEG送信PP15は、クライアント端末TMmから受信したキーによりログイン状態か否かを判別する。その結果、ログイン状態でなければ即座に通信を切断する。
これに対しログイン状態であれば、MPEG受信PP13のPULL−OUTの1chに対し映像データの転送を要求する。MPEG受信PP13は、MPEG映像カメラCnから受信した最新のMPEG映像データをMPEG送信PP15に転送する。MPEG送信PP15は、MPEG受信PP13から転送されたMPEG映像データを、再生用クライアント端末TMmに送信する。
なお、データ蓄積配信サーバSV0からMPEG映像データを連続的に取得して動画として再生する場合、クライアント端末TMmはMPEG送信PP15に対し1GOV毎に映像データの要求を行う。
(6)終了時の動作
図10に終了時のデータ蓄積配信サーバSV0の処理手順と処理内容を示す。
管理者権限をもつ人は、管理用クライアント端末MMにおいて終了命令とログイン情報(ユーザ識別情報)を入力する。管理用クライアント端末MMは上記入力された終了命令を及びログイン情報をデータ蓄積配信サーバSV0に送付する。
データ蓄積配信サーバSV0のマスタコントロールPP11は、上記終了命令とログイン情報をPreHTTP−PP16を介して受け取ると、ステップ10aにおいてユーザ管理PP18に問い合わせを行う。ユーザ管理PP18は、マスタコントロールPP11から受け取ったログイン情報を階層L2のユーザ存在情報2271と照合し、権限の正当性を判定する。そして、その判定結果をマスタコントロールPP11に返送する。マスタコントロールPP11は、上記ユーザ管理PP18により権限が否定された場合には、権限がない旨のメッセージをクライアント端末MMに伝え、通信を切断する。
一方、権限があると判定されるとマスタコントロールPP11は、ステップ10bによりPreHTTP−PP16に対し全てのPPの稼働状態を問い合わせ、その返答情報に応じて稼働状態のPPのリストを作成する。次に、ステップ10cにおいて、上記作成されたリストをもとに、稼働中の全てのPPに対し終了命令を発行する。例えば、いまJPEG受信PP12、MPEG受信PP13、蓄積サービスPP20、JPEG送信PP14、MPEG送信PP15、ユーザ管理PP18、及びスケジュール設定PP19が稼働中であれば、これらのPPに対しそれぞれ終了命令を発行する。
上記終了命令を受け取ると各PPは、それぞれ終了処理を実行し、終了直前にマスタコントロールPP11に終了する旨を伝え、状態出力ファイルを消去して終了する。マスタコントロールPP11は各PPからの終了命令の返答を待ち、PreHTTP−PP16を除く全てのPPから終了命令の返答を受信した後に終了する。なお、全てのPPから終了命令の返答が戻らなくても、終了命令発行後から一定時間後に終了する。なお、PreHTTP−PP16はサーバSV0のOS終了処理の中で終了する。
なお、データ蓄積配信サーバSV0をアプライアンス製品とする場合には、動作中に電源スイッチが押下されることによっても、マスタコントロールPP11により上記終了処理が実行される。
(7)プラグインプロセスの動作変更
データ蓄積配信サーバSV0の動作変更処理は、(1)設定ファイル22を変更、(2)マスタコントロールPP11に変更を通知、(3)マスタコントロールPP11から各PPへの変更の通知、(4)各PPが新たな設定ファイル22の記載に従って動作を変更、の手順で実施される。
設定ファイル22の変更方法には、「データ蓄積配信サーバSV0上でテキストエディタを起動して設定ファイル22を書き換える方法」と、「一旦設定ファイル22を設定変更用クライアント6にダウンロードし、GUI画面等を備えたツールで変更を加えるか又はテキストエディタで直接書き換えた後に、データ蓄積配信サーバSV0にアップロードする方法」の2種類の方法がある。
この実施形態では後者の方法について述べる。図9はその動作変更処理手順と処理内容を示すフローチャートである。
先ず管理者は、ステップ9aにおいて、管理用クライアント端末MMからデータ蓄積配信サーバSV0のマスタコントロールPP11に対しログイン処理を行う。このときマスタコントロールPP11は、管理者権限がある人が操作しているか否かを判別するために、パスワード等を用いた認証処理を行う。また、このときマスタコントロールPP11は、ある管理者のログインを受け付けた後はこの管理者がログアウトするか、または一定時間アクセスせずにタイムアウトするまでの期間、他のログイン要求を受け付けつけない。すなわち、設定変更処理の受け付けは排他的とする。なお、設定変更の処理期間中に他のログイン要求が発生した場合には、当該発生元に対しエラーメッセージを返送する。
管理用クライアント端末MMは、ステップ9bにより、マスタコントロールPP11に対し変更対象の設定ファイル(設定情報)の送信を要求し、マスタコントロールPP11は要求された設定情報をHDD21から読み出して要求元の管理用クライアント端末MMへダウンロードする。
管理者は、管理用クライアント端末MMにおいて、ダウンロードされた設定情報の記述内容を変更するための入力操作を行う。なお、設定情報の変更を行うには、GUI付のツールを用意し使用してもよいし、テキストエディタ等で変更するようにしてもよい。管理用クライアント端末MMは、上記変更された設定ファイル(設定情報)を、ステップ9cによりマスタコントロールPP11へアップロードする。マスタコントロールPP11は、受信した変更された設定ファイルを、HDD21内の設定ファイル用のディレクトリ2132に保存する。
続いて管理者が管理用クライアント端末MMにおいて、変更された設定ファイルの反映命令を入力すると、この反映命令は管理用クライアント端末MMからPreHTTP−PP16に送られ、このPreHTTP−PP16からマスタコントロールPP11に転送される。マスタコントロールPP11は、この反映命令に従い、変更された設定情報を該当するPPに反映する処理をステップ9dにて実行する。
次にマスタコントロールPP11は、起動時の動作と同様に、ステップ9eにより設定ファイル22の階層L1の設定情報群220を読み込み、この読み込んだ設定ファイル22の設定情報群220から、データ蓄積配信サーバSV0が何台のサーバで構成されているかを判定する。そして、ステップ9fにおいてPreHTTP−PP16に対しPPの稼動状況を問い合わせ、現在稼動しているPPのリストを作成する。
続いてマスタコントロールPP11は、ステップ9gにおいて、設定ファイル22に記述された起動すべきPPのリスト情報と、各PPの稼動状況とを比較する。そして、この比較の結果、あるPPが起動すべきPP情報に存在しかつ稼動中であれば、当該PPについては無変更とする。
これに対し、あるPPが起動すべきPP情報に存在しかつ未稼働であれば、当該PPを起動させるようにPreHTTP−PP16に命令する。なお、データ蓄積配信サーバSV0が複数のサーバにより構成されている場合には、設定ファイル22から当該PPが存在するサーバの情報を参照し、該当するサーバのPreHTTP−PPに対し該当するPPの起動命令を与える。PreHTTP−PP16は上記命令を受けると、起動対象のPPの起動処理を行う。また、あるPPが起動すべきPP情報に未存在でかつ稼動中の場合には、マスタコントロールPP11は当該PPに終了するように命令する。
そうして、上記各PPの起動処理が終了すると、マスタコントロールPP11はステップ9hにより、上記起動されたPreHTTP−PP16、JPEG受信PP12、MPEG受信PP13、蓄積サービスPP20、JPEG送信PP14、MPEG送信PP15、ユーザ管理PP18、及びスケジュール設定PP19に対しそれぞれ、上記変更された設定ファイル22の階層L2の設定情報群221〜228を送付する。
なお、上記各PPに階層L2の各設定情報群221〜228を送信する前に、マスタコントロールPP11から各PPに上記変更された設定ファイルのタイムスタンプを渡し、各PPにて設定情報が更新されているか否かを判断させる。そして、更新されている場合のみ各PPがマスタコントロールPP11に対して設定ファイルの送信を要求し、マスタコントロールPP11が当該PPに対して設定ファイル階層L2を送信するようにしてもよい。
上記変更された設定情報を受け取ると各PPは、ステップ9iにおいて上記受信された設定情報の記述に従って動作する。そして、最後に管理者が管理用クライアント端末MMにおいてログアウト要求を入力すると、このログアウト要求が管理用クライアント端末MMからマスタコントロールPP11へ送られる。マスタコントロールPP11は、上記ログアウト要求に従い設定情報の変更処理を終了する。
(8)プラグインプロセスを追加するときの動作
プラグインプロセスを追加しデータ蓄積配信サーバSV0の機能を拡張するときの動作を以下に説明する。ここでは、入力されたJPEG映像データをリサイズして出力するJPEG変換PPを新たに作成して、このJPEG変換PPを運用中のデータ蓄積配信サーバSV0に追加する場合を例にとって説明する。
JPEG変換PPの実行ファイルは、データ蓄積配信サーバSV0に設けられたHDD21内のPP実行ファイル用ディレクトリ2131に格納される。なお、実行ファイルの格納は、管理用クライアント端末MM上で作成したものをデータ蓄積配信サーバSV0にアップロードするか、又は他のパーソナル・コンピュータ等で作成された実行ファイルをCD−ROM等の記録メディアに記憶させ、管理者が当該記録メディアから実行ファイルを読み出してデータ蓄積配信サーバSV0の上記PP実行ファイル用ディレクトリ2131にコピーすることにより行われる。
また、上記JPEG変換PPの追加に伴い、設定ファイル22の階層L1に追加したJPEG変換PPの存在情報、接続情報及びサービスチャンネル情報を追加する。存在情報と、JPEG変換PPの実行ファイル名と識別名により構成され、これらは設定ファイル22の階層L1の設定情報群220に記述される。
接続情報は、例えばJPEG受信PP12に備えられるPUSH−OUTの2chの出力先をJPEG変換PPのPUSH−INの1chとし、かつJPEG変換PPのPUSH−OUTの1chの出力先を蓄積サービスPP20のPUSH−INの3chとするように設定され、この情報は設定ファイル22の階層L1の設定情報群220に記述される。
サービスチャンネル情報は、例えばJPEG受信PP12が備える2chを蓄積サービスPP20のPULL−OUTの3chに対応付け、かつJPEGダイレクトサービスの2chをJPEG変換PPのPULL−OUTの1chに対応付けるように設定され、この情報は設定ファイル22の階層L1の設定情報群220に記述される。
また、設定ファイル22の階層L2にも、追加したJPEG変換PP用の設定情報が追加される。例えば、PUSH−INのch1で入力された映像データの変換方法と、変換されたデータの出力先をPUSH−OUTのch1に出力する旨の情報が、設定ファイル22の階層L2に追加されたJPEG変換PP用の設定情報に記述される。なお、この実施形態では、変換方法はサイズのリサイズとする。
管理者が、管理用クライアント端末MMにおいて設定ファイル22の書き換えを終了し、続いて変更された設定ファイルの反映命令を入力すると、この反映命令が管理用クライアント端末MMからデータ蓄積配信サーバSV0のPreHTTP−PP16に送られ、このPreHTTP−PP16からマスタコントロールPP11に転送される。なお、この反映命令は、データ蓄積配信サーバSV0のコマンドラインからKILLコマンド等を用いてシグナルとして発行してもよいし、管理用クライアント端末MM上の設定管理ソフトウエアにより発行するようにしてもよい。
マスタコントロールPP11は、起動時の動作と同様に、設定ファイル22の階層L1の設定情報群220を読み込み、この読み込んだ設定ファイル22の設定情報群220から、データ蓄積配信サーバSV0が何台のサーバで構成されているかを判定する。そして、ステップ9fにおいてPreHTTP−PP16に対しPPの稼動状況を問い合わせ、現在稼動しているPPのリストを作成する。
続いてマスタコントロールPP11は、設定ファイル22に記述された起動すべきPPのリスト情報と、各PPの稼動状況とを比較する。そして、この比較の結果、あるPPが起動すべきPP情報に存在しかつ稼動中であれば、当該PPについては無変更とする。これに対し、あるPPが起動すべきPP情報に存在しかつ未稼働であれば、当該PPを起動させるようにPreHTTP−PP16に命令する。なお、データ蓄積配信サーバSV0が複数のサーバにより構成されている場合には、設定ファイル22から当該PPが存在するサーバの情報を参照し、該当するサーバのPreHTTP−PPに対し該当するPPの起動命令を与える。PreHTTP−PP16は上記命令を受けると、起動対象のPPの起動処理を行う。また、あるPPが起動すべきPP情報に未存在でかつ稼動中の場合には、マスタコントロールPP11は当該PPに終了するように命令する。
そうして、上記各PPの起動処理が終了すると、マスタコントロールPP11は上記起動された各PPに対し、上記変更された設定ファイル22の階層L2の設定情報群を送付する。なお、設定ファイル22の階層L2の設定情報群の送付は、新たに稼動したJPEG変換PPに対してのみ行うようにしてもよい。
上記変更された設定情報を受け取ると各PPは、上記受信された設定情報の記述に従って動作する。また、設定ファイル22の階層L2に設定情報群が新たに追加されたJPEG変換PPも稼動する。そして、最後に管理者が管理用クライアント端末MMにおいてログアウト要求を入力すると、このログアウト要求が管理用クライアント端末MMからマスタコントロールPP11へ送られる。マスタコントロールPP11は、上記ログアウト要求に従い機能の追加処理を終了する。
(9)プラグインプロセスを削除するときの動作
プラグインプロセスの削除処理は、データ蓄積配信サーバSV0の機能を限定するために必要である。プラグインプロセスを削除する例を、上記追加したJPEG変換PPを削除する場合を例にとって説明する。
管理者は管理用クライアント端末MMにおいて、データ蓄積配信サーバSV0からダウンロードした設定ファイル22に対し、階層L1の設定情報群220から、JPEG変換PPに関する存在情報、接続情報及びサービスチャンネル情報を削除する操作を行う。またそれと共に、設定ファイル22の階層L2のJPEG変換PP用の設定情報群を削除する操作を行う。
上記設定情報群の削除操作を終了し、上記変更された設定ファイルをデータ蓄積配信サーバSV0にアップロードしたのち、管理者が設定ファイルの反映命令を入力すると、この反映命令は管理用クライアント端末MMからデータ蓄積配信サーバSV0のPreHTTP−PP16に送られ、このPreHTTP−PP16からマスタコントロールPP11に転送される。
この反映命令を受信するとマスタコントロールPP11は、起動時の動作と同様に、サーバの稼働状態を把握した後、PreHTTP−PP16に対しPPの稼動状況を問い合わせ、現在稼動しているPPのリストを作成する。続いてマスタコントロールPP11は、設定ファイル22に記述された起動すべきPPのリスト情報と、各PPの稼動状況とを比較し、その比較結果に基づいて各PPの起動処理を行う。そして、稼動中のPPに対し設定ファイル22の階層L2の設定情報群を送付する。またこのとき、削除対象のJPEG変換PPの実行ファイルを削除する。なお、後日使う時のために、当該実行ファイルを残しておいてもよい。
(10)センサ信号を通信ネットワークNWを経由して取得する場合
いま仮に設定ファイル22に、JPEG受信PP12は受信した映像データを蓄積サービスPP20のチャンネルch1に転送し、JPEG映像WebカメラC1から通常は1fpsで受信し、緊急録画指示が入った場合には30fpsで受信する、と記述されていたとする。
通常、JPEG受信PP12はJPEG映像WebカメラC1から1fpsでJPEG映像データを受信し、受信した映像データを蓄積サービスPP20のチャンネルch1に送信する。JPEG映像WebカメラC1は、内部の判定ルーチン(映像の変化がしきい値を超えたか、特定の領域に動きが有ったか等)に従って、条件が揃った場合に緊急録画指示をデータ蓄積配信サーバSV0に向け発行する。
緊急録画指示は、通信ネットワークNWを介してデータ蓄積配信サーバSV0のPreHTTP−PP16で受信される。PreHTTP−PP16は受信された緊急録画指示をスケジュール設定PP19に転送する。スケジュール設定PP19は、緊急録画指示がスケジュール変更の権限のあるところから発生されたものであるか否かを判定する。ここでは、JPEG映像WebカメラC1から発せられたものであるかいなかを判定する。
JPEG映像WebカメラC1から発せられた場合には権限があるので、スケジュール設定PP19は緊急録画指示時の記録レートである30fpsでJPEG映像データを記録するように、JPEG受信PP12に指示を出す。JPEG受信PP12は、スケジュール設定PP19の指示を受けて、受信データレートを30fpsに変更する。スケジュール設定PP19からの指示は、JPEG受信PP12の制御用ポート(図6では不図示)により受信される。
なお、緊急録画指示の解除も同様に、JPEG映像WebカメラC1から解除指示が出され、PreHTTP−PP16及びスケジュール設定PP19を介して、通常の記録レートである1fpsでの指示をJPEG受信PP12が受ける。
(11)センサ信号をディジタルI/O経由で受信する場合
いま仮に設定ファイル22に、JPEG受信PP12は受信した映像データを蓄積サービスPP20のチャンネルch1に転送し、JPEG映像WebカメラC1から通常は1fpsで受信し、ディジタルI/O17から緊急録画指示が入った場合には30fpsで受信する、と記述されていたとする。
ディジタルI/O17は、ドアセンサDSに接続されている。ドアセンサDSが設置されたドアは通常閉じられており、JPEG映像WebカメラC1はドアセンサDSが設置されたドアを撮影するアングルで設置され、ドアが開いている期間の映像データを録画する。
ドアの開閉の都度、ドアセンサDSのセンサ信号は変化し、これによりディジタルI/O17に入力されるセンサ情報も変化する。スケジュール設定PP19は、ディジタルI/O17に入力されるセンサ情報を監視している。この状態で、ディジタルI/O17のセンサ情報がドアが開いていることを示す状態に変化したとすると、スケジュール設定PP19はJPEG受信PP12に30fpsで映像を受信するように指示を出す。同様に、ディジタルI/O17のセンサ情報がドアが閉じていることを示す状態に変化したならば、スケジュール設定PP19はJPEG受信PP12に1fpsで映像を受信するように指示を出す。
以上述べたように第1の実施形態では、データ蓄積配信サーバSV0に、マスタコントロールPP11、PreHTTP−PP16、JPEG受信PP12、MPEG受信PP13、蓄積サービスPP20、JPEG送信PP14、MPEG送信PP15、ユーザ管理PP18、及びスケジュール設定PP19を、互いに独立して動作可能に設けている。そして、これらのPPにそれぞれ、PULL−IN、PULL−OUT、PUSH−IN、PUSH−OUTのうち用途に合った入出力インタフェースを持たせ、これらの入出力インタフェースにより各PP間で映像データ及び制御データの転送を行うようにしている。
したがって、WebカメラC1〜Cnからの映像データの受信処理、受信された映像データのHDD21への書き込み処理と読み出し処理、及び読み出された映像データを再生用クライアント端末TM1〜TMmへ配信する処理が、それぞれ各PPで分散して実行される。このため、新たな機能の追加やカメラの機種変更又は追加が必要になった場合には、PPのみの変更又は追加により対応することが可能となり、これによりプログラム全体を変更する場合に比べ、開発工数及びメンテナンスの手間を大幅に削減することができる。また、PP単位での変更又は追加が可能なため、データ蓄積配信サーバSV0の運用中においても新たな機能の追加や扱えるカメラの機種変更や追加に対し容易に対応できる。
また、JPEG出力WebカメラにはJPEG版Webカメラ用受信PPを用意し、MPEG−4出力WebカメラにはMPEG−4版Webカメラ用受信PPを用意する。さらに、JPEG出力Webカメラにおいても、メーカによって通信プロトコルが異なるのが現状であるためプロトコルごとに受信PPを用意する。
入力データは映像データに限らず、音声データやセンサ情報でもよい。この場合、音声データ用及びセンサデータ用として、データの種類及び通信プロトコルごとに専用の受信PPを用意する。映像データの出力側においても、モニタ装置との接続用として、モニタ装置が取り扱うデータの種類及び通信プロトコルごとに専用の通信PPを用意する。
Webカメラやモニタ装置等の外部装置との接続においては、機器ごとの通信プロトコルにより通信が行われるが、PP間の通信及びサーバ内部の通信はPP間用の通信プロトコルが使用される。このため、PP間の通信においては、メーカや機種ごとのプロトコルの違いを意識する必要はない。
新規にPPを追加する際にも、PP間通信用のプロトコルにより通信が行われるため、既存のPP側は無変更で新規のPPとの間で通信を行うことが可能となる。新たなPPを開発する際、PP間通信用の部分は既存のルーチンを利用できるため、新規に開発できる部分は外部機器と通信を行うためのプロトコル部分のみとなる。このため、開発が単純化され、工数の削減及び低価格化を実現できる。専用の多機能のPPを多数用意しておき、どのPPを動作させるか、及び映像データはどのPPを経由するかは、設定情報により変更できるようにしておくことで、多機能で拡張性の高い蓄積配信サーバを実現できる。
(第2の実施形態)
図12は、この発明に係わるデータ蓄積配信サーバ装置を備えた監視システムの概略構成図である。なお、同図において前記図1と同一部分には同一符号を付して詳しい説明は省略する。
この実施形態のデータ蓄積配信サーバ装置は、複数(図では4台)のサーバSV1〜SV4を通信ネットワークNWを介して接続し、各サーバSV1〜SV4に装置で必要な複数のPPをその処理負荷を考慮して分散配置するように構成したものである。
サーバSV1は、データ蓄積配信サーバ装置全体の統括的な制御機能と、JPEG映像データの蓄積機能を担うもので、図13に示すようにJPEG記録用のハードディスクドライブ(HDD)115を備えている。また、プラグインプロセスとして、マスタコントロールPP110、PreHTTP−PP111、ユーザ管理PP112、スケジュール設定PP113、及び蓄積サービスPP114を備えている。上記HDD115には、装置全体のPPの動作を管理するための設定ファイル116が格納されている。設定ファイル116は、前記図7に示したものと同様に階層L1,L2に階層化されており、階層L1にマスタコントロールPP110が使用する設定情報群が、また階層L2にその他の全てのPPの設定情報群がそれぞれ格納されている。
サーバSV2は、MPEG映像データの蓄積機能を担うもので、図14に示すようにMPEG記録用のハードディスクドライブ(HDD)122を備えている。また、プラグインプロセスとして、PreHTTP−PP120に加えて蓄積サービスPP121を備えている。
サーバSV3には、WebカメラC1〜CnからのJPEG映像データ及びMPEG映像データを受信する機能を担うもので、図15に示すようにプラグインプロセスとしてPreHTTP−PP130に加え、複数のJPEG受信PP131〜13iと、複数のMPEG受信PP141〜14jを備えている。
サーバSV4は、JPEG映像データ及びMPEG映像データを再生クライアント端末TM1〜TMmへ送信する機能を担うもので、図15に示すようにプラグインプロセスとしてPreHTTP−PP150に加え、JPEG送信PP151と、MPEG送信PP152を備えている。
上記各サーバSV1〜SV4に備えられた各PPはいずれも、前記第1の実施形態と同様にPULL−IN、PULL−OUT、PUSH−IN、PUSH−OUTのうちから用途に応じて選択された汎用の入出力インタフェースを有する。そして、これらの入出力インタフェースによりソケット通信を行うことで、同一サーバ内のPP間は勿論のこと、異なるサーバのPP間でも通信ネットワークNWを介して通信が可能となっている。
次に、以上のように構成された装置の動作を説明する。
サーバSV1において、OS起動後にマスタコントールPP110及びPreHTTP−PP111が起動する。ユーザ管理PP112、スケジュール管理PP113及び蓄積サービスPP114は、上記マスタコントールPP110がPreHTTP−PP111に対し各PP112〜114の動作開始を命令した時に、PreHTTP−PP111よって起動される。
サーバSV2においては、OSの起動後に先ずPreHTTP−PP120が起動する。蓄積サービスPP121は、サーバSV1のマスタコントールPP110がPreHTTP−PP120に対し蓄積サービスPP121の動作開始を命令した時に、PreHTTP−PP120によって起動される。
サーバSV3においては、OS起動後に先ずPreHTTP−PP130が起動する。JPEG受信PP群131〜13i及びMPEG受信PP群141〜14jは、サーバSV1のマスタコントールPP110がPreHTTP−PP130に対し、JPEG受信PP群131〜13i及びMPEG受信PP群141〜14jの動作開始を命令した時に、PreHTTP−PP130によって起動される。
サーバSV4においては、OS起動後に先ずPreHTTP−PP150が起動する。JPEG送信PP151及びMPEG送信PP152は、サーバSV1のマスタコントールPP110がPreHTTP−PP150に対し上記JPEG送信PP151及びMPEG送信PP152の動作開始を命令した時に、PreHTTP−PP150によって起動される。
サーバSV1のマスタコントロールPP110は、起動された各PPに対し、各PP向けの設定情報(設定ファイル116の階層L2に属する設定情報群)をサーバ内ネットワーク又は通信ネットワークNWを介して送付する。各PPは、サーバSV1のマスタコントロールPP110から送られた設定情報群を保存し、以後この設定情報群の設定情報の内容に応じて処理を開始する。
(1)JPEG映像データの蓄積と配信
JPEG受信PP131〜13iはそれぞれ、設定ファイル116の階層L2に属する自身の設定情報により指定されたJPEG映像WebカメラからJPEG映像データを受信する。このJPEG映像データは、通信ネットワークNWを介してサーバSV1の蓄積サービスPP114に転送され、この蓄積サービスPP114によりHDD115の記録チャンネルに記録される。
また、この状態で再生用クライント端末(例えばTm1)から映像配信要求が送信されると、この映像配信要求はサーバSV4のPreHTTP−PP150で受信され、このPreHTTP−PP150からJPEG送信PP151に転送される。JPEG送信PP151は、上記要求元の再生クライアント端末を用いる視聴ユーザにチャンネルアクセスの権限があるか否かを通信ネットワークNWを介してサーバSV1のユーザ管理PP112に問い合わせる。そして、その応答の結果、権限があればサーバSV1の蓄積サービスPP114から通信ネットワークNWを介してJPEG映像データを取得し、このJPEG映像データを要求元の再生クライアント端末Tm1へ送信する。なお、要求元の視聴ユーザにチャンネルアクセス権がない場合には、その旨を要求元の再生クライアント端末TM1へ送信する。
(2)MPEG映像データの蓄積と配信
MPEG受信PP141〜14jはそれぞれ、設定ファイル116の階層L2に属する自身の設定情報により指定されたMPEG映像WebカメラからMPEG映像データを受信する。受信されたMPEG映像データは、通信ネットワークNWを介してサーバSV2の蓄積サービスPP121に転送され、この蓄積サービスPP121によりHDD122の記録チャンネルに記録される。
また、この状態で再生用クライント端末(例えばTMm)から映像配信要求が送信されると、この映像配信要求はサーバSV4のPreHTTP−PP150で受信され、このPreHTTP−PP150からMPEG送信PP152に転送される。MPEG送信PP152は、上記要求元の再生クライアント端末を用いる視聴ユーザにチャンネルアクセスの権限があるか否かを通信ネットワークNWを介してサーバSV1のユーザ管理PP112に問い合わせる。そして、その応答の結果、権限があればサーバSV2の蓄積サービスPP121から通信ネットワークNWを介してMPEG映像データを取得し、このMPEG映像データを要求元の再生クライアント端末TMmへ送信する。なお、要求元の視聴ユーザにチャンネルアクセス権がない場合には、その旨を要求元の再生クライアント端末TMmへ送信する。
以上述べたように第2の実施形態では、4台のサーバSV1〜SV4を通信ネットワークNWを介して接続し、各サーバSV1〜SV4に複数のPPをその処理負荷を考慮して分散配置するようにしている。このため、全てのPPを1つのサーバで処理する場合に比べ、処理能力の高い高価なサーバを使用することなく効率の良い処理を実現できる。また、サーバSV2〜SV4のうちの1つがダウンしても、当該サーバが担う機能を除く他の機能についてはそれまで通り支障なく実行させることが可能となり、これによりシステムの信頼性を高く保持することができる。
(第3の実施形態)
(1)増設するPPの例
[複数のカメラから映像データを受信するPP]
図17は、複数のWebカメラから映像データを受信する複数カメラ映像受信PPの機能構成の一例を示すものである。
複数のカメラ映像受信PPは、複数のWebカメラ(図では3台)C1〜C3に対し通信ネットワークNWを介して接続されたデータ蓄積配信サーバで動作するプログラムである。
複数カメラ映像受信PPの起動は、データ蓄積配信サーバ内のマスタコントロールPPからPreHTTP−PPに対し複数カメラ映像受信PPの起動命令が発行された時に、PreHTTP−PPによって起動される。起動後、マスタコントロールPPから上記複数カメラ映像受信PPに対し階層L2に属する自身宛の設定情報群が送付される。
複数カメラ映像受信PPは、WebカメラC1〜C3に1対1に対応するPP個別通信制御部41〜43と、制御用ポート44と、PULL−OUTチャンネル群45と、PUSH−OUTチャンネル群46とを備える。複数カメラ映像受信PP用の設定情報には、Webカメラ数、各WebカメラのIPアドレス、フレームレート、及び出力先PP情報が記述される。
複数カメラ映像受信PPは、設定情報の指示に従い、複数のWebカメラC1〜C3からそれぞれ映像データを受信し、受信された映像データをPULL−OUTチャンネル群45又はPUSH−OUTチャンネル群46から出力先のPPへ転送する。なお、WebカメラC1〜C3毎に出力先を設定し、この設定された出力先へ上記各WebカメラC1〜C3から受信した映像データを転送するようにしてもよい。また、複数のWebカメラC1〜C3から受信した映像データを加工して一つの映像データに変換した後に、出力先PPへ転送してもよい。
出力インタフェースとしてPUSH−OUT46を使用する場合には、WebカメラC1〜C3からの入力がトリガとなって、PUSH−OUT46で指定された出力先へ映像データが送出される。一方出力インタフェースとしてPULL−OUT45使用する場合には、PULL−OUT45において最新映像データが保持される。そして、JPEG送信PP又はMPEG送信PPから映像要求を受信したときに、上記保持された最新映像データがJPEG送信PP又はMPEG送信PPへ向け送信される。
複数カメラ映像受信PPを使用すると、例えばドアを挟んでその両側に配置された2台のWebカメラの映像データを合成又は多重化して1系統の映像データとして保持する。そして、この1系統の映像データを送信PPへ送信することができる。また、一部のWebカメラをマイクロホンと入れ替え、映像データと音声データを合成して送信PPへ送信することも可能である。さらに、映像データと音声データ以外のデータ、例えばセンサー情報や位置情報等のデータを複数カメラ映像受信PPにおいて合成又は多重化して送信PPへ送信することも可能である。
[マルチキャスト配信機能を持つ送信PP]
図18は、同一の映像データを複数の再生用クライアント端末TM1〜TMmへマルチキャストで配信するマルチキャスト送信PPの機能構成の一例を示す図である。
マルチキャスト送信PPは、複数の再生用クライアント端末TM1〜TMmが通信ネットワークNWを介して接続されたデータ蓄積配信サーバで動作するプログラムである。
マルチキャスト送信PPの起動は、データ蓄積配信サーバ内のマスタコントロールPPからPreHTTP−PPに対しマルチキャスト送信PPの起動命令が発行された時に、PreHTTP−PPによって起動される。起動後、マスタコントロールPPから上記マルチキャスト送信PPに対し階層L2に属する設定情報群が送付される。
マルチキャスト送信PPは、制御用ポート51と、PULL−INチャンネル52と、PUSH−INチャンネル53と、PP個別通信制御部54とを備える。PP個別通信制御部54は、再生用クライアント端末TM1〜TMmとの間で通信ネットワークNWを介して通信を行うための通信プロトコルを有する。
PULL−IN52に入力された映像データは、PP個別通信制御部がマルチキャストで配信してもよいが、PP個別通信制御部が能動的に動作することによりPULL−IN52を用いて他のPPから映像データを受信し、受信された映像データをマルチキャストで配信してもよい。このマルチキャスト送信PPは、例えば同時に数百人に同一の映像データを見せたいときに用いる。
[転送変換型PP]
図19、図20、図21及び図22は、転送変換型PPの異なる実施例を示す図である。
転送変換型PPは、通信ネットワークNWに接続するための通信インタフェースを持つデータ蓄積配信サーバ内で動作するプログラムである。
転送変換型PPの起動は、データ蓄積配信サーバ内のマスタコントロールPPからPreHTTP−PPに対し転送変換型PPの起動命令が発行された時に、PreHTTP−PPによって起動される。起動した後に、マスタコントロールPPから転送変換型PPに対し階層L2に属する自身当ての設定情報が送付される。
図19に示す実施例では、転送変換型PPは映像データを受け取るPULL−IN61と、制御用ポート62と、PULL−OUT群63と、PUSH−OUT群64と、変換ルーチン65とを備える。この転送変換型PPは、PULL−IN61を用いて他のPPから映像データを取得し、この映像データを変換ルーチン65により所定のデータ形態に変換する。そして、変換された映像データを、PUSH−OUT64から設定情報により指定された送信先PPへ送出するか、或いはPULL−OUT63に対し映像の転送を要求してきたPPへ送出する。
変換ルーチン65では、例えばJPEG映像データのリサイズ、MPEG映像データのビットレート変更が行われる。なお、変換ルーチン65により映像データの変換処理を行わず、入力された映像データをそのまま出力先のPPへ転送することも可能である。例えば、蓄積サービスPPの指定のチャンネルから転送された映像データを、別のチャンネルへ転送するために使用することができる。なお、上記出力先の別チャンネルとしては、同一蓄積サービスPP内の別チャンネルでも、また別の蓄積サービスPPでもよい。
図20に示す実施例では、転送変換型PPは映像データを受け取る入力インタフェースとして複数(図では3個)のPULL−IN71〜73を備える。他の構成要素は上記図19と同一である。この転送変換型PPは、上記PULL−IN71〜73を用いて他のPPよりそれぞれ映像データを取得し、この取得された各映像データを変換ルーチン74により合成または変換する。そして、変換された映像データを、PUSH−OUT64から設定情報により指定された送信先のPPへ送出するか、或いはPULL−OUT63に対し映像の転送を要求してきたPPへ送出する。
この実施例の転送変換型PPは、蓄積サービスPPの異なるチャンネルに記録された映像データの合成、または映像データと音声データといった異なるデータの合成を行い、合成された映像データを出力する機能を持つPPとして用いられる。
図21に示す実施例では、転送変換型PPは映像データを受け取るPUSH−IN81と、制御用ポート62と、PULL−OUT群63と、PUSH−OUT群64と、変換ルーチン82とを備える。この転送変換型PPは、PUSH−IN81を用いて他のPPから映像データを取得し、この映像データを変換ルーチン82により所定のデータ形態に変換する。そして、変換された映像データを、PUSH−OUT64から設定情報により指定された送信先PPへ送出するか、或いはPULL−OUT63に対し映像の転送を要求してきたPPへ送出する。
この実施例の転送変換型PPは、例えば受信PPで受信された映像データのフォーマット変換を行い、このフォーマットが変換された映像データを蓄積サービスPPへ転送する機能を持つPPとして用いられる。
図22に示す実施例では、転送変換型PPは映像データを受け取る入力インタフェースとして複数(図では3個)のPUSH−IN91〜93を備える。他の構成要素は上記図21と同一である。この転送変換型PPは、上記PUSH−IN91〜93を用いて他のPPよりそれぞれ映像データを取得し、この取得された各映像データを変換ルーチン94により合成または変換する。そして、変換された映像データを、PUSH−OUT64から設定情報により指定された送信先のPPへ送出するか、或いはPULL−OUT63に対し映像の転送を要求してきたPPへ送出する。
この実施例の転送変換型PPは、例えば映像データ、音声データ及びセンサ情報を受信PPから取り込んでこれらをマルチメディアデータに合成又は多重化し、このマルチメディアデータを蓄積サービスPPへ転送するために用いられる。
図示していないが、その他の転送変換型PPとして、複数のPULL−IN及びPUSH−INを持ち、PUSH−INへの映像入力トリガに同期してPULL−INにより他のPPから映像データを取得し合成する構成も考えられる。
その他、図4に示したPULL−IN31、PUSH−IN33、PULL−OUT32、PUSH−OUT34の各入出力インタフェースと、PP個別用通信制御部の入出力を持つPPとを、自由に組合せることで用途に応じた種々様々なPPを構成することが可能である。
(その他の実施形態)
なお、この発明は上記各実施形態に限定されるものではない。例えば、前記各実施形態では、データ蓄積配信サーバ装置を1個のサーバにより構成した場合を例にとって説明した。しかしそれに限らず、データの受信処理用のプラグインプロセスユニット、受信データの記憶装置への書き込みと読み出し処理用のプラグインプロセスユニット、及び読み出されたデータの配信処理用のプラグインプロセスユニットをそれぞれ別々のサーバに分散して設け、これらのサーバ間を接続する通信ネットワークを介して、上記各プラグインプロセスユニット間でデータ転送を行うようにシステムを構成してもよい。
また、その際すべてのプラグインプロセスユニットを個々にサーバに分散せずに、各プラグインプロセスユニットのうち最も処理負荷の大きいユニットのみを独立した1つのサーバに設け、他のユニットを別の1つのサーバに設けるようにしてもよい。また各プラグインプロセスユニットをその処理負荷に応じて2つずつ2グループに分け、これらのグループを異なるサーバに設けるようにしてもよい。これらの場合も、プラグインプロセスユニット間のデータ転送は、サーバ間を接続する通信ネットワークを介して行われる。
さらに、前記実施形態では撮像装置としてWebカメラを使用する場合を例にとって説明した。しかしそれに限るものではなく、撮像装置としてアナログ映像信号を出力するカメラを使用し、データ蓄積配信サーバにおいて上記カメラから送られたアナログ映像信号を受信したのち、A/D変換及び圧縮符号化を行うことによりJPEG又はMPEGの符号化映像データを生成し、この生成された符号化映像データを記憶配信するようにしてもよい。
さらに、データ蓄積配信サーバが取り扱うデータは、映像データに限らず、オーディオデータや付属データであってもよい。付属データとしては、温度、振動、水位、風速、及び赤外線等の種々センサにより検出されるデータが考えられる。
さらに、前記実施形態では各Webカメラとデータ蓄積配信サーバとの間及び各クライアント端末とデータ蓄積配信サーバとの間を共通の通信ネットワークNWを介して接続したが、別々の通信ネットワークを介して接続するようにしてもよい。
さらに、前記各実施形態では各プラグインプロセス(PP)の機能をソフトウエアにより実現する場合を例にとって説明したが、ハードウエアにより実現してもよい。また、前記各実施形態ではこの発明のデータ蓄積配信サーバ装置を監視システムに使用する場合を例にとって説明したが、コンテンツや各種情報を収集し配信するシステム等、監視システム以外のシステムに適用してもよい。
その他、各プラグインプロセスユニットの機能や構成、動作内容などについても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
C1〜Cn…Webカメラ、DS…ドアセンサ、TM1〜TMm…再生用クライアント端末、MM…管理用クライアント端末、NW…通信ネットワーク、SV0,SV1〜SV4…データ蓄積配信サーバ、10…サーバ内のシステムネットワーク、11,110…マスタコントロールPP、12,131〜13i…JPEG受信PP、13,141〜14j…MPEG受信PP、14,151…JPEG送信PP、15,152…MPEG送信PP、16,111,120,130,150…PreHTTP−PP、17…ディジタルI/O、18,112…ユーザ管理PP、19,113…スケジュール設定PP、20,114,121…蓄積サービスPP、21,122…ハードディスクドライバ(HDD)、22…設定情報(設定ファイル)、101…CPU、102…バス、103…ネットワークI/F、104…シリアルI/F、105…ディジタルI/O、106…メモリ、107…HDDI/F、211…OS用領域、212…映像データ用領域、213…映像記録プログラム群領域、2131…実行ファイル用ディレクトリ、2132…設定ファイル用ディレクトリ、2133…状態情報出力用ディレクトリ。