IP Library Granted Patent US 7,600,036
Granted Patent B2
US 7,600,036 · App. 11/145,294 · Granted Oct 6, 2009

Access and control system for network-enabled devices

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,600,036
App. No.
11/145,294
Granted
Oct 6, 2009
Kind
B2
Abstract

Systems and methods for remote access of network-enabled devices that provide seamless, firewall-compliant connectivity between multiple users and multiple devices, that allow collaborative operations by multiple users of remote devices, that allow point to multipoint control of multiple devices and which allow rapid, secure transmission of data between remote users and devices. In general terms, the system includes at least one connection server, and at least two computers operatively coupled to the connection server via a public or global network. In an example where at least one client computer is operatively connected to at least one network-enabled device through a connection sever via the public or global network, the connection server is configured to route control instructions from the client to the network-enabled device, and route data from the network-enabled device to the client.

Claims (53)

1. A method of load balancing communications among a plurality of connection servers networked in a publicly addressable distributed control infrastructure which multiple computers within multiple private networks may access for establishing communications over a public network, said method comprising:

determining a user type of each computer to be connected by communications through said

publicly addressable distributed control infrastructure in a particular session;

determining a session type of the particular session to be established;

comparing user type and session type determinations with server type information stored in at least one database connected to said distributed control infrastructure;

selecting a connection server characterized by server type information that indicates the connection server is capable of handling the determined user types and session type;

determining if the selected server is active;

determining whether or not the selected server, if active, has adequate Power to handle the connections that will be required to establish the communications for the session; and

if the selected server is active and has adequate Power, determining whether the selected server has the best available Power level for carrying out the session, based upon a calculated average Power expected for the session and Utilization Ratios of each capable, active connection server which has adequate Power.

2. The method of claim 1 , further comprising assigning the selected server determined to active and to have the best available Power level to establish connections between the computers to be included in the session.

3. A method of persistent, secure transfer of data between at least two computers over a public network, wherein the computers have separate privately addressed, firewall protected locations, said method comprising:

accessing a connection server operably connected to the public network by addressing a request from a first computer to a public address of the connection server;

establishing a secure connection between the first computer and the connection server, the connection server establishing a secure connection between the connection server and at least a second computer according to instructions received from the first computer, the first computer including a first data control process, the at least a second computer including a second data control process and the connection server including a third data control process;

setting a polling frequency corresponding to a polling time period;

setting a maximum waiting time period between communications with the connection server, the maximum waiting time period longer than the polling time period;

during the maximum waiting time period, polling a first sending buffer in the first computer at the polling frequency to determine whether any data to be communicated is contained in the first sending buffer;

if data is found during the polling, sending the data from the first sending buffer in the first computer to the connection server; and

if no data is found during the polling, sending a communication from the first computer to the connection server without data from the first sending buffer upon expiration of the maximum waiting time period;

wherein secure, full-duplex, persistent communications are established through the connection server without the computers providing a private address of the computers between which the communications take place.

4. The method of claim 3 , wherein the first data control process sends a request to the connection server along with the data or along with the communication without data.

5. The method of claim 4 , wherein the third data control process adaptively polls the first computer to determine whether the request has been sent; and

upon receiving the request, the third data process reads the request and buffers any data that is included with the request, in a connection server sending buffer associated with the third data control process;

the third data control process additionally adaptively polls the connection server sending buffer to determine whether any data to be sent to the first computer is contained in the connection server sending buffer; and

when data to be sent to the first computer is present, the third data control process sends the data along with a response to the request.

6. The method of claim 5 , wherein the first data control process reads the response, buffers any data that is contained with the response, and notifies the first computer that data has been received.

7. The method of claim 6 , wherein the process steps are iteratively repeated to maintain persistent communications.

8. The method of claim 5 , wherein the third data control process adaptively polls the connection server sending buffer to determine whether any data to be sent to the at least a second computer is contained in the connection server sending buffer; and

when data to be sent to the at least a second computer is present, the third data control process sends the data along with a response to the at least a second computer.

9. The method of claim 5 , wherein the third data control process adaptively polls the at least a second computer to determine whether a request has been sent; and

upon receiving the request from the at least a second computer, the third data process reads the request and buffers any data that is included with the request, in the connection server sending buffer;

the third data control process additionally adaptively polls the connection server sending buffer to determine whether any data to be sent to the at least a second computer is contained in the connection server sending buffer; and

when data to be sent to the at least a second computer is present, the third data control process sends the data along with a response to the request.

10. The method of claim 9 , wherein the second data control process reads the response, buffers any data that is contained with the response, and notifies the at least a second computer that data has been received.

11. The method of claim 9 , wherein the process steps are iteratively repeated to maintain persistent communications.

12. A method of persistent, secure transfer of data between at least two computers over a public network, wherein the computers have separate privately addressed, firewall protected locations, said method comprising:

accessing a connection server operably connected to the public network by addressing a request from a first computer to a public address of the connection server; and

establishing a secure connection between the first computer and the connection server, the connection server establishing a secure connection between the connection server and at least a second computer according to instructions received from the first computer, the first computer including a first data control process, the at least a second computer including a second data control process and the connection server including a third data control process;

wherein secure, full-duplex, persistent communications are established through the connection server without the computers providing a private address of the computers between which the communications take place, and the first data control process adaptively polls a first sending buffer to determine whether any data to be communicated is contained in the first sending buffer;

wherein the first data control process sends the data, and a request to the connection server when the data is contained in the first sending buffer; and

wherein the third data control process adaptively polls the first computer to determine whether a request has been sent;

upon receiving the request, the third data process reads the request and buffers any data that is included with the request, in a connection server sending buffer associated with the third data control process;

the third data control process additionally adaptively polls the connection server sending buffer to determine whether any data to be sent to the first computer is contained in the connection server sending buffer; and

when data to be sent to the first computer is present, the third data control process sends the data along with a response to the request.

13. The method of claim 12 , wherein the first data control process reads the response, buffers any data that is contained with the response, and notifies the first computer that data has been received.

14. The method of claim 13 , wherein the process steps are iteratively repeated to maintain persistent communications.

15. The method of claim 12 , wherein the third data control process adaptively polls the connection server sending buffer to determine whether any data to be sent to the at least a second computer is contained in the connection server sending buffer; and

when data to be sent to the at least a second computer is present, the third data control process sends the data along with a response to the at least a second computer.

16. The method of claim 12 , wherein the third data control process adaptively polls the at least a second computer to determine whether a request has been sent; and

upon receiving the request from the at least a second computer, the third data process reads the request and buffers any data that is included with the request, in the connection server sending buffer;

the third data control process additionally adaptively polls the connection server sending buffer to determine whether any data to be sent to the at least a second computer is contained in the connection server sending buffer; and

when data to be sent to the at least a second computer is present, the third data control process sends the data along with a response to the request.

17. The method of claim 16 , wherein the second data control process reads the response, buffers any data that is contained with the response, and notifies the at least a second computer that data has been received.

18. The method of claim 16 , wherein the process steps are iteratively repeated to maintain persistent communications.

Assignments (14)
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE SECOND INVENTOR PREVIOUSLY RECORDED ON REEL 016549 FRAME 0977. ASSIGNOR(S) HEREBY CONFIRMS THE NAME OF THE SECOND INVENTOR SHOULD BE DHARMARUS RIZAL. Recorded Aug 11, 2009
From: HESSELINK, LAMBERTUS; RIZAL, DHARMARUS; BJORNSON, ERIC S.
To: SENVID, INC.
Reel/Frame 023087/0814 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2007
From: SENVID, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 019628/0798 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2007
From: GOODMAN, JOSEPH; FITZGERALD, JOHN; RADIN, PETER; ORELLANA, MARIA C.; LAWRENCE J. BLICKMAN 1991 REVOCABLE TRUST DATED 12/4/91
To: SENVID, INC.
Reel/Frame 019617/0384 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2007
From: CLYDESDALE PARTNERS, LLC; CHIU, KIT C.; SEQUEIRA, LILYAN J.; FINKLER, STEVEN; CN INVESTMENT PARTNERS, LP
To: SENVID, INC.
Reel/Frame 019617/0717 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2007
From: PRISM CAPITAL 5; WONG, DENNIS; TAUBE INVESTMENT PARTNERS, LP; HESSELINK, LAMBERTUS; PEREZ, RICHARD
To: SENVID, INC.
Reel/Frame 019617/0613 →
SECURITY AGREEMENT Recorded Apr 10, 2006
From: SENVID, INC.
To: GOODMAN, JOSEPH; FITZERALD, JOHN; RADIN, PETER; ORELLANA, MARIA C.; BLICKMAN 1991 REVOCABLE TRUST DATED 12/4/91, LAURENCE J.
Reel/Frame 017435/0935 →
SECURITY AGREEMENT Recorded Mar 6, 2006
From: SENVID, INC.
To: CLYDESDALE PARTNERS, LLC; CHIU, KIT C.; SEQUEIRA, LILYAN J.; FINKLER, STEVEN; CN INVESTMENTS PARTNERS, LP
Reel/Frame 017251/0694 →
SECURITY AGREEMENT Recorded Jan 20, 2006
From: SENVID, INC.
To: PRISM CAPITAL 5; WONG, DENNIS; TAUBE INVESTMENT PARTNERS, LP; HESSELINK, LAMBERTUS; PEREZ, RICHARD
Reel/Frame 017034/0957 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2005
From: HESSELINK, LAMBERTUS; DHARMARUS, RIZAL; BJORNSON, ERIC S.
To: SENVID, INC.
Reel/Frame 016549/0977 →