(57)【要約】複数のプロセッサ制御インターネットビデオカメラ、拡張可能なクラウドコンピューティング技術、ならびに様々なインターネット接続されたスマートフォンおよびタブレットコンピュータを使用して、実世界環境を監視する方法。本システムは、何百万以上ものカメラにまで拡大するために、自動サービスプロビジョニング、自動仮想マシン移行サービス、ＲＥＳＴｆｕｌ  ＡＰＩ、および様々なファイアウォール通過方法を含む、クラウドコンピューティング技術を使用する。システムの整合性は、様々なビデオカメラが継続的に「ハートビート」カメラ状態メッセージをクラウドサーバーに送信することを要求することにより維持される。ビデオカメラは、任意選択で、それらのローカル環境で生じている様々な事象を自動的に検出し、これらの事象をクライアントに報告して、事象ビデオデータを直接または間接的のいずれかでクライアントにストリームするか、または代替としてビデオデータを、Ａｍａｚｏｎ  Ｓ３サービスなどの様々な拡張可能な第三者クラウドストレージシステム内に保存するようにも構成できる。期限切れになるトークンおよび暗号鍵がシステムセキュリティを確実にするのを支援する。【選択図】図１
2016534607.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１人のクライアントが、複数のプロセッサ制御ビデオカメラを使用して、少なくとも１つの実世界環境をリアルタイムで監視するのを可能にする拡張可能な方法であって、前記プロセッサ制御ビデオカメラの少なくともいくつかが、ネットワーク接続により少なくとも１つのファイアウォールを介して少なくとも１つのリモートインターネットサーバーに接続され、
前記少なくとも１人のクライアントが、クライアントコンピュータ制御装置を使用して、インターネットおよび前記少なくとも１つのリモートインターネットサーバーに接続されていて、
前記方法が、
少なくとも１つの前記プロセッサ制御ビデオカメラを取得することであって、前記プロセッサ制御ビデオカメラが音声−ビデオデータを前記少なくとも１つのリモートインターネットサーバーに伝送するように構成されている、少なくとも１つの前記プロセッサ制御ビデオカメラを取得することと、
前記少なくとも１つのプロセッサ制御ビデオカメラが、前記少なくとも１つのリモートインターネットサーバーからのコマンドに応答して、カメラ状態メッセージを、前記ネットワーク接続を使用して、前記少なくとも１つのリモートインターネットサーバーに定期的に伝送するようにも構成されていることと、  前記プロセッサ制御ビデオカメラを使用して前記少なくとも１つの実世界環境を監視することと、  前記少なくとも１つのインターネットサーバーを使用して、前記少なくとも１つの実世界環境に関するデータを前記少なくとも１つのコンピュータ制御装置に伝送することと
を含み、
前記少なくとも１つのインターネットサーバーが、前記カメラ状態メッセージの不存在、または前記ビデオカメラが異常に動作しているというカメラ状態メッセージのいずれかを検出する場合、前記少なくとも１つのインターネットサーバーを使用して、前記不存在または異常に関するデータを前記少なくとも１つのクライアントコンピュータ制御装置に伝送し、かつ
前記プロセッサ制御ビデオカメラの少なくともいくつかが、前記クライアントコンピュータ制御装置による要求に応じて直ちに、前記クライアントコンピュータ制御装置に接続してビデオデータを送信するように構成されている、
拡張可能な方法。
【請求項２】
前記プロセッサ制御ビデオカメラの少なくともいくつかが、ウェブソケット、ＴＵＲＮ、ＳＴＵＮ、ＩＣＥまたは他のファイアウォール通過プロトコルのいずれかを使用して、前記少なくとも１つのファイアウォールを通ってデータを伝送するように構成されている、請求項１に記載の方法。
【請求項３】
前記クライアントコンピュータ制御装置、前記少なくとも１つのリモートインターネットサーバー、および前記プロセッサ制御ビデオカメラが、カメラパン／チルト／ズームコマンド、カメラ解像度変更コマンド、カメラ照明変更コマンド、ビデオストリーミング変更コマンド、ファームウェアアップグレードコマンド、および検出パラメータコマンドのうちの少なくとも１つを受信するように構成されている、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのインターネットサーバーが、段階的な事象駆動アーキテクチャに従い、表現状態転送（ＲＥＳＴ）アプリケーションプログラミングインタフェース（ＡＰＩ）を使用して、前記プロセッサ制御ビデオカメラ、および／または前記クライアントコンピュータ制御装置のいずれかと通信し、それにより、ＨＴＴＰまたはＨＴＴＰＳセッションを生成するが、前記ＨＴＴＰまたはＨＴＴＰＳセッション内では情報が維持されず、それにより前記方法の拡張性を向上させる、請求項１に記載の方法。
【請求項５】
前記プロセッサ制御ビデオカメラ、前記少なくとも１つのインターネットサーバー、および前記クライアントコンピュータ制御装置の間の通信が、少なくとも１つの期限切れになるトークンおよび少なくとも１つの暗号鍵によって保護される、請求項１に記載の方法。
【請求項６】
前記少なくとも１つのリモートインターネットサーバーからの前記コマンドをさらに使用して、ビデオデータを前記クライアントコンピュータ制御装置に直接ストリームするか、または前記少なくとも１つのリモートインターネットサーバーを経由して、ビデオデータを前記クライアントコンピュータ制御装置にストリームするように、前記ネットワーク接続されたビデオカメラをさらに構成する、請求項１に記載の方法。
【請求項７】
前記少なくとも１つのリモートインターネットサーバーからの前記コマンドをさらに使用して、ビデオデータを少なくとも１つのインターネット接続されたビデオデータ記録装置に直接ストリームし、前記ビデオデータを前記少なくとも１つのインターネット接続されたビデオデータ記憶装置のメモリ内に格納するように、前記プロセッサ制御ビデオカメラをさらに構成し、それによりリモートに格納されたビデオデータを作成し、かつ
前記少なくとも１つのリモートインターネットサーバーをさらに使用して、前記リモートに格納されたビデオデータに関する情報を前記クライアントコンピュータ制御装置に送信するか、またはそれから受信して、それにより前記クライアントコンピュータ制御装置が後に前記リモートに格納されたビデオデータを取得するのを可能にし、
前記少なくとも１つのインターネット接続されたビデオ記憶装置が、前記少なくとも１つのリモートインターネットサーバー上に収容されているか、または前記少なくとも１つのインターネット接続されたビデオ記憶装置が前記少なくとも１つのリモートインターネットサーバー上に収容されていない、
請求項１に記載の方法。
【請求項８】
前記少なくとも１つのインターネット接続されたビデオデータ記憶装置が、自動サービスプロビジョニングおよび仮想マシン移行方法に従って動作する、第三者クラウドファイルホスティングサービスまたは他のクラウドファイルホスティングサービスを含む、請求項７に記載の方法。
【請求項９】
前記プロセッサ制御ビデオカメラが、
ａ）ＷｉＦｉ  ＳＳＤ、ＷｉＦｉパスワード、位置決めコード、顧客ＩＤ、およびカメラトークンからなる群から選択された少なくともいくつかの情報を符号化する、バーコードもしくは他のタイプの光学コード、または
ｂ）一連の可聴音として符号化されたネットワーク通信情報、または
ｃ）光もしくは赤外線強度もしくはカラーにおける変動、または
ｄ）Ｂｌｕｅｔｏｏｔｈ（登録商標）もしくはＷＡＰもしくは他の無線ベースのネットワーク転送方法
のうちの少なくとも１つを使用して、ネットワーク動作のために構成される、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つのリモートインターネットサーバーが、少なくとも１つのウェブアプリケーションをホストし、少なくとも前記クライアントコンピュータ制御装置が、前記ウェブアプリケーションを使用して、前記少なくとも１つのリモートインターネットサーバーおよび前記プロセッサ制御ビデオカメラと通信する、請求項１に記載の方法。
【請求項１１】
前記プロセッサ制御ビデオカメラが、検出パラメータを使用して、その環境内で事象によって引き起こされた変化を自動的に検出し、前記検出パラメータに従い、前記事象によって引き起こされた変化に関するデータを前記少なくとも１つのリモートインターネットサーバーに伝送するようにさらに構成され、
前記クライアントコンピュータ制御装置および前記少なくとも１つのリモートインターネットサーバーをさらに使用して前記検出パラメータを構成し、
前記プロセッサ制御ビデオカメラおよび前記検出パラメータをさらに使用して少なくとも１つの実世界環境位置における前記事象によって引き起こされた変化を監視し、
前記プロセッサ制御ビデオカメラおよび前記検出パラメータが前記少なくとも１つの実世界環境位置において事象によって引き起こされた変化を検出する場合、前記少なくとも１つのインターネットサーバーを使用して、前記事象によって引き起こされた変化に関するデータを前記少なくとも１つのコンピュータ制御装置に伝送する、
請求項１に記載の方法。
【請求項１２】
少なくとも１人のクライアントが、複数のプロセッサ制御ビデオカメラを使用して、少なくとも１つの実世界環境をリアルタイムで監視するのを可能にする拡張可能な方法であって、前記プロセッサ制御ビデオカメラの少なくともいくつかが、ネットワーク接続により少なくとも１つのファイアウォールを介して少なくとも１つのリモートインターネットサーバーに接続され、
前記少なくとも１人のクライアントが、クライアントコンピュータ制御装置を使用して、インターネットおよび前記少なくとも１つのリモートインターネットサーバーに接続されていて、
前記方法が、
少なくとも１つの前記プロセッサ制御ビデオカメラを取得することであって、前記プロセッサ制御ビデオカメラが音声−ビデオデータを前記少なくとも１つのリモートインターネットサーバーに伝送するように構成されている、少なくとも１つの前記プロセッサ制御ビデオカメラを取得することと、
前記少なくとも１つのプロセッサ制御ビデオカメラが、前記少なくとも１つのリモートインターネットサーバーからのコマンドに応答して、カメラ状態メッセージを、前記ネットワーク接続を使用して、前記少なくとも１つのリモートインターネットサーバーに定期的に伝送するようにも構成されていることと、
前記プロセッサ制御ビデオカメラが、検出パラメータを使用して、その環境内で事象によって引き起こされた変化を自動的に検出し、前記検出パラメータに従い、前記事象によって引き起こされた変化に関するデータを前記少なくとも１つのリモートインターネットサーバーに伝送するようにさらに構成されていることと、
前記クライアントコンピュータ制御装置および前記少なくとも１つのリモートインターネットサーバーをさらに使用して前記検出パラメータを構成することと；
前記プロセッサ制御ビデオカメラを使用して前記少なくとも１つの実世界環境を監視することと、
前記少なくとも１つのインターネットサーバーを使用して、前記少なくとも１つの実世界環境に関するデータを前記少なくとも１つのコンピュータ制御装置に伝送することと
を含み、
前記少なくとも１つのインターネットサーバーが、前記カメラ状態メッセージの不存在、または前記ビデオカメラが異常に動作しているというカメラ状態メッセージのいずれかを検出する場合、前記少なくとも１つのインターネットサーバーを使用して、前記不存在または異常に関するデータを前記少なくとも１つのクライアントコンピュータ制御装置に伝送し、
前記プロセッサ制御ビデオカメラおよび前記検出パラメータが前記少なくとも１つの実世界環境位置内で事象によって引き起こされた変化を検出する場合、前記少なくとも１つのインターネットサーバーを使用して、前記事象によって引き起こされた変化に関するデータを前記少なくとも１つのコンピュータ制御装置に伝送し、かつ
前記プロセッサ制御ビデオカメラの少なくともいくつかが、前記クライアントコンピュータ制御装置による要求に応じて直ちに、前記クライアントコンピュータ制御装置に接続してビデオデータを送信するように構成されている、
拡張可能な方法。
【請求項１３】
前記プロセッサ制御ビデオカメラの少なくともいくつかが、ウェブソケット、ＴＵＲＮ、ＳＴＵＮ、ＩＣＥまたは他のファイアウォール通過プロトコルのいずれかを使用して、前記少なくとも１つのファイアウォールを通ってデータを伝送するように構成されている、請求項１２に記載の方法。
【請求項１４】
前記クライアントコンピュータ制御装置、前記少なくとも１つのリモートインターネットサーバー、および前記プロセッサ制御ビデオカメラが：カメラパン／チルト／ズームコマンド、カメラ解像度変更コマンド、カメラ照明変更コマンド、ビデオストリーミング変更コマンド、ファームウェアアップグレードコマンド、および検出パラメータコマンドのうちの少なくとも１つを受信するように構成されている、請求項１２に記載の方法。
【請求項１５】
前記少なくとも１つのインターネットサーバーが、段階的な事象駆動アーキテクチャに従い、表現状態転送（ＲＥＳＴ）アプリケーションプログラミングインタフェース（ＡＰＩ）を使用して、前記プロセッサ制御ビデオカメラ、および／または前記クライアントコンピュータ制御装置のいずれかと通信し、それにより、ＨＴＴＰまたはＨＴＴＰＳセッションを生成するが、前記ＨＴＴＰまたはＨＴＴＰＳセッション内では情報が維持されず、それにより前記方法の拡張性を向上させる、請求項１２に記載の方法。
【請求項１６】
前記プロセッサ制御ビデオカメラ、前記少なくとも１つのインターネットサーバー、および前記クライアントコンピュータ制御装置の間の通信が、少なくとも１つの期限切れになるトークンおよび少なくとも１つの暗号鍵によって保護される、請求項１２に記載の方法。
【請求項１７】
前記少なくとも１つのリモートインターネットサーバーからの前記コマンドをさらに使用して、ビデオデータを前記クライアントコンピュータ制御装置に直接ストリームするか、または前記少なくとも１つのリモートインターネットサーバーを経由して、ビデオデータを前記クライアントコンピュータ制御装置にストリームするように、前記ネットワーク接続されたビデオカメラをさらに構成する、請求項１２に記載の方法。
【請求項１８】
前記少なくとも１つのリモートインターネットサーバーからの前記コマンドをさらに使用して、ビデオデータを少なくとも１つのインターネット接続されたビデオデータ記録装置に直接ストリームし、前記ビデオデータを前記少なくとも１つのインターネット接続されたビデオデータ記憶装置のメモリ内に格納するように、前記プロセッサ制御ビデオカメラをさらに構成し、それによりリモートに格納されたビデオデータを作成し、かつ
前記少なくとも１つのリモートインターネットサーバーをさらに使用して、前記リモートに格納されたビデオデータに関する情報を前記クライアントコンピュータ制御装置に送信するか、またはそれから受信して、それにより前記クライアントコンピュータ制御装置が後に前記リモートに格納されたビデオデータを取得するのを可能にし、
前記少なくとも１つのインターネット接続されたビデオ記憶装置が、前記少なくとも１つのリモートインターネットサーバー上に収容されているか、または前記少なくとも１つのインターネット接続されたビデオ記憶装置が前記少なくとも１つのリモートインターネットサーバー上に収容されていない、
請求項１２に記載の方法。
【請求項１９】
前記少なくとも１つのインターネット接続されたビデオデータ記憶装置が、自動サービスプロビジョニングおよび仮想マシン移行方法に従って動作する、第三者クラウドファイルホスティングサービスまたは他のクラウドファイルホスティングサービスを含む、請求項１８に記載の方法。
【請求項２０】
前記プロセッサ制御ビデオカメラが、
ａ）ＷｉＦｉ  ＳＳＤ、ＷｉＦｉパスワード、位置決めコード、顧客ＩＤ、およびカメラトークンからなる群から選択された少なくともいくつかの情報を符号化する、バーコードもしくは他のタイプの光学コード、または
ｂ）一連の可聴音として符号化されたネットワーク通信情報、または
ｃ）光もしくは赤外線強度もしくはカラーにおける変動、または
ｄ）Ｂｌｕｅｔｏｏｔｈ（登録商標）もしくはＷＡＰもしくは他の無線ベースのネットワーク転送方法
のうちの少なくとも１つを使用して、ネットワーク動作のために構成されている、請求項１２に記載の方法。
【請求項２１】
前記事象が、侵入事象、指示による動き事象、カメラの不正使用事象、顔検出事象、人物検出または認識事象、行動認識事象、音声アラート事象、カメラオフラインアラート、温度またはホームセンサーアラート事象、他のセンサーによって生成または検出されて前記プロセッサ制御ビデオカメラに伝送された事象、および前記検出パラメータに従い前記プロセッサによって自動的に分析できる音声または視覚信号のいずれかを生成する他の事象からなる群から選択された１つ以上の事象を含む、請求項１２に記載の方法。
【請求項２２】
前記少なくとも１つのリモートインターネットサーバーが、少なくとも１つのウェブアプリケーションをホストし、少なくとも前記クライアントコンピュータ制御装置が、前記ウェブアプリケーションを使用して、前記少なくとも１つのリモートインターネットサーバーおよび前記プロセッサ制御ビデオカメラと通信する、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１３年７月２２日、発明人Ａｌｂｅｒｔ  Ｋａｙ、Ｐｒａｋａｓｈ  Ｎａｒａｙａｎ、およびＶａｉｄｈｉ  Ｎａｔｈａｎによって出願された、米国特許出願６１／８５７，２００号、「ＮＯＶＥＬ  ＳＹＳＴＥＭ  ＴＨＡＴ  ＵＳＥＳ  ＣＬＯＵＤ  ＳＥＲＶＥＲＳ  ＴＯ  ＣＡＰＴＵＲＥ  ＡＮＤ  ＤＩＳＳＥＭＩＮＡＴＥ  ＥＶＥＮＴＳ  ＡＮＤ  ＶＩＤＥＯＳ  ＦＲＯＭ  ＣＡＭＥＲＡ  ＳＥＮＳＯＲＳ  ＡＮＤ  ＩＮＴＥＧＲＡＴＥＤ  ＷＩＴＨ  ＭＯＢＩＬＥ  ＤＥＶＩＣＥＳ」の優先権利益を主張し、その内容が参照により本明細書に組み込まれる。
【０００２】
発明の背景
発明の分野
本発明は、インターネットまたはネットワーク接続されたカメラおよび拡張可能なクラウドコンピューティングの分野においてである。
【背景技術】
【０００３】
現代生活においてウェブカメラが広く行き渡ってきて、ＹｏｕＴｕｂｅ（登録商標）、Ｓｋｙｐｅ（登録商標）ビデオチャット、および同様のものなどの、ウェブカメラビデオデータを使用できるインターネットサーバーベースのシステムが、一般の人々に広く知られている。加えて、様々な監視用途のための、ウェブカメラおよびインターネットサーバーの使用、ならびに様々なタイプの画像認識方法も当技術分野で知られている。
【０００４】
１つの具体例として、動物の動きの監視などの用途のために、ウェブカメラを使用する様々な方法が、Ｖｅｒｓｔｒａｅｔｅｎらによる「Ｗｅｂｃａｍｓ  ｆｏｒ  Ｂｉｒｄ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｍｏｎｉｔｏｒｉｎｇ：Ａ  Ｄｅｍｏｎｓｔｒａｔｉｏｎ  Ｓｔｕｄｙ」，Ｓｅｎｓｏｒｓ  ２０１０，１０，３４８０−３５０３で説明された。
【０００５】
さらに、Ｎｅｅｄｈａｍが、米国特許６，８０３，９４５号において、動き検出ウェブカメラシステムを説明した。このシステムは、様々なタイプのモーションキャプチャアルゴリズムに応じて、ウェブカメラ画像をサーバーに定期的にアップロードした。
【０００６】
近年は、インターネット技術が発展するにつれ、ユーザー要求に応じて自動的に拡張できるウェブサービスを提供することが、多くの場合、様々なタイプの自動サービスプロビジョニング方法および仮想マシン移行方法の使用によって、より実現可能になってきた。これらの拡張可能なクラウドサービスは、Ｚｈａｎｇらによる、「Ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ：ｓｔａｔｅ−ｏｆ−ｔｈｅ−ａｒｔ  ａｎｄ  ｒｅｓｅａｒｃｈ  ｃｈａｌｌｅｎｇｅｓ」，Ｊ  Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖ．Ａｐｐｌ．（２０１０）１：７−１８で説明されている。これらのクラウドサービスは、Ａｍａｚｏｎ  ＥＣ２、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ａｚｕｒｅプラットフォーム、Ｇｏｏｇｌｅ Ａｐｐ Ｅｎｇｉｎｅ、およびその他を含む。
【０００７】
例えば、Ａｍａｚｏｎ  ＥＣ２クラウドコンピューティングプラットフォームは、米国カリフォルニア州セバストポルのＯ‘Ｒｅｉｌｌｙ  Ｍｅｄｉａ，Ｉｎｃ．により２０１１年２月に発行された、Ｊｕｒｇ  ｖａｎ  Ｖｉｌｅｄらによる「Ｐｒｏｇｒａｍｍｉｎｇ  Ａｍａｚｏｎ  ＥＣ２」で説明されている。
【０００８】
加えて、インターネット技術が発展するにつれて、ウェブサービス開発のための表現状態転送（ＲＥＳＴ）方法の使用が普及してきた。この技術は、米国カリフォルニア州セバストポルのＯ‘Ｒｅｉｌｌｙ  Ｍｅｄｉａ，Ｉｎｃ．により２００７年５月に発行された、Ｌｅｏｎａｒｄ  Ｒｉｃｈａｒｄｓｏｎ  ＆  Ｓａｍ  Ｒｕｂｙによる「ＲＥＳＴｆｕｌ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ」で説明されている。
【発明の概要】
【課題を解決するための手段】
【０００９】
本発明は、自動サービスプロビジョニング、仮想マシン移行、および同様のものなどの、最新の拡張可能なクラウドサービス技術における進歩が、実世界環境を監視するための改善された高度に拡張可能な方法の提供を支援するために使用できるという洞察に一部、基づく。
【００１０】
本発明は、潜在的に何百万もの異なるビデオカメラ装置、および何千または何百万さえの異なるクライアントユーザーでの広範な使用が可能な高度に拡張可能なシステムを提供するために、かかる高度に拡張可能なシステムは、理想的には、ファイアウォールおよび他のネットワーク障害を克服するための様々なストラテジも採用すべきであり、様々なユーザーによって高度に構成可能であるべきであり、また、良好なセキュリティ手段も採用すべきであるという洞察にも一部、基づく。
【００１１】
本発明は、通常のユーザーは、フルタイムの警備員として働くことを望まず、むしろ、多くの場合、コンピュータ制御システムが問題または事象を自動的に検出した際に彼らのモバイルコンピュータ制御装置上で単に通知を（好ましくはリアルタイムで）自動的に受信し、次いで、多くの場合、直ちに、問題もしくは事象をリアルタイムで見るか、または代替として問題もしくは事象の記録された履歴を含むビデオファイルを検索できることを望むという洞察にも一部、基づく。
【００１２】
いくつかの実施形態では、本発明は、複数のリモートでプログラム可能なプロセッサ制御インターネットビデオカメラ、ならびに拡張可能なクラウドコンピューティング技術を使用し、彼らの様々なインターネット接続されたスマートフォンおよびタブレットコンピュータ（多くの場合、スマートフォンなどのモバイル機器であろう）を使用して、実世界環境を監視するシステムおよび方法であり得る。
【００１３】
本明細書で説明するシステムおよび方法は、容易かつ自動的に、何百万ものカメラおよびユーザーにまで拡大できるように設計されている。これを行うため、本開示は、自動サービスプロビジョニング、自動仮想マシン移行サービス、ＲＥＳＴｆｕｌ  ＡＰＩ、およびスケーリングプロセスを容易にするための様々なファイアウォール通過方法を含む、最新のクラウドコンピューティング技術の使用を教示する。
【００１４】
システムの整合性は、様々なビデオカメラが継続的に「ハートビート」カメラ状態メッセージをクラウドサーバーに送信することを要求することにより維持される。任意選択で、マイクロホン、温度センサー、湿度センサー、煙探知器、および同様のものなどの追加のセンサーを搭載できる、ビデオカメラは、任意選択で、様々な画像および音声分析ならびに、カメラが、それらのローカル環境で生じているそれら様々な事象をシステムのサーバーに自動的に報告するのを可能にする、他のセンサー分析アルゴリズムでもリモートに構成できる。システムサーバーは、次いで、これらの事象をクライアントに報告できる。システムは、事象ビデオデータをクライアントに直接もしくは間接的にストリームできるか、または代替としてビデオデータを、Ａｍａｚｏｎ  Ｓ３サービスなどの、様々な拡張可能な第三者クラウドストレージシステムに保存できる。期限切れになるトークンおよび暗号鍵がシステムセキュリティを確実にする。
【図面の簡単な説明】
【００１５】
【図１】ビデオクラウドサービス（ＶＣＳ）の主要な構成要素のいくつかを示す。
【図２】プロセッサ制御ビデオカメラが少なくとも１つのリモートビデオクラウドサービス（ＶＣＳ）インターネットサーバーおよび任意選択で、様々なプロトコルを使用するインターネット接続されたビデオデータ記憶装置として使用されるサーバーなどの他のクラウドサーバーとどのように通信し得るかのさらなる詳細を示す。
【図３Ａ】本発明のビデオクラウドサービス（ＶＣＳ）システムの構成要素の一部およびやり取りを示すブロック図を示す。
【図３Ｂ】多数のビデオカメラおよびクライアントにわたる高拡張性のために構成される、本発明の連続記録サーバー実施形態の詳細を示す。
【図４】プロセッサを搭載したビデオカメラがシステムのデバイスマネージャサービス（ＤＭＳ）サーバーとどのようにやり取りし得るかの流れ図を示す。
【図５】プロセッサを搭載したビデオカメラ（複数可）および／またはクライアントコンピュータ制御装置のファームウェアまたは他のタイプのソフトウェアがどのようにアップグレードされ得るかを示す。
【図６】システムがどのように様々なファイアウォールを通過し、様々なピアツーピア（Ｐ２Ｐ）方式に従って動作できるかの例を示す。
【図７】ＶＣＳアーキテクチャの水平拡張性の例を示す。
【図８】クライアントコンピュータ制御装置のソフトウェア構成のブロック図を示す。
【発明を実施するための形態】
【００１６】
本開示では、「拡張可能な方法」は、自動サービスプロビジョニングおよび自動仮想マシン移行方法に従って動作するインターネットクラウドベース方法であると定義される。さらなる詳細については、前述したＺｈａｎｇらの「Ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ：ｓｔａｔｅ−ｏｆ−ｔｈｅ−ａｒｔ  ａｎｄ  ｒｅｓｅａｒｃｈ  ｃｈａｌｌｅｎｇｅｓ」参考文献を参照されたい。かかる拡張可能な方法の例は、Ａｍａｚｏｎ  ＥＣ２、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ａｚｕｒｅプラットフォーム、およびＧｏｏｇｌｅ Ａｐｐ Ｅｎｇｉｎｅを含むが、それらに制限されない。
【００１７】
特別の定めのない限り、本明細書で説明する例は、一般に、前述したＪｕｒｇ  ｖａｎ  Ｖｉｌｅｄらの「Ｐｒｏｇｒａｍｍｉｎｇ  Ａｍａｚｏｎ  ＥＣ２」参考文献によって説明されるように、Ａｍａｚｏｎ  ＥＣ２クラウドコンピューティングプラットフォーム上で動作していると仮定されるべきである。
【００１８】
特別の定めのない限り、本明細書で説明するプロセッサ制御ビデオカメラは、多くの場合、マイクロホンおよび、温度センサーなどの、他のタイプのセンサーとでさえ構成される。従って、本明細書で説明する方法は、多くの場合、これらのマイクロホンが構成されたビデオカメラによって受信された音声データに関して動作する。プロセッサ制御ビデオカメラは、典型的には、少なくとも１つのプロセッサ（多くの場合、人気のあるＡＲＭ、ＭＩＰＳ、ｘ８６または他のプロセッサファミリーから選択される）、メモリ（本発明に従って様々なファームウェアおよびアルゴリズムを保持するために使用される）、少なくとも１つの多重ピクセルイメージセンサーチップ（多くの場合、少なくとも１つの電荷結合素子（ＣＣＤ）または相補型金属酸化膜半導体（ＣＭＯＳ）チップ）、電子像集束システム（多くの場合、少なくとも１つのレンズ）、および少なくとも１つの有線または無線ネットワークインタフェースを含む。
【００１９】
特別の定めのない限り、本明細書で説明するクライアントコンピュータ制御装置は、多くの場合、少なくとも１つのプロセッサ（多くの場合、人気のあるＡＲＭ、ＭＩＰＳ、ｘ８６または他のプロセッサファミリーから選択される）、メモリ（多くの場合、オペレーティングシステムソフトウェアならびに本発明に従って様々なファームウェアおよびアルゴリズムを実行するために使用される様々なアプリケーションソフトウェア（例えば、アプリ）の両方に対して使用される）、典型的には、好ましくはビデオを表示可能な、多重画素表示パネル、ユーザーインタフェース（例えば、タッチセンサー式ビデオ画面、キーボード、マウス、ボタンなど）、および少なくとも１つの有線または無線ネットワークインタフェースで構成される。多くの場合、スマートフォン、タブレットコンピュータ、および同様のものなどの、モバイルクライアントコンピュータ制御インタフェースは、本開示における例として使用されるが、「可動性」は限定的であることを意図しない。
【００２０】
同様に、本明細書で説明する様々なインターネットサーバーおよびクラウドサービスは、自動サービスプロビジョニングおよび自動仮想マシン移行サービスの下で動作している場合でさえ、少なくとも１つのプロセッサ、ネットワーク接続、コンピュータメモリ、オペレーティングシステムソフトウェア、適切な自動サービスプロビジョニングおよび自動仮想マシン移行サービス、ならびに本明細書で開示するソフトウェア実装方法の制御下で、それら自体様々なインターネットサーバー上で実行する。
【００２１】
特別の定めのない限り、本明細書で説明するシステムおよび方法の全ての態様は、人間の介入を必要とすることなく、本明細書の開示に従って動作するソフトウェア方法に従い、様々なプロセッサ（例えば、ビデオカメラプロセッサ、クライアントコンピュータ制御装置プロセッサ、サーバープロセッサなど）の制御下で、自動的に動作すると仮定されるべきである。
【００２２】
いくつかの実施形態では、本発明は、少なくとも１人のクライアント（多くの場合、人間のクライアント、および多くの場合、多数の異なる人間のクライアント）が、複数のプロセッサ制御ビデオカメラを使用して、少なくとも１つの実世界環境（多くの場合、複数の実世界環境）を監視するのを可能にする、拡張可能な方法であり得る。
【００２３】
これらのプロセッサ制御ビデオカメラは、典型的には、インターネットなどの、より大規模なネットワークに、従って様々なインターネットサーバーに接続されて、通常、安全のために、かかるプロセッサ接続されたビデオカメラは、インターネットおよび少なくとも１つのリモートインターネットサーバーに、少なくとも１つのファイアウォールを介して接続される。
【００２４】
ここで、少なくとも１人のクライアントは、典型的には、クライアントコンピュータ制御装置を使用して、インターネットおよび少なくとも１つのリモートインターネットサーバーに接続される。本明細書では、この少なくとも１つのリモートインターネットサーバーは、多くの場合、ビデオクラウドサービス（ＶＣＳ）サーバーと呼ばれ、このＶＣＳサーバーのデバイス管理サービス（ＤＭＳ）態様が、すぐ後でより詳細に説明される。
【００２５】
多くの場合、２つ以上のクライアントコンピュータ制御装置が使用され、このクライアントコンピュータ制御は、同様に対処すべきそれ自身のファイアウォールを有し得る。
【００２６】
ここで、少なくとも１つのプロセッサ制御ビデオカメラ（複数可）（カメラ、複数のカメラ）が音声ビデオデータを少なくとも１つのリモートインターネットサーバーに伝送するように（通常は自動的に、または半自動的に）構成される。加えて、このカメラは、この少なくとも１つのリモートインターネットサーバーからのコマンドに応答して、カメラ状態メッセージ（多くの場合、「ハートビートメッセージ」または「ハートビート」と呼ばれる）をこの少なくとも１つのリモートインターネットサーバーにネットワーク接続経由を使用して定期的に伝送するようにも構成される。後述のように、これらのカメラ状態メッセージ（ハートビート）は、とりわけ、カメラ（複数可）がオフにされているか、またはそうでなければ予期したとおりに動作していないかを検出するためにシステムによって使用できる。
【００２７】
カメラ（複数可）は、一般に、少なくとも１つの実世界環境を監視するために使用され、次いで少なくとも１つのインターネットサーバーを使用して、この少なくとも１つの実世界環境に関するデータを様々なクライアントコンピュータ制御装置（複数可）に自動的に伝送する。加えて、少なくとも１つのインターネットサーバーが、所定のカットオフ基準を超えて存続する、これらのカメラ状態メッセージ（ハートビート）の不存在または異常のいずれかを検出すると、本発明のソフトウェアが、自動的にインターネットサーバー（複数可）に指示して、この不存在または異常に関するデータを少なくとも１つのクライアントコンピュータ制御装置に伝送する。さらに、様々なプロセッサ制御ビデオカメラの少なくとも一部（および、いくつかの実施形態では全部）も、クライアントコンピュータ制御装置による要求に応じて直ちに、少なくとも１つのクライアントコンピュータ制御装置に接続してビデオデータを送信するようにソフトウェア構成される。
【００２８】
システムアーキテクチャ
最上位レベルにおいて、本明細書で開示する、拡張可能なビデオクラウドサービスのシステムおよび方法は、少なくとも３つの基本的なタイプの構成要素を有すると見なすことができる。これらは、ａ）様々な拡張可能なクラウドサーバー、ｂ）様々なクライアントコンピュータ制御装置（多くの場合、スマートフォンおよび同様のものなどのモバイル機器）、およびｃ）典型的には、インターネットを経由して様々なクラウドサーバーへのネットワーク接続を有する、様々なプロセッサ制御ビデオカメラである。
【００２９】
後述のように、本開示は、事象データをカメラからアップロードし、スマートフォンなどの様々なクライアントコンピュータ制御装置から事象データを取得するためにクラウドサーバーを使用する、事象およびビデオ管理ソリューションの完全かつ包括的なスイートを教示する。実際のクラウドサーバーソリューションは比較的複雑であり、負荷分散、アプリケーション、ストレージ、バックアップ、データベース、デバイス管理、事象管理および通知／アラートサービスのための構成要素ならびにサーバーを含む、複数の構成要素を有する。まず初めに、クラウドサービスが、管理クラウドサーバー、およびビデオデータ格納用のクラウドサーバーを含むとして理解できる、システムの簡略版の説明に焦点を合わせる。この簡略版のシステムを説明した後に、他のクラウド構成要素が全体的なシステムおよび方法にどのように関連するかについて説明する。
【００３０】
図１は、ビデオクラウドサービス（ＶＣＳ）の主要な構成要素のいくつかを示す。ここでは、少なくとも１つのプロセッサ制御ビデオカメラ（１００）が、インターネット接続されたルーターへの無線（例えば、ＷｉＦｉリンク）または有線リンクのいずれかを介し、通常はファイアウォール（１０４）を経由して、インターネット（１０２）に接続されている。クライアントコンピュータ制御装置も、同様に、それ自身のファイアウォール（図示せず）を経由して、インターネットから分離され得る。リモートＶＣＳインターネットサーバー（１０６）などの様々なサーバー、ならびに任意選択で、少なくとも１つのインターネット接続されたビデオデータ記憶装置（１０８）（それ自身がサーバーであり得る）および関連付けられたデータベースメモリ（１１０）が、少なくとも１つのプロセッサ制御ビデオカメラ（１００）と接続できる。加えて、様々なクライアントコンピュータ制御装置（例えば、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータおよび同様のもの１１２）もプロセッサ制御ビデオカメラ（１００）および／またはリモートＶＣＳインターネットサーバー（１０６）の両方ならびに少なくとも１つのインターネット接続されたビデオデータ記憶装置（１０８）に接続できる。
【００３１】
図１では、プロセッサ制御ビデオカメラ（１００）は、少なくとも１つの実世界環境、ここでは窓（１２０）、を監視していると示されている。この例では、石またはボールが窓（１２０）を突き破った事象（１２２）が引き起こされて、動き、窓の状態における変化（穴）（１２４）、およびプロセッサ制御ビデオカメラ（１００）上の任意選択のマイクロホン（図示せず）でも検出され得る関連した音（図示せず）を生じる。本発明によれば、説明する詳細を使用して、クライアントコンピュータ制御装置（１１２）は、（通常は、実世界環境１２０から離れている）クライアント（１１６）が、少なくとも１つの実世界環境（１２０）および事象（１２２）を示すビデオデータを見るのを可能にするように構成されたビデオ画面（１１４）を有する。
【００３２】
後述のように、少なくとも１つのプロセッサ制御ビデオカメラ（１００）は、多くの場合、単にビデオ（および任意選択で音声も）を取得するだけでなく、ビデオを圧縮し、インターネットを通じてそのビデオを伝送することが可能であろう。
【００３３】
後述のように、ＶＣＳインターネットサーバー（１０６）ならびに／または少なくとも１つのインターネット接続されたビデオデータ記憶装置（１０８）（それ自身がサーバーであり得る）および関連付けられたデータベースメモリ（１１０）は、様々な異なる実施形態で構成され得る。いくつかの実施形態では、ＶＣＳインターネットサーバー（１０６）は、千〜十万または実に百万〜千万以上のカメラなどの、非常に多くの異なるプロセッサ制御ビデオカメラ（１００）に同時に接続できる、大規模な拡張可能ビデオクラウドであり得る。この接続は、多くの場合、自動で行われるであろう。いくつかの実施形態では、少なくとも１つのインターネット接続されたビデオデータ記憶装置（１０８）（それ自身がサーバーであり得る）および関連付けられたデータベースメモリ（１１０）は、本発明のビデオクラウドサービス（ＶＣＳ）方法を通じて、事象ビデオのクラウドストレージを可能にするように構成され得る。このインターネット接続されたビデオデータ記憶は、様々なファイル記憶およびサービングプラットフォームを提供する第三者サーバーを介し得る。
【００３４】
後述のように、多くの場合、複数の異なるクライアントコンピュータ制御装置（１１２）が使用され得るが、簡単にするために、この複数の異なるコンピュータ制御装置は、しばしば単数形で言及される。この単数形の使用は、制限することを意図しておらず、一般に、請求項および発明は、複数のクライアントコンピュータ制御装置（本当に、本発明は何百万ものかかる装置に拡大できる）で、また、本当に多くの場合、複数の異なるクライアント（１１６）（潜在的に何百万ものクライアントに拡大する）と共にでも動作すると理解されるべきである。簡単にするため、しばしば、人気のあるＡｎｄｒｏｉｄ、ｉＯＳ、またはＷｉｎｄｏｗｓ（登録商標）スマートフォンおよびタブレットのインターネット接続されたバージョンなどのモバイルクライアントコンピュータ制御装置が、クライアントコンピュータ制御装置（１１２）の具体例として使用されるが、これらの具体例は制限することを意図していない。
【００３５】
図１では、サーバー（１０６）、インターネット接続されたビデオ記憶装置（１０８）およびデータベースメモリ（１１０）が全て、クラウド（１４０）内に位置しているとして示されていることに留意されたい。これは、サーバー（１０６）、インターネット接続されたビデオ記憶装置（１０８）およびデータベースメモリ（１１０）が、実際には拡張可能なインターネットクラウドベースの方法に従って動作しており、その方法は、同様に、自動サービスプロビジョニングおよび自動仮想マシン移行方法に従って動作することを読者に示すとともに気付かせることを意図する。前述のように、かかる拡張可能な方法の例は、Ａｍａｚｏｎ  ＥＣ２、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ａｚｕｒｅプラットフォーム、およびＧｏｏｇｌｅ Ａｐｐ Ｅｎｇｉｎｅを含むが、それらに制限されない。従って、例えば、サーバー（１０６）およびインターネット接続されたビデオ記憶装置（１０８）は、多くの場合、クラウドサービスシステム下で自動的にプロビジョニングされた仮想マシンとして実装されて、システム上の基礎となる要求に応じていつでも、もっと多いか、または少ない数の、サーバー（１０６）ならびにインターネット接続されたビデオ記憶装置（１０８）および関連付けられたデータベースメモリ（１１０）のコピーを作成できるであろう。
【００３６】
従って、いくつかの実施形態では、本システムおよび方法は、非常に多くの数の（例えば、最大で１００，０００、千万、またはそれ以上でさえ）カメラに同時に接続して管理できる、大規模な拡張可能ビデオクラウドサービスを生成できる。システムは一般に、様々なカメラに自動的に接続し、これらのビデオクラウドサービスを通して事象ビデオのクラウドストレージを可能にするように構成される。後述のように、システムは、カメラがオンであって適切に機能していること（例えば、カメラ「ハートビート」状態メッセージ）を検出する方法、ならびにユーザー（例えば、人間のクライアント）が、必要に応じてシステムを管理し、また、様々なモバイルコンピュータ制御装置上で実行しているアプリ、様々なコンピュータ制御装置上で実行しているウェブブラウザ、および同様のものを使用して、必要に応じて遠く離れた事象を見るのを可能にする様々な単純な方法を提供する。
【００３７】
後述のように、システム（１４０）は、様々なアラート管理サービスおよびデバイス管理サービスを提供して、暗号化された安全なデータ交換も可能にする。システムは、様々なメディアリレーサーバー方法、ならびに様々なカメラからのライブビデオ（および通常は音声）の認可されたユーザーへのピアツーピア（Ｐ２Ｐ）ストリーミングを使用して、ビデオをそのユーザーに伝送できる。システムは、典型的には、自動データバックアップと一緒にも構成されるであろう。
【００３８】
同じく後述のように、本発明の他の実施形態は、システム管理および分析、ならびに大量の負荷を処理する負荷分散などの他の機能のための様々なウェブサイト（ポータル）、ならびに様々なカメラからの大量のデータのロードを処理するスパイクおよび瞬間サージを処理するためのシステムも提供し得る。加えて、システムはインテリジェント＆適応ビデオストリーミングおよび帯域幅調整のために構成できる。
【００３９】
プロセッサ制御ビデオカメラ（１００）は、ビデオ解析、リアルタイムストリーミングプロトコル（ＲＴＳＰ）または他のプロトコルタイプのビデオストリーム、ＨＴＴＰライブストリーミング（ＨＬＳ）ビデオフィルム、自動事象検出およびトリガーを含む、様々なタイプの機能、ならびにビデオを様々な記憶装置にアップロードする能力を提供するように構成できる。様々なビデオクラウドサーバー（後述する）への接続を可能にすることに加えて、カメラは、認証および検証、ならびにセキュアソケットレイヤー（セキュアＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）およびセキュリティを確実にするための他の暗号化方法などの安全な接続の任意選択使用のための様々なシステムと一緒にでも構成できる。カメラは、ライブストリーミングをサポートするため、メディアリレーサーバーをサポートするために、システムによって構成でき、任意選択で、必要に応じて、ピアツーピア動作および様々なクライアントコンピュータ制御装置との接続のサポートを支援するために、様々なネットワーク変換（ＮＡＴ）ゲートウェイトラバーサル技術および構成要素も有し得る。
【００４０】
言い換えれば、これらのプロセッサ制御ビデオカメラの少なくともいくつかは、それ故、ウェブソケット（ＲＦＣ  ６４５５で説明）、ＳＴＵＮ（ＮＡＴのためのセッショントラバーサルユーティリティ、ＲＦＣ  ５３８９、５７６６、および５２４５で説明）、ＴＵＲＮ（リレーＮＡＴを使用するトラバーサル、ＲＦＣ  ５７６６、５２４５および６１５６で説明）、ＩＣＥ方法（インターネット接続確立、ＲＦＣ  ５２４５、５７６６、５７６８、６３３６および６５４４で説明）または他のファイアウォール通過プロトコルなどの、様々な方法を使用して、少なくとも１つのファイアウォールを通ってデータを伝送するように構成され得る。
【００４１】
他の実施形態では、プロセッサ制御ビデオカメラ（１００）は、適合するユーザーコンピュータ制御装置（複数可）が、そのカメラ（複数可）にローカルなネットワーク接続を有しているのを自動的に検出するようにも構成され得、それにより、そのカメラが、さらに高速なローカル接続方法を使用してローカルユーザーを処理するのを可能にする。マイクロホンを搭載したカメラは、それらそれぞれの実世界環境からの音声を分析して、音声事象を検出し、それに関して報告するようにも構成され得る。
【００４２】
プロセッサを搭載したビデオカメラは、さらに高感度のビデオ検出器、適切な信号処理の使用により、または赤外線検知ビデオ検出器を使用し、ローカル環境を赤外線で照らすことにより、微光状況（例えば、夜間ビジョン）を処理するように備えられ得る。これらのカメラは、他のタイプのセンサー（例えば、温度センサー、湿度センサー、煙探知器および同様のもの）も搭載され得、これら他のセンサーは、実世界環境における様々な事象が、クライアントによってもっと注意深い監視を必要とし得る場合を示すためにも使用され得る。
【００４３】
別の場所で説明するように、カメラは、典型的には、自動セットアップ（例えば、カメラプロビジョニング）、ならびにリモートクライアントログインおよび様々なカメラパラメータ設定の調整を可能にするように構成されるであろう。カメラはさらに、デバッグを支援する様々なタイプのカメラ診断と一緒に構成され得る。これらの診断は、いくつかの実施形態では、後述のように、さらに、様々なカメラ「ハートビート」状態メッセージと併せて使用され得る。好ましい実施形態では、カメラは、可能なかぎり迅速にオンにして初期化する（例えば、瞬時オンおよび即時接続）ように構成されるであろう。
【００４４】
クライアントコンピュータ制御装置は、Ａｐｐｌｅ  ｉＯＳ、Ａｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、または他のタイプのオペレーティングシステムを実行する装置を含み得る。これらの装置上で実行する本発明のソフトウェアの一部は、ネイティブアプリケーションの形式であり得るか、または翻訳されたアプリとして実行され得るか、もしくはＪａｖａ（登録商標）サンドボックスなどの様々な制約下で実行され得るか、ＨＴＭＬ５アプリケーションとして実行され得るか、などである。しかし、一般に、ネイティブアプリケーションは、より迅速に実行する傾向があり、より多くのシステム資源にアクセスできる傾向があり、それ故、多くの場合、好まれる。
【００４５】
クライアントコンピュータ制御装置ソフトウェアは、一般に、ユーザーログイン能力、ならびにクライアントの様々なカメラ（例えば、クライアントがアクセス許可を有するカメラ）をプレビューする能力、ならびに複数のカメラを操作する能力を提供するであろう。クライアントシステムソフトウェアは、追加として、クライアントがカメラアクセスをゲストおよび他のユーザーと共有すること、最近の事象のリストおよびこれらの事象の詳細をレビューすること、ならびに様々なシステム通知およびアラートを受信することを可能にするように構成され得る。追加の機能は、ライブカメラ表示、Ｐ２Ｐ通信、ネットワークおよびＮＡＴを経由したファイアウォール通過、ＲＴＳＰビデオプレーヤー／表示、ＨＬＳビデオプレーヤーおよび表示、ローカルまたはリモートに事象およびビデオをアーカイブする能力、ならびにリモートベースでカメラと接続する能力を含み得る。
【００４６】
クライアントコンピュータ制御装置ソフトウェアは、ユーザー（クライアント）が様々なカメラパラメータおよび設定をセットし、他のカメラに関連付けられたセンサー（例えば、マイクロホン、温度センサー、湿度センサー、煙探知器）を操作するのを可能にするようにも構成され得る。ソフトウェアは、ユーザーが様々な事象を分類またはフィルタ処理し、様々な分析スキームおよびアルゴリズムに従って、もっと有効で意味のある事象を選択しようと試みるのも可能にし得る。他の機能は、他の共有カメラを表示するため、いくつかのカメラを公共カメラとして指定するため、ならびに様々なタイプのデジタルビデオレコーダー（ＤＶＲ）に似た機能（例えば、早送り、停止、巻き戻し、速巻き戻し、スローモーションなど）を使用してカメラタイムラインおよび過去の記録を表示するための機能を含み得る。
【００４７】
ビデオクラウドサービス
本システムは、多種多様なカメラをサポートし得、好ましい実施形態では、これは、ＲＥＳＴ  ＡＰＩを通してサーバーと通信できるカメラを含む。カメラは、典型的には、接続要求を開始し、次いで、例えば、アクセスＡＰＩ鍵ならびにユーザーＩＤおよびカメラ／位置ＩＤ（媒体アクセス制御（ＭＡＣ）アドレスなど）を使用して、初期認証を行うように構成されるであろう。セッションがリモートサーバーと作成されてセッション鍵が発行されると、このセッション鍵は、次いで、様々なカメラ／クライアントとビデオクラウドサービスとの間で安全にデータを交換するために、後続の全てのカメラ通信に対して使用され得る。カメラは、次いで、事象メタデータ、ＪＰＧ画像、およびＨ．２６４または他のビデオフォーマットの事象ビデオおよび同様のものなどのデータを、後の取得のために、システムのクラウドサーバーにアップロードできる。
【００４８】
ユーザー管理サービス
いくつかの実施形態では、ソフトウェアは、様々なタイプのユーザー管理サービス（ＵＭＳ）を提供するように構成され得る。これらは、次いで、ＲＥＳＴ  ＡＰＩまたは他の方法の使用を通して、ユーザーを作成して管理する能力を提供する。ユーザー管理サービスは、様々なウェブポータルに組み込まれ得、このようにしてユーザーが自分のカメラを管理して、様々な事象を表示／管理するのを可能にする。いくつかの実施形態では、セッション管理は、全ての交換されたデータが安全になるように、ＡＰＩ呼出しにも組み込まれ得る。任意選択で、ＵＭＳシステムは、様々なユーザーのログインを認証するために、他の外部ユーザーログイン／パスワードシステムに問い合わせて確認することもできる。
【００４９】
アラート管理サービス
好ましい実施形態では、本発明は、事象が、システムのアラート管理サービス（ＡＭＳ）システムを通して生成されるか、またはシステムもしくはユーザーによって設定された様々なスキームに従ってフィルタ処理されるといつでも、アラートを様々なクライアントコンピュータ制御装置（例えば、携帯電話およびウェブブラウザクライアント）に提供するように構成されるであろう。このシステムは、ユーザーが、そのユーザーの特定の必要性に基づき、個々の事象通知に申し込むのを可能にするように構成できる。アラート管理システムは、事象が検出されるとそれらを管理するために、ユーザーにリアルタイムアラートを提供できる。このシステムは、Ａｐｐｌｅ  Ｐｕｓｈ  Ｎｏｔｉｆｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ、Ｇｏｏｇｌｅ  Ｃｌｏｕｄ  Ｍｅｓｓａｇｉｎｇ、他のクラウドサービス、および他の技術（例えば、シンプルメッセージサービス（ＳＭＳ）、電子メール、自動電話呼出し、音声アラーム、および同様のもの）などの、他のサービスを使用して、事象を中継するようにも構成され得る。いくつかの実施形態では、システムは、ユーザーが、複数のタイプのアラート（例えば、ＳＭＳと電子メール）に申し込むか、または有効にするのも可能にできる。
【００５０】
デバイス管理サービス
デバイス管理サービス（ＤＭＳ）ソフトウェアモジュールは、任意のネットワーク内の様々なシステム装置に対するインターネットアクセスを妨げている可能性がある任意のファイアウォール／ＮＡＴ問題を克服するために使用され得る。ＤＭＳは、追加として、プロビジョニング用に制御データを交換するため、カメラまたはクライアントコンピュータ制御装置によって使用される帯域幅を制御するため、ファームウェアをアップグレードするため、Ｐ２Ｐストリーミングを容易にするためなど、クライアントがカメラとシームレスに通信する能力を提供するように構成され得る。ＤＭＳソフトウェアモジュールは、そのサービスに登録されている全ての装置（例えば、カメラ、クライアントコンピュータ制御装置）を追跡して、少なくともそのシステムマネージャまたは他の認定ユーザーに、そのユーザーが監査する権限を与えられている各装置に対する状態および可用性情報を提供するにも使用され得る。
【００５１】
Ｐ２Ｐビデオストリーミング（ピアツーピアビデオストリーミング）
いくつかの実施形態では、システムは、携帯電話アプリおよびまたはブラウザクライアント（例えば、ＨＴＭＬ５ウェブブラウザクライアント）などの、様々な方法を使用して、データをクライアントコンピュータ制御装置（例えば、スマートフォンおよび同様のもの）に伝送し得る。どちらのソフトウェアも、ＤＭＳを使用して所与のカメラに直接接続するように構成できる。いくつかの実施形態では、ＤＭＳは、次いで、装置またはカメラがネットワーク上のどこにあろうとも、そのクライアントコンピュータ制御装置にアクセス可能なカメラに対してＲＴＳＰ  ＵＲＬを提供することにより動作するであろう。クライアントコンピュータ制御装置は、次いで、ＲＴＳＰデータストリームを取得して、ビデオおよび任意の音声（例えば、Ｈ．２６４ビデオおよびＡＡＣ音声または他のフォーマットのビデオおよび音声）を復号し、それをクライアントコンピュータ制御装置上で再生することが可能であろう。カメラからクライアントコンピュータ制御装置へのダイレクトアクセスのために、これはＰ２Ｐ方式を使用して行われ得る。代替として、Ｐ２Ｐ方式が実現可能でない場合など、システムは、カメラがいつでもアクセスのために利用可能であることを確実にするのを支援するために、自動的に中継サーバー（例えば、メディアリレーサーバー）を使用し得る。
【００５２】
セッションサービス
いくつかの実施形態では、様々なビデオクラウドサービス、ユーザー管理サービス、デバイス管理サービス、およびアラート管理サービスは全て、サーバーと様々なクライアントコンピュータ制御装置との間で安全にデータを交換するためにセッションハンドリングを使用し得る。ここで、ＡＰＩ鍵が生成されて、認定ユーザーだけがサービスにアクセスするのを可能にし得る。ここで、例えば、これらのサービスは、ユーザーを認証して、例えば、セキュアハッシュアルゴリズム（ＳＨＡ）または他の方法を使用して、さらに暗号化され得る一意の「セッション鍵」を作成できる。従って、セッション鍵は、そのセッションを生成している様々なサービスおよび装置によってのみ知られており、安全な通信を確実にするのを支援するために使用され得る。セッション鍵は、不正使用を防ぐのを支援するために、設定された期間（例えば、４時間）の後、失効するようにも設定され得る。
【００５３】
クライアントコンピュータ制御装置ソフトウェア
いくつかの実施形態では、システムは、これら様々なＶＣＳ、ＵＭＳ、ＤＭＳ、およびＡＭＳサービスを実行するソフトウェア（例えば、アプリ、他のタイプのソフトウェア、ＨＴＭＬ５ウェブブラウザクライアントなど）を実行しているクライアントコンピュータ制御装置を使用して動作し得る。このクライアントコンピュータ制御装置ソフトウェアは、本明細書で説明するシステムの一部または全部の態様を使用する能力をユーザーに提供するように構成され得る。これは、新しいアカウントの作成、既存のアカウントの管理、カメラの構成、事象ビデオの表示、ライブビデオの表示などを含み得る。
【００５４】
図２は、プロセッサ制御ビデオカメラ（１００）が、少なくとも１つのリモートＶＣＳインターネットサーバー（１０６）および任意選択で、様々なプロトコルを使用してインターネット接続されたビデオデータ記憶装置（１０８）として使用されるサーバーなどの他のクラウドサーバーとどのように通信し得るかのさらなる詳細を示す。カメラ（１００）は、ＶＣＳインターネットサーバー（１０６）にそれらの状態（例えば、カメラのオンおよび接続されているか否か）を一連の「ハートビート」カメラ状態メッセージ（２００）によって継続的に通知し得る。任意のファイアウォール（１０４）を通過してデータを伝送するのを支援するために、カメラ（１００）は、ＶＣＳインターネットサーバー（１０６）ならびに任意選択でＨＴＴＰおよびＨＴＴＰＳプロトコル（２０２）を通してなど他のサーバー（１０８）とも通信し得、それらのファイアウォールは、一般に、受け入れるように構成されている。いくつかの実施形態では、カメラ（１００）は、ＶＣＳインターネットサーバー（１０６）、ならびにインターネット接続されたビデオ記憶装置（１０８）として使用される他のサーバー、および／またはピアツーピアビデオストリーミング方式（２０４）を使用するクライアントコンピュータ制御装置（１１４）のいずれとも通信するようにも構成され得る。これらのピアツーピアビデオストリーミング方式は、リアルタイムストリーミングプロトコル（ＲＴＳＰ）を含み得、任意選択で、ＩＰ割り当てサーバー（例えば、ＴＵＲＮ「ｔｒａｖｅｒｓａｌ  ｕｓｉｎｇ  ｒｅｌａｙｓ  ａｒｏｕｎｄ  ｎｅｔｗｏｒｋ  ａｄｄｒｅｓｓ  ｔｒａｎｌａｔｏｒｓ（ＮＡＴ）」方式、システムなど）を用いる。ＴＵＲＮ方式の例は、前述した、ＲＦＣ  ５７６６、ＲＦＣ  ６１５６、ＲＦＣ  ７０６５などの、インターネット技術標準化委員会（ＩＥＴＦ）リクエストフォーコメント文書に示されている。
【００５５】
従って、本システムは、様々なクライアントコンピュータ制御装置が、有効にされたカメラからのメディアを構成、制御および表示するのを可能にできる。これを行うために、様々なサーバーの１つ以上が、例えば、１つ以上のウェブアプリケーションをホストでき、それらは、次いで、クライアントコンピュータ制御装置とカメラとの間の通信および認証を仲介できる。他のサーバーインタフェースも使用され得る。いずれのアプローチでも、クライアントコンピュータ制御装置およびカメラは、サーバーに対して要求を行うことができる。このアプローチは、カメラの現在の状態をサーバーに提供するためにも使用できる。これが生じると、サーバーは、単に肯定応答で応答するか、または構成／更新用の追加データで応答するかのいずれかであり得る。
【００５６】
クライアントコンピュータ制御装置を使用している、クライアントが、カメラ構成を更新したい場合、クライアントは、データをサーバーにポストするためにクライアントコンピュータ制御装置を使用することによりこれを行うことができる。サーバーは、次いで、カメラが開始しているオープン通信機構を通じて更新フラグをカメラに送信できる。カメラは、次いで、その装置ＩＤに固有のカメラ構成リストをサーバーから取得できる。
【００５７】
従って、ここで、少なくとも１つのリモートインターネットサーバーは、少なくとも１つのウェブアプリケーションまたは他の通信インタフェースをホストでき、少なくともクライアントコンピュータ制御装置は、このウェブアプリケーションまたは他の通信インタフェースを使用して、このサーバーおよび様々なプロセッサ制御ビデオカメラと通信できる。
【００５８】
クライアントコンピュータ制御装置
このコンテキストでは、クライアントコンピュータ制御装置は、コマンドをサーバーに送信し、その結果として、サーバーを構成して様々なカメラからのライブストリームを要求させ得ることに留意されたい。ここで、クライアントコンピュータ制御装置は、様々な一意のカメラ／装置識別子を使用して、どのカメラを調整すべきかを正確に指定できる。これらの識別子は、適切なコマンドとともに、サーバーに送信され得、サーバーは、次いで、これらのコマンドを適切な識別されたカメラに中継するであろう。クライアントコンピュータ制御装置は、何のカメラビデオ、および何の事象ビデオがクラウドストレージサーバー上に格納されているかを示すリストを、ユーザーが参照するために表示することもできる。クライアントコンピュータ制御装置は、任意の新しい事象に関して任意のアラートをユーザーに中継することもできる。
【００５９】
プロセッサ制御ビデオカメラ
このコンテキストでは、前述同様に、プロセッサ制御ビデオカメラ（カメラ）は、様々な画像処理および音声処理アルゴリズムを使用して、ビデオおよび音声事象を自動的に検出し、これらの事象によってトリガーされたビデオをシステムサーバーにアップロードするように構成できることを覚えておかれたい。これは、次いで、システムサーバーをトリガーして、潜在的興味の事象が生じている（または生じた）ことをクライアントに知らせる通知（例えば、プッシュ通知）を適切なクライアントコンピュータ制御装置に送信できる。カメラは、任意の制御データをサーバーまたはクライアントコンピュータ制御装置から受信するために、クラウドサーバーへのオープン通信ネットワークを継続的に維持しようともし得る。カメラは、通常、サーバー（複数可）へのネットワーク接続が失われていることをカメラが検出すると、カメラが直ちにサーバーへの接続を回復させようと試み、このようにして、可能な場合にはいつでも通信が維持され得ることを確実にするのを支援できるように、構成されるであろう。
【００６０】
クライアントのネットワークに応じて、カメラは、多くの場合、ライブビデオを、その特定のネットワーク接続（例えば、３Ｇ／４Ｇ、ＷｉＦｉ、ＬＡＮ）によって提供される利用可能な帯域幅に一致するように、様々な圧縮レベルおよび品質基準でストリームするように構成されるであろう。代替として、サーバーまたはユーザーが、低品質のネットワークに対処するためのカメラのエフォートが不十分であると判断する場合、サーバーは、介入して、秒あたりもっと低いビット数までビデオをさらに変換するように構成され得る。
【００６１】
すぐ後でより詳細に説明されるように、カメラはまた、バーコード（例えば、ＱＲコード（登録商標））、音声信号通知、他のネットワーク伝送などの使用によるなど、様々なタイプのプロビジョニングプロセスを通じて、特定のネットワークおよび特定のユーザーに適合するようにも構成され得る。一般に、カメラは、そのカメラがプロビジョニングプロセスを通して特定のユーザーに結び付けられるデフォルトモードで構成されるであろう。特別に構成されていない限り、一般に、認定ユーザーのみが、様々なカメラにアクセスして、任意の特定のビデオまたはライブストリームを表示することが可能であろう。初期化時に、例えば、カメラソフトウェアが、あるタイプの光信号（例えば、バーコードＱＲコード（登録商標）、光パターンなど）を表示して、このタイプの光信号を使用し、次いで、カメラ動作の様々な態様を構成することを期待するようにプログラムできる。
【００６２】
図３Ａは、ＶＣＳシステムの構成要素の一部およびやり取りを示すブロック図を示す。図に示すように、多くの場合、ＶＣＳリモートインターネットサーバー（１０６）の機能が、最新のクラウドアーキテクチャ技術を使用して、複数の異なるサーバーとして実装できる。この複数のクラウドベースのサーバーは、分散マルチメディアシステム（ＤＭＳ）ピアツーピア（Ｐ２Ｐ）サーバー（３００）、アプリケーションサーバー（３０２）、負荷分散装置（３０４）、ユーザー管理サーバー（３０６）（多くの場合、ユーザーデータ用のデータベース（３０８）に接続している）、ならびにシステムを管理する（例えば、アラートおよびアラームの生成、管理の通知など）目的で使用される他のサーバーおよび装置（３１０）を含み得る。インターネット接続されたビデオ記憶装置（１０８）として使用されるサーバーの機能は、様々なストレージサーバー（３１２）（多くの場合、データベース１１０を管理するために使用される）、ビデオサーバー（３１４）、様々なデータベースおよびインデックスソフトウェアおよびメモリ管理装置（３１６）、ならびに同様のものなどの、複数の異なるサーバーによっても処理され得る。
【００６３】
サーバー・カメラ通信およびインタフェース
前述のように、いくつかの実施形態では、カメラおよびサーバーは、安全でステートレスなＲＥＳＴｆｕｌ  ＡＰＩを使用して通信するように構成され得る。ここで、システムによって公開されたＡＰＩは、ＨＴＴＰセッション内で情報が維持されない、個別の要求に依存する。結果として、いずれのサーバーも、サーバークラスタリングを必要とすることなく、任意のカメラ要求に対応できる。このステートレスな方法は、システムが要求に応じて水平方向にスケールアウトするのを容易にするのも支援する。
【００６４】
従って、これらの実施形態では、ビデオのアップロードは、理想的には、幾分信頼できないネット上でさえ、単一のＨＴＴＰ要求をオーバーロードすることなく、動作するように設計された、段階的な事象駆動方式で行われる。これは、システムが迅速に動作するのを可能にし、また、困難な状況でさえ；ビデオの少なくとも２、３の部分がアップロードされるのを確実にするのも支援する。データが失われた場合、システムは任意選択で、そのビデオを一連のさらに小さいサイズのデータ要求として取得しようと再試行でき、それは一般に、ビデオ全体を単一の要求としてアップロードしようとするよりも厄介でない。
【００６５】
この好ましい実施形態では、事象駆動アーキテクチャ（ＳＥＤＡ）の使用は、事象がカメラから作成されるや否や、カメラがそのビデオをアップロードするのを待つことなく、システムがカメラの所有者（ユーザー、クライアント）に直ちに警告するのも可能にする。
【００６６】
いくつかの実施形態では、カメラは、ビデオセグメントアプローチを並列化して、複数のサーバーに同時に接続することにより、さらに高速なビデオアップロードを達成するためにも、ＳＥＤＡアプローチを使用できる。
【００６７】
システムは、様々なタイプのメタデータ情報が、様々なカメラおよび事象を含め、様々なオブジェクトおよびデータファイルに適用されるのも可能にすることに留意されたい。追加として、任意のタイプのメディアもアップロードされ得る。この柔軟なアプローチは、システムが、任意のカメラ装置に対してクラウドサービスバックボーンとして機能するのを可能にする。
【００６８】
言い換えれば、これらの方法によれば、少なくとも１つのインターネットサーバーは、段階的な事象駆動アーキテクチャに従って、プロセッサ制御ビデオカメラ、および／またはクライアントコンピュータ制御装置のいずれかと通信できる。これは、表現状態転送（ＲＥＳＴ）アプリケーションプログラミングインタフェース（ＡＰＩ）を使用して行うことができ、それにより、ＨＴＴＰまたはＨＴＴＰＳセッション内で情報が維持されないＨＴＴＰまたはＨＴＴＰＳセッションを生成する。これは、これらの方法の拡張性を向上させる。
【００６９】
セキュリティ／認証
セキュリティを維持して、様々なカメラおよびクライアントコンピュータ制御装置を認証するために様々なアプローチが使用され得る。１つの方法は、接続された装置を認証するために期限切れになる鍵と秘密のペアを使用することである。このアプローチの利点は、この認証方式が、ＨＴＴＰ／アプリケーションサーバー内にセッションを維持する必要なく行われ得ることである。これは、その結果として、システムが要求に応じて水平方向に拡大するのに役立つ。
【００７０】
一実施形態では、このプロセス認証プロセスは、以下のように動作し得る：
ａ）装置が、ＨＴＴＰＳ／ＳＳＬを通して、秘密のＡＰＩ鍵およびＡＰＩパスワードでＶＣＳに対して認証する。
ｂ）ＶＣＳは、期限切れになる秘密鍵およびパスワードを装置に割り当て、装置は、これらが失効するまで将来の全ての要求に対して使用する。
ｃ）以降の全ての要求において、パスワードがワイヤー上で奪われないことを確実にするために、装置は秘密鍵およびパスワードのＳＨＡハッシュを時間と共に送信する。
ｄ）秘密鍵は、装置を一意に識別する一意の鍵（ローカルＩＤ）とも結び付けられ、それは、再度、装置内で時間にＳＨＡハッシュされる。
ｅ）ＳＨＡハッシュおよびタイムスタンプは、ワイヤーを通してリッスンしている誰かが偽って要求できないことを確実にするのを支援する。
ｆ）期限切れになる鍵は、たとえ誰かが力ずくでＳＨＡハッシュを何とか破ったとしても、その鍵が使用できないことを確実にするのに役立つ。
【００７１】
もっと簡単に言い換えれば、様々なプロセッサ制御ビデオカメラ、様々なシステムインターネットサーバー、および様々なクライアントコンピュータ制御装置の間の通信は、少なくとも１つの期限切れになるトークンおよび少なくとも１つの暗号鍵を使用することによって保護できる。
【００７２】
カメラのプロビジョニング（ネットワーク構成およびクライアントコンピュータ制御装置へのバインド）
以前の説明をさらに詳しく説明するために、いくつかの実施形態では、システムは光学的方法を用いてカメラをプロビジョニング（例えば、ネットワーク構成および特定のクライアントコンピュータ制御装置へのバインドを行う）できる。ここで、例えば、ユーザーが新しいカメラをインストールする（または、既存のカメラを再構成する）と、ユーザーはユーザーのクライアントコンピュータ制御装置を使用してシステムにサインインし、新しいカメラのセットアップを要求できる。例えば、クライアントコンピュータ制御装置上で実行しているアプリは、サーバーが、光学バーコードまたはＱＲコード（登録商標）などの、カメラセットアップトークンを生成することを要求でき、カメラセットアップトークンは、プロセッサを搭載したカメラが次いで、構成情報を抽出するために読み取って使用できる。このカメラ構成は、ローカルネットワーク接続されたＷｉＦｉルーターのＷｉＦｉ  ＳＳＩＤ（サービスセット識別子）、ローカルＷｉＦｉパスワードなどの情報、および位置識別コード、顧客識別、カメラトークン、および同様のものなどの他の情報を含み得る。
【００７３】
この例では、カメラがＷｉＦｉ送受信機を有し、本発明のソフトウェアの少なくとも一部を用いてデフォルト構成され、そうでなければインターネットにまだ接続されていない、と仮定する。ここで、クライアントコンピュータ制御装置は、適切なＱＲコード（登録商標）を生成でき、それは、次いで、クライアントコンピュータ制御装置のディスプレイ画面上に表示されるか、または印刷されるかのいずれかである。このＱＲコード（登録商標）がカメラに対して示されると、カメラプロセッサは、適切なバーコード認識ソフトウェアを使用して、ＷｉＦｉ  ＳＳＩＤおよびパスワードを抽出し、この情報を使用して、おそらくは、カメラシステムソフトウェア内に以前に格納されたか、または代替としてＱＲコード（登録商標）でも提供される、クラウドサーバーＵＲＬを使用して、インターネットに接続できる。カメラおよびサーバーは、次いで、ロケールコードを利用して、カメラの位置に応じて、デフォルトのシステムサーバーＵＲＬをセットアップできる。この方式は、従って、任意のカメラが、カメラの地理位置情報に従って、システムサーバーにプロビジョニングされるのを可能にする。
【００７４】
カメラは、次いで、顧客ＩＤ、カメラトークン、およびカメラＩＤを取得して、システムサーバーで登録できる。うまく登録できると、カメラは、「ハートビート」（例えば、カメラ状態メッセージ）のシステムサーバー（例えば、ＤＭＳサーバー）への送信を開始するのを許可される（そして、可能になる）であろう。一旦、登録されると、カメラは、現在、システムサーバー上で構成されていて、適切なユーザーに自動的に関連付けられる（プロビジョニングされる）。
【００７５】
ネットワーク操作のためにプロセッサ制御ビデオカメラを構成する他の方法も可能である。これらの方法は、ＷｉＦｉ  ＳＳＤ、ＷｉＦｉパスワード、位置決めコード（ｌｏｃａｔｅ  ｃｏｄｅ）、顧客ＩＤ、およびカメラトークンからなる群から選択された少なくともいくつかの情報を符号化する、１つ以上のバーコードまたは他のタイプの光学コードを使用することを含み得る。カメラ構成の他の代替方法は、一連の可聴音、または光もしくは赤外線強度もしくはカラーにおける変動として符号化されたネットワーク通信情報を使用すること；またはＢｌｕｅｔｏｏｔｈ（商標）もしくはＷＡＰもしくは適切なネットワークセットアップデータを転送するための他の無線ベースの方法を使用することを含む。カメラソフトウェア／ファームウェアは、プロビジョニングの１つの方法が適切でないことが分かった場合に、プロビジョニングの代替方法が自動的に（または手動で）選択され得るように、複数の方法によってプロビジョニングを試行するように構成され得る。
【００７６】
ビデオ記憶
いくつかの実施形態では、システムは、Ａｍａｚｏｎ  Ｓ３、Ｒａｃｋｓｐａｃｅ  Ｃｌｏｕｄ  Ｆｉｌｅｓ、Ｇｏｏｇｌｅなどの第三者クラウドサービスプロバイダーを使用してビデオを格納し得る。これらのベンダーは、高度に拡張可能な、オンデマンドの、従量制のファイル記憶およびサービングプラットフォームを提供する。本発明は、全てのタイプの記憶装置と連携できるが、いくつかの実施形態では、かかる第三者の拡張可能なクラウドサービスプロバイダーの使用は、有用であり得る。
【００７７】
多数のビデオを格納／供給するプロセスを、費用を最小限に抑えて、ビデオを安全に保つと同時に、さらに認証されたエンドユーザーに対して見易くしながら、容易にするのを支援するために、いくつかの実施形態では、システムは、様々なビデオファイルおよび他のファイルを、１２８ビット暗号化ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）などの暗号化ＵＲＩとして格納し得る。かかる暗号化ＵＲＩは、ユーザーがシステムにログインするとユーザーアプリケーションによって透過的にフェッチでき、そのビデオフォーマットをサポートする任意のプレーヤーで直接再生できる。
【００７８】
いくつかの実施形態では、システムは、少なくとも１つのリモートインターネットサーバーからのコマンドをさらに使用して、プロセッサ制御ビデオカメラをさらに構成し、ビデオデータを直接、少なくとも１つのインターネット接続されたビデオデータ記憶装置にストリームして、このビデオデータをこのビデオデータ記憶装置のメモリに格納し得、それによりリモートに格納されたビデオデータを作成する。
【００７９】
いくつかの実施形態では、このビデオデータ記憶装置は、前述した自動サービスプロビジョニングおよび仮想マシン移行方法に従って動作する、第三者クラウドファイルホスティングサービスまたは他のクラウドファイルホスティングサービスによって提供できる。言うまでもなく、「第三者」サーバーがそれ自体で使用される実際の要件はなく、本当にシステムの運営者が、かなり多額の費用を想定することを望む場合には、必要に応じて彼ら自身の拡張可能なサーバーを提供できる。
【００８０】
ビデオデータ記憶装置のタイプの関わらず、これらの実施形態では、システムはリモートインターネットサーバー（複数可）を使用して、これらのリモートに格納されたビデオデータに関する情報を様々なクライアントコンピュータ制御装置に送信するか、またはそれらから受信することができ、それによりこれらのクライアントコンピュータ制御装置が後にこのリモートに格納されたビデオデータを取得するのを可能にできる（これは、クライアントに、格納されたビデオデータの１２８ビット暗号化ＵＲＩを教えるシステムと同じくらい単純であり得るか、または他の方法による）。ここで、インターネット接続されたビデオ記憶装置（複数可）は一般に、リモートインターネットサーバー（複数可）によって収容されるか、そうでなければリモートインターネットサーバーによって収容されないことに留意されたい。
【００８１】
事象、事象検索および事象管理
いくつかの実施形態では、プロセッサ制御ビデオカメラは、カメラの実世界環境において事象によって引き起こされた変化を自動的に検出するために、様々な音声またはビデオ検出パラメータを使用するようにさらに構成され得る。これらの検出パラメータに従い、カメラは次いで、これらの事象によって引き起こされた変化に関するデータをリモートインターネットサーバー（複数可）に伝送できる。ここで、これらの検出パラメータは、クライアントコンピュータ制御装置（複数可）およびこれらのサーバーによって構成され得る。
【００８２】
一旦、これらの検出パラメータが設定されると、プロセッサ制御ビデオカメラは（これらの検出パラメータに従って動作するカメラプロセッサおよびソフトウェアを使用して）、これらの事象に対して実世界環境位置（複数可）を監視できる。これらの事象が検出されると、カメラは、これらの事象に関するデータをインターネットサーバー（複数可）に中継でき、インターネットサーバーは、次いで、事象によって引き起こされた変化に関するデータを少なくとも１つのコンピュータ制御装置に伝送できる。
【００８３】
様々なタイプの事象が、この方式に従って自動的に検出されて報告でき、侵入検出、動き検出（または指示による動き検出）、カメラの不正使用検出、顔検出、音声アラート、カメラまたは他の装置のオフラインアラート、他の異常な視覚的検出事象、および他の異常な音声検出事象を含む。
【００８４】
通常、システムは、カメラが（複数可）がサーバーに提供する「ハートビート」カメラ状態メッセージを通して、カメラがオフラインであるかどうかを判断することが可能である。これらのメッセージが、ネットワーク問題、カメラの電力、カメラの不正使用、または任意の他の不具合に起因して停止すると、サーバーは、カメラが実際にオフラインであるかどうかを判断するために、例えば、有限状態機械を利用して様々な自動化テストを実施できる。所与のカメラがオフラインであるとサーバーが判断すると、サーバーは、妥当な事象が生じたことを登録して、この事象が任意のクライアント通知選択と一致するかを判断でき、そうであれば、クライアントコンピュータ制御装置に様々な方法（例えば、プッシュ方式など）で通知する。
【００８５】
より一般的には、これらの事象は、１つ以上の侵入事象、指示による動き事象、カメラの不正使用事象、顔検出事象、人物検出または認識事象、行動認識事象、音声アラート事象、カメラオフライン事象、温度またはホームセンサーアラート事象、他のセンサーによって生成または検出されてプロセッサ制御ビデオカメラに伝送された事象、および様々な検出パラメータに従いプロセッサによって自動的に分析できる音声または視覚信号のいずれかを生成する他の事象を含み得る。
【００８６】
事象データは、その事象が記録された実世界の位置、どのカメラまたはセンサーがそれを記録したか、その事象が記録された時間および日付、事象の状態（進行中、終了した、完全に記録された、など）などの、全ての事象に存在するデータをさらに含み得る。
【００８７】
追加として、様々なメディアデータが事象データに付加できる。この事象付加またはメディアデータは、その事象の実際の音声またはビデオ記録であり得、それは、任意選択で、必要に応じて、様々な時間セグメントにわたる部分記録のセットとして格納できる。代替として、メディアは、全ての事象時間セグメントを含む完全な事象として格納され得る。
【００８８】
その上、様々なタイプの他の事象メタデータが格納され得る。このメタデータは、事象データおよびメディアが、サーバーを修正する必要なく、様々な場合および装置および要件に対して使用されるのを可能にできる。このデータは、例えば、カメラ／装置の開発者が任意の所望の情報を格納ために利用できる鍵値の任意のセットであり得、従って、事象メタデータを拡張する。
【００８９】
システムは、一般に、ユーザーが様々なクライアントコンピュータ制御装置を使用して、事象レコードを検索し、事象の日付、タイプ、位置、メタデータなどに基づきソートまたはフィルタ処理するのも可能にするであろう。
【００９０】
事象通知を受信するためのクライアントコンピュータ制御装置の構成
システムは一般に、ユーザーが、自分のクライアントコンピュータ制御装置（例えば、Ａｎｄｒｏｉｄ／ｉＯＳ装置および同様のもの）を登録して、ユーザーのカメラおよびセンサーによって検出された任意の事象に関する通知を自動的に受信するのを可能にするように構成される。
【００９１】
一般に、クライアントコンピュータ制御装置を登録するプロセスは、その装置が使用したオペレーティングシステムのタイプに依存しないようにできる。すなわち、システムは任意の所与のコンピュータ制御装置を登録するプロセスを抽象化して、装置のオペレーティングシステム（例えば、ｉＯＳ、Ａｎｄｒｏｉｄ、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）など）に関わらずプロセスを同様にできる。通知プロセスは、ＨＴＴＰ／ＨＴＴＰＳメッセージまたはＴＣＰもしくはＵＤＰメッセージまたはＨＴＭＬ５ウェブソケットエンドポイント方式、および同様のものなどの、様々なメッセージフォーマットによって進めることができる。
【００９２】
通知プロセスは、通常、カメラ／センサーに対して透過的である。いくつかの実施形態では、カメラおよびセンサーが行う必要があるのは、事象が生じた場合にサーバー（複数可）に通知することであり、サーバーは次いで、事象通知を適切な登録済みクライアントコンピュータ制御装置に転送するのを取り計らう。
【００９３】
図３Ｂは、多数のビデオカメラおよびクライアントにわたる高拡張性のために構成される、本発明の連続記録サーバー実施形態の詳細を示す。
【００９４】
いくつかの実施形態では、インターネット接続されたビデオデータ記憶装置（１０８）は、連続記録サーバー（１０８ａ）として構成され得る。これが、図３Ｂに示されている。この実施形態では、前述同様に、連続記録サーバー（１０８ａ）は、システムが拡大して、前述した１〜１００，０００あるいはさらに１〜１０，０００，０００＋の範囲のビデオカメラなどの、非常に多数のビデオカメラ（１００）を処理するのを可能にするアーキテクチャを使用する。
【００９５】
この実施形態では、目標は、ビデオデータを、格納および後の検索のために可能な限り効率的に捕捉することである。いくつかの実施形態では、ビデオ記録はほぼ継続的に生じているであろうが、格納されたビデオデータのクライアント再生は、典型的には、時々生じるだけであろう。この実施形態では、連続記録サーバー（１０８ａ）は、少なくとも１つのプロキシサーバー（３５０）、少なくとも１つの記録サーバー（３５２）および少なくとも１つのメディアサーバー（３５４）を含むと考えられ得る。これらは、その結果として、（図のように）別々のサーバー上に常駐できるか、またはいくつかの場合には、必要に応じて同じハードウェア上に常駐し得る仮想サーバーインスタンスであり得る。
【００９６】
この実施形態では、１つ以上のプロキシサーバー（３５０）が、ビデオおよび音声データを、様々なビデオカメラ（１００）の一部または全部から、一部または全部のネットワークを通じて捕捉するように構成され得る。好ましい実施形態では、プロキシサーバー（複数可）（３５０）は、標準的なネットワークＴＣＰ／ＴＬＳタイプの接続を通じてアクセス可能である。プロキシサーバーは、ビデオデータを、好ましくは標準フォーマットで受信して、１つ以上の記録サーバー（３５２）のいずれか、および／または他のクライアントコンピュータ制御装置（１１２ａ）、もしくは様々なタイプのメディアサーバー（３５４）まで、多重送信および中継するように構成される。加えて、必要に応じて、プロキシサーバー（複数可）（３５０）は、ビデオデータを拡張可能な記憶システム（例えば、第三者のストレージサーバー１１０、記録サーバー３５２）から取得して、この格納されたビデオデータを直接クライアントコンピュータ制御装置に同様にストリームするためにも（記録サーバー３５２パイプラインの後のステージで）使用できる。
【００９７】
いくつかの実施形態では、記録サーバー（３５２）は、パイプラインの後のステージで、ビデオ（および音声）データを、様々なクラウドシステム構成要素（メディアサーバー３５４およびプロキシサーバー３５０など）によって容易に消費できるフォーマットに結合できる。記録サーバー（３５２）は、ビデオデータを後に取得するために、任意の拡張可能なストレージ（例えば、Ａｍａｚｏｎ  Ｓ３  Ｓｉｍｐｌｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ、および同様のものなどの第三者ストレージサーバー１１０）に格納するようにも構成できる。記録サーバー（３５２）は、ＶＣＳリモートインターネットサーバー（１０６）を、格納されたビデオデータに関する情報で自動的に更新するようにも更新でき、この格納されたビデオデータが様々なクライアントコンピュータ制御装置（１１２）によって後に取得できるようになる。
【００９８】
いくつかの実施形態では、メディアサーバー（３５４）は、ビデオ（および音声）データを、リアルタイムメッセージングプロトコル（ＲＴＭＰ）、ＨＴＴＰライブストリーミング（ＨＬＳ）ビデオフォーマット、リアルタイムストリーミングプロトコル（ＲＴＳＰ）などの、様々な標準ストリーミングフォーマットにコード変換するように構成され得る。これは、ビデオデータを多数の異なるタイプのクライアントコンピュータ制御装置（１００）上に効率的に表示するプロセスを容易にする。
【００９９】
いくつかの実施形態では、ビデオカメラ（１００）は、プロキシサーバー（３５０）またはプロキシサービスを介して記録サーバー（３５２）に接続し得る。これは、ビデオデータが記録サーバー（３５２）に比較的直接的に送信されるのを可能にし、記録サーバーで、それは次いで、例えば、後に使用するために、拡張可能なストレージ（１１０）に格納できる。代替として、ビデオデータは、そのデータを記録サーバー（３５２）に送信することなく、クライアントコンピュータ制御装置（１１２）にも中継され得る。これは、例えば、記録されたデータをプロキシサーバー（３５０）に戻し、次いで、ビデオデータをクライアントコンピュータ制御装置に、プロキシサーバー（３５０）（例えば、１１２ａ）から直接、またはメディアサーバー（３５４）を介してクライアントコンピュータ制御装置（１１２ｂ）に間接的に、ストリームバックすることにより、行われ得る。
【０１００】
一般に、連続記録サーバー（１０８ａ）は、様々なビデオカメラ（複数可）（１００）と様々なクライアントコンピュータ制御装置（１１２）との間の通信を処理するために、ＤＭＳサーバー（複数可）（３００）およびＶＣＳリモートインターネットサーバー（１０６）と通信する必要もある。ここで、例えば、様々な個々のサービスは、多くの場合、以前に記録されたデータを取得するため、または特定のビデオカメラ（１００）のビデオストリームのユニフォームリソースロケーター（ＵＲＬ）を得るために、ＤＭＳ（３００）およびＶＣＳリモートインターネットサーバー（１０６）と通信し得る。
【０１０１】
さらなるカメラ制御機能
いくつかの実施形態では、システムは、ユーザーが、様々なカメラ機能を自分のクライアントコンピュータ制御装置から制御するのも可能にするであろう。ここで、クライアントコンピュータ制御装置、リモートインターネットサーバー（複数可）、およびプロセッサ制御ビデオカメラは、カメラパン／チルト／ズームコマンド、カメラ解像度変更コマンド、カメラ照明変更コマンド、ビデオストリーミング変更コマンド、ファームウェアアップグレードコマンド、および様々な自動事象検出パラメータコマンドなどの、コマンドを受信し、それに従って動作するように構成できる。
【０１０２】
いくつかの実施形態では、システム（例えば、ＤＭＳ）サーバーは、ウェブページを供給するウェブサーバーをさらに含み得、ウェブページは次いで、様々なクライアントコンピュータ制御装置と様々なカメラとの間の認証、承認および通信のうちの１つ以上を目的として使用できる。
【０１０３】
例えば、１つのかかる実施形態では：
ａ）カメラが、ＨＴＴＰ要求、ロングポーリングＨＴＴＰ要求、双方向常時オープンソケット、双方向常時オープンウェブソケット、拡張可能なメッセージングおよびプレゼンスプロトコル（ＸＭＰＰ）、メッセージングキューイングテレメトリートランスポート（ＭＱＴＴ）、および同様のものなどの、様々な前述した手段を介して、サーバー（複数可）に接続する。
【０１０４】
ｂ）カメラ（複数可）が、カメラ状態メッセージ「ハートビート」および追加のデータをサーバーに伝送し、このようにして、サーバーにカメラの現在の状態に関して通知する。これらの「ハートビート」カメラ状態メッセージは、例えば、サーバーへのＨＴＴＰ呼出し／要求、ソケットタイプメッセージ、ＸＭＰＰメッセージ、および同様のものであり得る。
【０１０５】
ｃ）上の確立された接続（または追加の接続）を使用して、サーバーが次いで、コマンドおよび関連付けられたデータをカメラに送り返して、ｃ１）カメラの様々な制御パラメータを変更する；ｃ２）要求に対して、ＩＣＥ／ＳＴＵＮ／ＴＵＲＮプロトコルリプライなどであるがそれらに制限されない、カメラとクライアントコンピュータ制御装置との間のピアツーピア通信を確立するためのデータで応答する；ｃ３）ライブもしくは記録されたビデオ、音声、もしくは任意の種類の知覚データであり得る、任意の種類の知覚データストリームで応答する；またはｃ４）制御パラメータを変更する要求の肯定応答で応答する；などの、様々な動作を実行するようにカメラに指示する。
【０１０６】
ｄ）クライアントコンピュータ制御装置は、上のステップ「ａ」で前述した様々な手段の１つを使用して、ＤＭＳサーバーへの接続も確立できる。
【０１０７】
ｅ）クライアントコンピュータ制御装置は、次いで、様々なタイプのカメラ制御データをサーバーに送信できる。このカメラ制御データは、サーバーによって解釈され、上のステップ「ａ」で確立された手段を使用してカメラに中継される。加えて、サーバーおよびまたはカメラは、追加のデータ（例えば、「コマンドが受理された」、「コマンドが受理されなかった」など）をクライアントコンピュータ制御装置に伝送することにより、このカメラ制御データに対して肯定応答または応答することもできる。その上、カメラが、上のステップ「ｃ」におけるように、任意のデータをサーバーに送信している場合、サーバーは次いで任意選択で、それをクライアントコンピュータ制御装置にも中継して送り返すことができる。
【０１０８】
図４は、プロセッサを搭載したビデオカメラがデバイスマネージャサービス（ＤＭＳ）サーバーとどのようにやり取りし得るかの流れ図を示す。
【０１０９】
カメラ（１００）は、最初に、ＶＣＳリモートインターネットサーバー（１０６）（例えば、ＤＭＳサーバー（３００））との全ての通信を開始するためにセッションを作成する。カメラ（１００）が以前に登録されていない場合、カメラは次いで、自身をサーバー（１０６）または（３００）で登録しようと試み、多くの場合、デフォルト構成が次いでこのカメラに対して使用される。サーバー（１０６）または（３００）は、次いで、その特定のカメラ（１００）と関連付けられた任意のカメラメタデータを取得し、このメタデータはサーバー（１０６）、（１０８）内に格納されるであろう。
【０１１０】
カメラメタデータは、カメラ製造業者、モデル、ファームウェアバージョンなどを含むが、それらに制限されず、様々なタイプのカメラ（複数可）（１００）を識別する情報を含み得る。一旦、登録されると、カメラは次いで、適切なカメラ構成を取得して、カメラ（複数可）がアクティブな状態を維持している間は通常、無期限に継続する「ハートビート」ループに入る。
【０１１１】
このハートビートループ内で、カメラは定期的に「ハートビート」カメラ状態メッセージをインターネットサーバー（１０６）、（３００）に伝送する。これは、リモートサーバーへの接続を維持するのに役立つ。この「ハートビートループ」中、カメラは、以下を含むがそれらに制限されない、様々な他の動作も実行できる：
【０１１２】
ａ）カメラ構成を更新する（例えば、カメラが任意の更新されたカメラ構成パラメータをサーバー（１０６、３００）から取得する）。
【０１１３】
ｂ）画像ストリーム要求を処理する（例えば、カメラはビデオ画像ストリームを、多くの場合、クライアント（１１６）によるクライアントコンピュータ制御装置（１１２）を通じた要求に応じて、瞬時オンライブストリーミング用にクライアントコンピュータ制御装置（複数可）（１１２）に中継するために、サーバー（１０６、３００）に送信する）。
【０１１４】
ｃ）カメラ制御要求を処理する−ここでは、カメラ（１００）が、手動記録トリガー、ピアツーピアストリーミング要求、他のカメラに関連したセンサー（例えば、温度、湿度、音、動き）からのデータのプッシュツートーク要求、ファームウェアアップグレード要求、カメラリブート要求などの、クライアント（１１６）（１１２）から直接中継された任意の制御データを取得する。
【０１１５】
ｄ）エラーを処理する（例えば、無効なカメラトークン、無効なセッション情報などの、エラーコードを受信すると、サーバー接続を終了するように構成されたカメラ）。システムは次いで、エラーのタイプに応じて、適切な個別化された是正措置をとるように構成できる。
【０１１６】
カメラファームウェアのアップグレード、クライアントコンピュータ制御装置ソフトウェアのアップグレード。
図５は、プロセッサを搭載したビデオカメラおよび／またはクライアントコンピュータ制御装置のファームウェアまたは他のソフトウェアがどのようにアップグレードされ得るかを示す。このファームウェアは、一般に、カメラ（１００）のプロセッサまたはクライアントコンピュータ制御装置（１１２）に指示して本明細書で説明する発明方法を実施するために必要なソフトウェアである。多くの場合、このファームウェアは、ランダムアクセスメモリ、フラッシュメモリ、磁気ディスクメモリ、および同様のものなどの、カメラ（１００）またはクライアントコンピュータ制御装置（１１２）に搭載されたメモリ内に格納されるであろう。
【０１１７】
これらの方法によれば、カメラ（１００）は、その現在のファームウェアバージョンをＶＣＳリモートインターネットサーバー（１０６）に自動的、手動のいずれかで伝送できる（５００）か、あるいはファームウェア更新のための要求を伝送できるだけである。同様にクライアントコンピュータ制御装置（１１２）も、その現在のファームウェアバージョンをＶＣＳリモートインターネットサーバー（１０６）に自動的または手動のいずれかで伝送できる（５０２）か、あるいはファームウェア更新のための要求を伝送できるだけである。ＶＣＳリモートインターネットサーバー（複数可）（１０６）は、ファームウェアの適切な最新バージョンを（５０４）カメラ（１００）またはクライアントコンピュータ制御装置（５０６）（１１２）に伝送することにより応答できる。
【０１１８】
クラウドカメラは、一旦、ユーザーによって要求されていると、自動アップグレードを実行できる。カメラがアップグレードするための要求を受信すると、カメラは、例えば、要求からカメラに対して渡されたファームウェアＵＲＬを使用して、ファームウェアファイルをダウンロードできる。ファームウェアファイルのダウンロードが完了すると、アップグレードプロセスが開始できる。他の方法も使用できる。
【０１１９】
アップグレードプロセスは、カメラまたはクライアントコンピュータ制御装置が、任意の失敗に起因して、アップグレードプロセスの任意の段階から回復するのが可能であることを確実にするために段階的にも処理できる。例えば、ダウンロードファイルが完了した後、カメラプロセッサは、ダウンロードファイルが正しいかを確認し、次いでカメラを「セーフモード」にリブートできる。このセーフモードは、カメラのカーネルまたはファイルシステムをカメラのメモリ（例えば、フラッシュ、ＮＡＮＤなど）に書き込むのを可能にする最小限のパーティションであり得る。アップグレードが完了した後、カメラは次いで、正規動作のためにノーマルモードにリブートして戻すことができる。
【０１２０】
追加として、いくつかの実施形態では、特権ユーザーおよびシステム管理者が、カメラにプッシュされる任意のファームウェアバージョンを追加、修正、および削除するのを可能にするために、管理ポータル（例えば、ウェブページ）が利用できる。これは、特権ユーザーがファームウェアアップグレードを様々な顧客およびカメラにプッシュするのを可能にする。
【０１２１】
ピアツーピアビデオストリーミング
好ましい実施形態では、システムは、少なくとも時々、ピアツーピアビデオストリーミング方式などの、様々なストリーミング方式に従って動作するであろう。かかるピアツーピアビデオストリーミング方式は、システムサーバー上の負荷を低下させるのに役立ち得、従って、システム資源に関する要求を減らし、要求が増加するにつれてシステムスケーリングを容易にするのに役立つ。
【０１２２】
ここで、かかるストリーミング方式は、様々な初期サーバーィハンドシェイクおよびビデオストリーミングプロセスを開始するために必要なデータを伝達できるセットアップメッセージを使用して開始できる。
【０１２３】
その後（直接Ｐ２Ｐ接続が可能であると仮定して）、カメラは次いで、データを直接クライアントコンピュータ制御装置にストリームするように構成できる。ここで、サーバー上の負荷を減らすために、サーバーへのＰ２Ｐ接続は、必要に応じて切断され得る。
【０１２４】
しかし、カメラとクライアントコンピュータ制御装置との間の直接Ｐ２Ｐ接続が（例えば、問題のあるファイアウォールに起因して）可能でない場合、サーバーが継続して関与し、必要に応じて中継接続として機能し得る。
【０１２５】
言い換えれば、いくつかの実施形態では、リモートインターネットサーバー（複数可）からのコマンドが、ビデオデータを直接（例えば、Ｐ２Ｐ方式を使用して）クライアントコンピュータ制御装置にストリームするか、または代替としてリモートインターネットサーバーを経由してビデオデータをクライアントコンピュータ制御装置にストリームするように、ネットワーク接続されたビデオカメラをさらに構成するために使用できる。
【０１２６】
システムは、様々なピアツーピアストリーミングアプローチを使用して、様々なファイアウォールおよび他のネットワーク障害を克服しようと試行できる。例えば、システムは、様々なファイアウォールを通過する転送を容易にするのを支援するためにリアルタイムストリーミングプロトコルを採用し得る。加えて、システムは、カメラとクライアントコンピュータ制御装置との間の直接Ｐ２Ｐが実現不可能であると判断する（従って、代替のサーバー中継方式に後退する）前に、様々なネットワークアドレス変換（ＮＡＴ）トラバーサル技術などの技術を使用して、カメラとクライアントを直接接続する複数の試行を行うように構成され得る。
【０１２７】
カメラとクライアントコンピュータ制御装置との間のＰ２Ｐストリーミングの様々な方法は、以下を含む：
【０１２８】
１：ローカル：クライアントコンピュータ制御装置およびカメラが同じローカルＬＡＮまたはＷｉＦｉネットワーク上にある場合、問題は大いに単純化される。その２つの装置は、いかなるトラバーサル方法もさらに必要とすることなく、ローカルのＬＡＮ／ＷＩＦＩ装置として互いに通信できる。
【０１２９】
ピアツーピア（Ｐ２Ｐ）直接接続を確立するために、Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ａｒｏｕｎｄ  ＮＡＴ（ＴＵＲＮ）などの、ＩＰ収集サーバーが、セキュリティ目的で認証証明書セットを有するグローバルサーバーとして使用できる。クライアントコンピュータ制御装置およびカメラの両方は、ＮＡＴのためのセッショントラバーサルユーティリティ（ＳＴＵＮ）などの、任意の機構を使用して、それらそれぞれのＩＰアドレスリストを、ピアとしての直接通信に備えて、このＩＰ割当てサーバーから収集する。クライアントコンピュータ制御装置は次いで、カメラからのストリームをＤＭＳサーバーを通じて要求でき、ＤＭＳサーバーは、２つのピア間でアドレス候補のリストを中継するであろう。カメラおよびクライアントは次いで、直接Ｐ２Ｐデータチャネルが通信用にオープンされるまで、双方向接続性確立（ＩＣＥ：Ｉｎｔｅｒａｃｔｉｖｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  Ｅｓｔａｂｌｉｓｈｍｅｎｔ）などの、プロトコルを使用し、候補アドレスのリストを通して相互に接続しようと試行できる。
【０１３０】
このモードでは、カメラおよびクライアントコンピュータ制御装置は、ネットワークＬＡＮまたはＷｉＦｉネットワークにローカルである。サーバーは、カメラに、ビデオストリーム（ＲＴＳＰビデオストリームなどのフォーマット）または画像のＭｏｔｉｏｎ  ＪＰＧシーケンスをクライアントコンピュータ制御装置に直接送信するように要求できる。クライアントコンピュータ制御装置はこのビデオを適切なネットワークポートを経由してローカルに受信し、（１）ＲＴＳＰまたは（２）Ｍ−ＪＰＧまたは（３）カスタム交換フォーマットに基づいて、ビデオデータを表示する。そのモードでは、ビデオまたは画像データはインターネット中継サーバーまたはＮＡＴトラバーサルルートを経由する必要がない。
【０１３１】
２：直接：一般に、ファイアウォールおよび他のネットワーク障害を克服するために様々なＮＡＴトラバーサル方法を使用した、直接、カメラとクライアントコンピュータ制御装置との間でのピアツーピア（Ｐ２Ｐ）ビデオ表示。
【０１３２】
このモードでは、カメラおよびクライアントコンピュータ制御装置は、サーバーによる支援の下で、それらが、ファイアウォールによって分離された別個のネットワーク上にあることを検出し、従って、互いに直接通信するために、ＮＡＴトラバーサル技術を使用しようと試行する必要がある。このＰ２Ｐ直接方式は、ファイアウォールまたはルーター内に適切なネットワークポートを自動的にオープンしようとするＮＡＴトラバーサル方法を使用しようと試みるであろう。このポートがうまくオープンされると、ビデオまたは画像またはカメラデータは、ファイアウォール／ルーターを通過でき、カメラとクライアントコンピュータ制御装置との間の直接通信が確立できる。直接接続の試行が失敗すると、システムは、代わりに、中継Ｐ２Ｐサーバーを通して接続しようと試みる、次のセッション（以下）を呼び出すであろう。
【０１３３】
３：中継／プロキシ：中間インターネットサーバーを使用して、カメラとクライアントコンピュータ制御装置との間でビデオデータを接続／収集／中継／転送する。
【０１３４】
中継接続は多くの場合、同じＰ２Ｐサーバーへのピア間の常時接続を必要とするので、拡張性を処理するために、負荷分散技術が任意選択で使用され得る。マスターＰ２Ｐサーバーは、そのリスト内の複数のスレーブＰ２Ｐサーバーと共にパブリックに実行しているであろう。クライアントは、マスターＰ２Ｐサーバーでアドレス収集要求を開始し、マスターＰ２Ｐサーバーは、スレーブサーバーの１つへの位置で応答するであろう。スレーブサーバーの１つへリダイレクトした後、クライアントはこのスレーブサーバーに接続して、そのアドレスリストを収集する。クライアントは次いで、この候補アドレスリストを、適切なＰ２Ｐアドレスと共に、ＤＭＳサーバーを使用して、カメラに送信する。カメラは次いで、その候補クライアントコンピュータ制御装置アドレスを同じＰ２Ｐサーバーから要求できる。
【０１３５】
図６は、システムがどのように様々なファイアウォールを通過し、ピアツーピア（Ｐ２Ｐ）方式に従って動作できるかの例を示す。特に、図６は、どのように様々なＩＰアドレスが管理され得るかの具体例を示す。
【０１３６】
一般に、前述のように、かかるＰ２Ｐ方式は、以下のいずれかによって動作できる：
【０１３７】
ａ）直接、カメラ（１００）とクライアントコンピュータ制御装置（１１２）との間でのピアツーピア（Ｐ２Ｐ）ビデオ表示。
【０１３８】
ｂ）中継／プロキシ：カメラ（１００）からクライアントコンピュータ制御装置（１１２）へビデオデータを接続／収集／中継／転送するための中間インターネットサーバー（例えば、３００）の使用。
【０１３９】
ｃ）ローカル：カメラ（１００）およびクライアントコンピュータ制御装置（１１２）が両方とも同じローカルＬＡＮまたはＷｉＦｉネットワーク上にある。従って、装置は互いに直接通信でき、クライアントコンピュータ制御装置（複数可）（１１２）は、いかなる追加のファイアウォールＮＡＴトラバーサル方法も必要とすることなく、ローカルのＬＡＮ／ＷＩＦＩ装置としてカメラ（１００）と通信できる。
【０１４０】
拡張性
ＶＣＳアーキテクチャは、水平方向に拡張可能であり、何百万ものカメラに透過的に対応するのを可能にする。そのアーキテクチャが以下の図７に示されている。
【０１４１】
図７は、ＶＣＳアーキテクチャの水平拡張性の例を示す。図７では、ビデオカメラは、最初に構成された後、定期的な「ハートビート」カメラ状態メッセージをＤＭＳシステム（７００）に伝送できる。アプリケーションサーバー（３０２ａ）、（３０２ｂ）は水平方向に拡張可能に構成できる。ここでは、例えば、サーバー上の負荷が増えるにつれて、もっと多くのサーバーが動的にプロビジョニングされ得；ここで、Ａｍａｚｏｎ  Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄ（ＥＣ２）サーバーなどの、様々な拡張可能な「第三者」サーバーの使用が有用であり得る。
【０１４２】
同様に、負荷分散サーバー（３０２ａ）、（３０２ｂ）は、Ａｍａｚｏｎ  ｅｌａｓｔｉｃ  ｌｏａｄ  ｂａｌａｎｃｉｎｇ  ｓｅｒｖｅｒ（ＥＬＢ）、および同様のものなどの、第三者負荷分散サーバーであり得る。システムによって生成されたビデオデータは、様々な第三者サーバー（１１０）にも格納され得、前述したＡｍａｚｏｎ  Ｓｉｍｐｌｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ（Ｓ３）の使用は、これらの目的のために有用であり得る。同様に、データベースサーバー（７０２）は、Ａｍａｚｏｎ  Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄ（ＥＣ２）サーバーなどの第三者サーバー上でも実装され得、一次データベース（７０４）などのいくつかのデータベースが、Ａｍａｚｏｎ  ｅｌａｓｔｉｃ  ｂｌｏｃｋ  ｓｔｏｒｅ（ＥＢＳ）および同様のものを使用して実装され得る。ＤＢサーバーバックアップおよびキャッシュ機能が、前述したＡｍａｚｏｎ  Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄ（ＥＣ２）サーバーまたは同等の方法を使用して、様々な第三者サーバー上で実装され得る。
【０１４３】
従って、この実施形態では、アプリケーションサーバー（３０２ａ）データベース要求（７０８）は、データベースサーバー（７０２）によって処理され、他方、キャッシュ要求（７１０）はデータベースサーバーバックアップおよびキャッシュ（７０６）によって処理される。
【０１４４】
このスキームによれば、クライアントコンピュータ制御装置は、本発明のクライアントベースのソフトウェアをアプリの形式で実行するように構成された、スマートフォンまたはタブレットコンピュータ制御装置であると仮定する。従って、作動中、カメラ（１００）は「ハートビート」カメラ状態メッセージをシステムに送信する。ここで、カメラは、カメラ（１００）によって監視された実世界環境のライブビューを提供するようにも構成されていると仮定する。システムが事象を検出すると、サーバーはアラートをアプリに送信できる。アプリは次いで、ライブストリーミングビデオ（または記録されたビデオ）または他のデータを要求でき、これらの要求は、２つ以上のアプリサーバー（３０２ａ）および（３０２ｂ）に負荷分散できる。システムを拡大するために、データベース（７０６）および他のサーバーおよびクラウド構成要素が、必要に応じて、Ａｍａｚｏｎクラウドサービスにより自動的に非同期的に複製され得る。
【０１４５】
図８は、クライアントコンピュータ制御装置（１１２）に対する１つの考えられるソフトウェア構成のブロック図を示す。ここでは、ＧＵＩモジュール制御ディスプレイ（１１４）、ならびに本システムに従った様々なユーティリティおよびビジネスロジックのみならず、様々なデバイスサービスも同様に、様々なオペレーティングシステムのＡＰＩを介して対応できる。
【０１４６】
ここで、クライアントコンピュータ制御装置は、典型的には事象ＩＤ（事象識別番号）を含む通知をシステムサーバーから受信する。いくつかの実施形態では、システムは次いで、この事象ＩＤを自動的に使用して、後にこの事象ＩＤに対応するビデオをそこから取得する、合理的に安全なＵＲＬを構築できる。
【０１４７】
加えて、前述のように、クラウドサーバーは、様々なクラウドサーバー上に格納されたビデオを、多くの場合、提供された検索基準に合致する事象に関するデータ（ビデオなど）に対するＵＲＬの形式で、検索および取得することもできる。事象が任意のメタデータを格納できると仮定すると、検索基準も任意であり得る。クライアントコンピュータ制御装置は次いで、ビデオの表示、それらのさらなる格納のための印付け、ビデオの削除などを行うことができる。
【０１４８】
システムの他の実施形態は、追加として以下のために構成され得る：
【０１４９】
複数のクライアント操作：ここで、システムは、そのシステムを使用および操作するため、ならびにシステムの様々なインターネットサーバーを介してビデオデータを見るために、（典型的には、複数のクライアントコンピュータ制御装置を使用して）複数のクライアントを受け入れてホストするように構成できる。ここで、例えば、ビデオデータは、前述のように、インターネットサーバーに中継され得るか、またはそれを通過し得る。この実施形態は、１つ以上のクライアントが、カメラ状態／条件に関する情報または実世界事象通知を受信することも可能にできる。
【０１５０】
代替ビデオ記憶および取得方法ならびにシステム：ビデオ記憶のために使用されるサーバーは、ビデオ取得のために使用されるサーバーと同じである必要はないことに留意されたい。例えば、異なるビデオ取得サーバーが、同じビデオ記憶サーバーを利用し得るか、または逆に、異なるビデオ記憶サーバーが、同じビデオ取得サーバーに入力し得る。２つの機能を分割することは、改善された拡張性およびスループットを可能にする。いくつかの場合には、ビデオ取得サーバーの使用は任意選択でさえあり得ることにも留意されたい。
【０１５１】
共有ユーザー：ここで、システムは、リモートユーザークライアントが、カメラ操作、ライブビデオ、またはカメラ通知もしくはカメラ設定を、他のユーザーまたは様々なクライアント指定ソーシャルネットワークのいずれかと共有するのを可能にするように構成され得る。
【０１５２】
手動でトリガーされた記録：この実施形態では、システムは、ユーザーが手動で記録を開始するのを可能にするように構成され得、ユーザーはそのビデオをある記録時間および継続期間に対して手動で指定でき、その後自動的に保存されるようにできる。このオプションは「手動記録」または「手動画像捕捉−オンデマンド」と呼ばれる。手動でトリガーされたデータは、次いで、クラウド内またはユーザーのクライアントコンピュータ制御装置上に他のデータのように（前述）保存され得る。
【０１５３】
ＰＴＺ（パン−チルト−ズーム）カメラオプション：この実施形態では、システムは、ユーザーがカメラを手動で動かして調整して特定の場面／位置に向かせることを可能にするように構成され得る。ここで、システムソフトウェアおよびカメラハードウェア構成は、カメラが、多くの場合、クライアントコンピュータ制御装置から、リモートコマンドで、パン、チルト、ズームするのを可能にするように構成される。いくつかの場合、カメラは、自動的に動いて、自動的に特定の移動物体を追いかける機能と一緒にも構成され得る。
【０１５４】
ビデオ帯域幅／ビットレートまたはデータレートを調整する機能：この実施形態では、自動的（例えば、ネットワークまたは関連ハードウェアの機能に応じて）または手動のいずれかで、カメラは、送信すべき伝送ビデオデータのビットレートまたはビデオサイズ／データレートまたは帯域幅を調整するように構成できる。一般に、言うまでもなく、ビットレートが大きければ、ビデオ信号はそれだけ良好であるが、所与のカメラサイトまたはユーザーコンピュータ制御装置が限られた帯域幅しか有していない場合、システムは（必要に応じて手動コマンドを使用して）伝送されるビデオのビットレートまたは帯域幅を調整できる。多くの場合、これは、様々な適応（自動）帯域幅調整スキームを使用して自動的に行われるであろう。
【０１５５】
プッシュツートーク機能：いくつかの実施形態では、システムは、マイクロホンとスピーカーの両方を搭載しているカメラと共に動作するように構成され得る。かかるローカルのマイクロとスピーカーが利用可能な場合、システムは、クライアントが、クライアントのクライアントコンピュータ制御装置を使用して、他の実体（人間、動物、音声応答機器）と音声通信するのを可能にするように構成され得る。ここで、例えば、リモートクライアントユーザーは、（カメラの前の人と話すために）自分の携帯電話（タイプのクライアントコンピュータ制御装置）を使用し得る。音声メッセージが、インターネット接続およびインターネットサーバーを経由して送信でき、カメラのスピーカーによって再生できる。従って、機器および構成に応じて、双方向の音声通信、または一方向の音声通信のいずれかが達成され得る。
【０１５６】
高度なビデオ分析：前述した様々な自動ビデオ事象検出スキームに加えて、システムは、ローカルのカメラレベル、または代替としてインターネットサーバーレベルのいずれかで、さらに高度なビデオ分析も実行するように構成できる。このさらに高度なビデオ分析は、事象を検出するため、または事象を分析するためのいずれでも使用できる。このさらに高度なビデオ分析は、人間の顔検出または個々の人間の顔の実に認識、車両またはナンバープレート検出および認識、特定の指定領域またはゾーン内での動きまたは位置（誰かがラインもしくは境界を越えたか、または特定のゾーン内で、事前に設定された「過度の期間」うろつくか、待機する場合など、侵入検出のために有用）を含み得る。システムは、物体が、事前に設定された「過度の速度」値を上回る高速で移動しているのが見つかった場合、事象を認識および／または生成するようにも設定できる。
【０１５７】
高度な音声分析：前述した様々な自動音声事象検出スキームに加えて、システムは、ローカルのカメラレベル、または代替としてインターネットサーバーレベルのいずれかで、さらに高度な音声分析も実行するように構成できる。このさらに高度な音声分析は、ガラスが割れる音の検出、叫び声や悲鳴の検出、発砲音の検出、犬が吠える声の検出、ドアの開閉音の検出、幼児の泣き声の検出、および同様のものを含み得る。
【０１５８】
外部トリガー：いくつかの実施形態では、システムは、外部トリガーに応答するようにも構成され得る。これらの外部トリガーは、多くの場合、カメラそれ自体によっては検出されていない可能性があるが、代わりに、他のセンサーまたは装置によって検出されている可能性がある事象である。ここでは、理想的には、どのカメラがその外部トリガー事象に最も近い可能性があるかをシステムが判断するのを可能にする方法でパッケージ化された、これらの他のセンサーまたは装置からの入力が、システムサーバーに送信されて、クライアントに彼らのクライアントコンピュータ制御装置を介して通知するため、および／またはカメラを起動して、任意のカメラデータをこの外部トリガーのコンテキストで格納するための両方で、使用できる。
【０１５９】
事象時に音または音声出力の再生：いくつかの実施形態では、システムは、事象検出時に音または音声クリップを自動的に再生するようにも構成され得る。これらの音または音声クリップは、事象に対してローカルに（例えば、事象を検出して記録しているカメラと関連付けられたスピーカー上で）、または代替として、リモートのクライアントコンピュータ制御装置上など、事象からリモートで、のいずれかで再生され得る。
【図１】
2016534607.tif 000003
【図２】
2016534607.tif 000004
【図３Ａ】
2016534607.tif 000005
【図３Ｂ】
2016534607.tif 000006
【図４】
2016534607.tif 000007
【図５】
2016534607.tif 000008
【図６】
2016534607.tif 000009
【図７】
2016534607.tif 000010
【図８】
2016534607.tif 000011
【国際調査報告】
2016534607.tif 000012