Method and systems for providing data to a remote site
26 claims: 22 independent, 4 dependent
- 1要求データを提供する方法であって、 第1のサーバにおいて、データへの要求を受信することであって、前記データへの要求はゲートウェイを指定し、 前記ゲートウェイはローカルサイトをネットワークに相互接続し、データ生成装置が前記ローカルサイトに設置され、 前記ゲートウェイは、ネットワークを介して前記第1のサーバに動作可能に接続され、 前記ゲートウェイと前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、 前記データへの要求は、第2のサーバでの所定のポート番号を含 み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第2のサーバに提供され、前記第2のサーバは前記データへの要求を前記第1のサーバに直接提供する 、受信することと、 前記第1のサーバから、前記データへの要求を前記ゲートウェイに送信することであって、 前記ゲートウェイは前記ネットワークを介して前記第2のサーバに直接接続され、前記ゲートウェイは前記データ生成装置にも直接接続され、 前記データは、前記ゲートウェイによって検索され、前記ネットワークを介して前記第2のサーバの前記所定のポート番号に提供される、送信することとを含む、方法。
- 2前記ゲートウェイの構成を変更又は更新するために、前記第1のサーバから前記ゲートウェイに構成データを提供することを更に含む、請求項1に記載の方法。
- 3前記第1のサーバから前記ゲートウェイに、構成要素の動作を開始又は停止する命令を提供することを更に含む、請求項1に記載の方法。
- 4前記第1のサーバにおいて、前記ゲートウェイから前記ゲートウェイに動作可能に接続される構成要素を特徴付ける構成要素データを受信することと、 前記第1のサーバにおいて、前記構成要素の仮想表現を取得することであって、前記仮想表現は、仮想制御インターフェースを含み、前記仮想制御インターフェースは、前記構成要素へのコマンド/命令の提供を可能にする、取得することとを更に含む、請求項1に記載の方法。
- 5前記第1のサーバから、前記ゲートウェイに動作可能に接続された前記構成要素にコマンド/命令を提供することを更に含む、請求項4に記載の方法。
- 6要求データを提供する方法であって、 第2のサーバから第1のサーバに、データへの要求を送信することであって、 前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第2のサーバに提供され、 前記データへの要求はゲートウェイを指定し、 前記ゲートウェイはローカルサイトをネットワークに相互接続し、データ生成装置が前記ローカルサイトに設置され、 前記ゲートウェイは、ネットワークを介して前記第1のサーバに動作可能に接続され、 前記ゲートウェイと前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、前記ゲートウェイは前記データ生成装置にも直接接続され、 前記データへの要求は、 前記 第2のサーバでの所定のポート番号を含み、前記第1のサーバは、前記データへの要求を前記ゲートウェイに送信し、前記データは前記ゲートウェイによって検索される、送信することと、 前記第2のサーバにおいて前記ネットワークを介して、前記所定のポート番号で前記データを受信することであって、前記データは前記ゲートウェイによって提供される、受信することとを含む、方法。
- 7前記第2のサーバは、データレート測定構成要素を含み、前記方法は、 データレート測定テストを開始して、前記第2のサーバと前記ゲートウェイとの間のデータレートを測定するために、前記ネットワークを介して前記第2のサーバから前記ゲートウェイに開始信号を送信することであって、前記データレート測定テストの開始後、テストデータが前記ゲートウェイにより前記第2のサーバに提供される、送信することと、 前記データレート測定構成要素を使用して、前記第2のサーバと前記ゲートウェイとの間のデータレートを特定することと、 前記第2のサーバから前記データレートを前記ゲートウェイに提供することであって、所定のデータブロックレートを実質的に保証するために、データブロックサイズが、前記ゲートウェイにおいて計算される、提供することとを更に含む、 請求項6 に記載の方法。
- 8要求データを提供する方法であって、 ネットワークを介してゲートウェイを第1のサーバに動作可能に接続すること であって、前記ゲートウェイと前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであること と、 前記ゲートウェイにおいて、データへの要求を受信することであって、前記データへの要求は、第2のサーバでの所定のポート番号を含 み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第2のサーバに提供され、前記第2のサーバは前記データへの要求を前記第1のサーバに直接提供する 、受信することと、 前記ゲートウェイにおいて、前記データをデータソースから検索することと、 前記ネットワークを介して前記ゲートウェイを前記第2のサーバにおけるポートに動作可能に接続することであって、前記ポートは前記所定のポート番号に対応する、動作可能に接続することと、 前記ゲートウェイから前記データを前記第2のサーバに送信 し、前記第2のサーバは前記データを前記リモートサイトに送信すること とを含む、方法。
- 9前記第2のサーバは、データレート測定構成要素を含み、前記方法は、 データレート測定テストを開始して、前記第2のサーバ間のデータレートを測定するために、前記ゲートウェイにおいて、前記ネットワークを介して前記第2のサーバから開始信号を受信することと、 前記データレート測定テストの開始後、前記ゲートウェイからテストデータを前記第2のサーバにテストデータを提供することであって、前記第2のサーバと前記ゲートウェイとの間のデータレートは、前記データレート測定構成要素を使用して特定され、前記ネットワークを介して前記ゲートウェイに提供される、提供することと、 所定のデータブロックレートを実質的に保証するために、前記ゲートウェイにおいて、データブロックサイズを計算することとを更に含む、 請求項8 に記載の方法。
- 10前記ゲートウェイの構成を変更又は更新するために、前記ゲートウェイにおいて前記第1のサーバから、構成データを受信することを更に含む、 請求項8 に記載の方法。
- 11前記ゲートウェイにおいて前記第1のサーバから、構成要素の動作を開始又は停止する命令を受信することを更に含む、 請求項8 に記載の方法。
- 12前記ゲートウェイから前記第1のサーバにおいて、前記ゲートウェイに動作可能に接続された構成要素を特徴付ける構成要素データを送信することであって、前記構成要素の仮想表現が、前記第1のサーバにおいて取得され、前記仮想表現は、仮想制御インターフェースを含み、前記仮想制御インターフェースは、コマンド/命令を前記構成要素に提供できるようにする、送信することを更に含む、 請求項8 に記載の方法。
- 13前記ゲートウェイにおいて、前記ゲートウェイに動作可能に接続された前記構成要素へのコマンド/命令を受信することを更に含む、 請求項12 に記載の方法。
- 14第1のサーバと、 ネットワークを介して前記第1のサーバに動作可能に接続される第2のサーバと、 前記ネットワークを介して前記第1のサーバ及び前記第2のサーバに動作可能に接続されるゲートウェイ構成要素であって、 前記ゲートウェイ構成要素と前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイ構成要素の電源が入っている限り、開いた状態のままであり、前記ゲートウェイ構成要素は前記ネットワークを介して前記第2のサーバに直接接続され、前記ゲートウェイ構成要素はデータ生成装置にも直接接続される、ゲートウェイ構成要素 とを含み、 前記第1のサーバは、 データへの要求を受信することであって、前記データへの要求は、前記ゲートウェイ構成要素を指定し、前記データへの要求は、前記第2のサーバでの所定のポート番号を含む、受信すること、及び 前記データへの要求を前記ゲートウェイ構成要素に送信することを実行するように構成され、 前記第2のサーバは、 前記データへの要求をリモートサイトから受信すること、及び 前記所定のポート番号において前記データを受信することであって、前記データは前記ゲートウェイ構成要素によって提供される、受信することを実行するように構成され、 前記ゲートウェイ構成要素は、 前記データへの要求を受信すること、 前記データをデータソースから検索すること、 前記ネットワークを介して前記第2のサーバのポートに動作可能に接続することであって、前記ポートは前記所定のポート番号に対応する、動作可能に接続すること、及び 前記データを前記第2のサーバに送信することを実行するように構成される、システム。
- 15前記第2のサーバは、前記第1のサーバに前記データへの要求を送信するようにも構成される、 請求項14 に記載のシステム。
- 16前記第2のサーバは、 前 記データを受信した後、前記データを前記リモートサイトに送信することとを実行するようにも構成される、 請求項15 に記載のシステム。
- 17前記第2のサーバは、データレート測定サブシステムを含み、前記第2のサーバは、 データレート測定テストを開始して、前記第2のサーバと前記ゲートウェイ構成要素との間のデータレートを測定するために、前記ネットワークを介して、開始信号を前記ゲートウェイ構成要素に送信することを実行するようにも構成され、前記ゲートウェイ構成要素は、前記データレート測定テストの開始後、テストデータを前記第2のサーバに提供するようにも構成され、前記第2のサーバは、 前記データレート測定サブシステムを使用して、前記第2のサーバと前記ゲートウェイ構成要素との間のデータレートを特定することと、 前記データレートを前記ゲートウェイ構成要素に提供することとを実行するように更に構成され、 前記ゲートウェイ構成要素は、所定のデータブロックレートを実質的に保証するために、データブロックサイズを計算するように更に構成される、 請求項14 に記載のシステム。
- 18前記第1のサーバは、 前記ゲートウェイ構成要素の構成を変更又は更新するために、前記ゲートウェイ構成要素に構成データを提供するようにも構成される、 請求項14 に記載のシステム。
- 19前記第1のサーバは、 前記ゲートウェイに、構成要素の動作を開始又は停止する命令を提供するようにも構成される、 請求項14 に記載のシステム。
- 20前記第1のサーバは、 前記ゲートウェイから、前記ゲートウェイ構成要素に動作可能に接続された構成要素を特徴付ける構成要素データを受信することと、 前記構成要素の仮想表現を取得することであって、前記仮想表現は仮想制御インターフェースを含み、前記仮想制御インターフェースは、前記構成要素へのコマンド/命令の提供を可能にする、取得することとを実行するようにも構成される、 請求項14 に記載のシステム。
- 21前記第1のサーバは、 前記ゲートウェイ構成要素に動作可能に接続された前記構成要素にコマンド/命令を提供するようにも構成される、 請求項20 に記載のシステム。
- 22前記第1のサーバは、 少なくとも1つの第1のプロセッサと、 第1のコンピュータ使用可能媒体であって、前記第1のコンピュータ使用可能媒体及び前記少なくとも1つの第1のプロセッサは、動作可能に接続される、第1のコンピュータ使用可能媒体とを含み、 前記第2のサーバは、 少なくとも1つの第2のプロセッサと、 第2のコンピュータ使用可能媒体であって、前記第2のコンピュータ使用可能媒体及び前記少なくとも1つの第2のプロセッサは、動作可能に接続される、第2のコンピュータ使用可能媒体とを含み、 前記第1のコンピュータ使用可能媒体は、内部に具現される第1のコンピュータ可読コードを有し、前記第1のコンピュータ可読コードは、前記少なくとも1つの第1のプロセッサに、 データへの要求を受信することであって、前記データへの要求は前記ゲートウェイ構成要素を指定し、前記データへの要求は、 前記 第2のサーバでの所定のポート番号を含む、受信することと、 前記データへの要求を前記ゲートウェイ構成要素に送信することとを実行させ、 前記第2のコンピュータ使用可能媒体は、内部に具現される第2のコンピュータ可読コードを有し、前記第2のコンピュータ可読コードは、前記少なくとも1つの第2のプロセッサに、 前記所定のポート番号において前記データを受信することであって、前記データは前記ゲートウェイ構成要素によって提供される、受信することを実行させる、 請求項14 に記載のシステム。
- 23前記ゲートウェイ構成要素は、 少なくとも1つの第3のプロセッサと、 内部に具現される第3のコンピュータ可読コードを有する第3のコンピュータ使用可能媒体とを含み、 前記第3のコンピュータ可読コードは、前記少なくとも1つの第3のプロセッサに、 前記データへの要求を受信することと、 前記データをデータソースから検索することと、 前記ネットワークを介して前記第2のサーバでのポートに動作可能に接続することであって、前記ポートは前記所定のポート番号に対応する、動作可能に接続することと、 前記データを前記第2のサーバに送信することとを実行させ、 前記第3のコンピュータ使用可能媒体及び前記少なくとも1つの第3のプロセッサは、動作可能に接続される、 請求項22 に記載のシステム。
- 24コンピュータプログラム製品であって、 内部に具現されるコンピュータ可読コードを有する非一時的なコンピュータ使用可能媒体を含み、前記コンピュータ可読コードは、少なくとも1つのプロセッサに、 第1のサーバにおいてデータへの要求を受信することであって、前記データへの要求はゲートウェイを指定し、前記ゲートウェイは、ネットワークを介して前記第1のサーバに動作可能に接続され、 前記ゲートウェイと前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、 前記データへの要求は、第2のサーバでの所定のポート番号を含 み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第2のサーバに提供され、前記データへの要求は、データ生成装置に対するデータへの要求であり、前記データ生成装置は、前記ゲートウェイに動作可能に接続される 、受信することと、 前記第1のサーバから前記ゲートウェイに前記データへの要求を送信することであって、前記データは、前記ゲートウェイによって検索され、前記ネットワークを介して、前記第2のサーバに対して前記所定のポート番号において提供される、送信することとを実行させる、コンピュータプログラム製品。
- 25コンピュータプログラム製品であって、 内部に具現されるコンピュータ可読コードを有する非一時的なコンピュータ使用可能媒体を含み、前記コンピュータ可読コードは、少なくとも1つのプロセッサに、 第2のサーバから、第1のサーバにデータへの要求を送信することであって、前記データへの要求はゲートウェイを指定し、前記ゲートウェイは、ネットワークを介して前記第1のサーバに動作可能に接続され、 前記ゲートウェイと前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであり、 前記データへの要求は、前記第2のサーバでの所定のポート番号を含み、 前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第2のサーバに提供され、前記データへの要求は、データ生成装置に対するデータへの要求であり、前記データ生成装置は、前記ゲートウェイに動作可能に接続され、 前記第1のサーバは、前記データへの要求を前記ゲートウェイに送信し、前記データは前記ゲートウェイによって検索される、送信することと、 前記第2のサーバにおいて前記ネットワークを介して、前記所定のポート番号で前記データを受信することであって、前記データは前記ゲートウェイによって提供される、受信することとを実行させる、コンピュータプログラム製品。
- 26コンピュータプログラム製品であって、 内部に具現されるコンピュータ可読コードを有する非一時的なコンピュータ使用可能媒体を含み、前記コンピュータ可読コードは、少なくとも1つのプロセッサに、 ネットワークを介してゲートウェイを第1のサーバに動作可能に接続すること であって、前記ゲートウェイと前記第1のサーバとの間の動作可能な接続は、前記ゲートウェイの電源が入っている限り、開いた状態のままであること と、 前記ゲートウェイにおいて 、デ ータへの要求を受信することであって、前記データへの要求は、第2のサーバでの所定のポート番号を含 み、前記データへの要求はリモートサイトにおいて発せられ、前記データへの要求は前記リモートサイトから前記第2のサーバに提供され、前記データへの要求は、データ生成装置に対するデータへの要求であり、前記データ生成装置は、前記ゲートウェイに動作可能に接続される 、受信することと、 前記ゲートウェイにおいて、データソースから前記データを検索することと、 前記ネットワークを介して前記ゲートウェイを前記第2のサーバでのポートに動作可能に接続することであって、前記ポートは、前記所定のポート番号に対応する、動作可能に接続することと、 前記ゲートウェイから前記データを前記第2のサーバに送信することとを実行させる、コンピュータプログラム製品。
Independent claims26
80 paragraphs, as filed
Background These teachings generally relate to providing data to remote sites, and more specifically to methods and systems for providing data to remote sites using gateways.
Communication over the Internet requires data transfer between two machines. The local machine requests a connection with the specified port number on the remote machine. The dynamically allocated port on the local machine can then connect to the specified port on the remote machine to facilitate communication.
The communication itself may be TCP-based, where two machines are specifically connected via a dedicated channel (such as a phone call), or whether one machine sends data and the other receives it. It may be a UDP transfer that you don't notice (similar to a postal service). Both of these methods utilize what are called "ports", through which data transfer takes place over a single shared physical network line.
At the local end, machines typically connect through a router. This router performs multiple functions, one of which may be to protect the internal local network from network snoopers and hackers. Routers do this by selectively opening and closing ports accessible to the local network from the outside world.
Hackers can use open ports to gain access to machines in their local network. However, if the router is set up to disallow input requests to some port numbers, hackers will not be able to gain access. Such a configuration is called a connection through a firewall.
For this reason, it is desirable to allow the minimum required number of input ports to the local network. On the other hand, the output port is safe because the data being transferred starts from the local end and is transmitted to the outside.
On the remote side, sophisticated security solutions can be used to reduce the impact of unauthorized access to the system, and more sophisticated firewalls and heuristic rules can be used to ensure that the requested access is legitimate. To judge. This level equipment installation is impractical for home and small business owners to use at the local end.
If the data source, eg, a camera, is located at a local site, it is desirable to be able to monitor the output of the data source, eg, video from the camera from a remote site. Normally, the port should be opened in a local firewall, which allows remote monitoring requests to be passed to the data source so that the output from the data source can be retrieved from the data source. This causes anxiety, that is, opening local ports on firewalls / routers.
<p> There is a need for methods and systems to serve data to remote sites that do not require firewalls / routers to open local ports.</p>
<p>Summary In this specification, the methods and systems for providing data to remote sites that do not require the firewall / router to open local ports are presented below.</p><p> In one or more embodiments, the systems of these teachings are a first server, a second server operably connected to the first server over the network, and a first over the network. Includes a server and gateway components that are operably connected to a second server. The first server is configured to receive the request for data and send the request for data to the gateway component, and the request for data specifies the gateway component and Includes a given port number on the second server. The second server is configured to perform receiving data on a given port number, and the data is provided by the gateway component. In these embodiments, the gateway component receives a request for data, retrieves data from a data source, and operably connects to a port on a second server over a network. , Is configured to send data to a second server and the ports correspond to a given port number.</p><p> In the case of one or more, the second server receives the request for data from the remote site, sends the request for data to the first server, and after receiving the data, remotes the data. It is also configured to perform sending to the site.</p><p> In one or more embodiments, these teaching methods can be described from a first server-centric perspective, a second server-centric perspective, or a gateway-centric perspective.</p><p> In one or more embodiments, from a first server-centric point of view, these teaching methods shown in FIG. 6 are for the first server to receive a request for data (FIG. 6). 6. Step 160) and sending a request for data from the first server to the gateway (Figure 6, step 165), the request for data specifies the gateway, which is over the network. Operatively connected to the first server, the request for data includes the given port number on the second server, the data is retrieved by the gateway and over the network the given port number on the second server. Provided to.</p><p> In one or more embodiments, from a second server-centric point of view, these methods of teaching include sending a request for data from the second server to the first server. A request for data specifies a gateway, which includes receiving data on a given port number over the network at the second server, and the gateway is operably connected to the first server over the network. The request for data includes a predetermined port number on the second server, the first server sends the request for data to the gateway, the data is retrieved by the gateway, and the data is provided by the gateway.</p><p> In one or more embodiments, from a gateway-centric point of view, these teaching methods operably connect the gateway to a first server over a network and, at the gateway, to data. Receiving requests from the gateway, retrieving data from the data source at the gateway, and operably connecting the gateway to the port of the second server over the network, and sending the data from the gateway to the second server. The request for data includes a predetermined port number on the second server, including sending to the server, and the port corresponds to the predetermined port number.</p><p> Several other embodiments are also disclosed, including embodiments of computer program products.</p><p> In order to better understand this teaching, along with other and additional purposes, the scope of this teaching is pointed out in the appended claims, with reference to the accompanying drawings and detailed description.</p>
<figref num="1">It is a schematic block diagram representation of one embodiment of these teaching systems.</figref><figref num="2">It is a schematic partial block diagram representation of another embodiment of these teaching systems.</figref><figref num="3">It is a schematic partial block diagram representation of yet another embodiment of these teaching systems.</figref><figref num="4">It is a schematic block diagram representation of the components of the embodiments of these teaching systems.</figref><figref num="5">It is a schematic flowchart representation of one embodiment of these teaching methods.</figref><figref num="6">It is a schematic flowchart representation of the viewpoint centered on the first server of one embodiment of these teaching methods.</figref><figref num="7">It is a schematic flowchart representation of the viewpoint centered on the second server of one embodiment of these teaching methods.</figref><figref num="8">It is a schematic flowchart representation of the viewpoint centered on the gateway of one embodiment of these teaching methods.</figref>
Detailed Description In this specification, the methods and systems for providing data to remote sites without the need to open local ports on firewalls / routers are presented below.
The following detailed description presents a currently intended form of carrying out the present invention. The description should not be construed in a limited sense, and the scope of the invention is best defined by the appended claims and is merely provided to demonstrate the general principles of the invention.
As used herein, the singular forms "a," "an," and "the" include the plural, unless the context clearly indicates otherwise.
Unless otherwise indicated, all numbers representing the quantity, reaction state, etc. of materials used herein and in the claims are in all cases modified by the term "about". It should be understood as a thing.
A "gateway" or "gateway component", as used herein, is a communication device that interconnects a local site to a network. The gateway can connect the local site to other components through the network.
A "data block", as used herein, is a block of data that is transferred from a local site to another component. An exemplary embodiment of a data block is a frame in a video stream.
In one or more embodiments, the systems of these teachings are a first server, a second server operably connected to the first server over the network, and a first over the network. Includes a server and gateway components that are operably connected to a second server. The first server is configured to receive the request for data and send the request for data to the gateway component, and the request for data specifies the gateway component and Includes a given port number on the second server. The second server is configured to perform receiving data on a given port number, and the data is provided by the gateway component. In these embodiments, the gateway component receives a request for data, retrieves data from a data source, and operably connects to a port on a second server over a network. , Is configured to send data to a second server and the ports correspond to a given port number.
In one case, the request for data is made at the remote site. In some cases, requests for data are delivered from the remote site to the second server and from the second server to the first server.
FIG. 1 shows embodiments of these teaching systems. With reference to FIG. 1, in the embodiment shown, the first server 20 (also called the remote management system (RMS)) and the second through the gateway 10 (also called the gateway component), then the local site 12, the network 45. Server 30 (also known as the Gateway Backend (GBE) Server). The remote site 40 is connected to the second server 30 through the network.
To further clarify this teaching, an exemplary embodiment in which a request for a video stream from a camera installed at the local site 12 begins at the remote site 40 is presented below. It should be noted that these teachings are not limited to just the exemplary embodiments. For example, other embodiments may include, but are not limited to, pre-programmed requests for data originating from the first server 20.
In an exemplary embodiment, one or more cameras are installed at the local site to provide the video stream, but as another example of a device installed at the local site 12 that can be accessed from a gateway, These teachings are not limited to those examples, such as binary switches that provide on / off functionality, multi-level switches that provide a set of configurable levels, one example is a dimmer, motion detectors, door sensors, etc. Binary sensors, thermostat controllers, access control devices such as authentication door entries, siren / chime / audio output devices, stepper motor controllers, PWM speed controllers, etc.
When powered on, gateway 10 connects to remote management system (RMS) 20 and keeps this connection open as long as gateway 10 is powered on. This connection is then used to send various requests to the gateway. One such requirement is to start streaming from a locally installed camera. This request can be made in the response of the remote video monitoring display.
If the remote site makes a request to the video stream, the following steps follow. 1) The remote site connects to a web server called Gateway Backend (GBE) 30 (1). 2) GBE30 makes a request to RMS20 for the video stream from a specific gateway and camera and the specific port number to which the gateway "back-connects" (2). 3) RSM formats the request and sends it to the gateway over the always open gateway <-> RMS connection (3). Gateway 10 receives the request from RMS20. 4) Gateway 10 sends a video request (4) and retrieves (pulls) video data from the specified camera (5). 5) The gateway then opens a connection (6) with GBE settings at the port number specified via RMS20 and keeps this connection open for video data transfer. 6) The gateway then pushes the camera's video data to the GBE30 via the video data connection (6). 7) GBE30 sends this video data to the requesting remote monitoring site 40 (7).
An exemplary embodiment relates to searching for video data, while other exemplary embodiments may include searching for data from any other device accessible from the gateway. In another exemplary embodiment, instead of retrieving the data, the gateway may say, for example, "If sensor A is activated, start streaming from camera B and turn on illumination A, illumination B. Or "If sensor B is activated, ring a chime and announce message C on voice device A", etc., but you can start a macro not limited to these and search for data from the macro. ..
In one embodiment, the second server includes a data rate measurement subsystem, initiates a data rate measurement test, and over a network to measure the data rate between the second server and the gateway component. It is also configured to send a start signal to the gateway component. In that embodiment, the gateway component is also configured to provide test data to a second server after the start of the data rate measurement test, the second server using the data rate measurement component. It is further configured to identify the data rate between the second server and the gateway component and provide the data rate to the gateway component. The gateway component is further configured to calculate the data block size in order to substantially guarantee a given data block rate. Any conventional data rate measurement subsystem can be used, but for illustration purposes, but not limited to these teachings, the data rate measurement subsystem is a time measurement component (start signal or indicator precedes test data). And if a completion signal or indicator is generated after receiving the test data, a timing component that detects the time between the start signal and the completion signal; a component that detects the number of bits or bytes in the data and It can include subsystems and the like that include components that specify the data rate from the number of bits and time.
FIG. 2 shows the interaction between the gateway component 10 and the second server 30 during data rate measurement. To better illustrate these teachings, exemplary embodiments are presented below when the data block is a frame from a video camera (or a single picture from a still camera). It should be noted that these teachings are not limited to that embodiment.
In an exemplary embodiment, the gateway component 10 connects to various cameras in response to a video stream request. Then, the gateway 10 transmits the video data to the external receiver. It is desirable to maintain a reasonably constant frame rate (frames per second, fps) within the Camera-> Gateway-> Second Server (GBE) pipeline.
One or more frame sizes are available for each camera to which the gateway connects. For example, with the A camera, there are three different frame sizes to choose from for a full frame. Their frame sizes are 640 x 480 image size, 1 megapixel image size, and 4 megapixel image size. Each subsequent frame size is significantly larger than the previous frame size. A large frame size also means that more data is transferred per frame. More data allows the image to be examined more precisely and reduces the chance of errors in face / pattern recognition and the like. Also, it is desirable to maintain a reasonably constant frame rate, for example, 3 fps.
Different installations of gateways have different levels of network (in one case, the Internet) data rates available. Upload speed is crucial to maintaining a proper frame rate for a given frame size. In the United States, domestic cable connections allow upload speeds of about 2 to 2.5 million bits per second (2 to 2.5 mbps). Data rates are slower in Europe and even slower in Asia.
Given the difference in upload data speed, gateway 10 dynamically measures the data rate that can be maintained with the second server 30 (backend (GBE)). The gateway 10 then reduces the frame size from the predefined table to maintain a target frame rate of about 3 fps.
<tables num="1"><img file="JP6473166B2_D0001.tif" /></tables>
The exact path through which the image data is sent needs to be measured to ascertain the upload data rate. For this, the speed measurement server is deployed on the second server 30 (Gateway Backend (GBE)). Since multiple images are later sent to the same GBE machine, the speed measurement server ensures that the data bandwidth is the same as when measuring with multiple images.
Once the speed is available, the frame data size is calculated for a frame rate of about 3fps. (Frame size)<sup>*</sup>3 = Required data throughput / sec
For example, consider a measurement data rate of 1 megabyte / sec ~ = 1000 kilobits / sec.
From the predefined table above, it is possible to calculate the number of frames per second at each size that can be transferred over this connection. 320 × 240 10fps 640 × 480 3.6fps 1MP 1.5fps 4MP 0.6fps
The frame size that results in a throughput lower than the measurement speed or the closest frame size is automatically selected as the default frame size. In this case, the 640 x 480 image can maintain a frame rate close to 3 fps and is selected as the default frame rate. This default can be overridden by sending certain parameters to the gateway at the expense of frame rate.
It should be noted that the above exemplary embodiments are not a limitation of these teachings.
In another case, the first server 20 is also configured to provide configuration data to the gateway component 10 in order to change or update the configuration of the gateway component. Further, the first server 20 is also configured to provide the gateway with instructions to start or stop the operation of the components. In yet another case, the first server 20 is also configured to receive component data from the gateway 10 that characterizes the component operably connected to the gateway component and obtain a virtual representation of that component. The virtual representation includes a virtual control interface, which allows commands / instructions to be provided to its components. In yet another case, the first server 20 is further configured to provide commands / instructions to components operably connected to gateway components.
Figure 3 shows the gateway connection to the first server during component virtualization.
In one embodiment, when the gateway 10 is powered on, the gateway 10 makes a network (in one case, TCP Internet) connection with the first server 20 (remote management system (RMS)). Permanent records are created in the RMS database after gateway 10 reveals itself to the first server 20. The network connection that Gateway 10 makes with RMS20 remains active as long as Gateway 10 is powered on. Therefore, it is possible to communicate between these two devices via the network 45.
In one case, the gateway maintains some files, programs, configuration data, etc. An open connection between gateway 10 and RMS20 can be used to transfer files to gateway 10, modify configuration data at gateway, and start or stop programs at gateway.
The file can be given a version number before transfer. When this is used, RMS20 maintains various versions of files / programs. This allows for recovery options if gateway 10 becomes unstable due to file uploads.
In one embodiment, the gateway 10 connects to a different device 60, such as, but not limited to, a camera. Using RMS20, each of these devices can be virtualized on RMS20 (Figure 3, Virtualization Device 70). Once virtualized, the defined control interface is available on the RMS20. Changes made in this virtualization interface will result in commands and data being transferred to the gateway, which will physically perform the requested commands / actions on the actual camera. Thus, the exposed interface can be used remotely to control the camera, for example. The operation can be such as turning on / off a device, such as a camera, and moving a lens.
This virtualization is not limited to cameras and can be used for any device such as a motion sensor. In addition, the device does not have to be a physical device, and all can be implemented by software, and the virtualization interface can be created by RMS to perform various operations on RMS.
In an exemplary embodiment, some configuration data on the device 60 accessible via a logical program, also called firmware, or a gateway can be updated, similar to the mode in which the virtualized device is accessed through the control interface. In this exemplary embodiment, the requested firmware or data file can be transferred from the RMS 20 to the gateway 10, accompanied by a corresponding command as to what should be done with the transferred data. ..
In a detailed exemplary embodiment, for example, the device 60 is a camera, but is not limited to, the firmware is installed and one of the cameras 60 accessible via the gateway 10 or It can be forwarded to the gateway with the corresponding command to update the firmware on multiple. The gateway can then read the file and issue the correct command sequence to the camera to update the firmware on the camera. After the update, the gateway can take the necessary steps to activate its firmware. This can be as simple as a camera reboot, or it can be a more complex command sequence.
In other cases, a buffer of images is held at the gateway, and if necessary, this image buffer is downloaded to an external site for analysis, thereby providing an alternative to continuous recording of video streams on an external recorder. ..
In another embodiment, the gateway has several sensors, such as motion sensors, temperature sensors, etc., attached to the gateway. In one case, receiving a trigger from one of these sensors initiates offsite recording (not pre-buffered) of the video or image.
The above cases and embodiments can be combined to reduce the availability of data for analysis, resulting in the following embodiments of these teaching methods: The camera does not record continuously offsite. The prebuffer for each camera is kept locally at the gateway. At the time of the event, external recording is triggered. The pre-buffered image is transferred to an external site. These pre-buffered images plus event-based recordings are used for analysis.
In one embodiment, the first server 20, the second server 30, and / or the gateway component 10 can include one or more processors and computer-enabled media, the computer-enabled media being internal. When executed on one or more processors, the computer-readable code embodies on one or more processors, the first server 20, the second server 30, or the gateway. Execute the function configured in component 10. Such an embodiment is shown in FIG. With reference to FIG. 4, in the embodiment shown, one or more processors 210 are operably connected to the computer-enabled medium 220 (by connection component 215), and the computer-enabled medium 220 is embodied internally. The computer-readable code is executed on one or more processors, and the first server 20, the second server 30, or the gateway component is transferred to the one or more processors. Perform the functions configured in 10.
In one exemplary embodiment, without limitation of these teachings, the gateway is a Linux®-based plug computer. Linux is a kernel that allows you to write software targeting plug computers. In an exemplary embodiment, the gateway runs a framework that is OSGi, a Java®-based technology specified by the OSGi Foundation.
In other embodiments, the functions and operations configured in the first server 20, the second server 30, or the gateway component 10 are application specific integrated circuits (ASICs) or field programmable with or without software instructions. Note that this can be done using dedicated circuits that can be programmable, partially programmable, or hardwired, such as using a gate array (FPGA).
One embodiment of these teaching methods is shown in FIG. 5 in the form of a flowchart. Referring to FIG. 5, in the embodiment shown, the first server receives a request for data (FIG. 5, step 105). The first server sends a request for data to the gateway (Figure 5, step 115) and the request for data is received at the gateway (Figure 5, step 125). The gateway retrieves the data from the data source (Figure 5, step 135), connects operably to the port on the second server over the network, and the port corresponds to a given port number (Figure 5, step 135). 145). The gateway then sends the data to the second server (Figure 5, step 155).
In some cases, requests for data originating from the remote site were sent from the remote site to a second server, which in turn sent the data to the remote site after receiving the data.
In one or more embodiments, these teaching methods can be described from a first server-centric perspective, a second server-centric perspective, or a gateway-centric perspective.
In one or more embodiments, from a first server-centric point of view shown in FIG. 6, these teaching methods are for the first server to receive a request for data (FIG. 6). 6. Step 160) and sending a request for data from the first server to the gateway (Figure 6, step 165), the request for data specifies the gateway, which is over the network. Operatively connected to the first server, the request for data includes the given port number on the second server, the data is retrieved by the gateway and over the network the given port number on the second server. Provided to.
In one case, from a first server-centric perspective, these teaching methods provide configuration data from the first server to the gateway in order to change or update the gateway configuration. Also includes. In another case, from a first server-centric point of view, these teaching methods also include providing the gateway with instructions to start or stop the operation of the components from the first server.
In yet another case, from a first server-centric point of view, these teaching methods receive component data from the gateway to the first server that characterizes the components operably connected to the gateway. Including doing and getting a virtual representation of that component on the first server, the virtual representation includes a virtual control interface so that the virtual control interface can provide commands / instructions to the component. To do. Yet another, these teaching methods can also include providing commands / instructions from a first server to components operably connected to a gateway.
In one or more embodiments, from a second server-centric perspective shown in FIG. 7, these teaching methods make a request for data from the second server to the first server. Including sending (Figure 7, step 170), the request for data specifies the gateway, the gateway is operably connected to the first server over the network, and the request for data is the second. The first server sends a request for data to the gateway, including a predetermined port number on the server, and the data is retrieved by the gateway. The method of teaching involves receiving data over a network at a given port number on a second server (FIG. 7, step 175), where the data is provided by the gateway.
In one case, the second server contains the data rate measurement component, and from a second server-centric perspective, these teaching methods initiate a data rate measurement test and a second After the start of the data rate measurement test, the test data is seconded by the gateway, including sending a start signal from the second server to the gateway over the network to measure the data rate between the server and the gateway. Provided to the server. The method of teaching involves using the data rate measurement component to identify the data rate between the second server and the gateway, and to provide the data rate from the second server to the gateway. The block size is calculated at the gateway to substantially guarantee a given data block rate. In an exemplary embodiment, the data block is a frame and the data block is a frame rate.
In one or more embodiments, from a gateway-centric perspective shown in FIG. 8, these teaching methods operably connect the gateway to the first server over a network (FIG. 8). 8. Step 180) and receiving a request for data at the gateway (Figure 8, step 184), the request for data includes a predetermined port number on the second server. The teaching method is to retrieve data from the data source at the gateway (Figure 8, step 188) and to operably connect the gateway to a port on the second server over the network (Figure 8, step 192). ) And sending data from the gateway to a second server (Figure 8, step 196), where the ports correspond to the given port numbers.
In one embodiment, the request for data originates from a remote site. In one case, the remote site sends a request for data to a second server, and the second server sends a request for data to a first server. In this embodiment, when the second server receives the data, the second server provides the data to the remote site.
In one case, the second server contains data rate measurement components, and these teaching methods, from a gateway-centric perspective, initiate a data rate measurement test and are between the second servers. In order to measure the data rate, the gateway receives a start signal from the second server via the network, and after the start of the data rate measurement test, the gateway provides the test data to the second server. In order to substantially guarantee the data block rate of, the data rate between the second server and the gateway also includes calculating the data block size at the gateway, using the data rate measurement component. Identified and provided to the gateway over the network.
In other cases, these teaching methods also include receiving configuration data from a first server at the gateway in order to change or update the gateway configuration from a gateway-centric perspective. Further, these teaching methods also include receiving an instruction to start or stop the operation of a component from a first server at the gateway from a gateway-centric point of view.
In yet another case, these teaching methods, from a gateway-centric point of view, send component data from the gateway to the first server that characterizes the components operably connected to the gateway. Also included, a virtual representation of that component is retrieved on the first server, the virtual representation includes a virtual control interface, which allows commands / instructions to be provided to the component. In yet another case, these teaching methods also include, from a gateway-centric point of view, the gateway receiving commands / instructions to components operably connected to the gateway.
The first server, the second server, and / or at least one of the gateway components, described above, by causing one or more processors to execute computer-readable code embodied in a computer-enabled medium. When configured to perform a function, the teachings also include one or more computer program products, including computer-enabled media with computer-readable code embodied internally.
The description of the various components of a computing device is not intended to represent any particular architecture or mode of interconnecting the components. Other systems with fewer or more components may be used in conjunction with the disclosed intent. The communication device may constitute some form of computing device, and may at least include a computing device. Computational devices may include interconnects (eg, bus and system core logic) that interconnect such components of a computing device into a data processing device such as a processor or microprocessor, or in other forms of partial or other forms. Fully programmable or pre-programmed devices, such as hard-wired and / or application-specific integrated circuits (ASIC) customized logic circuits such as controllers or microcontrollers, digital signal processors, or instructions fetched and preloaded / loaded. Seen in pre-programmed instructions and / or hard-wired or customized circuits, and act on subsequent instructions that perform logical actions that perform the steps, entire process, and functions of the process together as described in this disclosure. It can be interconnected with any other form of device.
In the above description, various functions, functionality, and / or operations may be described as being executed by the software program code or caused by the software program code for the sake of brevity. However, what is meant by such representation is that the function results from the execution of program code / instructions by computing devices such as those described above, including, for example, processors such as microprocessors, microcontrollers, logic circuits. Those skilled in the art recognize that. As an alternative or in combination, functions and operations are programmable, partially programmable, or partially programmable, such as using application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs), with or without software instructions. It can be implemented using a dedicated circuit that can be hard-wired. Application-specific integrated circuit (ASIC) logic implements customized logic through the metallization interconnect of the base gate array ASIC architecture, or between standard cell functional blocks included in the manufacturer's functional block library, etc. It can be a gate array or standard cell that selects and provides a metallization interconnect. Thus, embodiments can be implemented using hardwired circuits without program software code / instructions or in combination with circuits that use programmed software code / instructions.
Thus, the technique is not limited to any particular combination of hardware circuits and software, nor is it limited to any substantive specific source of instructions executed by the data processor in the computing device. While some embodiments can be implemented on fully functional computers and computer systems, the various embodiments can be distributed, for example, as computational devices including the various embodiments, performing functions and operations and performing operations. / Or is applicable regardless of the particular type of machine or substantive computer-readable medium used to actually perform the decentralization of functionality, functionality, and / or execution of actions.
Interconnects can connect data processing devices to define logic circuits that include memory. The interconnect may be inside a data processing device, such as binding the microprocessor to onboard cache memory or main memory or external (microprocessor) memory such as a disk drive, or remote memory, disk farm, or It may be outside the computing device, such as another mass storage device. Commercially available microprocessors, one or more of which can be a computing device or part of a computing device, are, for example, PA-RISC series microprocessors from Hewlett-Packard Company, 80x86 or Pentium series from Intel Corporation. Includes microprocessors, PowerPC microprocessors from IBM, Sparc microprocessors from Sun Microsystems, Inc., or 68xxx series microprocessors from Motorola Corporation.
In addition to interconnecting microprocessors and memory, etc., interconnects connect such elements to display controllers and display devices, and / or, for example, input / output (I / O) devices, etc. through input / output controllers. It can also be interconnected with other peripheral devices. Typical I / O devices can include mice, keyboards, modems, network interfaces, printers, scanners, camcorders, and other devices well known in the art. The interconnect may include one or more buses connected to each other through various bridges, controllers, and / or adapters. In one embodiment, the I / O controller includes a USB (Universal Serial Bus) adapter that controls USB peripherals and / or an IEEE-1394 bus adapter that controls IEEE-1394 peripherals.
The memory can include any substantive computer-readable medium, which is usually implemented as dynamic RAM (DRAM), which requires constant power to refresh or maintain the data in the memory. Volatile and non-volatile memory devices such as volatile RAM (random access memory), non-volatile ROM (read-only memory), and other types of non-volatile memory such as hard drives, flash memory, removable memory sticks, etc. Includes, but is not limited to, recordable and non-recordable media such as. Non-volatile memory is typically a magnetic hard drive, a magnetic optical drive, an optical drive (eg, DVD RAM, CD ROM, DVD, or CD), or any other type that retains data even after power is lost from the system. Memory system can be included.
The server can consist of one or more computing devices. A server is used, for example, in a network to host a network database, calculate necessary variables and information from the information in the database, store and restore information from the database, track information and variables, and provide information. And provide an interface for uploading and downloading variables, and / or information and data from databases can be sorted or otherwise manipulated. In one embodiment, the server can be used in conjunction with other computing devices that are locally or remotely positioned to perform certain computations and other functions as described herein.
At least some aspects of the disclosed intent can be implemented, at least in part, by utilizing programmed software code / instructions. That is, the function, functionality, and / or operating technique is that a processor such as a microprocessor executes an instruction sequence contained in memory such as ROM, volatile RAM, non-volatile memory, cache, or remote storage device. In response, it can be run on a computing device or other data processing system. In general, routines performed to implement embodiments of the disclosed intent are usually parts of an operating system or specific applications, components, programs, objects, modules, or "computer programs" or "software". It can be implemented as an instruction sequence called. Computer programs are typically stored and calculated at various times in various substantive memory and storage devices within computing devices such as cache memory, main memory, internal or external disk drives, and other remote storage devices such as disk farms. When read and executed by a processor in the device, the computing device is made to perform a method, eg, a process and an operation step, to perform an element as part of some aspect of the method to the effect disclosed. Includes instructions.
When a substantive machine-readable medium is executed by a computing device, it is used to store software and data that causes the computing device to perform one or more attachments that define the intent to be disclosed. It can be used. Substantial machine-readable media may include storage of executable software program code / instructions and data in various substantive locations, including, for example, ROM, volatile RAM, non-volatile memory, and / or cache. This program software code / instruction and / or data portion may be stored in any one of these storage devices. Further, the program software code / instruction can be obtained from the remote storage device, including, for example, through a central server or peer-to-peer network. Different parts of the software program code / instruction and data can be acquired at different times and in different communication sessions or in the same communication session.
The software program code / instructions and data can be obtained as a whole before the computing device executes each software application. Alternatively, software program code / instructions and parts of data can be retrieved dynamically, eg, in a timely manner, when needed for execution. Alternatively, some combination of software program code / instructions and these methods of retrieving data, for example, may be, for example, different applications, components, programs, objects, modules, routines, or other instruction sequences or instructions. It can be done in sequence organization. Therefore, the data and instructions need not be entirely present on one machine-readable medium at any particular moment.
In general, a substantive machine-readable medium is, for example, a communication device, a network device, a personal information terminal, a mobile communication device, regardless of whether or not an application can be downloaded and executed from a machine (that is, a communication network such as the Internet). Information in a form accessible by any other device, including, for example, computing devices, manufacturing tools, or computing devices including one or more data processors, etc., which may be included in an I-Phone, Blackberry, Droid, etc. Includes any substantive mechanism to provide (ie, remember).
To explain and define this teaching, the term "substantially" here refers to the inherent uncertainty that may result from any quantitative comparison, value, measurement, or other representation. Note that it is used to represent. The term "substantially" is also used herein to describe the extent to which the quantitative representation can be modified from the statements made without causing a change in the basic function of the intent in question. It will be used.
Although these teachings have been described for various embodiments, it has been recognized that a wide variety of further embodiments and other embodiments are possible within the spirit and scope of the appended claims. I want to.
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2000349821A | Cites | Japan |
| JP2009147900A | Cites | Japan |
| JP4718122B2 | Cites | Japan |
| US20110231652A1 | Cites | United States of America |
| US07069434B1 | Cites | United States of America |
13 members in 8 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 14208723 | United States of America | – | |
| 201414208723 | United States of America | A | |
| 201414208723 | United States of America | A | |
| 2015016516 | United States of America | W | |
| 2015016516 | United States of America | W | |
| 14208723 | – | – | – |
| US201414208723 | – | – | – |
| US2015016516 | – | – | – |
| WO2015US16516 | – | – | – |
Members13
| Document | Office | Kind | |
|---|---|---|---|
| US2015264114A1 | United States of America | A1 | |
| WO2015138099A1 | World Intellectual Property Organization (WIPO) | A1 | |
| CN106105167A | China | A | |
| KR20160138457A | Republic of Korea | A | |
| EP3117582A1 | European Patent Office (EPO) | A1 | |
| JP2017513269A | Japan | A | |
| US10116731B2 | United States of America | B2 | |
| JP6473166B2This record | Japan | B2 | |
| US2019068691A1 | United States of America | A1 | |
| CN106105167B | China | B | |
| EP3117582B1 | European Patent Office (EPO) | B1 | |
| DK3117582T3 | Denmark | T3 | |
| ES2813402T3 | Spain | T3 |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 6473166
- Publication, DOCDB
- 6473166
- Publication, EPODOC
- JP6473166B
- Application
- 2016551258
- Application, DOCDB
- 2016551258
- Application, EPODOC
- JP20160551258
Titles2
- Japanese
- データをリモートサイトに提供する方法及びシステム
- English
- Methods and systems for providing data to remote sites
Classification
- CPC, 3
- H04L63/1441
- H04L41/0803
- H04L67/10
- IPC, 2
- H04L12 66
- H04L12 46
