(実施の形態1)
本発明の実施の形態1におけるサーバ装置と端末装置について説明する。実施の形態1の端末装置はネットワークカメラであって、IPネットワークに接続されたルータに複数台のネットワークカメラが接続されている。以下の説明は端末装置としてネットワークカメラを説明するが、ネットワークに接続されてサーバとして機能する通信機器であればその他の機器であってもよい。また、実施の形態1のプログラムとは、端末装置に搭載されているコンピュータに、以下説明する手順を順次実行させるものである。
図1は本発明の実施の形態1におけるサーバ装置経由で通信するネットワークシステムの構成図、図2は本発明の実施の形態1におけるネットワークカメラのブロック構成図、図3は本発明の実施の形態1におけるサーバ装置のブロック構成図、図4は本発明の実施の形態1におけるネットワークカメラのフローチャート、図5は本発明の実施の形態1におけるサーバ装置のフローチャート、図6は本発明の実施の形態1におけるサーバ装置の新規端末の登録を行うフローチャート、図7は本発明の実施の形態1におけるサーバ装置に対して端末装置とネットワークカメラを新規登録するシーケンス説明図、図8は本発明の実施の形態1におけるサーバ装置とネットワークカメラのセッションのシーケンス説明図、図9は本発明の実施の形態1におけるサーバ装置経由で端末装置がネットワークカメラから静止画を取得するシーケンス説明図、図10は本発明の実施の形態1におけるサーバ装置経由で端末装置がネットワークカメラのカメラ制御を行うシーケンス説明図、図1
1は本発明の実施の形態1におけるサーバ装置とネットワークカメラの間で新規セッションを形成するシーケンス説明図、図12は本発明の実施の形態1におけるサーバ装置経由で複数の端末装置がネットワークカメラからビデオ情報を取得するシーケンス説明図である。
図1において、IPネットワーク1はプロトコルTCP/IPで通信するインターネットやイントラネットなどのネットワークであり、IPネットワーク1には携帯電話等の端末装置3(本発明の第1端末装置)が接続されると共に、ルータ5が接続される。このルータ5の下流側には複数のネットワークカメラ2(本発明の第2端末装置)が配下として接続される。ネットワークカメラ2はカメラ部で撮影した画像を録画してIPネットワーク1に送信する。
このネットワークカメラ2は画像サーバを搭載しており、プロトコルHTTPで画像を配信する。FTPやSMTP、RTPなど他のプロトコルによって画像又は動画像(ビデオ)を配信することもできる。そして、ルータ5はグローバルIPアドレスを有し、各ネットワークカメラ2は外部ポート番号を有している。
また、図1に示すように、IPネットワーク1には、端末装置3からネットワークカメラ2へのアクセスを可能にし、端末装置3とのセッションを中継するアクセス制御サーバ4(本発明のサーバ装置)が接続される。
この図1の環境で、端末装置3からユーザIDや、ユーザが指定したパスワード等のユーザ情報と、バーコードやQRコード(登録商標)などによるネットワークカメラ2の個体識別可能な固有情報を通知して登録要求すると、端末装置3のユーザ情報が記憶されていない場合に、アクセス制御サーバ4は端末装置3からの設定情報としてこれらの情報(即ちユーザ情報と固有情報)を登録する。これらはアクセス制御サーバ4の設定情報記憶部44の接続情報データベースに登録される。なお、上述した固有情報は、ネットワークカメラ2のMACアドレスやシリアル番号(機器製造番号)等を含んで構成するのが、これらの情報とは別に、あらためて別のユニークな情報を付与しないで済み、好適である。
アクセス制御サーバ4はこれらを登録後、ネットワークカメラ2へアクセスするためのURLを端末装置3に通知する。このURLにアクセスすると、アクセス制御サーバ4のCGIが起動し、ネットワークカメラ2へのアクセスなど後の処理が可能になる。
次いで、図1に示した矢印のように未登録あるいは既登録のネットワークカメラ2を接続する時の説明を行う。ネットワークカメラ2が未登録の場合、ネットワークカメラ2はMACアドレスやシリアル番号等を含んで構成された上記固有情報と未登録である旨(工場出荷状態を示すステータス)を通知する。なお、既登録(登録済み)の場合はこの旨(登録状態を示すステータス)を通知する。
これに対してアクセス制御サーバ4は送信されてきた上記固有情報を使って設定情報記憶部44の接続情報データベース内を検索し、この固有情報が登録されていなければこのネットワークカメラ2を新規登録し、登録完了通知(200 OK)をネットワークカメラ2に通知する。そして、更にネットワークカメラ2にこのカメラ設定情報(端末装置3のユーザ情報と固有情報)を送信してセットアップを命じる。
その後、ネットワークカメラ2から定期的にアクセス制御サーバ4にセッション開設要求を送信する。これは本発明における通信用セッションの開設を要求するものに相当する。これに対してアクセス制御サーバ4はネットワークカメラ2にセッション開設要求完了通知(200 OK)を送信して、接続(本発明のコネクション)状態になる。この接続
は接続確認時間付KEEP ALIVEを使って所定時間保持され、この時間が経過すると、この手順が繰り返される。この接続中に端末装置3から画像を要求すると、アクセス制御サーバ4を介して画像が端末装置3に送信される。
なお、実施の形態1のアクセス制御サーバ4はネットワークカメラ2と間で1回線の通信用セッションのほか、2回線目以上となる第2のセッション(本発明の制御用セッション)を開設することができる。アクセス制御サーバ4はネットワークカメラ2に第2のセッションにより、例えばパン等のカメラ制御要求(本発明の制御コマンド)を送信すると、アクセス制御サーバ4はこのセッションを使ってカメラ制御要求をネットワークカメラ2に送信する。ネットワークカメラ2は制御された後、カメラ制御完了通知をアクセス制御サーバ4に送信し、アクセス制御サーバ4は端末装置3にカメラ制御完了通知を送信する。これにより、実施の形態1の端末装置3はネットワークカメラ2から画像を取得すると同時に別回線でネットワークカメラ2を制御することができる。
ここで、図2に基づいてネットワークカメラ2の内部構成について詳細に説明する。最初に基本となる構成の説明を行い、次に具体的な構成の説明をする。図2に示すネットワークカメラ2にはルータ5に接続される通信制御部6が設けられており、インターフェースとしてTCP/IPなどのプロトコルで通信を行う。この通信制御部6で通信して取得した音声やコマンドなどのデータ、カメラ部12で取り込まれて処理された画像などのデータはバッファ部7に順次一時蓄積される。
制御部8はハードウェアとしてCPU(Central Processing Unit;中央処理装置)を備えており、記憶部10に格納されたプログラムを読み込んで各機能を実行する。この制御部8は、通信制御部6から直接コマンドを取り出すか、場合によりバッファ部7内に一時蓄積されたコマンドを取り出して解析し、コマンドに従ってプログラムを実行すると共に、設定情報などについては保存するため記憶部10との間で入出力を行う。
処理部9はバッファ部7内に一時蓄積された音声のデータ処理、カメラ制御情報に従った制御指令を行うと共に、カメラ部12から取り込んだ画像情報を処理してバッファ部7に順に蓄積する。記憶部10はROMとRAM,不揮発メモリから構成され、ROMや不揮発メモリに格納されたプログラムはRAMに読み出されて順次処理される。
なお、以上説明した通信制御部6、バッファ部7、制御部8、処理部9、記憶部10は、何れもネットワークカメラ2が備えている必要がある構成であって、特に特別と言えるまでのものではない。しかし、本発明の実施の形態1においては、特徴的な構成としてアクセス制御サーバ4と通信を行うサーバ監視部11(サーバ監視デーモン(Deamon)が搭載されている。このサーバ監視部11は、電源がONされると、アクセス制御サーバ4に対して定期的にセッション開始を要求し、接続中に端末装置3からネットワークカメラ2の制御要求があった時には、そのコマンドは制御部8に渡し、設定情報は記憶部10内に格納するものである。
続いて、ネットワークカメラ2の各機能を実行する詳細な構成について説明する。ネットワークカメラ2はカメラ部12によって外部の光を取り込む。カメラ部12にはレンズを透過した光を光電変換するCCD、CMOS等の受光セルが設けられている。また、電子シャッタや露光時間制御を行って受光セルからR,G,B信号又は補色信号を出力する制御回路も設けられている。
このカメラ部12から出力されたR,G,B信号又は補色信号は、画像処理部13においてこれらの信号を基に輝度信号Yと色差信号U,Vに変換され、輪郭補正、γ補正処理
等が施され、処理後の信号がキャプチャーされて、JPEGフォーマット、MotionJPEGフォーマット等に圧縮される。この圧縮された画像データは画像バッファ部14に出力され、一時蓄積される。
また、音声に関しては、ネットワークカメラ2はマイク15によってネットワークカメラ2前方の音声を取り込み、IPネットワーク1を介して端末装置3から着信した音声データを音声化してスピーカ16から出力する。マイク15から入力された音声は音声処理部17でコード化され、受信した音声データは音声処理部17でデコードされる。音声バッファ部18は音声処理部17から出力された音声データと端末装置3から着信した音声データを一時蓄積するものである。
ところで、上述したようにネットワークカメラ2はJPEG、MotionJPEG等に圧縮された画像データをペイロードとして送信するが、これと同時にヘッダ内にASF(Advanced Streaming Format)の音声データを収め、画像+音声情報で構成されるカメラ情報(以下、JPEGデータとも言う)をアクセス制御サーバ4に送信して画像と音声の通信を行うことができる。なお、これらデータがMPEG4、H.263+、H.264等の方式のデータであってよいのは言うまでもない。静止画像、静止画像と音声、また、動画と音声(ビデオ、なお静止画を連続して送信する準動画と音声、また準動画、動画だけの場合でもよいのは当然である)を送受信できる。
次に、ネットワークカメラ2の制御動作の説明をする。パン動作部19は処理部9からの制御指令を受けてネットワークカメラ2のパン動作を行って左右の向きを変える。同様、チルト動作部20はチルト動作を行って仰角方向の向きを変える。また、ズーム動作部21はネットワークカメラ2のズーム動作を行い、フォーカス動作部22は所定の合焦点距離へのフォーカス動作を行う。更に、外部入出力部23はネットワークカメラ2に例えば人感センサ等を接続して外部入出力を行う。
そして、カメラ制御部24は以上説明したネットワークカメラ2のパン、チルト、ズーム、フォーカス等の制御動作、その他の入出力動作を制御する機能実現手段である。なお、バッファ部7に設けられたカメラ制御コマンドバッファ部25は、これらの制御動作、その他の入出力動作を行うために、端末装置3から送信されたカメラ制御コマンドの一時蓄積を行う。
続いて、ネットワークカメラ2のシステムを制御する制御部8の内部構成について説明する。制御部8のコマンド解析部26はネットワークカメラ2を制御するコマンドを解析する。また、設定情報入出力部27はカメラの解像度やその他の設定情報の設定を行う。そして、コマンド実行部28は解析したコマンドを実行する。例えば、端末装置3からのGETメソッドなどをコマンド解析部26で解析し、パン動作であればコマンド実行部28がこの動作をカメラ制御部24に命じ、画像の要求であれば画像処理部13に画像の取り込みを命じる。
また、サーバ監視部11には次の構成が設けられている。サーバ監視部11にはサーバ通信制御部29が設けられ、サーバ通信制御部29はセッション開始を要求し、接続を所定時間継続して切断されると、これを再度繰り返す。また、CGI(Common Gateway Interface)によって構成されたコマンド受渡制御部31、コマンドを解析するコマンド解析部30が設けられており、設定情報を入出力する設定情報入出力部32が設けられている。
従って、サーバ通信制御部29は、アクセス制御サーバ4から制御要求があった時は、コマンド受渡制御部31に起動がかけられ、そのコマンドをコマンド解析部30に渡す。
もし複数のコマンドがあればコマンド解析部30でそれぞれのコマンドに分割する。設定情報が通知された時には、設定情報入出力部32が記憶部10に設定する。
以上ネットワークカメラ2の内部構成について説明したが、以下図3に基づいて本発明の実施の形態1におけるサーバ装置の内部構成について説明する。
図3に示すように、アクセス制御サーバ4にはインターフェースとなる通信制御部41が設けられており、TCP/IPなどのプロトコルでネットワークカメラ2との間で通信を行う。この通信制御部41は2つの機能実現手段によって制御される。
一つ目の機能実現手段はインターネット(IPネットワーク)を介して接続された端末装置3との間で通信を行うネットワーク端末監視部42a(端末監視デーモン)であり、2つ目の機能実現手段はネットワークカメラ2との間で接続確認時間付KEEP ALIVEを使ってセッションを張るネットワークカメラ監視部42b(カメラ監視デーモン)である。
例えば、ネットワークカメラ監視部42bはネットワークカメラ2のサーバ監視部11からセッション開設要求(http:GET/cgiXXX)を受信すると、200 OK(http/1.1 200 OK)を送信してネットワークカメラ2との接続を行う。また、ネットワーク端末監視部42aは端末装置3から登録要求(http:GET/cgiYYY)があると、ユーザIDやユーザが設定したパスワード等のユーザ情報とネットワークカメラ2の固有情報(QRコードなどから得られた情報)をカメラ情報記憶部45の接続情報データベースに登録する。
ネットワーク端末監視部42aとネットワークカメラ監視部42bが取り込んだコマンドはサーバ制御部43において解析され、これが実行される。ここで設定情報記憶部44は各ネットワークカメラ2の固有情報やパスワード等のユーザ情報を格納する接続情報データベースである。また、カメラ情報記憶部45には、複数の端末装置3から同時に一台のネットワークカメラ2にアクセスがあった時、共通のデータを使って応答できるようにするため、各ネットワークカメラ2の画像データや音声データ、位置情報等が格納される。
また、図3において、ネットワーク端末監視部42aには、端末装置3との通信を行うネットワーク端末通信制御部46aが設けられると共に、ネットワークカメラ監視部42bには、ネットワークカメラ2との通信を行うネットワークカメラ通信制御部46bが設けられている。そして、ネットワーク端末監視部42a,ネットワークカメラ監視部42bには、それぞれ、端末装置3から送信されたユーザ情報、あるいはネットワークカメラ2から送信された固有情報とユーザ情報を取り出して設定情報記憶部44に格納する設定情報入出力部47a,47bが設けられている。
更に、端末装置3からアクセス制御サーバ4にアクセスするのに必要なURL(Uniform Resource Locator、本発明の接続情報)、ネットワークカメラ2からアクセス制御サーバ4にアクセスするのに必要なURL、更にこの端末装置3のユーザ情報(ユーザID及び/又はパスワード)、ネットワークカメラ2の固有情報(MACアドレス及び/又はシリアル番号、あるいはこれらを含んだ情報)が、対応付けられて設定情報記憶部44に格納される。
また、ネットワーク端末監視部42aの設定情報入出力部47aは、設定情報記憶部44から端末装置3からアクセスするのに必要なURLを、ネットワーク端末通信制御部46aを介して端末装置3に通知する。そして、ネットワーク端末監視部42a,ネットワ
ークカメラ監視部42bには、サーバ制御部43を動作させるためのCGIとしてコマンド受渡制御部48a,48bが設けられており、端末装置3やネットワークカメラ2から要求があった時は、サーバ制御部43でその要求のコマンドを解析させ、その後の処理を行う。また、設定情報は設定情報入出力部47a,47bによって設定情報記憶部44に格納される。
実施の形態1においては端末装置3のアクセス制御サーバ4への登録処理、端末装置3からネットワークカメラ2へのアクセス制御かによって、別のURLが接続情報になる。従って、アクセス制御サーバ4はURLの種別によって登録か、あるいはネットワークカメラ2へのアクセスかを判別できるので、端末装置3のユーザ情報とネットワークカメラ2の固有情報を登録すべきか否か(登録か否か)の判断が容易となる。
また、URLを利用してアクセス制御サーバ4に端末装置3を登録するので、アクセスとは別に登録のための指示を必要とせず、登録手順を簡素化できる。
ここで、この情報を受け渡されるサーバ制御部43の構成を説明すると、コマンド解析部49はネットワークカメラ2や端末装置3から送信されたコマンドの内容を判断する。このコマンド解析部49の解析により、コマンドの内容に応じてアクセス制御サーバ4が動作する。そして、ネットワークカメラ2と端末装置3間でパケットを中継するために、図3のコマンド中継制御部50が設けられている。この時設定情報記憶部44の設定情報が参照される。アクセス制御サーバ4がパケットを中継するというのは、アクセス制御サーバ4がネットワークカメラ2や端末装置3に代わって同一内容の要求パケットを生成して送信することを意味する。
端末装置3から端末要求のパケットを受信した時には、カメラ検索部51は複数の端末装置3が同時に一台のネットワークカメラ2にアクセスしているか否かを検索する。そして、カメラ情報共有制御部53は複数の端末装置3から同時に一台のネットワークカメラ2にアクセスがあった場合に、共通の配信データが使える場合に共有する情報を利用するための制御を行う。例えば、一台の端末装置3がネットワークカメラ2にアクセスすると、設定情報入出力部52がその旨のフラグをセットし、カメラ検索部51が他に接続中の端末装置3があるか否かを検索して、カメラ情報共有制御部53はこの端末装置3間で共通の配信データがある場合にはこの共通のデータをペイロードとして端末装置3に送信する。
さて、以上説明したアクセス制御サーバ4とネットワークカメラ2、端末装置3の動作の流れを説明する。
登録を希望する端末装置3から新規に登録手続を行い、アクセス制御サーバ4から通知された所定のURLにアクセスすると、アクセス制御サーバ4ではこのURLにアクセスすることでCGI(コマンド受渡制御部48a)が起動し、これによってコマンド解析部49、コマンド中継制御部50が処理を開始する。この端末要求が、画像や音声のカメラ情報(JPEGデータ)あるいはネットワークカメラ2の操作の要求の場合は、それぞれセッション中のネットワークカメラ2に対してのみ、コマンド中継制御部50がその端末要求をネットワークカメラ2へ送信する。また、端末装置3に応答を返す場合は、コマンド中継制御部50はその旨の応答を端末装置3に返す。
ところで、ネットワークカメラ2が複数の端末装置3から同時にアクセスされた場合に、過負荷になるおそれがある。そこで、実施の形態1においては、端末装置3からJPEGデータの要求があると、上述したように、アクセス制御サーバ4のカメラ検索部51はアクセスされたネットワークカメラ2とセッション継続中の端末装置3の有無を検索し、
セッション中の端末装置3が存在する場合は同一のJPEGデータがカメラ情報記憶部45内に格納されているか否かをカメラ情報共有制御部53が確認する。格納されている場合はこのJPEGデータを取り出し、2台目にアクセスした端末装置3に送信する。JPEGデータが格納されていない場合は、アクセス制御サーバ4による中継で端末要求はネットワークカメラ2に送信される。
これを受信したネットワークカメラ2は、カメラ部12で撮影し、あるいはマイク15で集音した音声データをJPEGデータとしてアクセス制御サーバ4に送信する。端末要求がネットワークカメラ2を操作する場合はパン、チルト等の制御を行う。アクセス制御サーバ4は、ネットワークカメラ2からJPEGデータを受け取ると、カメラ情報記憶部45に格納し、JPEGデータをペイロードとするパケットを生成して端末装置3に送信する。
このカメラ情報共有制御部53の作用によって、カメラ情報記憶部45内に既にJPEGデータがあった場合に、ネットワークカメラ2にアクセスすることなく、そのままカメラ情報記憶部45に記憶されたJPEGデータを2台目以降にアクセスした端末装置3に配信するため、ネットワークカメラ2に無駄なアクセスをすることなく画像を入手できるので、ネットワークカメラ2にかかる負担を軽減することができる。
そこで、以下実施の形態1におけるネットワークカメラ2の動作について図4のフローチャートに基づいて説明する。先ず、ネットワークカメラ2をルータ5に接続して電源を入れてアクセス制御サーバ4とのセッション開設を試み(step1)、セッション開設(接続)に成功するまでアクセスする(step2)。step2において、もし不成功なら再接続時間待って(step3)、step1に戻って再度セッション開設を試みる。セッションが開設されると、切断まで接続確認時間付Keep Aliveの状態となる。
step2において接続に成功した場合、アクセス制御サーバ4からサーバ要求があったか否かを確認する(step4)。サーバ要求が受信できなかった場合、それが、セッションが切断されたことによるものであるのか判定し(step5)、アクセス制御サーバ4から切断された場合は、所定時間(再接続時間)経過したら再び自動的にアクセス制御サーバ4とのセッションを回復するためにstep3へ進んで、この時間が経過するのを待ってstep1に戻り、再度セッション開設を試みる。
もし、step5において、セッションが切断されていない場合は、ネットワーク障害などでこれが切断状態になったと判断できるため、接続確認時間付Keep Aliveの接続確認時間が経過しているか否かを確認し(step6)、経過していなければstep4に戻ってサーバ要求を受信するのを待つ。また、step6において接続確認時間が経過している場合は、接続確認時間付Keep Aliveの接続確認パケット(即ちKeep Alive要求)を送信し(step7)、アクセス制御サーバ4から次時間を設定した接続確認時間付Keep Aliveのサーバ応答があったか否かを判定し(step8)、サーバ応答があった場合はstep4に戻って、新たなサーバ要求を受信するまで待機する。サーバ応答がなければstep3へ進み、再接続時間が経過するのを待ってstep1に戻って再度セッションの開設を試みる。
step4においてアクセス制御サーバ4からサーバ要求があった場合、サーバ要求に含まれたコマンドを解析する(step9)。このコマンドが、現在のセッションのほかに新セッションを開設する要求であるのか否かを判定し(step10)、新セッション開設以外のコマンド(例えばJPEGデータの要求)であればこのコマンドを実行する(step11)。そして、その制御結果の通知をアクセス制御サーバ4に対して行う(s
tep12)。
これに対してstep10において、コマンドが新セッション開設のコマンドであった場合、このタスクが最大タスク数、例えばタスク数5個以内であるか否かを判定する(step13)。最大タスク数以内であれば、新タスクを生成し、step11へ進んで新セッション開設のコマンドを実行し、アクセス制御サーバ4に新セッション開設の通知を行う。step13の判定で最大タスク数を越えた場合は、ネットワークカメラ2が過負荷になるため、アクセス制御サーバ4へこの旨のエラー通知を送信して(step15)、再度step4に戻って新たなサーバ要求があるまで待機する。
次に、実施の形態1におけるアクセス制御サーバ4の動作について図5のフローチャートに基づいて説明する。アクセス制御サーバ4はネットワークカメラ2からカメラセッション開設要求があるまで待機し(step21)、なければ再接続の時間が経過するのを待ち(step22)、カメラセッション開設要求があれば、このネットワークカメラ2が未登録カメラか否かを判断する(step23)。
step23において、ネットワークカメラ2が未登録カメラの場合は後述する図6のフローチャートに従って登録処理を行い、既登録カメラの場合は端末装置3から端末要求を受信したのか否かを確認する(step24)。端末装置3から端末要求を受信したのではない場合は、ネットワークカメラ2からカメラ要求と所定時間セッションを継続するための接続確認時間付Keep Aliveの要求を受信したのか否かを判定する(step25)。カメラ要求を受信していなければstep24に戻って、端末要求を受信するまで待機する。繰り返しstep25において、ネットワークカメラ2から接続確認時間付Keep Aliveのカメラ要求を受信した場合、次時間を設定した接続確認時間付Keep Aliveのカメラ制御の応答を送信する(step26)。Keep Aliveの接続確認時間が経過することなく完了通知を受信した場合はstep24に戻って、端末要求を受信するまで待機する(Step27)。完了通知を受信していないで接続確認時間が経過した場合は、ネットワークカメラ2のセッションを切断して、step22へ進んで再接続時間が経過するのを待ち、step21に戻る。
続いてstep24において、端末要求を受信した場合はコマンドを解析する(step29)。解析したコマンドがカメラ制御コマンドか否かを判断し(step30)、当該セッションにおいてはパンやチルト等のカメラ制御コマンドの場合はコマンドを実行し(step31)、実行した旨を通知する実行結果通知を端末装置3に送信する(step32)。
解析したコマンドが当該セッションにおいてカメラ制御コマンドでなく、画像や音声などの情報を要求するものである場合、その情報が既にカメラ情報記憶部45に格納されている情報(バッファ済み情報)であるのか否かを判定する(step33)。もし、既に格納されている情報であれば複数の端末装置3で共有できる情報であるので、この一時蓄積されているバッファ済み情報を、アクセス制御サーバ4からこれを要求した端末装置3に送信して(step35)、step24に戻る。
step33において、バッファ情報がなければネットワークカメラ2に画像や音声などの情報を要求するカメラ制御要求を送信し(step34)、ネットワークカメラ2から画像や音声などのデータを収めた完了通知を受信できたか判定し(step36)、完了通知を受信した場合はこの情報を送信する制御結果通知を端末装置3に送信する(step37)。この場合、正常に端末装置3の要求が終了したことになる(Step28)。
しかし、step36において、ネットワークカメラ2から完了通知を受信できなかった場合は、何らかの障害が発生したことを意味するから、ネットワークカメラ2のセッションを切断して、エラーが発生した旨の制御結果通知を行い、step21に戻って待機する。
続いて、アクセス制御サーバ4の動作の上記step23で行われる未登録カメラの登録手続について説明する。図6において、未登録の携帯電話等の端末装置3からのセッション開設要求があった場合、端末装置3からの登録要求であるか否かが判定される(step41)。
登録要求には、QRコードなどでネットワークカメラ2の固有情報を通知され、アクセス制御サーバ4はネットワークカメラ2を設定情報として登録する。更にユーザID、パスワード等のユーザ情報、カメラ設定情報が通知されて、アクセス制御サーバ4の設定情報記憶部44に登録される(step42)。この固有情報、ユーザ情報、カメラ設定情報は、端末装置3からアクセス制御サーバ4の所定サイトにアクセスし、アクセス制御サーバ4から情報の入力を促すウェブページが送信されてここに情報を取り込んだり、書き込んだりすることで登録される。
この登録が終了すると、アクセス制御サーバ4は端末装置3が今後アクセスするためのURLを送信する(step43)。従って、端末装置3がネットワークカメラ2から画像や音声を得ようと思えば、端末装置3からこのURLにアクセスすることで、アクセス制御サーバ4がこの要求を中継して、ネットワークカメラ2との通信が可能になる。
以上、ネットワークカメラ2とアクセス制御サーバ4の構成、動作について説明したが、以下、端末装置3、ネットワークカメラ2、アクセス制御サーバ4の3者間で行われる手順についてそのシーケンスを説明する。図7は実施の形態1におけるサーバ装置経由で通信を行うネットワークシステムの登録シーケンスを示す。図7において、端末装置3からQRコードなどを使って登録手続を行う。先ず、端末装置3からネットワークカメラ2のMACアドレスやシリアル番号(製造番号)等の固有情報を送信し、ユーザ情報、設定情報の登録要求を送信する(sq1)。これに対してアクセス制御サーバ4で登録処理を行い、ネットワークカメラ2にアクセスする時に利用するURLを登録応答として通知する(sq2)。
その後、ネットワークカメラ2の電源を入れると、ネットワークカメラ2のサーバ監視部11(サーバ監視デーモン)がアクセス制御サーバ4に対してカメラの状態を送信し、この時工場出荷状態であるためセットアップ要求を送信する。(sq3)。これに対してアクセス制御サーバ4は200 OKを送信すると共に(sq4)、ネットワークカメラ2にセットアップの要求を行う(sq5)。即ち、アクセス制御サーバ4は、その設定情報記憶部44に記憶されたネットワークカメラ2の固有情報とネットワークカメラ2から送信された固有情報とを照合し、一致した場合、設定情報記憶部44に記憶された端末装置3のユーザ情報をネットワークカメラ2に送信する。この要求を受信すると、ネットワークカメラ2はセットアップを実行する。
そして、セットアップ要求に対するセットアップ完了の応答をアクセス制御サーバ4に送信し(sq6)、サーバ要求を待つことになる。セットアップに成功しなかった場合は再接続待ち時間が経過するのを待って、この手順を繰り返す。
次に、ネットワークカメラ2、アクセス制御サーバ4間で行われる基本手順のシーケンスを説明する。ネットワークカメラ2は電源オンになると、ネットワークカメラ2のサーバ監視部11(サーバ監視デーモン)がアクセス制御サーバ4に対して接続要求を通知す
る(sq7)。これに対してアクセス制御サーバ4は200 OKを送信すると共に(sq8)、カメラ制御要求(即ちサーバ要求)を送信する(sq9)。この要求を受信するとサーバ監視部11はカメラ制御要求を受信した旨の応答を送信すると共に(sq10)、サーバ要求が切断を要求するものでなければ、Keep Aliveの要求を送信する(sq11)。サーバ要求が切断を要求する場合は切断される。
このKeep Aliveの要求に対して、アクセス制御サーバ4のネットワークカメラ監視部42bは接続確認の次時間が設定された接続確認時間付Keep Aliveのカメラ制御応答(即ち接続確認)を送信する(sq12)。なお、この次時間が経過していない間は切断要求があるまでサーバ要求があるまで待機し(セッション継続)、次時間が到来したら接続確認時間付Keep Aliveのカメラ制御応答を送信する。そして、アクセス制御サーバ4から切断要求が行われたら(sq13)、ネットワークカメラ2のサーバ通信制御部29はセッションを切断する。
そして、切断後再接続時間が経過すると、ネットワークカメラ2のサーバ通信制御部29は再びアクセス制御サーバ4に対して接続要求を通知する(sq14)。sq12の接続確認時間付Keep Aliveのカメラ制御応答(接続確認パケット)がない場合も同様となる。以下、sq3以下と同様のシーケンスを再接続時間ごとに繰り返して行うことになる。
続いて、端末装置3からネットワークカメラ2に静止画像等のJPEGデータを取得するシーケンスについて説明する。静止画像を要求するため、端末装置3から所定のURLに対してJPEGデータを要求する端末要求を送信すると(sq21)、アクセス制御サーバ4はこの端末要求を中継してこれをネットワークカメラ2に転送する(sq22)。
なお、sq22においてこの端末装置3のほかに他の端末装置3からJPEGデータを要求されている場合は、後述する。これを受信すると、ネットワークカメラ2はカメラ部12で撮像した画像を画像バッファ部14に出力して一時蓄積し、この一時蓄積されたバッファ済み情報あるいは既に一時蓄積されたバッファ済み情報をアクセス制御サーバ4に送信する(sq23)。
アクセス制御サーバ4はこのJPEGデータをアクセス制御サーバ4のカメラ情報記憶部45に一時蓄積すると共に、コマンド中継制御部50が静止画像のJPEGデータをペイロードとするパケットを生成して通信制御部41から端末装置3に送信する(sq24)。なお、静止画像のJPEGデータだけでなく、音声データも併せて送信することもできる。
次に、端末装置3からネットワークカメラ2のパン、チルト等の操作を行うシーケンスについて説明する。ネットワークカメラ2の操作をするため、端末装置3から所定のURLに対してカメラ制御要求を送信すると(sq25)、アクセス制御サーバ4はこのカメラ制御要求をネットワークカメラ2に送信する(sq26)。なお、sq26において、カメラ制御要求であることはコマンド解析部49が解析し、コマンド中継制御部50が中継する。
ネットワークカメラ2はこのカメラ制御要求を受信すると、コマンド解析部26が制御内容を解析し、コマンド実行部28がコマンドを実行し、カメラ制御部24にパン、チルト等の制御動作を命じる。制御動作を行うと、ネットワークカメラ2はカメラ制御要求に対する制御結果通知を応答する(sq27)。アクセス制御サーバ4はこの制御結果通知をコマンド中継制御部50が中継して端末装置3に送信する(sq28)。
ところで、実施の形態1のアクセス制御サーバ4はカメラ制御要求を受信した時、セッション中ネットワークカメラ2との間で制御用の新セッションを開設することができる。即ち、アクセス制御サーバ4はサーバ要求として例えばURL(cgiaaa)を使って新セッション開設要求を行う(sq31)。
ネットワークカメラ2はこのサーバ要求を受信すると、新セッションを開設するためにこれに同意する応答を送信すると共に(sq32)、コマンド解析部26において制御内容を解析し、コマンド実行部28がコマンドを実行し、アクセス制御サーバ4に対してサーバ通信制御部29から接続要求(http:GET/cgiaaa)を送信する(sq33)。これに対してアクセス制御サーバ4は200 OKを送信し(sq34)、新セッションが開設される。この新セッションを使ってカメラ制御要求を送信することができる。
なお、新セッションを開設する時、設定情報として設定されている最大タスク数(例えば5個)を越えた場合は、新セッションを開設することができない。ネットワークカメラ2のコマンド解析部26はこの旨の判断を行い、最大タスク数以内であればコマンド実行部28がsq33の接続要求(http:GET/cgiaaa)を送信し、最大タスク数を越えている場合はエラー通知をアクセス制御サーバ4に送信する。
これにより、例えば、2つのルートのセッションをネットワークカメラ2との間で開設し、端末装置3から一方のルートで所定以上の時間を要する処理(例えば大容量のJPEGデータの送信)を要求し、もう一方のルートでカメラの操作を行うことができる。更に、2台以上の端末装置3から一台のネットワークカメラ2にアクセスしてそれぞれ別にカメラ制御してJPEGデータを得ることもできる。
続いて、この複数の端末装置3から一台のネットワークカメラ2にアクセスして音声を含む動画情報(以下、ビデオ情報)のストリーム配信を要求する場合の説明を行う。端末装置3(A)と端末装置3(B)が相前後してアクセス制御サーバ4にアクセスし、一台のネットワークカメラ2のビデオ情報を要求する場合である。
先ず、ネットワークカメラ2にビデオ情報のストリーム配信を要求するため、端末装置3(A)から所定のURLに対してビデオ配信を要求する端末要求を送信し(sq41)、相前後して端末装置3(B)から別の所定のURLに対してビデオ配信を要求する端末要求を送信すると(sq42)、アクセス制御サーバ4のカメラ情報共有制御部53はこれらが共通のネットワークカメラ2に対するビデオ配信要求と判断し、一つのサーバ要求としてネットワークカメラ2にビデオ配信を送信する(sq43)。
ネットワークカメラ2はアクセス制御サーバ4からこのビデオ配信要求を受信すると、コマンド解析部26においてこれをビデオ配信要求と判断し、コマンド実行部28が画像バッファ部14、音声バッファ部18のデータを基にMotionJPEG(+ASF)、MPEG等のペイロードのパケットを生成させてアクセス制御サーバ4に送信する(sq44)。
アクセス制御サーバ4はこのビデオ配信データをカメラ情報記憶部45に一時蓄積すると共に、コマンド中継制御部50がこの配信データをペイロードとするパケットを生成して通信制御部41から端末装置3(A)に送信し(sq45)、同一の配信データをペイロードとするパケットを端末装置3(B)に送信する(sq46)。そして、この後ネットワークカメラ2からアクセス制御サーバ4を経由して端末装置3(A),端末装置3(B)にストリーム配信が行われる。
その後、何れかの時点において、一方の端末装置3からネットワークカメラ2に切断要求が送信されることになる。即ち、ある時点にネットワークカメラ2がアクセス制御サーバ4へ次の配信データのパケットを送信し(sq47)、アクセス制御サーバ4はこの配信データをカメラ情報記憶部45に一時蓄積し、この配信データを端末装置3(A)に送信する(sq48)。
しかし、このタイミングで、一方の端末装置3(B)から切断要求がなされると(sq49)、コマンド解析部49の判断を基にアクセス制御サーバ4のコマンド中継制御部50は端末装置3(B)へのビデオ配信を停止する。
この時点においては、端末装置3(A)からの切断要求はなされていないので、ネットワークカメラ2からアクセス制御サーバ4へのビデオ配信は引き続いて行われ、コマンド実行部28が配信データをアクセス制御サーバ4に引き続いて送信する(sq50)。この配信データはアクセス制御サーバ4によって端末装置3(A)に送信される(sq51)。
更に、その後も端末装置3(A)への配信のため、ネットワークカメラ2はアクセス制御サーバ4へ次のビデオ配信データのパケットを送信し続け(sq52)、アクセス制御サーバ4はこの配信データを端末装置3(A)に送信する(sq53)。そして、あるタイミングで、端末装置3(A)から切断要求がなされると(sq54)、アクセス制御サーバ4のコマンド解析部49はこれを切断要求と判断し、コマンド中継制御部50はネットワークカメラ2へ切断要求を行う(sq55)。
このように実施の形態1のアクセス制御サーバは、端末装置からユーザ情報とQRコードなどのネットワークカメラの固有情報を通知し、ネットワークカメラからはアクセス制御サーバにこの固有情報と未登録(工場出荷状態)である旨を通知することで、ルータにポートフォワーディングの設定をするという煩雑な作業をすることなく、端末装置に関する情報のネットワークカメラへの設定を、極めて簡易にすることができる。また、端末装置のユーザ情報が記憶されている場合には、端末装置に関する情報の登録は済んでいると判断するので、同一情報の無駄な重複登録を回避できる。
更に、端末装置に関する情報をアクセス制御サーバ置に設定すると、端末装置に対して、アクセス制御サーバ置を介してネットワークカメラにアクセスするための接続情報を返送するので、アクセス制御サーバへの登録と、端末装置からネットワークカメラへのアクセスとを簡単に結び付けることができる。その結果、端末装置に関する情報のネットワークカメラへの設定を、Keep Aliveを使ったセッションで煩雑な作業をすることなく、極めて簡易に行うことができる。
アクセス制御サーバ置の記憶部にネットワークカメラで撮像された画像を記憶しておき、端末装置からネットワークカメラで撮像した画像を取得する画像要求があった場合も、ネットワークカメラにアクセスすることなく、記憶部に記憶された画像を端末装置に送信することにより、端末装置はネットワークカメラにアクセスすることなく、ネットワークカメラで撮像した画像を入手できるので、ネットワークカメラが端末装置からアクセスされる回数を低減することができ、ネットワークカメラのアクセス負荷を減らすことができる。
端末装置からネットワークカメラに対して所定時間を要する処理を要求した場合、ネットワークカメラに対して画像を通信する通信用セッションとは別に制御コマンドを通信する制御用セッションを開設することにより、所定時間を要する処理により現在使用中のセッションが占有された場合であっても、別に設けたセッションを介して制御コマンドを用
いた指示を行うことができるので、所定時間を要する処理によって他の処理ができないという事態を回避できる。
例えば、現在使用中のセッションを介して動画を取得している場合であっても、別に設けたセッションを介してパン/チルト等の指示をネットワークカメラに対して送信できるので、動画を取得中にパン/チルト等の制御ができず、同一方向の画面しか取得できないという事態を解消できる。
(実施の形態2)
本発明の実施の形態2における分散サーバシステムとサーバ装置について説明する。実施の形態2の分散サーバシステムは、接続の可否に関する登録処理を行うサーバ装置と、第1端末装置から第2端末装置へアクセスする時アクセス制御を行う第2サーバ装置とで機能を分担し、サーバ装置の登録処理と第2サーバ装置によるその後のアクセス制御を連携して行うもののである。
図13は本発明の実施の形態2におけるサーバ装置経由で通信するネットワークシステムの構成図、図14は本発明の実施の形態2におけるネットワークカメラのフローチャート、図15は本発明の実施の形態2におけるアクセス制御サーバ装置のフローチャート、図16は本発明の実施の形態2におけるサーバ装置に対して端末装置とネットワークカメラを新規登録するシーケンス説明図である。
実施の形態2における分散サーバシステムは、実施の形態1におけるサーバ装置の機能を機能分離して負荷分散を図ったものであり、基本的に実施の形態1と実施の形態2の構成は共通であるから、共通の構成には共通の符号を付与し、その詳細な説明は実施の形態1に譲る。また、実施の形態2の説明においても、図1〜図12は参照する。
図13において、IPネットワーク1はプロトコルTCP/IPで通信するインターネットやイントラネットなどのネットワークであり、IPネットワーク1には携帯電話等の端末装置3が接続されると共に、ルータ5が接続される。このルータ5の下流側には複数のネットワークカメラ2が配下として接続される。ネットワークカメラ2はカメラ部で撮影した画像を録画してIPネットワーク1に送信する。このルータ5はグローバルIPアドレスを有し、各ネットワークカメラ2は外部ポート番号を有している。
また、図13のIPネットワーク1には、端末装置3からネットワークカメラ2へのアクセスを可能にし、端末装置3に関する登録処理を行う登録制御サーバ4a(本発明の分散サーバシステムにおけるサーバ装置)と、端末装置3とのアクセス制御を行うアクセス制御サーバ4b(本発明の分散サーバシステムにおける第2サーバ装置)が接続される。登録制御サーバ4aとアクセス制御サーバ4bの内部構成は基本的に図3に示すアクセス制御サーバ4と共通である。
この図13に示した矢印に従って説明する。端末装置3からユーザ情報と、ネットワークカメラ2の個体識別可能な固有情報と、アクセス制御サーバ接続情報(URL)を登録制御サーバ4aに通知して(1)のように登録要求すると、端末装置3のユーザ情報が記憶されていない場合に、登録制御サーバ4aは端末装置3からの設定情報としてユーザ情報と固有情報を登録し、これらは登録制御サーバ4aの設定情報記憶部44の接続情報データベースに登録される。
続いて、登録制御サーバ4aはアクセス制御サーバ接続情報を使い、アクセス制御サーバ4bに対して設定情報記憶部44に記憶されたユーザ情報と固有情報を(2)のように送信し、アクセス制御サーバ4bがその設定情報記憶部44にこれらを記憶する。この処
理後、アクセス制御サーバ4bは登録制御サーバ4aにURLなどのネットワークカメラ2へアクセスするための接続情報を(3)に示すように送信(カメラ接続情報通知)し、登録制御サーバ4aがこの接続情報を端末装置3に(4)のように送信(カメラ接続情報通知)する。
その後、端末装置3からこの接続情報にアクセスすると、アクセス制御サーバ4bのCGIが起動し、後述するように端末装置3から受信したメッセージが中継処理され、ネットワークカメラ2へのアクセスが可能になる。
登録制御サーバ4aは基本的に登録処理のみを行い、アクセス制御サーバ4bはアクセス制御を行う。このアクセス制御サーバ4bは、一台のサーバ装置の場合に登録処理とアクセス制御が集中して過負荷になるのを避けるためのもので、アクセス処理だけを行い、N台(一台あるいは2台以上)がIPネットワークに接続される。
この構成により、端末装置3から要求される処理はN台のアクセス制御サーバ4bで分担され(1/Nの負担)、実施の形態1のような一台だけのサーバ装置にかかる負荷を軽減できる。なお、登録制御サーバ4aは登録制御のみを行うのがよいが、過負荷にならない限り、登録制御のほかにアクセス制御サーバ4bの一台として、アクセス制御の一部を分担することもできる。
次いで、図13に基づいて未登録あるいは既登録のネットワークカメラ2を接続する時の説明を行う。ネットワークカメラ2が(5)に示すように登録制御サーバ4aに接続要求すると、実施の形態2の分散サーバシステムにおいては、登録制御サーバ4aが(6)のようにアクセス制御サーバ4bのURLと共にサーバ切替え通知を送信する(即ちアクセスサーバ接続情報通知)。ネットワークカメラ2はセッションを切断し、(7)のように再度アクセス制御サーバ4bに接続要求する。アクセス制御サーバ4bからは200 OKが送信され、ネットワークカメラ2が未登録の場合、ネットワークカメラ2はMACアドレスやシリアル番号等を含んで構成された固有情報と未登録である旨(工場出荷状態を示すステータス)を通知する。なお、既登録(登録済み)の場合はこの旨(登録状態を示すステータス)を通知する。
これに対して登録制御サーバ4aは送信されてきた上記固有情報を使って設定情報記憶部44の接続情報データベースを検索し、この固有情報が登録されていなければこのネットワークカメラ2を新規登録し、登録完了通知(200 OK)をネットワークカメラ2に通知する。そして、更に(8)に示すようにネットワークカメラ2にこのカメラ設定情報(端末装置3のユーザ情報と固有情報)を送信してネットワークカメラ2にセットアップを命じる。
その後、ネットワークカメラ2はこのアクセスサーバ接続情報を使って定期的にアクセス制御サーバ4bにセッション開設要求(接続要求)を送信する。これに対してアクセス制御サーバ4bはネットワークカメラ2にセッション開設要求完了通知(200 OK)を送信して、接続状態になる。この接続は接続確認時間付KEEP ALIVEを使って所定時間保持され、この時間が経過すると、この手順が繰り返される。
このセッションが張られている状態で、端末装置3から図13の(9)のように画像を要求すると、アクセス制御サーバ4bが(10)に示すようにこの画像要求を中継、転送し、これに対してネットワークカメラ2から(11)のように画像が配信され、アクセス制御サーバ4bが画像を端末装置3に(12)に示すように送信する。
なお、実施の形態2のアクセス制御サーバ4bも実施の形態1と同様に、ネットワーク
カメラ2と間で1回線の通信用セッションのほか、2回線目以上となる第2のセッションを開設することができる。アクセス制御サーバ4bはネットワークカメラ2に第2のセッションにより、例えばパン等のカメラ制御要求を送信すると、アクセス制御サーバ4bはこのセッションを使ってカメラ制御要求をネットワークカメラ2に送信する。ネットワークカメラ2は制御された後、カメラ制御完了通知をアクセス制御サーバ4bに送信し、アクセス制御サーバ4bは端末装置3にカメラ制御完了通知を送信する。これにより、実施の形態2の端末装置3はネットワークカメラ2から画像を取得すると同時に別回線でネットワークカメラ2を制御することができる。
ここで、実施の形態2のネットワークカメラ2の内部構成について説明する。基本的には実施の形態1のネットワークカメラ2と内部構成は変わらない。そこで、詳細は実施の形態1に譲り、図2を使って、登録制御サーバ4aとアクセス制御サーバ4bとを分離したことにより追加された機能を中心に説明をする。
図2において、バッファ部7に設けられたカメラ制御コマンドバッファ部25は、端末装置3から送信されたコマンドのほか、あわせて登録制御サーバ4aから送信されたサーバ切替えを命じるコマンドなどの一時蓄積を行う。
この登録制御サーバ4aから送信されたサーバ切替えのコマンドにはアクセスサーバ接続情報(URL)が含まれている。登録制御サーバ4aからこのコマンドを受信するとコマンド受渡制御部31に起動がかけられ、これをコマンド解析部30に渡す。コマンド解析部30はコマンドからサーバ切替えを命じる旨を解析すると共に、URLを抽出し、設定情報入出力部27がURLを記憶部10に格納する。そして、コマンド実行部28は切断要求を登録制御サーバ4aに送信して、登録制御サーバ4aとのセッションを切断し、アクセスサーバ接続情報のURLを使ってアクセス制御サーバ4bにセッション開設要求を行う。
これに対してアクセス制御サーバ4bはネットワークカメラ2にセッション開設要求完了通知(200 OK)を送信して、接続状態になる。アクセス制御サーバ4bからセットアップのコマンドと、ユーザ情報などのカメラ設定情報が送信される。このカメラ制御コマンドに従ってネットワークカメラ2がセットアップすると、両者間は接続確認時間付KEEP ALIVEを使って所定時間セッションが張られ、この時間が経過すると、この手順が繰り返される。この接続中に端末装置3から画像を要求すると、アクセス制御サーバ4bを介して画像が端末装置3に送信される。
ところで、実施の形態2の登録制御サーバ4aはIPネットワーク1に接続された複数台のアクセス制御サーバ4b全体に対してサーバの負荷状況の監視を行う。実施の形態2においては、この負荷は複数台のアクセス制御サーバ4bの(処理量/処理能力)の比率に基づいて判断され、全サーバの負荷状況を一覧にしたテーブルにして、登録処理時に参照するため設定情報記憶部44内に保持される。この比率(=負荷)が高いほど負荷が高いことになる。登録制御サーバ4aはこの比率ができるだけ等しくなるようにアクセス制御サーバ4bを選んでアクセス制御サーバ接続情報(URL)として通知する。比率の小さいものを選ぶ。処理量と処理能力の比率に基づいた制御であるため、簡単に負荷状態を監視することができ、IPネットワーク1のトラフィックに応じたサーバ管理をすることができる。
以上ネットワークカメラ2の内部構成について説明したが、以下図3に基づいて本発明の実施の形態2における登録制御サーバ4aとアクセス制御サーバ4bについて説明する。実施の形態1のアクセス制御サーバ4と内部構成は基本的に共通であるため、詳細は実施の形態1に譲り、登録制御サーバ4aとアクセス制御サーバ4bとに機能分離したこと
に関連してのみ説明する。
図3に示すように、登録制御サーバ4aとアクセス制御サーバ4bにはインターフェースとなる通信制御部41が設けられており、TCP/IPなどのプロトコルでネットワークカメラ2との間で通信を行う。この通信制御部41は端末装置3との間で通信を行うネットワーク端末監視部42aと、ネットワークカメラ2との間で接続確認時間付KEEP
ALIVEを使ってセッションを張るネットワークカメラ監視部42bとを備えている。
例えば、登録制御サーバ4aとアクセス制御サーバ4bのネットワークカメラ監視部42bはネットワークカメラ2のサーバ監視部11からセッション開設要求(http:GET/cgiXXX)を受信すると、200 OK(http/1.1 200 OK)を送信してネットワークカメラ2との接続を行う。また、登録制御サーバ4aのネットワーク端末監視部42aは端末装置3から登録要求(http:GET/cgiYYY)があると、ユーザ情報とネットワークカメラ2の固有情報をカメラ情報記憶部45の接続情報データベースに登録する。
また、ネットワーク端末監視部42a,ネットワークカメラ監視部42bには、それぞれ、端末装置3から送信されたユーザ情報、あるいはネットワークカメラ2から送信された固有情報とユーザ情報、アクセスサーバ接続情報を取り出して設定情報記憶部44に格納する設定情報入出力部47a,47bが設けられている。
従って、この登録制御サーバ4aは未接続のネットワークカメラ2からの接続要求の場合、アクセス制御サーバ4bに接続先を変更する旨のサーバ切替え通知をURLと共に送信し、アクセス制御サーバ4bは登録制御サーバ4aと連携して登録後のアクセス制御を行う。アクセス制御サーバ4bとネットワークカメラ2が接続中に端末装置3から画像を要求すると、アクセス制御サーバ4bを介して画像が端末装置3に送信される。接続を所定時間継続してこの時間経過と共に切断されると、これを再度繰り返す。
さて、以下実施の形態2におけるネットワークカメラ2の動作について図14のフローチャートに基づいて説明する。先ず、ネットワークカメラ2をルータ5に接続して電源を入れて登録制御サーバ4aとのセッション開設を試み(step51)、セッション開設(接続)に成功するまでアクセスする(step52)。step52において、もし不成功なら再接続時間待って(step53)、step51に戻って再度セッション開設を試みる。セッションが開設されると、切断まで接続確認時間付Keep Aliveの状態となる。
step52において接続に成功した場合、アクセス制御サーバ4bの切替えがあるか否かが判断され(step54)、切替えがある場合は登録制御サーバ4aからサーバ切替え通知とURLを通知して回線を切断し、step63の再接続待ち時間が経過した後、再度アクセス制御サーバ4bとのセッション開設を試み、セッション開設(接続)に成功するまでアクセスする。
step54においてアクセス制御サーバ4bとの切替えがなされている場合、アクセス制御サーバ4bからサーバ要求があったか否かを確認する(step55)。サーバ要求が受信できなかった場合、それが、セッションが切断されたことによるものであるのか判定し(step56)、アクセス制御サーバ4bから切断された場合は、所定時間(再接続時間)経過したら再び自動的にアクセス制御サーバ4bとのセッションを回復するためにstep53へ進んで、この時間が経過するのを待ってstep51に戻り、再度セッション開設を試みる。
もし、step56において、セッションが切断されていない場合は、ネットワーク障害などでこれが切断状態になったと判断できるため、接続確認時間付Keep Aliveの接続確認時間が経過しているか否かを確認し(step57)、経過していなければstep55に戻ってサーバ要求を受信するのを待つ。また、step57において接続確認時間が経過している場合は、接続確認時間付Keep Aliveの接続確認パケット(Keep Alive要求)を送信し(step58)、アクセス制御サーバ4bから次時間を設定した接続確認時間付Keep Aliveのサーバ応答があったか否かを判定し(step59)、サーバ応答があった場合はstep55に戻って、新たなサーバ要求を受信するまで待機する。サーバ応答がなければstep53へ進み、再接続時間が経過するのを待ってstep51に戻って再度セッションの開設を試みる。
step55においてアクセス制御サーバ4bからサーバ要求があった場合、サーバ要求に含まれたコマンドを解析する(step60)。このコマンドが、現在のセッションのほかに新セッションを開設する要求であるのか否かを判定し(step61)、新セッション開設以外のコマンド(例えばJPEGデータの要求)であればこのコマンドを実行する(step62)。そして、その制御結果の通知をアクセス制御サーバ4bに対して行う(step63)。
これに対してstep61において、コマンドが新セッション開設のコマンドであった場合、このタスクが最大タスク数、例えばタスク数5個以内であるか否かを判定する(step64)。最大タスク数以内であれば、新タスクを生成し(Step65)、step62へ進んで新セッション開設のコマンドを実行し、アクセス制御サーバ4bに新セッション開設の通知を行う。step64の判定で最大タスク数を越えた場合は、ネットワークカメラ2が過負荷になるため、アクセス制御サーバ4へこの旨のエラー通知を送信して(step66)、再度step55に戻って新たなサーバ要求があるまで待機する。
次に、実施の形態2における登録制御サーバ4aの登録処理時の詳細な動作について図15のフローチャートに基づいて説明する。登録制御サーバ4aはネットワークカメラ2からカメラセッション開設要求があるまで待機し(step71)、なければ再接続の時間が経過するのを待ち(step72)、カメラセッション開設要求があれば、接続先のアクセス制御サーバ4bの切替えを通知する(step73)。
ネットワークカメラ2から完了通知(200 OK)を受信すると(step74)、step72で再接続の時間が経過するのを待ち、完了通知を受信しなかった場合はそのままネットワークカメラ2とのセッションを切断し(step75)、step72で再接続の時間が経過するのを待ってstep71に戻る。
以上、ネットワークカメラ2と登録制御サーバ4aとアクセス制御サーバ4bの構成、動作について説明したが、以下、端末装置3、ネットワークカメラ2、登録制御サーバ4aとアクセス制御サーバ4bの4者間で行われる登録時のシーケンスを説明する。図16は実施の形態1における登録制御サーバ4aとアクセス制御サーバ4b経由で通信を行うネットワークシステムの登録シーケンスを示す。図16において、端末装置3からQRコードなどを使って登録手続を行う。先ず、端末装置3からネットワークカメラ2の固有情報を送信し、ユーザ情報、設定情報の登録要求を送信する(sq61)。これに対して登録制御サーバ4aで登録処理を行い、ネットワークカメラ2にアクセスする時に利用する接続情報(URL)を登録応答として通知する(sq62)。
その後、ネットワークカメラ2の電源を入れると、ネットワークカメラ2のサーバ監視部11が登録制御サーバ4aに対して接続要求する(sq63)。これに対し実施の形態
2の分散サーバシステムにおいては、登録制御サーバ4aが200 OKを送信してセッションを開始する(sq64)。
しかし、登録制御サーバ4aは直ちにアクセス制御サーバ4bのURLと共にサーバ切替え通知を送信する(sq65)。ネットワークカメラ2はこれに応答を返し(sq66)、登録制御サーバ4aとセッションを切断する(sq67)。更に、アクセス制御サーバ4bのURLを使ってアクセス制御サーバ4bに接続要求する(sq68)。アクセス制御サーバ4bからは200 OKが送信され(sq69)、ネットワークカメラ2のセットアップ命令が通知される(sq70)。
ネットワークカメラ2が未登録の場合、ネットワークカメラ2はMACアドレスやシリアル番号等を含んで構成された固有情報と未登録である旨(工場出荷状態を示すステータス)をルータ5経由で通知する(sq71)。なお、既登録(登録済み)の場合はこの旨(登録状態を示すステータス)を通知する。
以上説明したように、実施の形態2の分散サーバシステムと登録制御サーバ4a,アクセス制御サーバ4bは、ルータに接続した第2端末装置の側からIPネットワークを経由して登録制御サーバ4aにアクセスし、登録制御サーバ4aが第2端末装置をセットアップさせた後に第2端末装置の側からアクセス制御サーバ4bとの間にセッションを張り、その後コネクションを保持させて、このセッションが張られた状態で、端末装置3からアクセス制御サーバ4bを介してアクセスさせるため、端末装置3をネットワークカメラ2に接続させることができる。
ルータにポートフォワーディングの設定をするという煩雑な作業をすることなく、端末装置3に関する情報のネットワークカメラ2への設定を煩雑な作業をすることなく、極めて容易に行うことができる。また、登録を行う登録制御サーバ4aと、端末装置3からネットワークカメラ2へのアクセス制御を行うアクセス制御サーバ4bとに機能分離しているため、負荷を分散することができ、快適なアクセス環境を実現できる。更に、一台以上のアクセス制御を行うアクセス制御サーバ4bを設けて負荷の分散を図っているため、負荷が一台のサーバ装置に集中することがなく、快適なアクセス環境を実現できる。そして、登録時の負荷状況を監視してこれを反映し、複数台のアクセス制御サーバ4b間であまり差が生じないように負荷を分散させるため、快適なアクセス環境を実現できる。