IP Library Granted Patent US 9,401,974
Granted Patent B2
US 9,401,974 · App. 14/102,401 · Granted Jul 26, 2016

System and method of binding a client to a server

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 9,401,974
App. No.
14/102,401
Granted
Jul 26, 2016
Kind
B2
Abstract

Systems and methods to bind a client with a server are provided. A particular method includes establishing a connection between a server and a client. A list of best-fit server IP addresses is received at the client via the connection. A determination is made whether the server is identified in the list of best-fit server IP addresses. When the server is not identified in the list of best-fit server IP addresses, the connection to the server is terminated.

Claims (47)

1. A method comprising:

executing a program by a computer system that initiates binding of a client computer system to a server computer system utilizing best-fit server Internet Protocol (IP) addresses to maintain and end connections between the client computer system and the server computer system, wherein executing the program transforms the computer system into a machine to perform:

establishing a connection between a server and a client;

receiving, at the client computer system via the connection, a list of the best-fit server IP addresses;

determining, at the client, whether the server computer system is identified in the list of best-fit server IP addresses;

maintaining the connection to the server computer system in response to determining that the server computer system is identified in the list of best-fit server IP addresses; and

ending the connection to the server computer system in response to determining that the server computer system is not identified in the list of best-fit server IP addresses.

2. A server device, comprising:

a processor; and

a memory accessible to the processor that includes a program that is executable by the processor to initiate binding of a client device to the server device utilizing best-fit server Internet Protocol (IP) addresses to maintain and end connections between the client computer system and the server device, wherein executing the program transforms the server device into a machine that includes:

a protocol engine executable by the processor to:

establish a connection to the client device; and

send a list of best-fit server IP addresses to the client device via the connection, wherein the list of best-fit server IP addresses is determined based on network distribution criteria;

wherein the client device ends the connection to the server device in response to determining that an address of the server device is not identified in the list of best-fit server IP addresses; and

wherein the client device maintains the connection to the server device in response to determining that the address of the server device is identified in the list of best-fit server IP addresses.

3. A client device, comprising:

a processor;

a memory accessible to the processor that includes a program that is executable by the processor to initiate binding of a client device to the server device utilizing best-fit server Internet Protocol (IP) addresses to maintain and end connections between the client computer system and the server device, wherein executing the program transforms the client device into a machine that includes:

a protocol engine executable by the processor to:

establish a connection between a server and the client device;

receive, at the client device via the connection, a list of best-fit server IP addresses;

determine whether the server is identified in the list of best-fit server IP addresses;

maintain the connection to the server in response to determining that the server is identified in the list of best-fit server IP addresses; and

end the connection to the server in response to determining that the server is not identified in the list of best-fit server IP addresses.

4. The method of claim 1 , wherein the list of best fit server IP addresses includes at least three server IP addresses.

5. The method of claim 4 , wherein the at least three server IP addresses are arranged in an order of preference in the list of best fit server IP addresses.

6. The method of claim 1 , further comprising initiating establishment of a connection to at least one server IP address of the list of best fit server IP addresses after ending the connection to the server computer system.

7. The method of claim 1 , further comprising:

determining, at the client, whether the connection to the server computer system has been lost; and

when the connection to the server has been lost, initiating establishment of a connection to a first server IP address that is retrieved from the list of best fit server IP addresses.

8. The method of claim 7 , wherein, when the connection to the first server IP address is not established, initiating establishment of a connection to a next server IP address in the list of best fit server IP addresses.

9. The method of claim 1 , further comprising sending a request for the list of best fit server IP addresses from the client computer system to the server computer system via the connection using a first protocol, wherein the list of best-fit server IP addresses is received by the client computer system using a second protocol.

10. The method of claim 1 wherein the best fit server IP addresses establish a hierarchy of server addresses, the method further comprising:

executing the program by the computer system to cause the client computer system to use the IP addresses to maintain a binding with the server computer system without using a domain name server.

11. The server device of claim 2 , wherein the protocol engine sends the list of best-fit server IP addresses via a Session Initiation Protocol (SIP) message.

12. The server device of claim 2 , wherein the protocol engine sends the list of best-fit server IP addresses in response to a request from the client.

13. The server device of claim 12 , wherein the request is received via a Simple Traversal of User Datagram Protocol through Network Address Translators (NATs) (STUN) message.

14. The server device of claim 2 , wherein the memory further comprises an optimizer program that is executable by the processor to select the list of best-fit server IP addresses based on routing and availability information.

15. The server device of claim 14 , wherein addresses on the list of best-fit server IP addresses are determined based on a database of best-fit solutions.

16. The server device of claim 14 , wherein addresses on the list of best-fit server IP addresses are dynamically computed.

17. The server device of claim 14 , wherein the optimizer program identifies an order of preference of the IP addresses of the list of best-fit server IP addresses.

18. The server device of claim 14 , wherein the routing and availability information includes at least one of a routing distance, a message delivery latency, and server loading.

19. The client device of claim 3 , wherein the memory stores the list of best-fit server IP addresses.

20. The client device of claim 19 , wherein, after the client device ends the connection to the server, the client device accesses the list of best-fit server IP addresses in the memory, selects a first server from the list of best-fit server IP addresses, and attempts to establish a connection to the first server based on an order of the list of best-fit server IP addresses.

21. The client device of claim 20 , wherein, when the client device is not able to establish the connection to the first server, the client device accesses the list of best-fit server IP addresses in the memory, selects a second server from the list of best-fit server IP addresses, and attempts to establish a connection to the second server based on an order of the list of best-fit server IP addresses.

22. The client device of claim 3 wherein the best fit server IP addresses establish a hierarchy of server addresses, wherein the program is further executable by the processor to:

use the IP addresses to maintain a binding with the server computer system without using a domain name server.

Assignments (8)
SECURITY INTEREST Recorded Jul 25, 2025
From: UPLAND SOFTWARE, INC.
To: SOUND POINT AGENCY LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 071841/0009 →
RELEASE OF SECURITY INTEREST Recorded Jul 25, 2025
From: JEFFERIES FINANCE LLC, AS AGENT
To: UPLAND SOFTWARE, INC.; UPLAND SOFTWARE I, INC.; UPLAND SOFTWARE IV, LLC; UPLAND SOFTWARE V, INC.; UPLAND SOFTWARE VI, LLC; UPLAND SOFTWARE VII, LLC; UPLAND IX, LLC; ULTRIVA, LLC; ADVANCED PROCESSING & IMAGING, INC.; OMTOOL, LTD.; RIGHT ANSWERS, INC.; WATERFALL INTERNATIONAL INC.; QVIDIAN CORPORATION; REFERENCES-ONLINE, INC.; ADESTRA INC.; POSTUP HOLDINGS, LLC; POSTUP DIGITAL, LLC; DAILY INCHES, INC.
Reel/Frame 071840/0240 →
SECURITY INTEREST Recorded Mar 25, 2025
From: UPLAND SOFTWARE INC.; UPLAND SOFTWARE VII, LLC; OMTOOL, LTD.; WATERFALL INTERNATIONAL, INC.; QVIDIAN CORPORATION; REFERENCES- ONLINE, INC.
To: JEFFERIES FINANCE LLC
Reel/Frame 070626/0779 →
SECURITY INTEREST Recorded Aug 8, 2019
From: UPLAND SOFTWARE, INC.; UPLAND SOFTWARE I, INC.; UPLAND SOFTWARE IV, LLC; UPLAND SOFTWARE V, INC.; UPLAND SOFTWARE VI, INC.; UPLAND SOFTWARE VII, INC.; UPLAND IX, LLC; ULTRIVA, LLC; ADVANCED PROCESSING & IMAGING, INC.; OMTOOL, LTD.; RIGHTANSWERS, INC.; WATERFALL INTERNATIONAL INC.; QVIDIAN CORPORATION; REFERENCES-ONLINE, INC.; ADESTRA INC.; POSTUP HOLDINGS, LLC; POSTUP DIGITAL, LLC; DAILY INCHES, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050002/0536 →
RELEASE OF SECURITY INTEREST Recorded Aug 7, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: UPLAND SOFTWARE, INC.
Reel/Frame 049990/0019 →
RELEASE OF SECURITY INTEREST Recorded Aug 7, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
To: UPLAND SOFTWARE, INC.
Reel/Frame 049989/0307 →
SECURITY INTEREST Recorded Feb 24, 2017
From: UPLAND SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 041370/0411 →
CHANGE OF NAME Recorded Jan 23, 2017
From: UPLAND SOFTWARE III, LLC
To: UPLAND SOFTWARE, INC.
Reel/Frame 041048/0188 →