IP Library Granted Patent US 7,418,509
Granted Patent B2
US 7,418,509 · App. 09/986,936 · Granted Aug 26, 2008

Method and apparatus for a distributed server tree

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,418,509
App. No.
09/986,936
Granted
Aug 26, 2008
Kind
B2
Abstract

A method and system for reducing server load. Requests are received for a service at a first server from a plurality of client devices. The first server decides to identify one or more other servers to provide the service to some of the plurality of client devices. An address is requested of one or more second servers from a server address management entity. A resource identifier is created at the second servers. Some of the plurality of client devices are redirected to get the service from the one or more second servers. A distributed server tree is formed. The first server provides the service to the second servers to be then provided to some of the plurality of client devices, therefore, reducing the load on the first server and providing more efficient service to the plurality of client devices. The servers may be Session Initiation Protocol (SIP) servers.

Claims (71)

1. A method, comprising:

receiving requests for a service at a first server from a plurality of client devices;

determining to identify at least one other server to provide the service to at least one of the plurality of client devices on the basis of determining that a plurality of client devices are located in a particular location;

determining that some of the plurality of client devices fulfill load balancing criteria for providing the service more efficiently via at least one second server;

creating a resource identifier for the at least one second server; and

redirecting at least some of the plurality of client devices to get the service from the at least one second server, wherein the first server redirects the request for the service in a single message to each of the at least one second server, each of said at least one second server providing service for the plurality of client devices redirected to the at least one second server, therefore, reducing the load on the first server.

2. The method according to claim 1 , further comprising receiving the requests for the service at the first server from web browsers at the plurality of client devices.

3. The method according to claim 1 , further comprising determining to identify the at least one other server to provide the service to at least some of the client devices based on current load of the first server.

4. The method according to claim 1 , further comprising determining to identify the at least one other server to provide the service to at least some of the client devices based on a location of the some of the plurality of client devices.

5. The method according to claim 4 , further comprising determining to identify the at least one other server to provide the service to at least some of the client devices based on a domain of the some of the plurality of client devices.

6. The method according to claim 1 , further comprising requesting the address of the at least one second server from a Domain Naming System server.

7. The method according to claim 1 , further comprising requesting the address of the at least one second server from a Service Location Protocol server.

8. The method according to claim 1 , wherein the first server and the at least one second server are Session Initiation Protocol servers.

9. The method according to claim 8 , further comprising receiving the requests for the service at the first SIP server by receiving one of a SIP SUBSCRIBE message and a SIP INVITE message from the plurality of client devices.

10. The method according to claim 1 , further comprising requesting an address of a Service Location Protocol server from a Domain Naming System server, and requesting the address of the at least one second server from the Service Location Protocol server.

11. The method according to claim 1 , further comprising receiving requests comprising subscriptions to a notification service at the first server from the plurality of client devices.

12. The method according to claim 11 , further comprising further comprising receiving subscriptions to one of a sports event notification service, a news event notification service, and a financial event notification service at the first server from the plurality of client devices.

13. The method according to claim 1 , further comprising receiving requests comprising invitations to a group communications at the first server from the plurality of client devices.

14. The method according to claim 13 , further comprising receiving invitations to one of a group conference call and a chat group at the first server from the plurality of client devices.

15. The method according to claim 1 , further comprising the at least one second server:

determining to identify at least one other server to provide the service to the at least some of the plurality of client devices;

requesting an address of at least one third server from the server address management entity;

creating a resource identifier at the at least one third server; and

redirecting at least some of the plurality of client devices to get the service from the at least one third server,

wherein the load on the at least one second server is reduced.

16. The method according to claim 1 , further comprising identifying the at least one other server to provide the service to at least some of the plurality of client devices from a list of known servers.

17. The method according to claim 1 , further comprising optimizing the service to the at least some of the plurality of client devices by balancing the load among the at least one second server.

18. The method according to claim 1 , further comprising optimizing the service to the at least some of the plurality of client devices by redirecting some of the at least some of the plurality of client devices from the at least one second server to get the service from at least one third server.

19. The method according to claim 1 , wherein the resource identifier comprises one of a Universal Resource Locator and a group identifier.

20. The method according to claim 1 , wherein the particular location comprises a domain where clients are located.

21. A computer program embodied on a computer-readable-medium, when executed the computer program causing a computing device to:

receive requests for a service from a plurality of client devices;

determine to identify at least one other server to provide the service to at least one of the plurality of client devices on the basis of determining that a plurality of client devices are located in a particular location;

determine that some of the plurality of the client devices fulfill load balancing criteria for providing the service more efficiently via at least one second server;

create a resource identifier for the at least one second server; and

redirect at least some of the plurality of client devices to get the service from the at least one second sever, wherein the computing device redirects the request for the service in a single message to each of the at least one second server, each of said at least one second server providing service to some of the plurality of client devices redirected to the at least one second server, therefore, reducing the load on the computing device.

22. The computer program according to claim 21 , further causing the computing device to determine to identify the at least one other server to provide the service to at least some of the client devices based on current load of the computing device.

23. The computer program according to claim 21 , further causing the computing device to determine to identify the at least one other server to provide the service to at least some of the client devices based on a location of the some of the plurality of client devices.

24. The computer program according to claim 23 , further causing the computing device to determine to identify the at least one other server to provide the service to at least some of the client devices based on a domain of the some of the plurality of client devices.

25. The computer program according to claim 21 , further causing the computing device to request the address of the at least one second server from a Domain Naming System server.

26. The computer program according to claim 21 , further causing the computing device to request the address of the at least one second server from a Service Location Protocol server.

27. The computer program according to claim 21 , wherein the computing device and the at least one second server comprise Session Initiation Protocol servers.

28. The computer program according to claim 27 , further causing the computing device to receive the requests for the service at the computing device by receiving one of a SIP SUBSCRIBE message and a SIP INVITE message from the plurality of client devices.

29. The computer program according to claim 21 , further causing the computing device to request an address of a Service Location Protocol server from a Domain Naming System (DNS) server, and requesting the address of the at least one second server from the Service Location Protocol server.

30. The computer program according to claim 21 , wherein the resource identifier comprises one of a Universal Resource Locator and a group identifier.

31. The computer program according to claim 21 , wherein the particular location comprises a domain where clients are located.

32. An apparatus comprising:

a receiver configured to receive requests for a service from a plurality of client devices;

a identifier configured to identify at least one other server to provide the service to at least one of the plurality of client device;

a determiner configured to determine that some of the plurality of the client devices fulfill load balancing criteria for providing the service more efficiently via at least one second server;

a creator configured to create a resource identifier for the at least one second server; and

a redirector configured to redirect at least some of the plurality of client devices to get the service from the at least one second sever, wherein the server redirects the request for the service in a single message to each of the at least one second server, each of said at least one second server providing service to some of the plurality of client devices redirected to the at least one second server, therefore, reducing the load on the server.

33. The apparatus according to claim 32 , wherein the identifier is further configured to identify the at least one other server to provide the service to at least some of the client devices based on current load of the server.

34. The apparatus according to claim 32 , wherein the identifier is further configured to identify the at least one other server to provide the service to at least some of the client devices based on a location of the some of the plurality of client devices on the basis of determining that a plurality of client devices are located in a particular location.

35. The apparatus according to claim 34 , wherein the particular location comprises a domain where clients are located.

36. The apparatus according to claim 32 , wherein the identifier is further configured to to identify the at least one other server to provide the service to at least some of the client devices based on a domain of the some of the plurality of client devices.

37. The apparatus according to claim 32 , further comprising a requester configured to request the address of the at least one second server from a Domain Naming System server.

38. The apparatus according to claim 32 , further comprising a requester configured to request the address of the at least one second server from a Service Location Protocol server.

39. The apparatus according to claim 32 , wherein the server and the at least one second server comprise Session Initiation Protocol servers.

40. An apparatus, comprising:

a receiver configured to receive requests for a service at a first server from a plurality of client devices;

a first determiner configured to determine to identify at least one other server to provide the service to at least one some of the plurality of client device on the basis of determining that a plurality of client devices are located in a particular location;

a second determiner configured to determine that some of the plurality of client devices fulfill load balancing criteria for providing the service more efficiently via at least one second server;

a creator configured to create a resource identifier for the at least one second server; and

a redirector configured to redirect at least some of the plurality of client devices to get the service from the at least one second server, wherein the first server redirects the request for the service in a single message to each of the at least one second server, each of said at least one second server providing service for the plurality of client devices redirected to the at least one second server, therefore, reducing the load on the first server.

41. An apparatus, comprising:

receiving means for receiving requests for a service at a first server from a plurality of client devices;

determining means for determining to identify at least one other server to provide the service to at least one of the plurality of client device on the basis of determining that a plurality of client devices are located in a particular location;

determining means for determining that some of the plurality of client devices fulfill load balancing criteria for providing the service more efficiently via at least one second server;

creating means for creating a resource identifier for the at least one second server; and

redirecting means for redirecting at least some of the plurality of client devices to get the service from the at least one second server, wherein the first server redirects the request for the service in a single message to each of the at least one second server, each of said at least one second server providing service for the plurality of client devices redirected to the at least one second server, therefore, reducing the load on the first server.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2023
From: PRAETOR FUND I, A SUB-FUND OF PRAETORIUM FUND I ICAV
To: VL COLLECTIVE IP LLC
Reel/Frame 062977/0325 →
SECURITY INTEREST Recorded Mar 31, 2020
From: VL COLLECTIVE IP LLC
To: PRAETOR FUND I, A SUB-FUND OF PRAETORIUM FUND I ICAV
Reel/Frame 052272/0435 →
SECURITY INTEREST Recorded Feb 7, 2020
From: VL COLLECTIVE IP LLC
To: PRAETOR FUND I, A SUB-FUND OF PRAETORIUM FUND I ICAV
Reel/Frame 051748/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2019
From: VL IP HOLDINGS LLC
To: VL COLLECTIVE IP LLC
Reel/Frame 051392/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2019
From: VIDEOLABS, INC.
To: VL IP HOLDINGS LLC
Reel/Frame 051391/0919 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2019
From: NOKIA TECHNOLOGIES OY
To: VIDEOLABS, INC.
Reel/Frame 050910/0249 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035601/0863 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2002
From: KOSKELAINEN, PETRI; VAINIKAINEN, MIKKO
To: NOKIA CORPORATION
Reel/Frame 012494/0414 →