(57)【特許請求の範囲】
【請求項１】
要求データを提供する方法であって、
第１のサーバにおいて、データへの要求を受信することであって、前記データへの要求はゲートウェイを指定し、前記ゲートウェイはローカルサイトをネットワークに相互接続し、データ生成装置が前記ローカルサイトに設置され、前記ゲートウェイは、ネットワークを介して前記第１のサーバに動作可能に接続され、前記ゲートウェイと前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、前記データへの要求は、第２のサーバでの所定のポート番号を含み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第２のサーバに提供され、前記第２のサーバは前記データへの要求を前記第１のサーバに直接提供する、受信することと、
前記第１のサーバから、前記データへの要求を前記ゲートウェイに送信することであって、前記ゲートウェイは前記ネットワークを介して前記第２のサーバに直接接続され、前記ゲートウェイは前記データ生成装置にも直接接続され、前記データは、前記ゲートウェイによって検索され、前記ネットワークを介して前記第２のサーバの前記所定のポート番号に提供される、送信することと
を含む、方法。
【請求項２】
前記ゲートウェイの構成を変更又は更新するために、前記第１のサーバから前記ゲートウェイに構成データを提供することを更に含む、請求項１に記載の方法。
【請求項３】
前記第１のサーバから前記ゲートウェイに、構成要素の動作を開始又は停止する命令を提供することを更に含む、請求項１に記載の方法。
【請求項４】
前記第１のサーバにおいて、前記ゲートウェイから前記ゲートウェイに動作可能に接続される構成要素を特徴付ける構成要素データを受信することと、
前記第１のサーバにおいて、前記構成要素の仮想表現を取得することであって、前記仮想表現は、仮想制御インターフェースを含み、前記仮想制御インターフェースは、前記構成要素へのコマンド／命令の提供を可能にする、取得することと
を更に含む、請求項１に記載の方法。
【請求項５】
前記第１のサーバから、前記ゲートウェイに動作可能に接続された前記構成要素にコマンド／命令を提供することを更に含む、請求項４に記載の方法。
【請求項６】
要求データを提供する方法であって、
第２のサーバから第１のサーバに、データへの要求を送信することであって、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第２のサーバに提供され、前記データへの要求はゲートウェイを指定し、前記ゲートウェイはローカルサイトをネットワークに相互接続し、データ生成装置が前記ローカルサイトに設置され、前記ゲートウェイは、ネットワークを介して前記第１のサーバに動作可能に接続され、前記ゲートウェイと前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、前記ゲートウェイは前記データ生成装置にも直接接続され、前記データへの要求は、前記第２のサーバでの所定のポート番号を含み、前記第１のサーバは、前記データへの要求を前記ゲートウェイに送信し、
前記データは前記ゲートウェイによって検索される、送信することと、
前記第２のサーバにおいて前記ネットワークを介して、前記所定のポート番号で前記データを受信することであって、前記データは前記ゲートウェイによって提供される、受信することと
を含む、方法。
【請求項７】
前記第２のサーバは、データレート測定構成要素を含み、前記方法は、
データレート測定テストを開始して、前記第２のサーバと前記ゲートウェイとの間のデータレートを測定するために、前記ネットワークを介して前記第２のサーバから前記ゲートウェイに開始信号を送信することであって、前記データレート測定テストの開始後、テストデータが前記ゲートウェイにより前記第２のサーバに提供される、送信することと、
前記データレート測定構成要素を使用して、前記第２のサーバと前記ゲートウェイとの間のデータレートを特定することと、
前記第２のサーバから前記データレートを前記ゲートウェイに提供することであって、所定のデータブロックレートを実質的に保証するために、データブロックサイズが、前記ゲートウェイにおいて計算される、提供することと
を更に含む、請求項６に記載の方法。
【請求項８】
要求データを提供する方法であって、
ネットワークを介してゲートウェイを第１のサーバに動作可能に接続することであって、前記ゲートウェイと前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであることと、
前記ゲートウェイにおいて、データへの要求を受信することであって、前記データへの要求は、第２のサーバでの所定のポート番号を含み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第２のサーバに提供され、前記第２のサーバは前記データへの要求を前記第１のサーバに直接提供する、受信することと、
前記ゲートウェイにおいて、前記データをデータソースから検索することと、
前記ネットワークを介して前記ゲートウェイを前記第２のサーバにおけるポートに動作可能に接続することであって、前記ポートは前記所定のポート番号に対応する、動作可能に接続することと、
前記ゲートウェイから前記データを前記第２のサーバに送信し、前記第２のサーバは前記データを前記リモートサイトに送信することと
を含む、方法。
【請求項９】
前記第２のサーバは、データレート測定構成要素を含み、前記方法は、
データレート測定テストを開始して、前記第２のサーバ間のデータレートを測定するために、前記ゲートウェイにおいて、前記ネットワークを介して前記第２のサーバから開始信号を受信することと、
前記データレート測定テストの開始後、前記ゲートウェイからテストデータを前記第２のサーバにテストデータを提供することであって、前記第２のサーバと前記ゲートウェイとの間のデータレートは、前記データレート測定構成要素を使用して特定され、前記ネットワークを介して前記ゲートウェイに提供される、提供することと、
所定のデータブロックレートを実質的に保証するために、前記ゲートウェイにおいて、データブロックサイズを計算することと
を更に含む、請求項８に記載の方法。
【請求項１０】
前記ゲートウェイの構成を変更又は更新するために、前記ゲートウェイにおいて前記第１のサーバから、構成データを受信することを更に含む、請求項８に記載の方法。
【請求項１１】
前記ゲートウェイにおいて前記第１のサーバから、構成要素の動作を開始又は停止する命令を受信することを更に含む、請求項８に記載の方法。
【請求項１２】
前記ゲートウェイから前記第１のサーバにおいて、前記ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを送信することであって、前記構成要素の仮想表現が、前記第１のサーバにおいて取得され、前記仮想表現は、仮想制御インターフェースを含み、前記仮想制御インターフェースは、コマンド／命令を前記構成要素に提供できるようにする、送信することを更に含む、請求項８に記載の方法。
【請求項１３】
前記ゲートウェイにおいて、前記ゲートウェイに動作可能に接続された前記構成要素へのコマンド／命令を受信することを更に含む、請求項１２に記載の方法。
【請求項１４】
第１のサーバと、
ネットワークを介して前記第１のサーバに動作可能に接続される第２のサーバと、
前記ネットワークを介して前記第１のサーバ及び前記第２のサーバに動作可能に接続されるゲートウェイ構成要素であって、前記ゲートウェイ構成要素と前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイ構成要素の電源が入っている限り、開いた状態のままであり、前記ゲートウェイ構成要素は前記ネットワークを介して前記第２のサーバに直接接続され、前記ゲートウェイ構成要素はデータ生成装置にも直接接続される、ゲートウェイ構成要素と
を含み、
前記第１のサーバは、
データへの要求を受信することであって、前記データへの要求は、前記ゲートウェイ構成要素を指定し、前記データへの要求は、前記第２のサーバでの所定のポート番号を含む、受信すること、及び
前記データへの要求を前記ゲートウェイ構成要素に送信すること
を実行するように構成され、
前記第２のサーバは、
前記データへの要求をリモートサイトから受信すること、及び
前記所定のポート番号において前記データを受信することであって、前記データは前記ゲートウェイ構成要素によって提供される、受信すること
を実行するように構成され、
前記ゲートウェイ構成要素は、
前記データへの要求を受信すること、
前記データをデータソースから検索すること、
前記ネットワークを介して前記第２のサーバのポートに動作可能に接続することであって、前記ポートは前記所定のポート番号に対応する、動作可能に接続すること、及び
前記データを前記第２のサーバに送信すること
を実行するように構成される、システム。
【請求項１５】
前記第２のサーバは、前記第１のサーバに前記データへの要求を送信するようにも構成される、請求項１４に記載のシステム。
【請求項１６】
前記第２のサーバは、
前記データを受信した後、前記データを前記リモートサイトに送信することと
を実行するようにも構成される、請求項１５に記載のシステム。
【請求項１７】
前記第２のサーバは、データレート測定サブシステムを含み、前記第２のサーバは、
データレート測定テストを開始して、前記第２のサーバと前記ゲートウェイ構成要素との間のデータレートを測定するために、前記ネットワークを介して、開始信号を前記ゲートウェイ構成要素に送信することを実行するようにも構成され、前記ゲートウェイ構成要素は、前記データレート測定テストの開始後、テストデータを前記第２のサーバに提供するようにも構成され、前記第２のサーバは、
前記データレート測定サブシステムを使用して、前記第２のサーバと前記ゲートウェイ構成要素との間のデータレートを特定することと、
前記データレートを前記ゲートウェイ構成要素に提供することと
を実行するように更に構成され、
前記ゲートウェイ構成要素は、所定のデータブロックレートを実質的に保証するために、データブロックサイズを計算するように更に構成される、請求項１４に記載のシステム。
【請求項１８】
前記第１のサーバは、
前記ゲートウェイ構成要素の構成を変更又は更新するために、前記ゲートウェイ構成要素に構成データを提供するようにも構成される、請求項１４に記載のシステム。
【請求項１９】
前記第１のサーバは、
前記ゲートウェイに、構成要素の動作を開始又は停止する命令を提供するようにも構成される、請求項１４に記載のシステム。
【請求項２０】
前記第１のサーバは、
前記ゲートウェイから、前記ゲートウェイ構成要素に動作可能に接続された構成要素を特徴付ける構成要素データを受信することと、
前記構成要素の仮想表現を取得することであって、前記仮想表現は仮想制御インターフェースを含み、前記仮想制御インターフェースは、前記構成要素へのコマンド／命令の提供を可能にする、取得することと
を実行するようにも構成される、請求項１４に記載のシステム。
【請求項２１】
前記第１のサーバは、
前記ゲートウェイ構成要素に動作可能に接続された前記構成要素にコマンド／命令を提供するようにも構成される、請求項２０に記載のシステム。
【請求項２２】
前記第１のサーバは、
少なくとも１つの第１のプロセッサと、
第１のコンピュータ使用可能媒体であって、前記第１のコンピュータ使用可能媒体及び前記少なくとも１つの第１のプロセッサは、動作可能に接続される、第１のコンピュータ使用可能媒体と
を含み、
前記第２のサーバは、
少なくとも１つの第２のプロセッサと、
第２のコンピュータ使用可能媒体であって、前記第２のコンピュータ使用可能媒体及び前記少なくとも１つの第２のプロセッサは、動作可能に接続される、第２のコンピュータ使用可能媒体と
を含み、
前記第１のコンピュータ使用可能媒体は、内部に具現される第１のコンピュータ可読コードを有し、前記第１のコンピュータ可読コードは、前記少なくとも１つの第１のプロセッサに、
データへの要求を受信することであって、前記データへの要求は前記ゲートウェイ構成要素を指定し、前記データへの要求は、前記第２のサーバでの所定のポート番号を含む、受信することと、
前記データへの要求を前記ゲートウェイ構成要素に送信することと
を実行させ、
前記第２のコンピュータ使用可能媒体は、内部に具現される第２のコンピュータ可読コードを有し、前記第２のコンピュータ可読コードは、前記少なくとも１つの第２のプロセッサに、
前記所定のポート番号において前記データを受信することであって、前記データは前記ゲートウェイ構成要素によって提供される、受信すること
を実行させる、請求項１４に記載のシステム。
【請求項２３】
前記ゲートウェイ構成要素は、
少なくとも１つの第３のプロセッサと、
内部に具現される第３のコンピュータ可読コードを有する第３のコンピュータ使用可能媒体と
を含み、
前記第３のコンピュータ可読コードは、前記少なくとも１つの第３のプロセッサに、
前記データへの要求を受信することと、
前記データをデータソースから検索することと、
前記ネットワークを介して前記第２のサーバでのポートに動作可能に接続することであって、前記ポートは前記所定のポート番号に対応する、動作可能に接続することと、
前記データを前記第２のサーバに送信することと
を実行させ、
前記第３のコンピュータ使用可能媒体及び前記少なくとも１つの第３のプロセッサは、動作可能に接続される、請求項２２に記載のシステム。
【請求項２４】
コンピュータプログラム製品であって、
内部に具現されるコンピュータ可読コードを有する非一時的なコンピュータ使用可能媒体を含み、前記コンピュータ可読コードは、少なくとも１つのプロセッサに、
第１のサーバにおいてデータへの要求を受信することであって、前記データへの要求はゲートウェイを指定し、前記ゲートウェイは、ネットワークを介して前記第１のサーバに動作可能に接続され、前記ゲートウェイと前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、前記データへの要求は、第２のサーバでの所定のポート番号を含み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第２のサーバに提供され、前記データへの要求は、データ生成装置に対するデータへの要求であり、前記データ生成装置は、前記ゲートウェイに動作可能に接続される、受信することと、
前記第１のサーバから前記ゲートウェイに前記データへの要求を送信することであって、前記データは、前記ゲートウェイによって検索され、前記ネットワークを介して、前記第２のサーバに対して前記所定のポート番号において提供される、送信することと
を実行させる、コンピュータプログラム製品。
【請求項２５】
コンピュータプログラム製品であって、
内部に具現されるコンピュータ可読コードを有する非一時的なコンピュータ使用可能媒体を含み、前記コンピュータ可読コードは、少なくとも１つのプロセッサに、
第２のサーバから、第１のサーバにデータへの要求を送信することであって、前記データへの要求はゲートウェイを指定し、前記ゲートウェイは、ネットワークを介して前記第１のサーバに動作可能に接続され、前記ゲートウェイと前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、前記データへの要求は、前記第２のサーバでの所定のポート番号を含み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第２のサーバに提供され、前記データへの要求は、データ生成装置に対するデータへの要求であり、前記データ生成装置は、前記ゲートウェイに動作可能に接続され、前記第１のサーバは、前記データへの要求を前記ゲートウェイに送信し、前記データは前記ゲートウェイによって検索される、送信することと、
前記第２のサーバにおいて前記ネットワークを介して、前記所定のポート番号で前記データを受信することであって、前記データは前記ゲートウェイによって提供される、受信することと
を実行させる、コンピュータプログラム製品。
【請求項２６】
コンピュータプログラム製品であって、
内部に具現されるコンピュータ可読コードを有する非一時的なコンピュータ使用可能媒体を含み、前記コンピュータ可読コードは、少なくとも１つのプロセッサに、
ネットワークを介してゲートウェイを第１のサーバに動作可能に接続することであって、前記ゲートウェイと前記第１のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであることと、
前記ゲートウェイにおいて、データへの要求を受信することであって、前記データへの要求は、第２のサーバでの所定のポート番号を含み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第２のサーバに提供され、前記データへの要求は、データ生成装置に対するデータへの要求であり、前記データ生成装置は、前記ゲートウェイに動作可能に接続される、受信することと、
前記ゲートウェイにおいて、データソースから前記データを検索することと、
前記ネットワークを介して前記ゲートウェイを前記第２のサーバでのポートに動作可能に接続することであって、前記ポートは、前記所定のポート番号に対応する、動作可能に接続することと、
前記ゲートウェイから前記データを前記第２のサーバに送信することと
を実行させる、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
これらの教示は、概してデータをリモートサイトに提供することに関し、より詳細には、ゲートウェイを使用してデータをリモートサイトに提供する方法及びシステムに関する。
【背景技術】
【０００２】
インターネットを介する通信では、２つのマシン間でのデータ転送が必要とされる。ローカルマシンは、リモートマシン上の指定されたポート番号での接続を要求する。次に、ローカルマシン上の動的に割り振られたポートが、リモートマシン上の指定されたポートに接続し、通信を進めることができる。
【０００３】
通信自体は、２つのマシンが特に、専用チャネル（電話呼等）を介して接続されるＴＣＰベースであってもよく、又は１つのマシンがデータを送信し、他のマシンがそれを受信するかどうかは気付かない（郵便サービスに類似）ＵＤＰ転送であってもよい。これらの方法の何れも、「ポート」と呼ばれるものを利用し、ポートを介して、データ転送は単一の共有される物理的ネットワーク回線上で行われる。
【０００４】
ローカルエンドでは、通常、マシンはルータを介して接続する。このルータは複数の機能を実行するが、１つの機能は、内部ローカルネットワークをネットワークスヌーパー及びハッカーから保護することであり得る。ルータは、外部世界からローカルネットワークにアクセス可能なポートを選択的に開閉することによってこれを行う。
【０００５】
ハッカーは、開いているポートを利用して、ローカルネットワーク内のマシンへのアクセスを獲得し得る。しかし、ルータが、幾つかのポート番号への入力要求を許可しないようにセットアップされる場合、ハッカーはアクセスを得ることができない。そのような構成は、ファイアウォールを介する接続と呼ばれる。
【０００６】
このため、ローカルネットワークへの、要求される最小の数の入力ポートが、許可されることが望ましい。他方、出力ポートは、転送中のデータがローカルエンドから開始され、外部に送信しているため、安全である。
【０００７】
リモート側では、洗練されたセキュリティ解決策を使用して、システムへの不正アクセスの影響を減らすことができ、より洗練されたファイアウォール及びヒューリスティック規則を利用して、要求されたアクセスが正当か否かを判断する。このレベル機器設置は、ホームオーナー及び小規模ビジネスオーナーがローカルエンドで使用するには非実用的である。
【０００８】
データソース、例えばカメラが、ローカルサイトに配置される場合、データソースの出力、例えば、リモートサイトからのカメラからのビデオを監視可能であることが望ましい。通常、ポートが、ローカルファイアウォールで開かれる必要があり、これにより、リモートモニタリング要求をデータソースに渡せるようにし、データソースからの出力をデータソースから検索できるようにする。これは、不安、すなわち、ファイアウォール／ルータでローカルポートを開くことを生じさせる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ファイアウォール／ルータでローカルポートを開くことを必要としない、リモートサイトにデータを提供する方法及びシステムが必要とされる。
【課題を解決するための手段】
【００１０】
概要
本明細書において、ファイアウォール／ルータでローカルポートを開くことを必要としない、リモートサイトにデータを提供する方法及びシステムを以下に提示する。
【００１１】
１つ又は複数の実施形態では、これらの教示のシステムは、第１のサーバと、ネットワークを介して第１のサーバに動作可能に接続される第２のサーバと、ネットワークを介して第１のサーバ及び第２のサーバに動作可能に接続されるゲートウェイ構成要素とを含む。第１のサーバは、データへの要求を受信することと、データへの要求をゲートウェイ構成要素に送信することとを実行するように構成され、データへの要求は、ゲートウェイ構成要素を指定し、第２のサーバでの所定のポート番号を含む。第２のサーバは、所定のポート番号においてデータを受信することを実行するように構成され、データはゲートウェイ構成要素によって提供される。ゲートウェイ構成要素は、これらの実施形態では、データへの要求を受信することと、データをデータソースから検索することと、ネットワークを介して第２のサーバでのポートに動作可能に接続することと、データを第２のサーバに送信することとを実行するように構成され、ポートは所定のポート番号に対応する。
【００１２】
１つ又は複数の場合、第２のサーバは、リモートサイトからデータへの要求を受信することと、第１のサーバにデータへの要求を送信することと、データを受信した後、データをリモートサイトに送信することとを実行するようにも構成される。
【００１３】
これらの教示の方法は、１つ又は複数の実施形態では、第１のサーバを中心とした視点、第２のサーバを中心とした視点、又はゲートウェイを中心とした視点から説明することができる。
【００１４】
１つ又は複数の実施形態では、第１のサーバを中心とした視点からみると、図６に示されるこれらの教示の方法は、第１のサーバにおいて、データへの要求を受信すること（図６、ステップ１６０）と、第１のサーバから、データへの要求をゲートウェイに送信すること（図６、ステップ１６５）とを含み、データへの要求はゲートウェイを指定し、ゲートウェイはネットワークを介して第１のサーバに動作可能に接続され、データへの要求は第２のサーバでの所定のポート番号を含み、データは、ゲートウェイによって検索され、ネットワークを介して第２のサーバの所定のポート番号に提供される。
【００１５】
１つ又は複数の実施形態では、第２のサーバを中心とした視点からみると、これらの教示の方法は、第２のサーバから第１のサーバに、データへの要求を送信することと、第２のサーバにおいてネットワークを介して、所定のポート番号でデータを受信することとを含み、データへの要求はゲートウェイを指定し、ゲートウェイはネットワークを介して第１のサーバに動作可能に接続され、データへの要求は第２のサーバでの所定のポート番号を含み、第１のサーバはデータへの要求をゲートウェイに送信し、データはゲートウェイによって検索され、データはゲートウェイによって提供される。
【００１６】
１つ又は複数の実施形態では、ゲートウェイを中心とした視点からみると、これらの教示の方法は、ネットワークを介してゲートウェイを第１のサーバに動作可能に接続することと、ゲートウェイにおいて、データへの要求を受信することと、ゲートウェイにおいて、データソースからデータを検索することと、ネットワークを介してゲートウェイを第２のサーバのポートに動作可能に接続すること、と、データをゲートウェイから第２のサーバに送信することとを含み、データへの要求は第２のサーバでの所定のポート番号を含み、ポートは所定のポート番号に対応する。
【００１７】
コンピュータプログラム製品の実施形態を含め、幾つかの他の実施形態も開示される。
【００１８】
他の目的及び更なる目的と共に、本教示をよりよく理解するために、添付図面及び詳細な説明を参照し、本教示の範囲は添付の特許請求の範囲において指摘される。
【図面の簡単な説明】
【００１９】
【図１】これらの教示のシステムの一実施形態の概略ブロック図表現である。
【図２】これらの教示のシステムの別の実施形態の概略部分ブロック図表現である。
【図３】これらの教示のシステムの更に別の実施形態の概略部分ブロック図表現である。
【図４】これらの教示のシステムの実施形態の構成要素の概略ブロック図表現である。
【図５】これらの教示の方法の一実施形態の概略フローチャート表現である。
【図６】これらの教示の方法の一実施形態の第１のサーバを中心とした視点の概略フローチャート表現である。
【図７】これらの教示の方法の一実施形態の第２のサーバを中心とした視点の概略フローチャート表現である。
【図８】これらの教示の方法の一実施形態のゲートウェイを中心とした視点の概略フローチャート表現である。
【発明を実施するための形態】
【００２０】
詳細な説明
本明細書において、ファイアウォール／ルータでのローカルポートを開く必要がない、データをリモートサイトに提供する方法及びシステムを以下に提示する。
【００２１】
以下の詳細な説明は、本発明を実行する現在意図される形態を提示する。説明は限定の意味で解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲によって最良に規定されるため、単に、本発明の一般原理を示すために行われる。
【００２２】
本明細書で使用される場合、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈に明らかに別段のことが示される場合を除き、複数形を含む。
【００２３】
別のことが示される場合を除き、本明細書及び特許請求の範囲で使用される材料の数量、反応状態等を表す全ての数は、全ての場合で、「約」という用語で修飾されるものとして理解されるべきである。
【００２４】
「ゲートウェイ」又は「ゲートウェイ構成要素」は、本明細書で使用される場合、ローカルサイトをネットワークに相互接続する通信デバイスである。ゲートウェイは、ネットワークを通してローカルサイトを他の構成要素に接続することができる。
【００２５】
「データブロック」は、本明細書で使用される場合、ローカルサイトから別の構成要素に転送されるデータのブロックである。データブロックの例示的な一実施形態は、ビデオストリーム中のフレームである。
【００２６】
１つ又は複数の実施形態では、これらの教示のシステムは、第１のサーバと、ネットワークを介して第１のサーバに動作可能に接続される第２のサーバと、ネットワークを介して第１のサーバ及び第２のサーバに動作可能に接続されるゲートウェイ構成要素とを含む。第１のサーバは、データへの要求を受信することと、データへの要求をゲートウェイ構成要素に送信することとを実行するように構成され、データへの要求は、ゲートウェイ構成要素を指定し、第２のサーバでの所定のポート番号を含む。第２のサーバは、所定のポート番号においてデータを受信することを実行するように構成され、データはゲートウェイ構成要素によって提供される。ゲートウェイ構成要素は、これらの実施形態では、データへの要求を受信することと、データをデータソースから検索することと、ネットワークを介して第２のサーバでのポートに動作可能に接続することと、データを第２のサーバに送信することとを実行するように構成され、ポートは所定のポート番号に対応する。
【００２７】
１つの場合では、データへの要求はリモートサイトにおいて発せられる。幾つかの場合、データへの要求は、リモートサイトから第２のサーバに、そして第２のサーバから第１のサーバに提供される。
【００２８】
図１は、これらの教示のシステムの実施形態を示す。図１を参照すると、示される実施形態では、ゲートウェイ１０（ゲートウェイ構成要素とも呼ばれる）、次にローカルサイト１２、ネットワーク４５を通して、第１のサーバ２０（リモート管理システム（ＲＭＳ）とも呼ばれる）及び第２のサーバ３０（ゲートウェイバックエンド（ＧＢＥ）サーバとも呼ばれる）。リモートサイト４０は、ネットワークを通して第２のサーバ３０に接続される。
【００２９】
本教示を更に明確にするために、ローカルサイト１２に設置されたカメラからのビデオストリームへの要求が、リモートサイト４０から開始される例示的な実施形態を以下に提示する。これらの教示がその例示的な実施形態のみに限定されないことに留意されたい。例えば、他の実施形態は、第１のサーバ２０から発せられたデータへの予めプログラムされた要求を含むことができるが、これらに限定されない。
【００３０】
例示的な実施形態では、１つ又は複数のカメラがローカルサイトに設置され、ビデオストリームを提供するが、ゲートウェイからアクセスすることができる、ローカルサイト１２に設置されるデバイスの他の例としては、これらの教示はそれらの例のみに限定されず、
オン／オフ機能を提供するバイナリスイッチ、
一例が調光器である、設定可能な一連のレベルを提供するマルチレベルスイッチ、
動き検出器、ドアセンサ等のバイナリセンサ、
サーモスタット制御装置、
認証ドアエントリ等のアクセス制御デバイス、
サイレン／チャイム／音声出力デバイス、
ステッパモータコントローラ、ＰＷＭ速度コントローラ等
が挙げられる。
【００３１】
電源投入されると、ゲートウェイ１０は、リモート管理システム（ＲＭＳ）２０に接続し、ゲートウェイ１０の電源が入っている限り、この接続を開いた状態に保つ。次に、この接続を使用して、様々な要求をゲートウェイに送信する。そのような一要求は、ローカルに設置されたカメラからのストリーミングを開始することである。この要求は、リモートビデオモニタリングディスプレイの応答において行うことができる。
【００３２】
リモートサイトが、ビデオストリームへの要求を行う場合、以下のステップが続く。
１）リモートサイトが、ゲートウェイバックエンド（ＧＢＥ）３０と呼ばれるウェブサーバに接続する（１）。
２）ＧＢＥ３０が、特定のゲートウェイ及びカメラからのビデオストリーム並びにゲートウェイが「バック接続」する特定のポート番号への要求をＲＭＳ２０に対して行う（２）。
３）ＲＳＭは、要求をフォーマットし、常に開いているゲートウェイ＜−＞ＲＭＳ接続（３）を介してゲートウェイに送信する。ゲートウェイ１０は、要求をＲＭＳ２０から受信する。
４）ゲートウェイ１０は、ビデオ要求を送信し（４）、指定されたカメラからビデオデータを検索する（引き出す）（５）。
５）次に、ゲートウェイは、ＲＭＳ２０を介して指定されたポート番号で、ＧＢＥ設定を有する接続（６）を開き、ビデオデータ転送にわたりこの接続を開いた状態に保つ。
６）次に、ゲートウェイは、ビデオデータ接続（６）を介してカメラのビデオデータをＧＢＥ３０にプッシュする。
７）ＧＢＥ３０は、このビデオデータを要求側リモートモニタリングサイト４０に送信する（７）。
【００３３】
例示的な実施形態はビデオデータの検索に関するが、他の例示的な実施形態は、ゲートウェイからアクセス可能な任意の他のデバイスからデータを検索することを含むことができる。他の例示的な実施形態では、データを検索する代わりに、ゲートウェイは、例えば、「センサＡがアクティブ化されている場合、カメラＢからのストリーミングを開始し、照明Ａ、照明Ｂをオンにする」又は「センサＢがアクティブ化されている場合、チャイムを鳴らし、音声デバイスＡでメッセージＣをアナウンスする」等であるが、これらに限定されないマクロを開始し、マクロからデータを検索することができる。
【００３４】
一実施形態では、第２のサーバは、データレート測定サブシステムを含み、データレート測定テストを開始し、第２のサーバとゲートウェイ構成要素との間のデータレートを測定するために、ネットワークを介して、開始信号をゲートウェイ構成要素に送信するようにも構成される。その実施形態では、ゲートウェイ構成要素は、データレート測定テストの開始後、テストデータを第２のサーバに提供するようにも構成され、第２のサーバは、データレート測定構成要素を使用して、第２のサーバとゲートウェイ構成要素との間のデータレートを特定し、データレートをゲートウェイ構成要素に提供するように更に構成される。ゲートウェイ構成要素は、所定のデータブロックレートを実質的に保証するために、データブロックサイズを計算するように更に構成される。任意の従来のデータレート測定サブシステムが使用可能であるが、これらの教示の限定ではないが例示を目的として、データレート測定サブシステムは、時間測定構成要素（開始信号又はインジケータがテストデータに先行し、テストデータを受信した後、完了信号又はインジケータが生成される場合、開始信号と完了信号との間の時間を検出するタイミング構成要素；データへのビット数又はバイト数を検出する構成要素及びビット数及び時間からデータレートを特定する構成要素を含むサブシステム等を含むことができる。
【００３５】
図２は、データレート測定中のゲートウェイ構成要素１０と第２のサーバ３０とのインタラクションを示す。これらの教示をよりよく示すために、データブロックがビデオカメラからのフレーム（又は静止カメラからの１枚のピクチャ）である場合での例示的な実施形態を以下に提示する。これらの教示がその実施形態のみに限定されないことに留意されたい。
【００３６】
例示的な実施形態では、ゲートウェイ構成要素１０は、ビデオストリーム要求に応答して、様々なカメラに接続する。そして、ゲートウェイ１０は、ビデオデータを外部受信者に送信する。カメラ−＞ゲートウェイ−＞第２のサーバ（ＧＢＥ）パイプライン内でまずまず一定したフレームレート（毎秒フレーム数、ｆｐｓ）が維持されることが望ましい。
【００３７】
ゲートウェイが接続する各カメラでは、１つ又は複数のフレームサイズが利用可能である。例えば、Ａカメラでは、フルフレームに対して、選ぶことができる３つの異なるフレームサイズがある。それらのフレームサイズは６４０×４８０画像サイズ、１メガピクセル画像サイズ、及び４メガピクセル画像サイズである。後続する各フレームサイズは、前のフレームサイズよりもかなり大きい。フレームサイズが大きいことは、フレーム毎により多くのデータが転送されることも意味する。より多くのデータは、画像をより精密に調べることを可能にし、顔／パターン認識等でのエラーの機会を低減する。また、まずまず一定のフレームレート、例えば、３ｆｐｓが維持されることが望ましい。
【００３８】
ゲートウェイの異なる設置では、異なるレベルのネットワーク（１つの場合では、インターネット）データ速度が利用可能である。アップロード速度は、所与のフレームサイズでフレームレートの適切な維持にとって極めて重要である。米国では、国内ケーブル接続により、毎秒約２００万から２５０万ビット（２〜２．５ｍｂｐｓ）のアップロード速度が可能である。欧州でのデータ速度はより遅く、アジアでは更に遅い。
【００３９】
アップロードデータ速度の差を踏まえて、ゲートウェイ１０は、第２のサーバ３０（バックエンド（ＧＢＥ））と維持することができるデータレートを動的に測定する。次に、ゲートウェイ１０は、予め定義されるテーブルからフレームサイズを落として、約３ｆｐｓという目標フレームレートを維持する。
【００４０】
【表１】
0006473166.tif 000002
【００４１】
アップロードデータレートを確かめるために、画像データが送信される厳密なパスが測定される必要がある。このために、速度測定サーバが第２のサーバ３０（ゲートウェイバックエンド（ＧＢＥ））に展開される。複数の画像が後に同じＧＢＥマシンに送信されるため、速度測定サーバは、データ帯域幅が、複数の画像で測定の場合と同じであることを保証する。
【００４２】
速度が入手されると、フレームデータサイズが、約３ｆｐｓフレームレートの場合で計算される。
（フレームサイズ）＊３＝所要データスループット／秒
【００４３】
例えば、１メガバイト／秒〜＝１０００キロビット／秒の測定データ速度を考える。
【００４４】
上記の予め定義されるテーブルから、この接続を介して転送することができる各サイズでの毎秒フレーム数を計算することができる。
３２０×２４０    １０ｆｐｓ
６４０×４８０    ３．６ｆｐｓ
１ＭＰ            １．５ｆｐｓ
４ＭＰ            ０．６ｆｐｓ
【００４５】
測定速度よりも低いスループットになるフレームサイズ又は最も近いフレームサイズは、デフォルトフレームサイズとして自動的に選ばれる。この場合、６４０×４８０画像が、３ｆｐｓに近いフレームレートを維持可能であり、デフォルトフレームレートとして選ばれる。このデフォルトは、フレームレートを犠牲にして特定のパラメータをゲートウェイに送信することにより、オーバーライドすることができる。
【００４６】
上記の例示的な実施形態が、これらの教示の限定ではないことに留意されたい。
【００４７】
別の場合、第１のサーバ２０は、ゲートウェイ構成要素の構成を変更又は更新するために、ゲートウェイ構成要素１０に構成データを提供するようにも構成される。更なる場合、第１のサーバ２０は、ゲートウェイに、構成要素の動作を開始又は停止する命令を提供するようにも構成される。更に別の場合、第１のサーバ２０は、ゲートウェイ１０から、ゲートウェイ構成要素に動作可能に接続された構成要素を特徴付ける構成要素データを受信し、その構成要素の仮想表現を取得するようにも構成され、仮想表現は仮想制御インターフェースを含み、仮想制御インターフェースは、コマンド／命令をその構成要素に提供できるようにする。その更に別の場合では、第１のサーバ２０は、ゲートウェイ構成要素に動作可能に接続された構成要素にコマンド／命令を提供するように更に構成される。
【００４８】
図３は、構成要素の仮想化中の第１のサーバへのゲートウェイ接続を示す。
【００４９】
一実施形態では、ゲートウェイ１０に電源が投入されると、ゲートウェイ１０は、第１のサーバ２０（リモート管理システム（ＲＭＳ））とネットワーク（１つの場合では、ＴＣＰインターネット）接続を行う。ゲートウェイ１０が第１のサーバ２０に対してそれ自体を明らかにした後、永久的レコードがＲＭＳデータベース内に作成される。ゲートウェイ１０がＲＭＳ２０と行うネットワーク接続は、ゲートウェイ１０の電源が入っている限り、アクティブに保たれる。したがって、これらの２つのデバイス間で、ネットワーク４５を介して通信が可能である。
【００５０】
１つの場合では、ゲートウェイは、幾つかのファイル、プログラム、構成データ等を維持する。ゲートウェイ１０とＲＭＳ２０との間の開かれた接続を使用して、ファイルをゲートウェイ１０に転送し、ゲートウェイでの構成データを変更し、ゲートウェイでのプログラムを開始又は停止することが可能である。
【００５１】
ファイルには、転送前にバージョン番号を与えることができる。これが使用される場合、ＲＭＳ２０は様々なバージョンのファイル／プログラムを維持する。これにより、ファイルアップロードによりゲートウェイ１０が動作不安定になる場合、リカバリオプションが可能になる。
【００５２】
一実施形態では、ゲートウェイ１０は、カメラ等であるが、これに限定されない異なるデバイス６０と接続する。ＲＭＳ２０を使用して、これらのデバイスのそれぞれは、ＲＭＳ２０上で仮想化することができる（図３、仮想化デバイス７０）。仮想化されると、定義された制御インターフェースがＲＭＳ２０上で利用可能である。この仮想化インターフェースにおいて変更すると、コマンド及びデータはゲートウェイに転送されることになり、ゲートウェイは物理的に、要求されたコマンド／動作を実際のカメラで実行する。したがって、露出されるインターフェースをリモートに使用して、例えば、カメラを制御することができる。動作は、デバイス、例えばカメラをオン／オフし、レンズを移動させるなどすることができる。
【００５３】
この仮想化はカメラに限定されず、動きセンサ等の任意のデバイスに使用することができる。また、デバイスは、物理的なデバイスである必要はなく、全てソフトウェアで実施することができ、仮想化インターフェースは、ＲＭＳで作成されて、ＲＭＳ上で様々な動作を実行することができる。
【００５４】
例示的な実施形態では、制御インターフェースを介して仮想化デバイスにアクセスする様式と同様に、ファームウェアとも呼ばれる論理プログラム又はゲートウェイを介してアクセス可能なデバイス６０上の何らかの構成データを更新することができる。この例示的な実施形態では、要求されたファームウェア又はデータファイルは、ＲＭＳ２０からゲートウェイ１０に転送することができ、これには、その転送データを用いて何が行われるべきかに関する対応するコマンドが伴う。
【００５５】
詳細な例示的な実施形態では、例えば、デバイス６０がカメラである場合であるが、これに限定されず、ファームウェアは、取り付けられ、ゲートウェイ１０を介してアクセス可能なカメラ６０のうちの１つ又は複数上のファームウェアを更新する対応するコマンドと共に、ゲートウェイに転送することができる。次に、ゲートウェイは、ファイルを読み出し、正確なコマンドシーケンスをカメラに発行して、カメラでのファームウェアを更新することができる。更新後、ゲートウェイは必要なステップをとり、そのファームウェアをアクティブにすることができる。これは、カメラリブートと同じ程単純であることもあれば、より複雑なコマンドシーケンスであることもある。
【００５６】
別の場合、画像のバッファがゲートウェイに保持され、必要な場合、この画像バッファは、分析のために外部サイトにダウンロードされ、それにより、外部レコーダでのビデオストリームの連続記録への代替を提供する。
【００５７】
別の実施形態では、ゲートウェイは、ゲートウェイに取り付けられた、動きセンサ、温度センサ等の幾つかのセンサを有する。１つの場合では、これらのセンサのうちの１つからトリガーを受信すると、ビデオ又は画像のオフサイト記録（予めバッファリングされない）が開始される。
【００５８】
上記の場合及び実施形態を組み合わせて、分析のためにデータが利用できないことを低減することができ、その結果、これらの教示の方法の以下の実施形態が生じる。
カメラがオフサイトで連続記録されない。
各カメラのプレバッファが、ゲートウェイにおいてローカルに保持される。
イベント時、外部記録がトリガーされる。
予めバッファリングされた画像が外部サイトに転送される。
これらの予めバッファリングされた画像に、イベントベースの記録を加えたものが、分析に使用される。
【００５９】
一実施形態では、第１のサーバ２０、第２のサーバ３０、及び／又はゲートウェイ構成要素１０は、１つ又は複数のプロセッサ及びコンピュータ使用可能媒体を含むことができ、コンピュータ使用可能媒体は、内部に具現されるコンピュータ可読コードを有し、コンピュータ可読コードは、１つ又は複数のプロセッサで実行されると、１つ又は複数のプロセッサに、第１のサーバ２０、第２のサーバ３０、又はゲートウェイ構成要素１０において構成される機能を実行させる。そのような実施形態を図４に示す。図４を参照すると、示される実施形態では、１つ又は複数のプロセッサ２１０は、コンピュータ使用可能媒体２２０に動作可能に接続され（接続構成要素２１５により）、コンピュータ使用可能媒体２２０は、内部に具現されるコンピュータ可読コードを有し、コンピュータ可読コードは、１つ又は複数のプロセッサで実行されると、１つ又は複数のプロセッサに、第１のサーバ２０、第２のサーバ３０、又はゲートウェイ構成要素１０において構成される機能を実行させる。
【００６０】
例示的な一実施形態では、これらの教示の限定ではなく、ゲートウェイはＬｉｎｕｘ（登録商標）ベースのプラグコンピュータである。Ｌｉｎｕｘは、プラグコンピュータをターゲットとしてソフトウェアを書けるようにするカーネルである。例示的な実施形態では、ゲートウェイは、ＯＳＧｉ（ＯＳＧｉ財団によって指定されるＪａｖａ（登録商標）ベースの技術）であるフレームワークを実行する。
【００６１】
他の実施形態では、第１のサーバ２０、第２のサーバ３０、又はゲートウェイ構成要素１０に構成される機能及び動作が、ソフトウェア命令あり又はなしで、特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用するなど、プログラム可能、部分的にプログラム可能、又はハードワイヤードであり得る専用回路を使用して実施することができることに留意されたい。
【００６２】
これらの教示の方法の一実施形態は、フローチャートの形態で図５に示される。図５を参照すると、示される実施形態では、第１のサーバは、データへの要求を受信する（図５、ステップ１０５）。第１のサーバは、データへの要求をゲートウェイに送信し（図５、ステップ１１５）、データへの要求はゲートウェイにおいて受信される（図５、ステップ１２５）。ゲートウェイは、データをデータソースから検索し（図５、ステップ１３５）、ネットワークを介して第２のサーバでのポートに動作可能に接続し、ポートは所定のポート番号に対応する（図５、ステップ１４５）。次に、ゲートウェイは、データを第２のサーバに送信する（図５、ステップ１５５）。
【００６３】
幾つかの場合、リモートサイトから発せられたデータへの要求は、リモートサイトから第２のサーバに送信され、第２のサーバは、データを受信した後、データをリモートサイトに送信した。
【００６４】
これらの教示の方法は、１つ又は複数の実施形態では、第１のサーバを中心とした視点、第２のサーバを中心とした視点、又はゲートウェイを中心として視点から説明することができる。
【００６５】
１つ又は複数の実施形態では、図６に示される第１のサーバを中心とした視点からみると、これらの教示の方法は、第１のサーバにおいて、データへの要求を受信すること（図６、ステップ１６０）と、第１のサーバから、データへの要求をゲートウェイに送信すること（図６、ステップ１６５）とを含み、データへの要求はゲートウェイを指定し、ゲートウェイはネットワークを介して第１のサーバに動作可能に接続され、データへの要求は第２のサーバでの所定のポート番号を含み、データは、ゲートウェイによって検索され、ネットワークを介して第２のサーバの所定のポート番号に提供される。
【００６６】
１つの場合では、第１のサーバを中心とした視点からみると、これらの教示の方法は、ゲートウェイの構成を変更又は更新するために、第１のサーバからゲートウェイに、構成データを提供することも含む。別の場合、第１のサーバを中心とした視点からみると、これらの教示の方法は、第１のサーバからゲートウェイに、構成要素の動作を開始又は停止する命令を提供することも含む。
【００６７】
更に別の場合、第１のサーバを中心とした視点からみると、これらの教示の方法は、ゲートウェイから第１のサーバにおいて、ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを受信することと、第１のサーバにおいて、その構成要素の仮想表現を取得することとをも含み、仮想表現は仮想制御インターフェースを含み、仮想制御インターフェースは、構成要素にコマンド／命令を提供できるようにする。更に別の場合、これらの教示の方法は、第１のサーバから、コマンド／命令を、ゲートウェイに動作可能に接続された構成要素に提供することを含むこともできる。
【００６８】
１つ又は複数の実施形態では、図７に示される第２のサーバを中心とした視点からみると、これらの教示の方法は、第２のサーバから第１のサーバに、データへの要求を送信すること（図７、ステップ１７０）を含み、データへの要求はゲートウェイを指定し、ゲートウェイは、ネットワークを介して第１のサーバに動作可能に接続され、データへの要求は、第２のサーバでの所定のポート番号を含み、第１のサーバは、データへの要求をゲートウェイに送信し、データは、ゲートウェイによって検索される。教示の方法は、ネットワークを介して、第２のサーバの所定のポート番号において、データを受信すること（図７、ステップ１７５）を含み、データはゲートウェイによって提供される。
【００６９】
１つの場合、第２のサーバは、データレート測定構成要素を含み、第２のサーバを中心とした視点からみると、これらの教示の方法は、データレート測定テストを開始して、第２のサーバとゲートウェイとの間のデータレートを測定するために、ネットワークを介して第２のサーバからゲートウェイに開始信号を送信することを含み、データレート測定テストの開始後、テストデータがゲートウェイにより第２のサーバに提供される。教示の方法は、データレート測定構成要素を使用して、第２のサーバとゲートウェイとの間のデータレートを特定すること、及び第２のサーバからデータレートをゲートウェイに提供することを含み、データブロックサイズが、ゲートウェイにおいて計算されて、所定のデータブロックレートを実質的に保証する。例示的な実施形態では、データブロックはフレームであり、データブロックはフレームレートである。
【００７０】
１つ又は複数の実施形態では、図８に示されるゲートウェイを中心とした視点からみると、これらの教示の方法は、ネットワークを介してゲートウェイを第１のサーバに動作可能に接続すること（図８、ステップ１８０）と、ゲートウェイにおいて、データへの要求を受信すること（図８、ステップ１８４）とを含み、データへの要求は、第２のサーバでの所定のポート番号を含む。教示の方法は、ゲートウェイにおいて、データをデータソースから検索すること（図８、ステップ１８８）と、ネットワークを介してゲートウェイを第２のサーバにおけるポートに動作可能に接続すること（図８、ステップ１９２）と、ゲートウェイからデータを第２のサーバに送信すること（図８、ステップ１９６）とを含み、ポートは所定のポート番号に対応する。
【００７１】
一実施形態では、データへの要求はリモートサイトから発せられる。１つの場合では、リモートサイトは、データへの要求を第２のサーバに送信し、第２のサーバは、データへの要求を第１のサーバに送信する。この実施形態では、第２のサーバがデータを受信すると、第２のサーバはデータをリモートサイトに提供する。
【００７２】
１つの場合では、第２のサーバはデータレート測定構成要素を含み、これらの教示の方法は、ゲートウェイを中心とした視点からみると、データレート測定テストを開始して、第２のサーバ間のデータレートを測定するために、ゲートウェイにおいて、ネットワークを介して第２のサーバから開始信号を受信すること、データレート測定テストの開始後、ゲートウェイからテストデータを第２のサーバに提供すること、所定のデータブロックレートを実質的に保証するために、ゲートウェイにおいて、データブロックサイズを計算することをも含み、第２のサーバとゲートウェイとの間のデータレートは、データレート測定構成要素を使用して特定され、ネットワークを介してゲートウェイに提供される。
【００７３】
別の場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイの構成を変更又は更新するために、ゲートウェイにおいて第１のサーバから、構成データを受信することをも含む。更なる場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイにおいて第１のサーバから、構成要素の動作を開始又は停止する命令を受信することをも含む。
【００７４】
更に別の場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイから第１のサーバにおいて、ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを送信することをも含み、その構成要素の仮想表現が、第１のサーバにおいて取得され、仮想表現は、仮想制御インターフェースを含み、仮想制御インターフェースは、コマンド／命令を構成要素に提供できるようにする。更に別の場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイにおいて、ゲートウェイに動作可能に接続された構成要素へのコマンド／命令を受信することをも含む。
【００７５】
第１のサーバ、第２のサーバ、及び／又はゲートウェイ構成要素のうちの少なくとも１つが、１つ又は複数のプロセッサに、コンピュータ使用可能媒体に具現されるコンピュータ可読コードを実行させることにより、上述した機能を実行するように構成される場合、本教示は、内部に具現されるコンピュータ可読コードを有するコンピュータ使用可能媒体を含む１つ又は複数のコンピュータプログラム製品も含む。
【００７６】
計算デバイスの様々な構成要素の説明は、構成要素を相互接続するいかなる特定のアーキテクチャ又は様式も表すことが意図されていない。開示される趣旨と併せて、より少数又はより多数の構成要素を有する他のシステムを使用することもできる。通信デバイスは、ある形態の計算デバイスを構成し得、少なくとも、計算デバイスを含み得る。計算デバイスは、相互接続（例えば、バス及びシステムコア論理）を含み得、相互接続は、計算デバイスのそのような構成要素を、プロセッサ若しくはマイクロプロセッサ等のデータ処理デバイス又は他の形態の部分的若しくは完全にプログラム可能若しくは予めプログラムされるデバイス、例えば、コントローラ若しくはマイクロコントローラ、デジタル信号プロセッサ等のハードワイヤード及び又は特定用途向け集積回路（「ＡＳＩＣ」）カスタマイズ論理回路、又は命令をフェッチし、予めロード／予めプログラムされる命令及び／又はハードワイヤード若しくはカスタマイズされた回路で見られ、本開示で記載されるようなプロセスのステップ、プロセス全体、及び機能を一緒に実行する論理動作を実行する続く命令で動作する任意の他の形態のデバイスに相互接続することができる。
【００７７】
上記説明では、様々な機能、機能性、及び／又は動作は、説明を簡潔にするために、ソフトウェアプログラムコードによって実行されるもの又はソフトウェアプログラムコードによって生じるものとして説明されることがある。しかし、そのような表現によって意味されるものが、機能が、例えば、マイクロプロセッサ、マイクロコントローラ、論理回路等のプロセッサを含む、上述したような計算デバイスによるプログラムコード／命令の実行から生じることであることを当業者は認識する。代替として、又は組み合わせて、機能及び動作は、ソフトウェア命令あり又はなしで、特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を使用するなど、プログラム可能、部分的にプログラム可能、又はハードワイヤードであり得る専用回路を使用して実施することができる。特定用途向け集積回路（「ＡＳＩＣ」）論理は、ベースゲートアレイＡＳＩＣアーキテクチャのメタライゼーション相互接続によりカスタマイズされた論理を実施するか、又は製造業者の機能ブロックライブラリ等に含まれる標準セル機能ブロック間のメタライゼーション相互接続を選択し提供するゲートアレイ又は標準セル等であり得る。したがって、実施形態は、プログラムソフトウェアコード／命令なしでハードワイヤード回路を使用して、又はプログラムされたソフトウェアコード／命令を使用する回路と組み合わせて実施することができる。
【００７８】
したがって、技法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されず、また計算デバイス内のデータプロセッサによって実行される命令の実体的ないかなる特定のソースにも限定されない。幾つかの実施形態は、完全に機能するコンピュータ及びコンピュータシステムで実施することができるが、様々な実施形態は、例えば、様々な形態を含む計算デバイスとして分散可能であり、機能及び動作の実行及び／又は機能、機能性、及び／又は動作の実行の分散を実際に行うのに使用される特定のタイプのマシン又は実体的なコンピュータ可読媒体に関係なく、適用可能である。
【００７９】
相互接続は、データ処理デバイスを接続して、メモリを含む論理回路を定義し得る。相互接続は、マイクロプロセッサをオンボードキャッシュメモリ若しくはメインメモリ又はディスクドライブ等の外部（マイクロプロセッサの）メモリに結合するなど、データ処理デバイスの内部にあってもよく、又はリモートメモリ、ディスクファーム、又は他の大容量記憶デバイス等、計算デバイスの外部にあってもよい。１つ又は複数が計算デバイス又は計算デバイスの一部であることができる市販のマイクロプロセッサは、例として、Hewlett-Packard CompanyからのＰＡ−ＲＩＳＣシリーズマイクロプロセッサ、Intel Corporationからの８０×８６又はPentiumシリーズマイクロプロセッサ、IBMからのPowerPCマイクロプロセッサ、Sun Microsystems,Inc.からのSparcマイクロプロセッサ、又はMotorola Corporationからの６８ｘｘｘシリーズマイクロプロセッサを含む。
【００８０】
相互接続は、マイクロプロセッサ及びメモリ等を相互接続することに加えて、そのような要素をディスプレイコントローラ及びディスプレイデバイス、及び／又は例えば、入／出力コントローラを通して入／出力（Ｉ／Ｏ）デバイス等の他の周辺デバイスに相互接続することもできる。典型的なＩ／Ｏデバイスは、マウス、キーボード、モデム、ネットワークインターフェース、プリンタ、スキャナ、ビデオカメラ、及び当分野で周知の他のデバイスを含むことができる。相互接続は、様々なブリッジ、コントローラ、及び／又はアダプタを通して互いに接続される１つ又は複数のバスを含み得る。一実施形態では、Ｉ／Ｏコントローラは、ＵＳＢ周辺機器を制御するＵＳＢ（ユニバーサルシリアルバス）アダプタ及び／又はＩＥＥＥ−１３９４周辺機器を制御するＩＥＥＥ−１３９４バスアダプタを含む。
【００８１】
メモリは、任意の実体的なコンピュータ可読媒体を含み得、実体的なコンピュータ可読媒体は、メモリ内のデータをリフレッシュ又は維持するために常時電力を必要とする、通常、ダイナミックＲＡＭ（ＤＲＡＭ）として実施される揮発性ＲＡＭ（ランダムアクセスメモリ）、不揮発性ＲＯＭ（読み取り専用メモリ）、及びハードドライブ、フラッシュメモリ、脱着可能なメモリスティック等の他のタイプの不揮発性メモリ等の揮発性及び不揮発性メモリデバイス等の記録可能及び非記録可能型の媒体を含むが、これらに限定されない。不揮発性メモリは通常、磁気ハードドライブ、磁気光学ドライブ、光学ドライブ（例えば、ＤＶＤ  ＲＡＭ、ＣＤ  ＲＯＭ、ＤＶＤ、若しくはＣＤ）、又は電力がシステムからなくなった後であってもデータを維持する他のタイプのメモリシステムを含み得る。
【００８２】
サーバは、１つ又は複数の計算デバイスで構成することができる。サーバは、例えば、ネットワーク内で利用されて、ネットワークデータベースをホストし、必要な変数及び情報をデータベース内の情報から計算し、データベースからの情報を記憶し復元し、情報及び変数を追跡し、情報及び変数をアップロード及びダウンロードするインターフェースを提供し、且つ／又はデータベースからの情報及びデータをソートするか、又は他の方法で操作することができる。一実施形態では、サーバは、ローカル又はリモートに位置決めされる他の計算デバイスと併せて使用されて、本願で記載し得るような特定の計算及び他の機能を実行することができる。
【００８３】
開示される趣旨の少なくとも幾つかの態様は、少なくとも部分的に、プログラムされたソフトウェアコード／命令を利用して実施することができる。すなわち、機能、機能性、及び／又は動作技法は、マイクロプロセッサ等のプロセッサが、ＲＯＭ、揮発性ＲＡＭ、不揮発性メモリ、キャッシュ、又はリモート記憶デバイス等のメモリに含まれる命令シーケンスを実行することに応答して、計算デバイス又は他のデータ処理システムで実行し得る。一般に、開示される趣旨の実施形態を実施するために実行されるルーチンは、オペレーティングシステムの一部又は特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」若しくは「ソフトウェア」と通常呼ばれる命令シーケンスとして実施し得る。コンピュータプログラムは通常、キャッシュメモリ、メインメモリ、内部又は外部ディスクドライブ、及びディスクファーム等の他のリモート記憶デバイス等の計算デバイス内の様々な実体的なメモリ及び記憶デバイスに様々な時に記憶され、計算デバイス内のプロセッサによって読み出されて実行されると、計算デバイスに、方法、例えば、プロセス及び動作ステップを実行させて、開示される趣旨の方法の幾つかの態様の部分として、要素を実行させる命令を含む。
【００８４】
実体的なマシン可読媒体が、計算デバイスによって実行されると、計算デバイスに、開示される趣旨を定義する１つ又は複数の添付の請求項に記載され得る方法を実行させるソフトウェア及びデータの記憶に使用可能である。実体的なマシン可読媒体は、例えば、ＲＯＭ、揮発性ＲＡＭ、不揮発性メモリ、及び／又はキャッシュを含め、様々な実体的ロケーションに実行可能なソフトウェアプログラムコード／命令及びデータのストレージを含み得る。このプログラムソフトウェアコード／命令及び／又はデータの部分は、これらの記憶デバイスの任意の１つに記憶し得る。さらに、プログラムソフトウェアコード／命令は、例えば、中央サーバ又はピアツーピアネットワーク等を通してなどを含む態様で、リモート記憶デバイスから取得することができる。ソフトウェアプログラムコード／命令及びデータの異なる部分は、異なる時間及び異なる通信セッション又は同じ通信セッションで取得することができる。
【００８５】
ソフトウェアプログラムコード／命令及びデータは、計算デバイスによる各ソフトウェアアプリケーションの実行前に全体的に取得することができる。代替的には、ソフトウェアプログラムコード／命令及びデータの部分は、動的に、例えば適時に、実行に必要なときに取得することができる。代替的には、ソフトウェアプログラムコード／命令及びデータを取得するこれらの方法の幾つかの組合せが、例として、例えば異なるアプリケーション、構成要素、プログラム、オブジェクト、モジュール、ルーチン、又は他の命令シーケンス若しくは命令シーケンスの編成で行われ得る。したがって、データ及び命令が、任意の特定の瞬間に１つのマシン可読媒体に全体的に存在する必要はない。
【００８６】
一般に、実体的なマシン可読媒体は、マシン（すなわち、インターネット等の通信ネットワークからアプリケーションをダウンロードし実行可能であるか否かに関係なく、例えば、通信デバイス、ネットワークデバイス、個人情報端末、モバイル通信デバイス内、例えば、I-Phone、Blackberry、Droid等に含まれ得る計算デバイス、製造ツール、又は１つ若しくは複数のデータプロセッサ等を含む計算デバイスを含む任意の他のデバイスによりアクセス可能な形態で情報を提供する（すなわち、記憶する）任意の実体的な機構を含む。
【００８７】
本教示を説明し定義するために、「実質的に」という用語が、本明細書では、任意の数量的比較、値、測定値、又は他の表現に起因し得る、固有の不確実性を表すために利用されることに留意する。「実質的に」という用語は、本明細書では、数量表現が、問題となっている趣旨の基本機能の変化を生じさせずに、述べられている言及から変更可能な程度を表すためにも利用される。
【００８８】
これらの教示について様々な実施形態に関して説明したが、これらの教示が、添付の特許請求の範囲の趣旨及び範囲内で、多種多様な更なる実施形態及び他の実施形態が可能なことを認識されたい。
【図１】
0006473166.tif 000003
【図２】
0006473166.tif 000004
【図３】
0006473166.tif 000005
【図４】
0006473166.tif 000006
【図５】
0006473166.tif 000007
【図６】
0006473166.tif 000008
【図７】
0006473166.tif 000009
【図８】
0006473166.tif 000010