(58)【調査した分野】(Int.Cl.,DB名)
前記ゲートウェイから前記第1のサーバにおいて、前記ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを送信することであって、前記構成要素の仮想表現が、前記第1のサーバにおいて取得され、前記仮想表現は、仮想制御インターフェースを含み、前記仮想制御インターフェースは、コマンド/命令を前記構成要素に提供できるようにする、送信することを更に含む、請求項8に記載の方法。
【発明を実施するための形態】
【0020】
詳細な説明
本明細書において、ファイアウォール/ルータでのローカルポートを開く必要がない、データをリモートサイトに提供する方法及びシステムを以下に提示する。
【0021】
以下の詳細な説明は、本発明を実行する現在意図される形態を提示する。説明は限定の意味で解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲によって最良に規定されるため、単に、本発明の一般原理を示すために行われる。
【0022】
本明細書で使用される場合、単数形「a」、「an」、及び「the」は、文脈に明らかに別段のことが示される場合を除き、複数形を含む。
【0023】
別のことが示される場合を除き、本明細書及び特許請求の範囲で使用される材料の数量、反応状態等を表す全ての数は、全ての場合で、「約」という用語で修飾されるものとして理解されるべきである。
【0024】
「ゲートウェイ」又は「ゲートウェイ構成要素」は、本明細書で使用される場合、ローカルサイトをネットワークに相互接続する通信デバイスである。ゲートウェイは、ネットワークを通してローカルサイトを他の構成要素に接続することができる。
【0025】
「データブロック」は、本明細書で使用される場合、ローカルサイトから別の構成要素に転送されるデータのブロックである。データブロックの例示的な一実施形態は、ビデオストリーム中のフレームである。
【0026】
1つ又は複数の実施形態では、これらの教示のシステムは、第1のサーバと、ネットワークを介して第1のサーバに動作可能に接続される第2のサーバと、ネットワークを介して第1のサーバ及び第2のサーバに動作可能に接続されるゲートウェイ構成要素とを含む。第1のサーバは、データへの要求を受信することと、データへの要求をゲートウェイ構成要素に送信することとを実行するように構成され、データへの要求は、ゲートウェイ構成要素を指定し、第2のサーバでの所定のポート番号を含む。第2のサーバは、所定のポート番号においてデータを受信することを実行するように構成され、データはゲートウェイ構成要素によって提供される。ゲートウェイ構成要素は、これらの実施形態では、データへの要求を受信することと、データをデータソースから検索することと、ネットワークを介して第2のサーバでのポートに動作可能に接続することと、データを第2のサーバに送信することとを実行するように構成され、ポートは所定のポート番号に対応する。
【0027】
1つの場合では、データへの要求はリモートサイトにおいて発せられる。幾つかの場合、データへの要求は、リモートサイトから第2のサーバに、そして第2のサーバから第1のサーバに提供される。
【0028】
図1は、これらの教示のシステムの実施形態を示す。
図1を参照すると、示される実施形態では、ゲートウェイ10(ゲートウェイ構成要素とも呼ばれる)、次にローカルサイト12、ネットワーク45を通して、第1のサーバ20(リモート管理システム(RMS)とも呼ばれる)及び第2のサーバ30(ゲートウェイバックエンド(GBE)サーバとも呼ばれる)。リモートサイト40は、ネットワークを通して第2のサーバ30に接続される。
【0029】
本教示を更に明確にするために、ローカルサイト12に設置されたカメラからのビデオストリームへの要求が、リモートサイト40から開始される例示的な実施形態を以下に提示する。これらの教示がその例示的な実施形態のみに限定されないことに留意されたい。例えば、他の実施形態は、第1のサーバ20から発せられたデータへの予めプログラムされた要求を含むことができるが、これらに限定されない。
【0030】
例示的な実施形態では、1つ又は複数のカメラがローカルサイトに設置され、ビデオストリームを提供するが、ゲートウェイからアクセスすることができる、ローカルサイト12に設置されるデバイスの他の例としては、これらの教示はそれらの例のみに限定されず、
オン/オフ機能を提供するバイナリスイッチ、
一例が調光器である、設定可能な一連のレベルを提供するマルチレベルスイッチ、
動き検出器、ドアセンサ等のバイナリセンサ、
サーモスタット制御装置、
認証ドアエントリ等のアクセス制御デバイス、
サイレン/チャイム/音声出力デバイス、
ステッパモータコントローラ、PWM速度コントローラ等
が挙げられる。
【0031】
電源投入されると、ゲートウェイ10は、リモート管理システム(RMS)20に接続し、ゲートウェイ10の電源が入っている限り、この接続を開いた状態に保つ。次に、この接続を使用して、様々な要求をゲートウェイに送信する。そのような一要求は、ローカルに設置されたカメラからのストリーミングを開始することである。この要求は、リモートビデオモニタリングディスプレイの応答において行うことができる。
【0032】
リモートサイトが、ビデオストリームへの要求を行う場合、以下のステップが続く。
1)リモートサイトが、ゲートウェイバックエンド(GBE)30と呼ばれるウェブサーバに接続する(1)。
2)GBE30が、特定のゲートウェイ及びカメラからのビデオストリーム並びにゲートウェイが「バック接続」する特定のポート番号への要求をRMS20に対して行う(2)。
3)RSMは、要求をフォーマットし、常に開いているゲートウェイ<−>RMS接続(3)を介してゲートウェイに送信する。ゲートウェイ10は、要求をRMS20から受信する。
4)ゲートウェイ10は、ビデオ要求を送信し(4)、指定されたカメラからビデオデータを検索する(引き出す)(5)。
5)次に、ゲートウェイは、RMS20を介して指定されたポート番号で、GBE設定を有する接続(6)を開き、ビデオデータ転送にわたりこの接続を開いた状態に保つ。
6)次に、ゲートウェイは、ビデオデータ接続(6)を介してカメラのビデオデータをGBE30にプッシュする。
7)GBE30は、このビデオデータを要求側リモートモニタリングサイト40に送信する(7)。
【0033】
例示的な実施形態はビデオデータの検索に関するが、他の例示的な実施形態は、ゲートウェイからアクセス可能な任意の他のデバイスからデータを検索することを含むことができる。他の例示的な実施形態では、データを検索する代わりに、ゲートウェイは、例えば、「センサAがアクティブ化されている場合、カメラBからのストリーミングを開始し、照明A、照明Bをオンにする」又は「センサBがアクティブ化されている場合、チャイムを鳴らし、音声デバイスAでメッセージCをアナウンスする」等であるが、これらに限定されないマクロを開始し、マクロからデータを検索することができる。
【0034】
一実施形態では、第2のサーバは、データレート測定サブシステムを含み、データレート測定テストを開始し、第2のサーバとゲートウェイ構成要素との間のデータレートを測定するために、ネットワークを介して、開始信号をゲートウェイ構成要素に送信するようにも構成される。その実施形態では、ゲートウェイ構成要素は、データレート測定テストの開始後、テストデータを第2のサーバに提供するようにも構成され、第2のサーバは、データレート測定構成要素を使用して、第2のサーバとゲートウェイ構成要素との間のデータレートを特定し、データレートをゲートウェイ構成要素に提供するように更に構成される。ゲートウェイ構成要素は、所定のデータブロックレートを実質的に保証するために、データブロックサイズを計算するように更に構成される。任意の従来のデータレート測定サブシステムが使用可能であるが、これらの教示の限定ではないが例示を目的として、データレート測定サブシステムは、時間測定構成要素(開始信号又はインジケータがテストデータに先行し、テストデータを受信した後、完了信号又はインジケータが生成される場合、開始信号と完了信号との間の時間を検出するタイミング構成要素;データへのビット数又はバイト数を検出する構成要素及びビット数及び時間からデータレートを特定する構成要素を含むサブシステム等を含むことができる。
【0035】
図2は、データレート測定中のゲートウェイ構成要素10と第2のサーバ30とのインタラクションを示す。これらの教示をよりよく示すために、データブロックがビデオカメラからのフレーム(又は静止カメラからの1枚のピクチャ)である場合での例示的な実施形態を以下に提示する。これらの教示がその実施形態のみに限定されないことに留意されたい。
【0036】
例示的な実施形態では、ゲートウェイ構成要素10は、ビデオストリーム要求に応答して、様々なカメラに接続する。そして、ゲートウェイ10は、ビデオデータを外部受信者に送信する。カメラ−>ゲートウェイ−>第2のサーバ(GBE)パイプライン内でまずまず一定したフレームレート(毎秒フレーム数、fps)が維持されることが望ましい。
【0037】
ゲートウェイが接続する各カメラでは、1つ又は複数のフレームサイズが利用可能である。例えば、Aカメラでは、フルフレームに対して、選ぶことができる3つの異なるフレームサイズがある。それらのフレームサイズは640×480画像サイズ、1メガピクセル画像サイズ、及び4メガピクセル画像サイズである。後続する各フレームサイズは、前のフレームサイズよりもかなり大きい。フレームサイズが大きいことは、フレーム毎により多くのデータが転送されることも意味する。より多くのデータは、画像をより精密に調べることを可能にし、顔/パターン認識等でのエラーの機会を低減する。また、まずまず一定のフレームレート、例えば、3fpsが維持されることが望ましい。
【0038】
ゲートウェイの異なる設置では、異なるレベルのネットワーク(1つの場合では、インターネット)データ速度が利用可能である。アップロード速度は、所与のフレームサイズでフレームレートの適切な維持にとって極めて重要である。米国では、国内ケーブル接続により、毎秒約200万から250万ビット(2〜2.5mbps)のアップロード速度が可能である。欧州でのデータ速度はより遅く、アジアでは更に遅い。
【0039】
アップロードデータ速度の差を踏まえて、ゲートウェイ10は、第2のサーバ30(バックエンド(GBE))と維持することができるデータレートを動的に測定する。次に、ゲートウェイ10は、予め定義されるテーブルからフレームサイズを落として、約3fpsという目標フレームレートを維持する。
【0041】
アップロードデータレートを確かめるために、画像データが送信される厳密なパスが測定される必要がある。このために、速度測定サーバが第2のサーバ30(ゲートウェイバックエンド(GBE))に展開される。複数の画像が後に同じGBEマシンに送信されるため、速度測定サーバは、データ帯域幅が、複数の画像で測定の場合と同じであることを保証する。
【0042】
速度が入手されると、フレームデータサイズが、約3fpsフレームレートの場合で計算される。
(フレームサイズ)
*3=所要データスループット/秒
【0043】
例えば、1メガバイト/秒〜=1000キロビット/秒の測定データ速度を考える。
【0044】
上記の予め定義されるテーブルから、この接続を介して転送することができる各サイズでの毎秒フレーム数を計算することができる。
320×240 10fps
640×480 3.6fps
1MP 1.5fps
4MP 0.6fps
【0045】
測定速度よりも低いスループットになるフレームサイズ又は最も近いフレームサイズは、デフォルトフレームサイズとして自動的に選ばれる。この場合、640×480画像が、3fpsに近いフレームレートを維持可能であり、デフォルトフレームレートとして選ばれる。このデフォルトは、フレームレートを犠牲にして特定のパラメータをゲートウェイに送信することにより、オーバーライドすることができる。
【0046】
上記の例示的な実施形態が、これらの教示の限定ではないことに留意されたい。
【0047】
別の場合、第1のサーバ20は、ゲートウェイ構成要素の構成を変更又は更新するために、ゲートウェイ構成要素10に構成データを提供するようにも構成される。更なる場合、第1のサーバ20は、ゲートウェイに、構成要素の動作を開始又は停止する命令を提供するようにも構成される。更に別の場合、第1のサーバ20は、ゲートウェイ10から、ゲートウェイ構成要素に動作可能に接続された構成要素を特徴付ける構成要素データを受信し、その構成要素の仮想表現を取得するようにも構成され、仮想表現は仮想制御インターフェースを含み、仮想制御インターフェースは、コマンド/命令をその構成要素に提供できるようにする。その更に別の場合では、第1のサーバ20は、ゲートウェイ構成要素に動作可能に接続された構成要素にコマンド/命令を提供するように更に構成される。
【0048】
図3は、構成要素の仮想化中の第1のサーバへのゲートウェイ接続を示す。
【0049】
一実施形態では、ゲートウェイ10に電源が投入されると、ゲートウェイ10は、第1のサーバ20(リモート管理システム(RMS))とネットワーク(1つの場合では、TCPインターネット)接続を行う。ゲートウェイ10が第1のサーバ20に対してそれ自体を明らかにした後、永久的レコードがRMSデータベース内に作成される。ゲートウェイ10がRMS20と行うネットワーク接続は、ゲートウェイ10の電源が入っている限り、アクティブに保たれる。したがって、これらの2つのデバイス間で、ネットワーク45を介して通信が可能である。
【0050】
1つの場合では、ゲートウェイは、幾つかのファイル、プログラム、構成データ等を維持する。ゲートウェイ10とRMS20との間の開かれた接続を使用して、ファイルをゲートウェイ10に転送し、ゲートウェイでの構成データを変更し、ゲートウェイでのプログラムを開始又は停止することが可能である。
【0051】
ファイルには、転送前にバージョン番号を与えることができる。これが使用される場合、RMS20は様々なバージョンのファイル/プログラムを維持する。これにより、ファイルアップロードによりゲートウェイ10が動作不安定になる場合、リカバリオプションが可能になる。
【0052】
一実施形態では、ゲートウェイ10は、カメラ等であるが、これに限定されない異なるデバイス60と接続する。RMS20を使用して、これらのデバイスのそれぞれは、RMS20上で仮想化することができる(
図3、仮想化デバイス70)。仮想化されると、定義された制御インターフェースがRMS20上で利用可能である。この仮想化インターフェースにおいて変更すると、コマンド及びデータはゲートウェイに転送されることになり、ゲートウェイは物理的に、要求されたコマンド/動作を実際のカメラで実行する。したがって、露出されるインターフェースをリモートに使用して、例えば、カメラを制御することができる。動作は、デバイス、例えばカメラをオン/オフし、レンズを移動させるなどすることができる。
【0053】
この仮想化はカメラに限定されず、動きセンサ等の任意のデバイスに使用することができる。また、デバイスは、物理的なデバイスである必要はなく、全てソフトウェアで実施することができ、仮想化インターフェースは、RMSで作成されて、RMS上で様々な動作を実行することができる。
【0054】
例示的な実施形態では、制御インターフェースを介して仮想化デバイスにアクセスする様式と同様に、ファームウェアとも呼ばれる論理プログラム又はゲートウェイを介してアクセス可能なデバイス60上の何らかの構成データを更新することができる。この例示的な実施形態では、要求されたファームウェア又はデータファイルは、RMS20からゲートウェイ10に転送することができ、これには、その転送データを用いて何が行われるべきかに関する対応するコマンドが伴う。
【0055】
詳細な例示的な実施形態では、例えば、デバイス60がカメラである場合であるが、これに限定されず、ファームウェアは、取り付けられ、ゲートウェイ10を介してアクセス可能なカメラ60のうちの1つ又は複数上のファームウェアを更新する対応するコマンドと共に、ゲートウェイに転送することができる。次に、ゲートウェイは、ファイルを読み出し、正確なコマンドシーケンスをカメラに発行して、カメラでのファームウェアを更新することができる。更新後、ゲートウェイは必要なステップをとり、そのファームウェアをアクティブにすることができる。これは、カメラリブートと同じ程単純であることもあれば、より複雑なコマンドシーケンスであることもある。
【0056】
別の場合、画像のバッファがゲートウェイに保持され、必要な場合、この画像バッファは、分析のために外部サイトにダウンロードされ、それにより、外部レコーダでのビデオストリームの連続記録への代替を提供する。
【0057】
別の実施形態では、ゲートウェイは、ゲートウェイに取り付けられた、動きセンサ、温度センサ等の幾つかのセンサを有する。1つの場合では、これらのセンサのうちの1つからトリガーを受信すると、ビデオ又は画像のオフサイト記録(予めバッファリングされない)が開始される。
【0058】
上記の場合及び実施形態を組み合わせて、分析のためにデータが利用できないことを低減することができ、その結果、これらの教示の方法の以下の実施形態が生じる。
カメラがオフサイトで連続記録されない。
各カメラのプレバッファが、ゲートウェイにおいてローカルに保持される。
イベント時、外部記録がトリガーされる。
予めバッファリングされた画像が外部サイトに転送される。
これらの予めバッファリングされた画像に、イベントベースの記録を加えたものが、分析に使用される。
【0059】
一実施形態では、第1のサーバ20、第2のサーバ30、及び/又はゲートウェイ構成要素10は、1つ又は複数のプロセッサ及びコンピュータ使用可能媒体を含むことができ、コンピュータ使用可能媒体は、内部に具現されるコンピュータ可読コードを有し、コンピュータ可読コードは、1つ又は複数のプロセッサで実行されると、1つ又は複数のプロセッサに、第1のサーバ20、第2のサーバ30、又はゲートウェイ構成要素10において構成される機能を実行させる。そのような実施形態を
図4に示す。
図4を参照すると、示される実施形態では、1つ又は複数のプロセッサ210は、コンピュータ使用可能媒体220に動作可能に接続され(接続構成要素215により)、コンピュータ使用可能媒体220は、内部に具現されるコンピュータ可読コードを有し、コンピュータ可読コードは、1つ又は複数のプロセッサで実行されると、1つ又は複数のプロセッサに、第1のサーバ20、第2のサーバ30、又はゲートウェイ構成要素10において構成される機能を実行させる。
【0060】
例示的な一実施形態では、これらの教示の限定ではなく、ゲートウェイはLinux(登録商標)ベースのプラグコンピュータである。Linuxは、プラグコンピュータをターゲットとしてソフトウェアを書けるようにするカーネルである。例示的な実施形態では、ゲートウェイは、OSGi(OSGi財団によって指定されるJava(登録商標)ベースの技術)であるフレームワークを実行する。
【0061】
他の実施形態では、第1のサーバ20、第2のサーバ30、又はゲートウェイ構成要素10に構成される機能及び動作が、ソフトウェア命令あり又はなしで、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)を使用するなど、プログラム可能、部分的にプログラム可能、又はハードワイヤードであり得る専用回路を使用して実施することができることに留意されたい。
【0062】
これらの教示の方法の一実施形態は、フローチャートの形態で
図5に示される。
図5を参照すると、示される実施形態では、第1のサーバは、データへの要求を受信する(
図5、ステップ105)。第1のサーバは、データへの要求をゲートウェイに送信し(
図5、ステップ115)、データへの要求はゲートウェイにおいて受信される(
図5、ステップ125)。ゲートウェイは、データをデータソースから検索し(
図5、ステップ135)、ネットワークを介して第2のサーバでのポートに動作可能に接続し、ポートは所定のポート番号に対応する(
図5、ステップ145)。次に、ゲートウェイは、データを第2のサーバに送信する(
図5、ステップ155)。
【0063】
幾つかの場合、リモートサイトから発せられたデータへの要求は、リモートサイトから第2のサーバに送信され、第2のサーバは、データを受信した後、データをリモートサイトに送信した。
【0064】
これらの教示の方法は、1つ又は複数の実施形態では、第1のサーバを中心とした視点、第2のサーバを中心とした視点、又はゲートウェイを中心として視点から説明することができる。
【0065】
1つ又は複数の実施形態では、
図6に示される第1のサーバを中心とした視点からみると、これらの教示の方法は、第1のサーバにおいて、データへの要求を受信すること(
図6、ステップ160)と、第1のサーバから、データへの要求をゲートウェイに送信すること(
図6、ステップ165)とを含み、データへの要求はゲートウェイを指定し、ゲートウェイはネットワークを介して第1のサーバに動作可能に接続され、データへの要求は第2のサーバでの所定のポート番号を含み、データは、ゲートウェイによって検索され、ネットワークを介して第2のサーバの所定のポート番号に提供される。
【0066】
1つの場合では、第1のサーバを中心とした視点からみると、これらの教示の方法は、ゲートウェイの構成を変更又は更新するために、第1のサーバからゲートウェイに、構成データを提供することも含む。別の場合、第1のサーバを中心とした視点からみると、これらの教示の方法は、第1のサーバからゲートウェイに、構成要素の動作を開始又は停止する命令を提供することも含む。
【0067】
更に別の場合、第1のサーバを中心とした視点からみると、これらの教示の方法は、ゲートウェイから第1のサーバにおいて、ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを受信することと、第1のサーバにおいて、その構成要素の仮想表現を取得することとをも含み、仮想表現は仮想制御インターフェースを含み、仮想制御インターフェースは、構成要素にコマンド/命令を提供できるようにする。更に別の場合、これらの教示の方法は、第1のサーバから、コマンド/命令を、ゲートウェイに動作可能に接続された構成要素に提供することを含むこともできる。
【0068】
1つ又は複数の実施形態では、
図7に示される第2のサーバを中心とした視点からみると、これらの教示の方法は、第2のサーバから第1のサーバに、データへの要求を送信すること(
図7、ステップ170)を含み、データへの要求はゲートウェイを指定し、ゲートウェイは、ネットワークを介して第1のサーバに動作可能に接続され、データへの要求は、第2のサーバでの所定のポート番号を含み、第1のサーバは、データへの要求をゲートウェイに送信し、データは、ゲートウェイによって検索される。教示の方法は、ネットワークを介して、第2のサーバの所定のポート番号において、データを受信すること(
図7、ステップ175)を含み、データはゲートウェイによって提供される。
【0069】
1つの場合、第2のサーバは、データレート測定構成要素を含み、第2のサーバを中心とした視点からみると、これらの教示の方法は、データレート測定テストを開始して、第2のサーバとゲートウェイとの間のデータレートを測定するために、ネットワークを介して第2のサーバからゲートウェイに開始信号を送信することを含み、データレート測定テストの開始後、テストデータがゲートウェイにより第2のサーバに提供される。教示の方法は、データレート測定構成要素を使用して、第2のサーバとゲートウェイとの間のデータレートを特定すること、及び第2のサーバからデータレートをゲートウェイに提供することを含み、データブロックサイズが、ゲートウェイにおいて計算されて、所定のデータブロックレートを実質的に保証する。例示的な実施形態では、データブロックはフレームであり、データブロックはフレームレートである。
【0070】
1つ又は複数の実施形態では、
図8に示されるゲートウェイを中心とした視点からみると、これらの教示の方法は、ネットワークを介してゲートウェイを第1のサーバに動作可能に接続すること(
図8、ステップ180)と、ゲートウェイにおいて、データへの要求を受信すること(
図8、ステップ184)とを含み、データへの要求は、第2のサーバでの所定のポート番号を含む。教示の方法は、ゲートウェイにおいて、データをデータソースから検索すること(
図8、ステップ188)と、ネットワークを介してゲートウェイを第2のサーバにおけるポートに動作可能に接続すること(
図8、ステップ192)と、ゲートウェイからデータを第2のサーバに送信すること(
図8、ステップ196)とを含み、ポートは所定のポート番号に対応する。
【0071】
一実施形態では、データへの要求はリモートサイトから発せられる。1つの場合では、リモートサイトは、データへの要求を第2のサーバに送信し、第2のサーバは、データへの要求を第1のサーバに送信する。この実施形態では、第2のサーバがデータを受信すると、第2のサーバはデータをリモートサイトに提供する。
【0072】
1つの場合では、第2のサーバはデータレート測定構成要素を含み、これらの教示の方法は、ゲートウェイを中心とした視点からみると、データレート測定テストを開始して、第2のサーバ間のデータレートを測定するために、ゲートウェイにおいて、ネットワークを介して第2のサーバから開始信号を受信すること、データレート測定テストの開始後、ゲートウェイからテストデータを第2のサーバに提供すること、所定のデータブロックレートを実質的に保証するために、ゲートウェイにおいて、データブロックサイズを計算することをも含み、第2のサーバとゲートウェイとの間のデータレートは、データレート測定構成要素を使用して特定され、ネットワークを介してゲートウェイに提供される。
【0073】
別の場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイの構成を変更又は更新するために、ゲートウェイにおいて第1のサーバから、構成データを受信することをも含む。更なる場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイにおいて第1のサーバから、構成要素の動作を開始又は停止する命令を受信することをも含む。
【0074】
更に別の場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイから第1のサーバにおいて、ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを送信することをも含み、その構成要素の仮想表現が、第1のサーバにおいて取得され、仮想表現は、仮想制御インターフェースを含み、仮想制御インターフェースは、コマンド/命令を構成要素に提供できるようにする。更に別の場合、これらの教示の方法は、ゲートウェイを中心とした視点からみると、ゲートウェイにおいて、ゲートウェイに動作可能に接続された構成要素へのコマンド/命令を受信することをも含む。
【0075】
第1のサーバ、第2のサーバ、及び/又はゲートウェイ構成要素のうちの少なくとも1つが、1つ又は複数のプロセッサに、コンピュータ使用可能媒体に具現されるコンピュータ可読コードを実行させることにより、上述した機能を実行するように構成される場合、本教示は、内部に具現されるコンピュータ可読コードを有するコンピュータ使用可能媒体を含む1つ又は複数のコンピュータプログラム製品も含む。
【0076】
計算デバイスの様々な構成要素の説明は、構成要素を相互接続するいかなる特定のアーキテクチャ又は様式も表すことが意図されていない。開示される趣旨と併せて、より少数又はより多数の構成要素を有する他のシステムを使用することもできる。通信デバイスは、ある形態の計算デバイスを構成し得、少なくとも、計算デバイスを含み得る。計算デバイスは、相互接続(例えば、バス及びシステムコア論理)を含み得、相互接続は、計算デバイスのそのような構成要素を、プロセッサ若しくはマイクロプロセッサ等のデータ処理デバイス又は他の形態の部分的若しくは完全にプログラム可能若しくは予めプログラムされるデバイス、例えば、コントローラ若しくはマイクロコントローラ、デジタル信号プロセッサ等のハードワイヤード及び又は特定用途向け集積回路(「ASIC」)カスタマイズ論理回路、又は命令をフェッチし、予めロード/予めプログラムされる命令及び/又はハードワイヤード若しくはカスタマイズされた回路で見られ、本開示で記載されるようなプロセスのステップ、プロセス全体、及び機能を一緒に実行する論理動作を実行する続く命令で動作する任意の他の形態のデバイスに相互接続することができる。
【0077】
上記説明では、様々な機能、機能性、及び/又は動作は、説明を簡潔にするために、ソフトウェアプログラムコードによって実行されるもの又はソフトウェアプログラムコードによって生じるものとして説明されることがある。しかし、そのような表現によって意味されるものが、機能が、例えば、マイクロプロセッサ、マイクロコントローラ、論理回路等のプロセッサを含む、上述したような計算デバイスによるプログラムコード/命令の実行から生じることであることを当業者は認識する。代替として、又は組み合わせて、機能及び動作は、ソフトウェア命令あり又はなしで、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)を使用するなど、プログラム可能、部分的にプログラム可能、又はハードワイヤードであり得る専用回路を使用して実施することができる。特定用途向け集積回路(「ASIC」)論理は、ベースゲートアレイASICアーキテクチャのメタライゼーション相互接続によりカスタマイズされた論理を実施するか、又は製造業者の機能ブロックライブラリ等に含まれる標準セル機能ブロック間のメタライゼーション相互接続を選択し提供するゲートアレイ又は標準セル等であり得る。したがって、実施形態は、プログラムソフトウェアコード/命令なしでハードワイヤード回路を使用して、又はプログラムされたソフトウェアコード/命令を使用する回路と組み合わせて実施することができる。
【0078】
したがって、技法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されず、また計算デバイス内のデータプロセッサによって実行される命令の実体的ないかなる特定のソースにも限定されない。幾つかの実施形態は、完全に機能するコンピュータ及びコンピュータシステムで実施することができるが、様々な実施形態は、例えば、様々な形態を含む計算デバイスとして分散可能であり、機能及び動作の実行及び/又は機能、機能性、及び/又は動作の実行の分散を実際に行うのに使用される特定のタイプのマシン又は実体的なコンピュータ可読媒体に関係なく、適用可能である。
【0079】
相互接続は、データ処理デバイスを接続して、メモリを含む論理回路を定義し得る。相互接続は、マイクロプロセッサをオンボードキャッシュメモリ若しくはメインメモリ又はディスクドライブ等の外部(マイクロプロセッサの)メモリに結合するなど、データ処理デバイスの内部にあってもよく、又はリモートメモリ、ディスクファーム、又は他の大容量記憶デバイス等、計算デバイスの外部にあってもよい。1つ又は複数が計算デバイス又は計算デバイスの一部であることができる市販のマイクロプロセッサは、例として、Hewlett-Packard CompanyからのPA−RISCシリーズマイクロプロセッサ、Intel Corporationからの80×86又はPentiumシリーズマイクロプロセッサ、IBMからのPowerPCマイクロプロセッサ、Sun Microsystems,Inc.からのSparcマイクロプロセッサ、又はMotorola Corporationからの68xxxシリーズマイクロプロセッサを含む。
【0080】
相互接続は、マイクロプロセッサ及びメモリ等を相互接続することに加えて、そのような要素をディスプレイコントローラ及びディスプレイデバイス、及び/又は例えば、入/出力コントローラを通して入/出力(I/O)デバイス等の他の周辺デバイスに相互接続することもできる。典型的なI/Oデバイスは、マウス、キーボード、モデム、ネットワークインターフェース、プリンタ、スキャナ、ビデオカメラ、及び当分野で周知の他のデバイスを含むことができる。相互接続は、様々なブリッジ、コントローラ、及び/又はアダプタを通して互いに接続される1つ又は複数のバスを含み得る。一実施形態では、I/Oコントローラは、USB周辺機器を制御するUSB(ユニバーサルシリアルバス)アダプタ及び/又はIEEE−1394周辺機器を制御するIEEE−1394バスアダプタを含む。
【0081】
メモリは、任意の実体的なコンピュータ可読媒体を含み得、実体的なコンピュータ可読媒体は、メモリ内のデータをリフレッシュ又は維持するために常時電力を必要とする、通常、ダイナミックRAM(DRAM)として実施される揮発性RAM(ランダムアクセスメモリ)、不揮発性ROM(読み取り専用メモリ)、及びハードドライブ、フラッシュメモリ、脱着可能なメモリスティック等の他のタイプの不揮発性メモリ等の揮発性及び不揮発性メモリデバイス等の記録可能及び非記録可能型の媒体を含むが、これらに限定されない。不揮発性メモリは通常、磁気ハードドライブ、磁気光学ドライブ、光学ドライブ(例えば、DVD RAM、CD ROM、DVD、若しくはCD)、又は電力がシステムからなくなった後であってもデータを維持する他のタイプのメモリシステムを含み得る。
【0082】
サーバは、1つ又は複数の計算デバイスで構成することができる。サーバは、例えば、ネットワーク内で利用されて、ネットワークデータベースをホストし、必要な変数及び情報をデータベース内の情報から計算し、データベースからの情報を記憶し復元し、情報及び変数を追跡し、情報及び変数をアップロード及びダウンロードするインターフェースを提供し、且つ/又はデータベースからの情報及びデータをソートするか、又は他の方法で操作することができる。一実施形態では、サーバは、ローカル又はリモートに位置決めされる他の計算デバイスと併せて使用されて、本願で記載し得るような特定の計算及び他の機能を実行することができる。
【0083】
開示される趣旨の少なくとも幾つかの態様は、少なくとも部分的に、プログラムされたソフトウェアコード/命令を利用して実施することができる。すなわち、機能、機能性、及び/又は動作技法は、マイクロプロセッサ等のプロセッサが、ROM、揮発性RAM、不揮発性メモリ、キャッシュ、又はリモート記憶デバイス等のメモリに含まれる命令シーケンスを実行することに応答して、計算デバイス又は他のデータ処理システムで実行し得る。一般に、開示される趣旨の実施形態を実施するために実行されるルーチンは、オペレーティングシステムの一部又は特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、又は「コンピュータプログラム」若しくは「ソフトウェア」と通常呼ばれる命令シーケンスとして実施し得る。コンピュータプログラムは通常、キャッシュメモリ、メインメモリ、内部又は外部ディスクドライブ、及びディスクファーム等の他のリモート記憶デバイス等の計算デバイス内の様々な実体的なメモリ及び記憶デバイスに様々な時に記憶され、計算デバイス内のプロセッサによって読み出されて実行されると、計算デバイスに、方法、例えば、プロセス及び動作ステップを実行させて、開示される趣旨の方法の幾つかの態様の部分として、要素を実行させる命令を含む。
【0084】
実体的なマシン可読媒体が、計算デバイスによって実行されると、計算デバイスに、開示される趣旨を定義する1つ又は複数の添付の請求項に記載され得る方法を実行させるソフトウェア及びデータの記憶に使用可能である。実体的なマシン可読媒体は、例えば、ROM、揮発性RAM、不揮発性メモリ、及び/又はキャッシュを含め、様々な実体的ロケーションに実行可能なソフトウェアプログラムコード/命令及びデータのストレージを含み得る。このプログラムソフトウェアコード/命令及び/又はデータの部分は、これらの記憶デバイスの任意の1つに記憶し得る。さらに、プログラムソフトウェアコード/命令は、例えば、中央サーバ又はピアツーピアネットワーク等を通してなどを含む態様で、リモート記憶デバイスから取得することができる。ソフトウェアプログラムコード/命令及びデータの異なる部分は、異なる時間及び異なる通信セッション又は同じ通信セッションで取得することができる。
【0085】
ソフトウェアプログラムコード/命令及びデータは、計算デバイスによる各ソフトウェアアプリケーションの実行前に全体的に取得することができる。代替的には、ソフトウェアプログラムコード/命令及びデータの部分は、動的に、例えば適時に、実行に必要なときに取得することができる。代替的には、ソフトウェアプログラムコード/命令及びデータを取得するこれらの方法の幾つかの組合せが、例として、例えば異なるアプリケーション、構成要素、プログラム、オブジェクト、モジュール、ルーチン、又は他の命令シーケンス若しくは命令シーケンスの編成で行われ得る。したがって、データ及び命令が、任意の特定の瞬間に1つのマシン可読媒体に全体的に存在する必要はない。
【0086】
一般に、実体的なマシン可読媒体は、マシン(すなわち、インターネット等の通信ネットワークからアプリケーションをダウンロードし実行可能であるか否かに関係なく、例えば、通信デバイス、ネットワークデバイス、個人情報端末、モバイル通信デバイス内、例えば、I-Phone、Blackberry、Droid等に含まれ得る計算デバイス、製造ツール、又は1つ若しくは複数のデータプロセッサ等を含む計算デバイスを含む任意の他のデバイスによりアクセス可能な形態で情報を提供する(すなわち、記憶する)任意の実体的な機構を含む。
【0087】
本教示を説明し定義するために、「実質的に」という用語が、本明細書では、任意の数量的比較、値、測定値、又は他の表現に起因し得る、固有の不確実性を表すために利用されることに留意する。「実質的に」という用語は、本明細書では、数量表現が、問題となっている趣旨の基本機能の変化を生じさせずに、述べられている言及から変更可能な程度を表すためにも利用される。
【0088】
これらの教示について様々な実施形態に関して説明したが、これらの教示が、添付の特許請求の範囲の趣旨及び範囲内で、多種多様な更なる実施形態及び他の実施形態が可能なことを認識されたい。