(57)【要約】【課題】ネットワークカメラにおけるセキュリティの向上を図りつつ、障害発生の原因も特定可能とするための技術を提供する。【解決手段】撮像装置であって、撮像手段と、ネットワークを介してクライアント及びサーバと通信する通信手段と、クライアントとの通信のための第１の処理と、サーバとの通信のための第２の処理とを実行する処理手段とを備え、第１の処理と第２の処理とを開始した後にサーバとの通信が確立されると第１の処理が停止され、通信が確立されない場合は第１の処理が停止されない。【選択図】  図１
2020092295.tif 000002
【特許請求の範囲】
【請求項１】
撮像装置であって、
画像を撮像する撮像手段と、
ネットワークを介してクライアント及びサーバと通信する通信手段と、
前記クライアントとの通信のための第１の処理と、前記サーバとの通信のための第２の処理とを実行する処理手段と
を備え、
前記クライアントとの通信、及び、前記サーバとの通信には、前記画像の送信が含まれ、
前記処理手段は、前記第１の処理と前記第２の処理とを開始した後に、前記通信手段により前記サーバと通信が確立されると前記第１の処理を停止し、前記サーバと通信が確立されない場合は前記第１の処理を停止しないことを特徴とする撮像装置。
【請求項２】
前記通信手段は、前記サーバから前記第１の処理を実行するか否かの設定値を受信し、
前記処理手段は、前記設定値が前記第１の処理を実行しない値を有する場合に前記第１の処理を停止し、前記設定値が前記第１の処理を実行する値を有する場合は、前記サーバと通信が確立された後も前記第１の処理を停止しないことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記処理手段は、前記通信手段により前記サーバと通信が確立された後であって、かつ、一定期間が経過した後に前記第１の処理を停止することを特徴とする請求項２に記載の撮像装置。
【請求項４】
前記設定値を保持する保持手段をさらに備え、
前記通信手段が前記サーバから新たに受信した設定値により、前記保持手段に保持されている設定値が、前記第１の処理を実行しない値から前記第１の処理を実行する値に変更される場合、前記処理手段は前記一定期間が経過するまで前記第１の処理を停止しないことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記処理手段は、前記第１の処理を停止した後に前記通信手段による前記サーバとの通信が切断された場合、前記第１の処理を開始することを特徴とする請求項１から４のいずれか１項に記載の撮像装置。
【請求項６】
前記処理手段は、前記通信手段による前記サーバとの通信が切断された後、一定期間が経過した後に前記第１の処理を開始することを特徴とする請求項５に記載の撮像装置。
【請求項７】
前記処理手段が前記第１の処理を実行することにより前記クライアントに対するＷｅｂサーバとして機能する請求項１から６のいずれか１項に記載の撮像装置。
【請求項８】
前記第１の処理には、前記クライアントから受信した探索要求に対する応答が含まれる請求項７に記載の撮像装置。
【請求項９】
前記サーバとの通信の状態を通知する通知手段をさらに備えることを特徴とする請求項１から８のいずれか１項に記載の撮像装置。
【請求項１０】
請求項１から９のいずれか１項に記載の撮像装置と、
前記撮像装置が撮像した画像を保存するサーバと、
前記サーバまたは前記撮像装置から前記撮像装置が撮像した画像を取得するクライアントと
を備えるシステム。
【請求項１１】
画像を撮像する撮像手段と、
ネットワークを介してクライアント及びサーバと通信する通信手段と、
前記クライアントとの通信のための第１の処理と、前記サーバとの通信のための第２の処理とを実行する処理手段と
を備える撮像装置の制御方法であって、
前記処理手段が、前記第１の処理を開始する工程と、
前記処理手段が、前記第２の処理を開始する工程と、
前記通信手段が前記サーバと通信の確立を試行する工程と、
前記通信手段により前記サーバと通信が確立されると前記処理手段が前記第１の処理を停止する工程と
を含み、
前記処理手段は、前記サーバと通信が確立されない場合には前記第１の処理を停止せず、
前記クライアントとの通信、及び、前記サーバとの通信には、前記画像の送信が含まれる、ことを特徴とする撮像装置の制御方法。
【請求項１２】
コンピュータを請求項１から９のいずれか１項に記載の撮像装置の処理手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、システム、撮像装置の制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
ネットワークカメラは、クライアントからの要求に応じて、該クライアントに対して画像を提供するＷｅｂサービス機能を提供してきた。近年においては、ネットワークカメラがクライアントとして動作し、クラウドサーバに接続して画像を送信することも可能となっている。
【０００３】
このように使い方が複数ある場合や接続が複数ある場合に、不要なサービスや機能の実行を停止する技術や、当該サービスや機能に対する要求を受け付けないようにする技術が知られている。特許文献１には、オプションの機能の追加の有無に応じてアクセス要求を受け付けるかどうかを決定する技術が開示されている。また特許文献２には、サーバに対してコネクションを複数張り、あるコンテンツの取得が完了するまで他方のコネクションを維持する技術が開示されている。
【０００４】
一方、ネットワークカメラをクラウドクライアントとして使用する場合を考えると、クラウドサーバ経由で画像や設定の送受信を行うため、ネットワークカメラ自身が不特定のクライアントからの要求に応じて、応答を返すＷｅｂサービスを提供する必要はない。また、Ｗｅｂサービスを止めることで、不特定多数からのネットワークカメラへのアクセスを防ぐことが可能となり、セキュリティの向上が見込めるため、Ｗｅｂサービスを停止したいといった要望がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１６５７５０号公報
【特許文献２】特開２０１５−１２５６５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の特許文献に開示された技術では、ネットワークカメラがクラウドクライアントとして動作している場合に、Ｗｅｂサービスを止めるとすると、クラウドとつながらないといった障害が発生した場合に、当該障害発生の原因が、クラウドサーバまでの経路に問題があるためなのか、ネットワークカメラ自体に問題があるためなのかの判断が困難となる。
【０００７】
そこで本発明は、ネットワークカメラにおけるセキュリティの向上を図りつつ、障害発生の原因も特定可能とするための技術を提供する。
【課題を解決するための手段】
【０００８】
上記課題を解決するための発明は撮像装置であって、
画像を撮像する撮像手段と、
ネットワークを介してクライアント及びサーバと通信する通信手段と、
前記クライアントとの通信のための第１の処理と、前記サーバとの通信のための第２の処理とを実行する処理手段と
を備え、
前記クライアントとの通信、及び、前記サーバとの通信には、前記画像の送信が含まれ、
前記処理手段は、前記第１の処理と前記第２の処理とを開始した後に、前記通信手段により前記サーバと通信が確立されると前記第１の処理を停止し、前記サーバと通信が確立されない場合は前記第１の処理を停止しない。
【発明の効果】
【０００９】
本発明によれば、ネットワークカメラにおけるセキュリティの向上を図りつつ、障害発生の原因も特定可能とするための技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に対応するシステム構成の一例を示す図。
【図２】実施形態に対応するネットワークカメラのハードウェア構成の一例を示す図、及び、ソフトウェア構成の一例を示す図。
【図３】実施形態に対応するネットワークカメラの起動時の処理の一例を示すフローチャート。
【図４】実施形態に対応するイベント処理の一例を示すフローチャート。
【図５】実施形態に対応する接続状態に応じてＷｅｂサービスを停止する処理の一例を示すフローチャート。
【図６】実施形態に対応するクラウド処理の一例を示すフローチャート。
【図７】実施形態に対応するＷｅｂサービスの制御の一例を示すフローチャート。
【図８】実施形態に対応する設定受信時の処理の一例を示すフローチャート。
【図９】実施形態に対応する接続状態の変化時の処理の一例を示すフローチャート。
【図１０】実施形態に対応するタイムアウト時の処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
［実施形態１］
以下に、発明の実施形態を、添付の図面に基づいて詳細に説明する。図１は実施形態に対応するシステム１０の構成の一例を示す図である。本実施形態に対応するシステム１０は、ネットワークカメラ１１０、ならびにクライアント１２０がローカルネットワーク１３０を介して接続され、クラウドサーバ１４０がワイドエリアネットワーク１５０を介して接続されて構成されている。
【００１２】
ネットワークカメラ１１０は撮像部を備え、撮像した画像を、ローカルネットワーク１３０を介してクライアント１２０へ配信する撮像装置（あるいは、撮影装置、画像生成装置、通信装置）である。また、ネットワークカメラ１１０は撮像した画像を、ローカルネットワーク１３０およびワイドエリアネットワーク１５０を介し、クラウドサーバ１４０へ送信することも行う。
【００１３】
クライアント１２０はネットワークカメラ１１０にアクセスし、画像取得やネットワークカメラ１１０の設定の変更ならびにフォーカス制御などのカメラ制御を行うことが可能なクライアント装置である。一方、クライアント１２０は、ローカルネットワーク１３０、ワイドエリアネットワーク１５０を介して、クラウドサーバ１４０が保持する画像の取得を行うことも可能である。加えてクラウドサーバ１４０を介してネットワークカメラ１１０の設定を行うことも可能である。クライアント１２０は、例えば、パーソナルコンピュータ（ＰＣ）、携帯電話、スマートフォン、タブレット端末などの任意の情報処理装置、通信装置、端末装置等として実現することができる。
【００１４】
クラウドサーバ１４０はネットワークカメラ１１０から接続要求を受け付け、画像の受信と保存を行うサーバ装置である。さらにクライアント１２０から画像取得要求に応じて、保存している画像の配信を行うと共に、クライアント１２０が保存した各種設定をネットワークカメラ１１０へ送信する。
【００１５】
説明の簡略化のためにネットワークカメラは１台としているが、２台以上であっても構わない。加えて、クライアント１２０以外にもネットワークカメラ１１０にアクセスして画像の受信や蓄積を行う他のクライアントがあっても構わない。ローカルネットワーク１３０、ワイドエリアネットワーク１５０はＥｔｈｅｒｎｅｔ（登録商標）等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される。本発明においては各ネットワークカメラ・クライアント間の通信が支障なく行えるものであればその通信規格、規模、構成を問わない。故にインターネットからＬＡＮ  （Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）にまで適用可能である。
【００１６】
次に、図２（Ａ）を参照してネットワークカメラ１１０のハードウェア構成の一例を説明する。本実施形態のネットワークカメラ１１０のハードウェア構成として、ＣＰＵ２０１、１次記憶装置２０２、２次記憶装置２０３、画像キャプチャＩｎｔｅｒｆａｃｅ（Ｉ／Ｆ）２０５、ネットワークＩ／Ｆ２０７カメラ制御Ｉ／Ｆ２０８が内部バス２０４を介して相互に接続されている。ここで１次記憶装置２０２はＲＡＭに代表される読み書き可能な高速の記憶装置で、ＯＳや各種プログラム及び各種データがロードされ、またＯＳや各種プログラムの作業領域としても使用される。
【００１７】
２次記憶装置２０３はフラッシュメモリ、ＨＤＤ、ＳＤカード等に代表される不揮発性を持った記憶装置で、ＯＳや各種プログラム及び各種データの永続的な記憶領域として使用される他に、短期的な各種データの記憶領域としても使用される。ネットワークカメラ１１０の１次記憶装置２０２及び２次記憶装置２０３に記憶されている各種プログラム等の詳細については後述する。
【００１８】
画像キャプチャＩ／Ｆ２０５にはＣＣＤやＣＭＯＳなどの撮像センサとレンズからなるカメラユニット２０６が接続され、カメラユニット２０６から取得した画像データを所定のフォーマットに変換・圧縮して１次記憶装置２０２に転送する。カメラ制御Ｉ／Ｆ２０８にもカメラユニット２０６が接続され、各種カメラ制御がカメラユニット２０６に転送され、その結果がカメラ制御Ｉ／Ｆ２０８に返る。ネットワークＩ／Ｆ２０７は前述のネットワーク１３０と接続するためのＩ／Ｆであり、Ｅｔｈｅｒｎｅｔ等の通信媒体を介してクライアント１２０等との通信を担う。
【００１９】
次に、図２（Ｂ）を参照してネットワークカメラ１１０のソフトウェアに基づく機能構成の一例を説明する。１次記憶装置２０２上には、ＣＰＵ２０１がオペレーティング・システム（ＯＳ）２１０、サーバ処理部２１１、カメラ制御部２１２、画像生成部２１３、探索応答部２１４、及び、クラウド処理部２１５のいずれかとして機能することが可能となるプログラムがロードされる。ロードされた各プログラムがＣＰＵ２０１により実行されることで、ＣＰＵ２０１は各処理ブロックとして機能することができる。
【００２０】
以下、各処理ブロックが果たす機能について説明する。ＯＳ２１０はネットワークカメラ１００の全体を制御する。ＯＳ２１０の代表的な機能としてファイルシステムなどの２次記憶装置２０３の管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、ネットワークＩ／Ｆ２０７の管理などが挙げられる。サーバ処理部２１１は、クライアント１２０との通信のための処理を行う処理部であって、クライアント１２０から受信した要求に応じて、画像生成部２１３が生成した画像データの配信や、要求に含まれる制御情報、情報取得などを処理する。サーバ処理部２１１はクライアント１２０に対し、いわゆるＷｅｂサーバとして機能することが可能であり、本実施形態では、サーバ処理部２１１が実行する処理はＷｅｂサービスの一部を含むものとする。サーバ処理部２１１は、要求に対して画像生成部２１３、カメラ制御部２１２に中継を行い、中継先からの結果をもとに、対応する応答をクライアント１２０に送信するといったＷｅｂサービスを提供する。サーバ処理部２１１は、ネットワークＩ／Ｆ２０７と通信媒体１３０を介して外部装置と通信を行う。
【００２１】
カメラ制御部２１２はサーバ処理部２１１から受け取った制御情報をもとに、カメラ機能の調停を行うものである。代表的なものにカメラユニット２０６の制御および、制御結果の通知がある。制御情報にはレンズの位置を決定するフォーカス制御などが含まれる。画像生成部２１３はカメラユニット２０６で生成された画像データを画像キャプチャＩ／Ｆ２０５を経由して生成する。そして生成された画像データのエンコードを行う。エンコード方式はＪＰＥＧであってもよいし、Ｈ．２６４／ＡＶＣ，  Ｈ．２６５／ＨＥＶＣなど画像圧縮の符号化方式であれば適応可能である。なお本実施の形態のエンコード方式に加え、他の画像圧縮方式であっても構わない。
【００２２】
探索応答部２１４は、例えばクライアント１２０からのネットワークにおけるネットワークカメラ１１０のサービスの探索要求に対する応答を行う。本実施形態では探索要求に対する応答もＷｅｂサービスに含めることとする。探索要求に対する応答はマルチキャストＤＮＳに代表されるZeroconfであってもよいし、UPnP（Universal Plug and Play）やWS-Discovery(Web Services Dynamic Discovery）などであってもよく、他にもデバイスの探索が実現できるものであればその実施形態は問わない。本実施形態の説明では、探索応答部２１４をサーバ処理部２１１とは独立させて設けたが、探索応答部２１４の機能をサーバ処理部２１１に含めるようにしてもよい。
【００２３】
クラウド処理部２１５は、クラウドサーバ１４０との通信のための処理を行う処理部であって、クラウドサーバ１４０との間で情報の送受信を行うと共に、クラウドサーバ１４０から受信した情報を処理する。クラウド処理部２１５は、クラウドサーバ１４０へ接続要求を行い、画像生成部２１３が生成した画像データをクラウドサーバ１４０からの取得要求に応じて送信する。またクラウド処理部２１５はクラウドサーバ１４０から設定や制御情報を受信し、ネットワークカメラ１１０の各種設定・制御を行う。各種設定にはＷｅｂサービスの停止・開始が含まれる。Ｗｅｂサービスの停止設定を受信した場合は、サーバ処理部２１１および探索応答部２１４の動作が停止され、Ｗｅｂサービスが停止する。また、Ｗｅｂサービスの開始設定を受信した場合は、サーバ処理部２１１および探索応答部２１４が起動されてＷｅｂサービスが開始する。Ｗｅｂサービス設定のほかに、クラウドサーバ１４０との接続状態を考慮し、Ｗｅｂサービスの停止・開始を制御してもよい。クラウド処理部２１５は要求に対して、画像生成部２１３、カメラ制御部２１２に中継を行い、中継先からの結果をもとに、対応する応答をクラウドサーバ１４０へ送信することも行う。
【００２４】
次に、本実施形態における処理の流れを説明する。図３はネットワークカメラ１１０の起動時に、クラウドサーバ１４０との接続状態に応じてＷｅｂサービスを制御する処理の一例を示すフローチャートである。図３の処理は、例えばネットワークカメラ１１０に電源投入時に開始することができる。
【００２５】
まず、Ｓ３０１において、ＣＰＵ２０１は、サーバ処理部２１１、探索応答部２１４としての動作を開始することにより、Ｗｅｂサービスを起動する。次いでＳ３０２において、ＣＰＵ２０１は、クラウドを使用するかどうかを、１次記憶装置２０２に記憶されている設定値に基づいて判定する。当該設定値は、予めクライアント１２０、または、クラウドサーバ１４０により、例えばサーバ処理部２１１を介して設定され、1次記憶装置２０２及び２次記憶装置２０３に記憶される。クライアント１２０では、ユーザがネットワークカメラ１１０についてクラウド（クラウドサーバ１４０）を使用する設定、または、クラウドを使用しない設定のいずれかを選択して、当該設定値をネットワークカメラ１１０に直接送信するか、或いは、クラウドサーバ１４０経由で提供することができる。
【００２６】
Ｓ３０２においてクラウドを使用する設定と判定されると処理はＳ３０３へ進む。一方、クラウドを使用しない設定と判定されると本処理を終了する。Ｓ３０３では、ＣＰＵ２０１は、所定のプログラムを実行してクラウド処理部２１５としての動作を開始することにより、クラウド処理部２１５を起動する。続くS３０４において、ＣＰＵ２０１は、クラウド処理部２１５としてクラウドサーバ１４０への接続を試行する。より詳細には、ＴＣＰの3way Handshakeを行い、ＴＣＰコネクションを張り、その上でＴＬＳ（Transport Layer Security）接続を行い、ＨＴＴＰリクエストを送るといったことを行う。
【００２７】
その後、Ｓ３０５においてＣＰＵ２０１はクラウド処理部２１５として、クラウドサーバ１４０と接続が成功したかどうかを判定する。接続が成功したと判定されると処理はＳ３０６に進む。S３０６においてＣＰＵ２０１はクラウド処理部２１５としてイベント処理を実行する。イベント処理では、有効な接続かどうか応じてＷｅｂサービスの開始・停止の制御が行われる。一方、Ｓ３０５において接続が失敗したと判定されると処理はＳ３０４に戻り、再度接続を試行する。Ｓ３０６のイベント処理の詳細は、図４を参照して後述する。ＣＰＵ２０１はイベント処理を実行すると、本処理を終了する。
【００２８】
次に、図４を参照して、図３のS３０６におけるイベント処理の詳細を説明する。当該処理はＳ３０６のイベント処理のタイミングの他、クラウドサーバ１４０からのイベントがあった場合に処理を開始することもできる。
【００２９】
まず、Ｓ４０１において、ＣＰＵ２０１はクラウド処理部２１５として、クラウドサーバ１４０から設定情報を受信したかどうかを判定する。設定情報を受信したと判定された場合処理はＳ４０２へ進む。一方、設定情報を受信しなかったと判定された場合、本処理を終了する。Ｓ４０２では、ＣＰＵ２０１はクラウド処理部２１５として、受信した設定情報にＷｅｂサービス設定が含まれるかどうかを判定する。Ｗｅｂサービス設定が含まれると判定された場合処理はＳ４０３に進む。一方、Ｗｅｂサービス設定が含まれないと判定された場合は本処理を終了する。
【００３０】
Ｓ４０３において、ＣＰＵ２０１はクラウド処理部２１５として、受信したＷｅｂサービス設定の設定値がｆａｌｓｅ（使用しない設定）かどうかを判定する。Ｓ４０３において、Ｗｅｂサービス設定の設定値がｆａｌｓｅと判定された場合、処理はＳ４０４へ進み、ＣＰＵ２０１はサーバ処理部２１１、探索応答部２１４としての動作を停止することによりＷｅｂサービスを停止する。一方、Ｓ４０３においてＷｅｂサービス設定の値がｆａｌｓｅでなくｔｒｕｅと判定された場合、処理はＳ４０５に進み、Ｗｅｂサービスを開始する。これはネットワークカメラ１１０の起動後に、クラウドサーバ１４０から設定情報を受信した場合に動作する処理である。Ｓ４０４、Ｓ４０５の後は本処理を終了する。
【００３１】
本実施形態では、図４を参照して説明の通り、Ｗｅｂサービス設定の値がｆａｌｓｅであった場合に、クラウドサーバ１４０との接続が有効になったと判断した。接続が有効と判定できる場合として、その他にクラウドサーバ１４０への接続時の認証成功応答をクラウド処理部２１５が受信した場合、クラウドサーバ１４０からのカメラ制御要求をクラウド処理部２１５が受信した場合、クラウドサーバ１４０からの画像の送信要求をクラウド処理部２１５が受信した場合などがある。
【００３２】
また、ネットワークカメラ１１０がＬＥＤを有する場合、クラウド処理部２１５とクラウドサーバ１４０との通信の状態を通知（あるいは、表示、報知等ともいう）するためにこれを利用することができる。例えば、クラウドサーバ１４０との接続が有効になったかどうかをユーザへ通知を行うために、ＬＥＤを用いてもかまわない。ＬＥＤはクラウドサーバ１４０と有効な接続になった場合だけでなく、別の目的で使用している場合があり、さらにＬＥＤが単色である場合がある。ＬＥＤのパターンとしては、消灯、点灯、点滅の３パターンであり、ユーザ設定により、ネットワークカメラ１１０の動作中に点灯するか点滅するかが設定可能である場合が一般的である。そのためクラウドサーバ１４０との有効な接続になるまでの状態を一意に通知しようとしても３パターンが全て使用されているため表現することが難しい。
【００３３】
別の目的で使用されている例としては、ネットワークカメラ１１０の設定値を消去する初期設定に戻す操作や、ネットワークカメラ１１０の図２（Ｂ）に示すソフトウェアを更新するファームアップ操作時に２次記憶装置２０３の書き換えを行う場合がある。２次記憶装置２０３の更新中に電源を抜いた状態にすると、図２（Ｂ）のソフトウェアが故障し復旧しないといった問題が発生する。そのため、クラウドサーバと有効な接続になるまでと、２次記憶装置２０３の更新は別のパターンとして表現する。そのために点滅のパターンを変えるといったことにより、これらを区別可能である。より詳細には、点滅の点灯と点灯の間隔を変えるなどがあげられる。
【００３４】
このように本実施形態においては、ネットワークカメラ１１０の起動時にＷｅｂサービスを一旦起動しておき、その後にクラウドサーバ１４０との接続を行ってＷｅｂサービスを継続するかどうかをクラウドサーバ１４０に問い合わせる。そして、クラウドサーバ１４０から提供されたＷｅｂサービス設定の値に応じて、Ｗｅｂサービスの開始、または、停止を制御することにより、クラウドサーバ１４０とネットワークカメラ１１０との接続を確保した上で、Ｗｅｂサービスを継続するかどうかを決定することができる。また、クラウドサーバ１４０と接続できない場合は、Ｗｅｂサービスの起動状態を維持する。よって、ネットワークカメラ１１０がクラウドクライアントとして動作している場合にクラウドとの接続障害が発生したとしても、当該障害発生の原因を特定することが可能となる。また、障害発生の原因を特定可能としつつ、Ｗｅｂサービスを停止することで不特定多数からのネットワークカメラ１１０へのアクセスを防止してセキュリティを維持することもできる。また、クラウドサーバ１４０と接続できない場合でも、Ｗｅｂサービスは起動した状態であるため、障害発生時の原因解析を速やかに行うことが可能となる。
【００３５】
［実施形態２］
以下、発明の第２の実施形態について説明する。上記の実施形態１では、ネットワークカメラ１１０とクラウドサーバ１４０との接続が確立されるとＷｅｂサービス設定に従ってＷｅｂサービスの提供の開始、停止を制御していた。これに対して本実施形態においては、ネットワークカメラ１１０とクラウドサーバ１４０との接続状態を監視しておき、接続状態に変化があった場合、例えば接続が確立された場合であっても一定期間はＷｅｂサービスの提供状態を変化させることなく維持しておく。
【００３６】
本実施形態に対応するシステムの構成及び、ネットワークカメラのハードウェア構成、ソフトウェア構成は図１及び図２（Ａ）及び図２（Ｂ）に示したものと同様であるので説明は省略する。
【００３７】
以下、図５を参照して、本実施形態に対応するネットワークカメラ１１０における処理を説明する。図５は、ネットワークカメラ１１０において、接続状態に応じてＷｅｂサービスを停止する処理の一例を示すフローチャートである。本処理は、例えば、カメラの電源投入時に開始することができる。
【００３８】
処理が開始されると、まずＳ５０１においてＣＰＵ２０１は、所定のプログラムを実行してサーバ処理部２１１及び探索応答部２１４としての動作を開始することにより、Ｗｅｂサービスを起動する。次いでＳ５０２において、ＣＰＵ２０１は、クラウドを使用するかどうかを、1次記憶装置２０２に記憶されている設定値に基づいて判定する。当該判定は、図３のＳ３０２における処理と同様である。クラウドを使用する設定となっていると判定されると、処理はＳ５０３に進み、クラウドを使用しない設定となっていると判定されると本処理を終了する。Ｓ５０３では、ＣＰＵ２０１は、所定のプログラムを実行してクラウド処理部２１５としての動作を開始し、クラウド処理を実行する。その後、本処理を終了する。
【００３９】
次に、図６を参照して図５のＳ５０３におけるクラウド処理の詳細について説明する。図６は、接続状態の確認を行う場合にクラウド処理部２１５が実行する処理のフローチャートである。図５で説明したように、クラウド処理部２１５は、クラウドを使用する設定の場合に起動され、処理を開始する。
【００４０】
まず、処理の開始後、クラウド処理部２１５は、Ｓ６０１からＳ６０３において、Ｓ６１０のＷｅｂサービスの制御に使用するための状態（ステータス）を表す値の初期設定を行う。Ｗｅｂサービスの制御に使用する状態には、「Ｗｅｂサービス設定」、「接続ステータス」、「待ち状態」の３つがある。Ｗｅｂサービス設定の設定値には「ｔｒｕｅ」と「ｆａｌｓｅ」とがあり、それぞれＷｅｂサービスを使用する、使用しないを意味する。「接続ステータス」にはクラウドサーバ１４０との接続状態を示す値が設定されており、接続している状態を示す値が「Ｃｏｎｎｅｃｔ」であり、切断されている状態を示す値が「Ｄｉｓｃｏｎｎｅｃｔ」である。また、「待ち状態」には「Ｉｄｌｅ」と「Ｗａｉｔ」との２通りの設定値がある。初期状態がＩｄｌｅであり、クラウドサーバ１４０との実際の接続状態が変化している場合（変化中）にＷａｉｔに遷移し、そうでない場合はＩｄｌｅである。
【００４１】
本実施形態において接続状態の変化中とは、例えば、接続状態が切断から接続、あるいは、接続から切断に変化した後に一定時間が経過するまでの状態をいう。あるいは、接続状態が切断から接続に変化し、一定時間が経過するまでに再度切断に戻るまでの状態、接続状態が接続から切断に変化し、一定時間が経過するまでに再度接続に戻るまでの状態をいう。本実施形態において、一定時間はタイムアウト時間として設定され、接続状態が変化するとタイムアウト時間の計測が開始される。
【００４２】
Ｓ６０１において、クラウド処理部２１５はＷｅｂサービス設定の設定値に初期値としてｔｒｕｅを代入する。続くＳ６０２において、クラウド処理部２１５は、待ち状態の設定値に初期値としてＩｄｌｅを代入する。続くＳ６０３において、クラウド処理部２１５は、接続ステータスの設定値に初期値としてＤｉｓｃｏｎｎｅｔを代入する。続くＳ６０４においてクラウド処理部２１５はクラウドサーバ１４０への接続をトライする。その後、Ｓ６０５においてクラウド処理部２１５は接続イベント監視を行う。本実施形態における接続イベント監視とは、ネットワークカメラ１１０とクラウドサーバ１４０との接続に関連するイベントを監視する動作である。監視されるイベントには、接続トライが成功した成功イベント、接続トライが失敗した失敗イベント、接続状態が切断された切断イベント、および文字列の受信イベントが含まれる。
【００４３】
Ｓ６０６において、クラウド処理部２１５は、監視の結果、接続トライに失敗したかどうかを判定する。接続トライの失敗であると判定されると、処理はＳ６０７へ進み、クラウド処理部２１５は再度クラウドサーバ１４０への接続を試みる。その後、Ｓ６０５において接続イベントの監視を再度行う。Ｓ６０６においてイベントが接続トライの失敗でないと判定されると処理はＳ６０８に進む。Ｓ６０８においてクラウド処理部２１５はイベントが接続トライの成功かどうかを判定する。イベントが接続トライの成功であると判定されると処理はＳ６１０に進み、Ｗｅｂサービスの制御を行う。Ｗｅｂサービスの制御に関しては、Ｓ６０１、Ｓ６０２、Ｓ６０３において初期化の対象となった３つの状態値を用いながら、Ｗｅｂサービスの起動と停止の制御を行う。Ｓ６１０における処理の詳細は図７を参照して後述する。
【００４４】
Ｓ６０８においてイベントが接続トライの成功でないと判定されると、処理はＳ６０９に進み、クラウド処理部２１５はイベントが、クラウドサーバ１４０との接続切断かどうかを判定する。イベントが切断であると判定されると処理はＳ６１１に進む。Ｓ６１１においてクラウド処理部２１５はクラウドサーバ１４０への接続を再度試みる。接続トライの後はＳ６１０において、Ｗｅｂサービスの制御、Ｓ６０５にて接続イベントの監視処理を行う。その後はＳ６０６にてイベントが接続トライの失敗か、Ｓ６０８においてイベントが接続トライの成功か判断され、それぞれの分岐処理が行われる。
【００４５】
Ｓ６０９において、イベントがクラウドサーバ１４０との接続が切断でないと判定されると、処理はＳ６１２に進む。この場合は、クラウドサーバ１４０から文字列を受信した場合に相当し、Ｓ６１２において、クラウド処理部２１５はイベントが文字列の受信かどうかを判定する。Ｓ６１２において、文字列の受信であると判定されると処理はＳ６１０に分岐しＷｅｂサービスの制御を行う。Ｓ６１０のＷｅｂサービスの制御後はＳ６０５の接続イベントの監視処理を行う。Ｓ６１０における処理の詳細は図７を参照して後述する。Ｓ６１２においてイベントが文字列の受信でないと判定されると、処理はＳ６１３へ分岐する。
【００４６】
Ｓ６１３においてクラウド処理部２１５は、停止シグナルを受信したかどうかの判定を行う。Ｓ６１３において停止シグナルを受信したと判定されると処理はＳ６１４へ分岐し、終了処理を開始する。停止シグナルを受信しないと判定されると処理はＳ６０５へ分岐し、接続イベントの監視処理を行う。Ｓ６１４ではクラウド処理部２１５は接続トライ中か、または接続中かを判定する。Ｓ６１４において、接続トライ中もしくは接続中であると判定されると処理はＳ６１５へ分岐し、クラウドサーバ１４０との接続の切断処理を行う。その後Ｓ６１６において本処理を終了する。一方、Ｓ６１４において接続トライ中でも接続中でもなく、切断中であると判定されると、本処理を終了する。処理を終了すると、呼び出し元である図５のＳ５０３へ戻る。
【００４７】
次に、図７を参照して、図６のＳ６１０におけるＷｅｂサービスの制御の処理の詳細を説明する。本処理は、クラウドサーバ１４０から設定を受信した場合や、クラウドサーバ１４０との接続状態に変化があった場合、タイムアウト時間に達した場合などに図６のＳ６１０において呼び出される。
【００４８】
まず、クラウドサーバ１４０との接続が確立されている場合に、クラウドサーバ１４０から設定情報を受信することができる。そこでＳ７０１において、クラウド処理部２１５はクラウドサーバ１４０から設定情報を受信したかどうかを判定する。設定情報を受信したと判定されると処理はＳ７０２に進む。Ｓ７０２において、クラウド処理部２１５は設定受信時の処理を行い本処理を終了する。Ｓ７０２における設定受信時の処理の詳細は図８を参照して後述する。
【００４９】
Ｓ７０１において設定情報を受信しないと判定されると処理はＳ７０３に進み、クラウド処理部２１５は接続状態に変化があったかどうかを判定する。Ｓ６１０の処理は、Ｓ６０８で接続トライ成功と判定された後や、Ｓ６０９でクラウドサーバとの接続が切断されたと判定された後に実行されるので、そのような場合に対応して接続状態に変更があったかどうかを判定する。接続状態に変化があったと判定されると処理はＳ７０４へ分岐する。接続状態に変化がないと判定されると処理はＳ７０５に分岐する。Ｓ７０４では、クラウド処理部２１５は接続状態変化時の処理を行い、本処理を終了する。Ｓ７０４における処理の詳細については図９を参照して後述する。
【００５０】
Ｓ７０５においてクラウド処理部２１５はタイムアウト時間に達したかどうかを判定する。図９を参照して説明するように、待ち状態がＷａｉｔに設定される場合にはタイムアウトが登録され、接続状態になってからの経過時間が計測される。Ｓ７０５では、この経過時間がタイムアウト時間に到達したかどうかを判定する。Ｓ７０５においてタイムアウト時間に達したと判定されると処理はＳ７０６に分岐する。タイムアウト時間に達していないと判定されると本処理を終了する。Ｓ７０６においてクラウド処理部２１５はタイムアウト時の処理を行う。Ｓ７０６における処理の詳細については図１０を参照して後述する。
【００５１】
次に図８を参照して、図７のＳ７０２における処理の詳細を説明する。図８は、クラウドサーバ１４０から設定情報を受信した場合にクラウド処理部２１５が実行する処理の一例を示すフローチャートである。当該処理は図７のＳ７０２においてクラウドサーバから設定を受信した場合に実行される。
【００５２】
まず、Ｓ８０１においてクラウド処理部２１５は、受信したＷｅｂサービス設定に変化があるかどうかを判定する。ここで、変化がある場合とは、Ｗｅｂサービス設定の設定値がｆａｌｓｅからｔｒｕｅに変更された場合、もしくは、ｆａｌｓｅからｔｒｕｅに変更された場合を意味する。変化があると判定されると処理はＳ８０２に分岐する。変化がないと判定されると本処理を終了する。
【００５３】
クラウド処理部２１５は、以前に受信したＷｅｂサービス設定の設定値を保持しておき、新たに受信した設定値が保持されている設定値と異なる場合には、Ｗｅｂサービス設定に変化があると判定する。クラウド処理部２１５として機能するＣＰＵ２０１は、Ｗｅｂサービス設定の設定値をクラウドサーバ１４０から受信すると１次記憶装置２０２に保持しておくことができる。ＣＰＵ２０１はＷｅｂサービス設定を新たに受信すると、１次記憶装置２０２に保持している以前の設定値を、新たに受信した設定値により更新する。
【００５４】
Ｓ８０２においてクラウド処理部２１５は、受信したＷｅｂサービス設定の設定値がｆａｌｓｅであるかどうかを判定する。ｆａｌｓｅと判定されると処理はＳ８０３へ分岐し、Ｗｅｂサービス設定の設定値にｆａｌｓｅを代入し、更にＳ８０４において後に実行するｃａｌｌｂａｃｋとしてａｃｔｉｏｎにＷｅｂサービス停止を代入する。
【００５５】
Ｓ８０２においてｔｒｕｅと判定されると処理はＳ８０５へ分岐し、クラウド処理部２１５はＷｅｂサービス設定にｔｒｕｅを代入し、Ｓ８０６において、後に実行するｃａｌｌｂａｃｋとしてａｃｔｉｏｎにＷｅｂサービス開始を代入する。Ｓ８０４、Ｓ８０６の後、処理はＳ８０７に進み、Ｓ８０７においてクラウド処理部２１５は待ち状態がＩｄｌｅかどうかを判定する。Ｉｄｌｅと判定されると処理はＳ８０８へ分岐する。例えば、図６の起動処理で待ち状態にＩｄｌｅが代入されたままの場合、処理はＳ８０８へ分岐する。Ｓ８０７においてＷａｉｔと判定されると本処理を終了する。待ち状態がＷａｉｔの場合には、接続または切断から一定時間が経過していない状態であるので、一定時間が経過して待ち状態がＩｄｌｅになるまで処理を保留することとしている。このように本実施形態では、Ｗｅｂサービス設定に変化があった場合であっても、待ち状態がＷａｉｔの間はＷｅｂサービスに関する動作を変更しない。
【００５６】
続くＳ８０８では接続ステータスがＣｏｎｎｅｃｔかどうかを判定する。Ｃｏｎｎｅｃｔと判定されると処理はＳ８０９へ分岐し、Ｄｉｓｃｏｎｎｅｃｔと判定されると処理は終了する。続くＳ８０９ではＳ８０４もしくはＳ８０６で代入したａｃｔｉｏｎを実行する。Ｓ８０４においてＷｅｂサービス停止を代入した場合、ＣＰＵ２０１は、サーバ処理部２１１、探索応答部２１４としての動作を停止する。Ｓ８０６においてＷｅｂサービス開始を代入した場合は、ＣＰＵ２０１は、サーバ処理部２１１、探索応答部２１４としての動作を開始する。接続状態がＤｉｓｃｏｎｎｅｃｔの場合は、クラウドサーバ１４０と切断された状態とみなされ、待ち状態がＷａｉｔの場合は接続から一定時間が経過していない状態とみなされるため、この場合にはＳ８０４もしくはＳ８０６で代入したａｃｔｉｏｎを実行する必要がないとして、ａｃｔｉｏｎを行わずに処理を終了することとしている。
【００５７】
次に、図９を参照して、図７のＳ７０４における接続状態変化時の処理について説明する。図９は、クラウドサーバ１４０との接続状態に変化があった場合の処理のフローチャートである。接続状態の変化は、接続状態に変化があったときにすぐに切断、接続と判断せずに、タイムアウトを用いることでチャタリング防止を実現する。Ｗｅｂサービスの開始・停止はプロセスの起動・終了であるためコストが高い。接続状態はチャタリングすることがあるため、コストが高いプロセスの起動と終了を抑制するためにタイムアウトを用いている。本処理は、図７のＳ７０４においてクラウドサーバ１４０との接続状態に変化があった場合に実行される。
【００５８】
まず、Ｓ９０１ではクラウド処理部２１５は、待ち状態がＩｄｌｅかどうかを判定する。待ち状態がＩｄｌｅと判定されると処理はＳ９０２へ分岐し、Ｗａｉｔと判定されると処理はＳ９０４へ分岐する。ここでは、接続状態が変化した場合に待ち状態の値に応じて処理を分岐する。
【００５９】
続くＳ９０２においてクラウド処理部２１５はタイムアウトを登録して経過時間の計測を開始し、続くＳ９０３において待ち状態をＷａｉｔに遷移させる。よって、接続状態が接続から切断に変わった場合と、切断から接続に変わった場合とのいずれの場合においても、タイムアウトが設定される。
【００６０】
一方、Ｓ９０４においてクラウド処理部２１５はタイムアウトを削除し、続くＳ９０５において待ち状態をＩｄｌｅへ遷移させる。これにより、待ち状態をＷａｉｔとした後に経過時間がタイムアウト時間に到達する前に接続状態が変化した場合には待ち状態が再度Ｉｄｌｅに戻される。Ｓ９０４，Ｓ９０６の処理が終了すると、本処理を終了する。なお、図９のフローチャートにおいては、接続状態が変化した場合であっても、接続ステータスの設定値自体は変更せず、待ち状態の設定値のみを変更する。これは、接続ステータスの変更は、タイムアウト時間が経過した後、換言すると、同一の接続状態が一定時間経過した後に行うようにするためである。
【００６１】
次に、図１０を参照して、図７のＳ７０６における処理の詳細を説明する。図１０は、クラウド処理部２１５が図９において登録したタイムアウトの時間に達した場合に実行される処理のフローチャートである。本処理は図７のＳ７０６においてタイムアウトに達したと判定されると実行される。タイムアウトになるのは待ち状態がＷａｉｔの場合であるため、まず、Ｓ１００１においてクラウド処理部２１５は登録したタイムアウトを削除する。続くＳ１００２においてクラウド処理部２１５は待ち状態をＩｄｌｅへ遷移させる。そしてＳ１００３において接続ステータスがＤｉｓｃｏｎｎｅｃｔかどうかを判定する。Ｓ１００３において接続ステータスがＤｉｓｃｏｎｎｅｃｔと判定されると処理はＳ１００４へ分岐する。図９において、接続状態に変化があったときは、接続ステータスは遷移させずに維持し、その代わりに待ち状態を遷移させた。そのため、Ｓ１００４では、クラウド処理部２１５は一定時間が経過するのを待ち、接続ステータスをＣｏｎｎｅｃｔへ遷移させる。接続ステータスの値がＤｉｓｃｏｎｎｅｃｔで待ち状態がＷａｉｔであったということは、切断から接続へ接続状態が変化したのちにタイムアウト時間が経過したことになるためである。その後に、Ｓ１００５においてクラウド処理部２１５はｃａｌｌｂａｃｋとしてＷｅｂサービス停止をａｃｔｉｏｎに代入する。
【００６２】
Ｓ１００３において接続状態がＣｏｎｎｅｃｔと判定されると処理はＳ１００６へ分岐する。図９の接続状態に変化があったときは、接続状態は遷移させずに維持し、その代わりに待ち状態を遷移させた。そのため、Ｓ１００６においてもクラウド処理部２１５は、一定時間が経過するのを待ち接続ステータスをＤｉｓｃｏｎｎｅｃｔへ遷移させる。接続ステータスの値がＣｏｎｎｅｃｔで待ち状態がＷａｉｔであったということは、接続から切断へ接続状態が変化したのちにタイムアウト時間が経過したことになるためである。そしてＳ１００７においてクラウド処理部２１５は、ａｃｔｉｏｎの設定値にＷｅｂサービス開始を代入する。
【００６３】
Ｓ１００５及びＳ１００７の処理の後は、クラウド処理部２１５はＳ１００８においてＷｅｂサービス設定の設定値がｆａｌｓｅかどうかを判定する。Ｗｅｂサービス設定の設定値には起動時にｔｒｕｅが代入されＳ５０１、クラウドサーバ１４０からの設定受信時（Ｓ８０３，Ｓ８０５）に更新される。Ｓ１００８においてＷｅｂサービス設定がｆａｌｓｅと判定されると処理はＳ１００９に移行し、クラウド処理部２１５は、Ｓ１００５，Ｓ１００７にて代入されたａｃｔｉｏｎを実行する。ａｃｔｉｏｎの設定値にＷｅｂサービス停止が代入されていた場合、ＣＰＵ２０１は、サーバ処理部２１１と探索応答部２１４としての動作を停止する。ａｃｔｉｏｎの設定値にＷｅｂサービス開始が代入された場合は、ＣＰＵ２０１はサーバ処理部２１１と探索応答部２１４としての動作を開始して、本処理を終了する。Ｓ１００８においてＷｅｂサービス設定の設定値がｔｒｕｅであると判定されると、クラウド処理部２１５はａｃｔｉｏｎを実行せずに処理を終了する。これは接続状態の変化よりもＷｅｂサービス設定を優先度が高いと判断し、接続切断状態の変化を無視するためである。
【００６４】
このように、本実施形態では、ネットワークカメラ１１０とクラウドサーバ１４０との接続状態を監視しておき、接続状態に変化があった場合であっても一定期間はＷｅｂサービスの提供状態を変化させることなく維持しておくことができる。これにより、クラウドサーバ１４０との接続状態とＷｅｂサービス設定の両方を考慮し、有効な接続と判断した場合に、Ｗｅｂサービスの停止を行うため、高いセキュリティを維持できる。さらにクラウドサーバ１４０と接続できない場合は、Ｗｅｂサービスは起動した状態であるため、障害発生時の原因解析を速やかに行うことが可能となる。以上、実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形、および変更が可能である。
【００６５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６６】
１０：システム、１１０：ネットワークカメラ、１２０：クライアント、１３０：ローカルネットワーク、１４０：クラウドサーバ、１５０：ワイドエリアネットワーク
【図１】
2020092295.tif 000003
【図２】
2020092295.tif 000004
【図３】
2020092295.tif 000005
【図４】
2020092295.tif 000006
【図５】
2020092295.tif 000007
【図６】
2020092295.tif 000008
【図７】
2020092295.tif 000009
【図８】
2020092295.tif 000010
【図９】
2020092295.tif 000011
【図１０】
2020092295.tif 000012