IP Library Granted Patent US 9,888,066
Granted Patent B2
US 9,888,066 · App. 15/218,583 · Granted Feb 6, 2018

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,888,066
App. No.
15/218,583
Granted
Feb 6, 2018
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 (68)

1. A server computer system comprising:

a processor; and

a memory, coupled to the processor, that includes code stored therein that when executed by the processor configures the server computer system into a machine for:

receiving, at the server computer system, a connection request from a client computer system;

determining a plurality of best-fit server IP addresses for the client computer system; and

sending the plurality of best-fit server IP addresses to the client computer system, wherein at least one of the plurality of best-fit server IP addresses is used by the client computer system to bind the client computer system to the server computer system.

2. The server computer system of claim 1 , further comprising ordering the plurality of the best-fit server IP addresses according to network distribution criteria to generate an ordered plurality of best-fit server IP addresses and sending the ordered plurality of best-fit server IP addresses to the client computer system.

3. The server computer system of claim 2 , wherein the network distribution criteria include a routing distance between the client computer system and each server computer system associated with the plurality of best-fit server IP addresses.

4. The server computer system of claim 1 , further comprising extending a transmission protocol used by the client computer system and server computer system for communications to send the plurality of best-fit server IP addresses by including the plurality of best-fit server IP addresses in a payload of a SIP protocol message.

5. A client device comprising:

a processor; and

a memory, coupled to the processor, that includes code stored therein that when executed by the processor configures the client device into a machine for:

accessing, from the memory of the client device, a list including a plurality of server IP addresses selected based on the network distribution criteria, wherein at least one of the plurality of server IP addresses is used by the client device to bind the client device to a server computer system;

selecting a first server IP address from the list of best-fit server IP addresses;

making a first attempt to initiate a session with a first server computer system using the first server IP address;

when the first attempt fails, selecting a second server IP address from the list of best-fit server IP addresses; and

making a second attempt to initiate the session using the selected second server IP address.

6. The client device of claim 5 , wherein the list of best-fit server IP addresses is ordered in the memory according to network distribution criteria, and wherein the first server IP address is a better fit with respect to the network distribution criteria than the second server IP address.

7. The client computer system of claim 5 , wherein the code is further configured to configure the computer system for:

sending to a first server computer system a request for the list of best-fit server IP addresses;

receiving the list of best-fit server IP addresses sent from the first server computer system, wherein at least one of the best-fit server IP addresses is used by the client computer system to bind the client computer system to a server computer system having an address on the list of best-fit server IP addresses;

storing the list of best-fit server IP addresses received in the memory of the client device; and

wherein selecting the second server IP address from the list of best-fit server IP addresses and making the second attempt to initiate the session using the selected second server IP address comprises:

when a server IP address of the first server is not in the list of best-fit server IP addresses, attempting to initiate a session with a second server computer system, wherein a server IP address of the second server computer system is in the list of best-fit server IP addresses.

8. The client device of claim 7 , wherein the request for the list of best-fit server IP addresses is sent via a STUN protocol message and the list of best-fit server IP addresses is received via a SIP protocol message.

9. The client device of claim 7 , wherein the list of best-fit server IP addresses is ordered according to network distribution criteria.

10. The client device of claim 9 , wherein the code is further configured to configure the computer system for:

determining at the client device whether a connection between the client device and a particular server computer system has been lost;

when the connection has been lost, selecting a subsequent best-fit server IP address from the list of best-fit server IP addresses; and

attempting to initiate a session using the selected subsequent best-fit server IP address.

11. The client device of claim 9 , wherein the network distribution criteria includes:

message delivery latency;

a routing distance between the client and each server computer system associated with each address in the list of best-fit server IP addresses;

server computer system loading of each server computer system associated with the list of best-fit server IP addresses; and

message delivery latency between the client and each server computer system associated with the list of best-fit server IP addresses.

12. The client device of claim 7 , wherein the list of best-fit server IP addresses includes at least three server IP addresses.

13. A non-transitory, computer readable medium comprising code stored therein that when executed by a processor configures a server computer system into a machine for:

receiving, at the server computer system, a connection request from a client computer system;

determining a plurality of best-fit server IP addresses for the client computer system; and

sending the plurality of best-fit server IP addresses to the client computer system, wherein at least one of the plurality of best-fit server IP addresses is used by the client computer system to bind the client computer system to the server computer system.

14. The server computer system of claim 13 , further comprising ordering the plurality of the best-fit server IP addresses according to network distribution criteria to generate an ordered plurality of best-fit server IP addresses and sending the ordered plurality of best-fit server IP addresses to the client computer system.

15. The server computer system of claim 14 , wherein the network distribution criteria include a routing distance between the client computer system and each server computer system associated with the plurality of best-fit server IP addresses.

16. The server computer system of claim 13 , further comprising extending a transmission protocol used by the client computer system and server computer system for communications to send the plurality of best-fit server IP addresses by including the plurality of best-fit server IP addresses in a payload of a SIP protocol message.

17. A non-transitory, computer readable medium that comprises code stored therein that when executed by a processor configures a client device into a machine for:

accessing, from the memory of the client device, a list including a plurality of server IP addresses selected based on the network distribution criteria, wherein at least one of the plurality of server IP addresses is used by the client device to bind the client device to a server;

selecting a first server IP address from the list of best-fit server IP addresses;

making a first attempt to initiate a session with a first server computer system using the first server IP address;

when the first attempt fails, selecting a second server IP address from the list of best-fit server IP addresses; and

making a second attempt to initiate the session using the selected second server IP address.

18. The computer readable medium of claim 17 , wherein the list of best-fit server IP addresses is ordered in the memory according to network distribution criteria, and wherein the first server IP address is a better fit with respect to the network distribution criteria than the second server IP address.

19. The computer readable medium of claim 17 , wherein the code is further configured to configure the computer system for:

sending to a first server computer system a request for the list of best-fit server IP addresses;

receiving the list of best-fit server IP addresses sent from the first server computer system, wherein at least one of the best-fit server IP addresses is used by the client computer system to bind the client computer system to a server computer system having an address on the list of best-fit server IP addresses;

storing the list of best-fit server IP addresses received in the memory of the client device; and

wherein selecting the second server IP address from the list of best-fit server IP addresses and making the second attempt to initiate the session using the selected second server IP address comprises:

when a server IP address of the first server is not in the list of best-fit server IP addresses, attempting to initiate a session with a second server computer system, wherein a server IP address of the second server computer system is in the list of best-fit server IP addresses.

20. The computer readable medium of claim 19 , wherein the request for the list of best-fit server IP addresses is sent via a STUN protocol message and the list of best-fit server IP addresses is received via a SIP protocol message.

21. The computer readable medium of claim 19 , wherein the list of best-fit server IP addresses is ordered according to network distribution criteria.

22. The computer readable medium of claim 21 , wherein the code is further configured to configure the computer system for:

determining at the client device whether a connection between the client device and a particular server computer system has been lost;

when the connection has been lost, selecting a subsequent best-fit server IP address from the list of best-fit server IP addresses; and

attempting to initiate a session using the selected subsequent best-fit server IP address.

23. The computer readable medium of claim 21 , wherein the network distribution criteria includes:

message delivery latency;

a routing distance between the client and each server computer system associated with each address in the list of best-fit server IP addresses;

server computer system loading of each server computer system associated with the list of best-fit server IP addresses; and

message delivery latency between the client and each server computer system associated with the list of best-fit server IP addresses.

24. The computer readable medium of claim 19 , wherein the list of best-fit server IP addresses includes at least three server IP addresses.

Assignments (9)
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 041047/0411 →
SECURITY INTEREST Recorded Nov 16, 2016
From: UPLAND SOFTWARE III, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 040343/0147 →