IP Library Granted Patent US 7,509,369
Granted Patent B1
US 7,509,369 · App. 10/298,441 · Granted Mar 24, 2009

Balancing shared servers in virtual environments

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,509,369
App. No.
10/298,441
Granted
Mar 24, 2009
Kind
B1
Abstract

A system for organization of a service which provides computer hosting services to users is based on a virtual environment placed at the disposal of each user. The virtual environment is installed at an automated cluster of computers in a data center. Each virtual environment appears as a full service computer to the user.

Claims (59)

1. A system for providing computer hosting services comprising:

a computer cluster including a plurality of physical cluster nodes, each node representing a stand-alone physical computer; and

a plurality of virtual execution environments running on the computer cluster,

wherein each virtual execution environment includes the following operating system components: a unique administrative root user, a file system, and an IP address,

wherein the plurality of virtual execution environments are aggregated into a plurality of virtual execution environment sets, each set functioning as a server farm and providing services to the remote users, and different virtual execution environment sets provide different types of services to the remote users,

wherein each physical cluster node includes virtual execution environments that belong to different sets, and

wherein the computer cluster provides hosting services to owners of the server farms.

2. The system of claim 1 , further comprising a load balancer for managing the cluster nodes,

wherein the load balancer receives connections from the users and distributes the connections based on any of TCP/IP address, TCP/IP port number, and information obtained from data transmitted by the user.

3. The system of claim 2 , wherein the load balancer is located at several cluster nodes.

4. The system of claim 2 , wherein the load balancer is located on a dedicated cluster node.

5. The system of claim 4 , wherein the load balancer shares the dedicated cluster node with at least one virtual execution environment.

6. The system of claim 2 , wherein the load balancer uses balancing rules to determine processing requirements and selects a virtual environment for responding to a request for service, and

wherein the request for service is redirected to the selected virtual environment.

7. The system of claim 6 , wherein a response to a request for service from a user is processed using load balancing mediation.

8. The system of claim 6 , wherein the load balancer, when selecting a virtual execution environment for responding to the request for service, uses symmetric balancing, and determines load distribution using balancing rules and information about a current loading of a cluster node.

9. The system of claim 6 , wherein the balancing rules include any of static and dynamic information,

wherein the static information includes any of TCPIIP address and TCP/IP port number, and

wherein the static information is known prior to the connection.

10. The system of claim 9 , wherein the dynamic information is determined after connection based on information transmitted by the user, and

wherein the dynamic information depends upon a protocol type.

11. The system of claim 10 , wherein the dynamic information includes any of DNS name, URL, host field of http protocol request, SMTP/FTP protocol user name, and current workload information.

12. The system of claim 10 , wherein the load balancer, when selecting a virtual execution environment for responding to the request for service, uses an asymmetric balancing scheme, and determines load distribution using balancing rules and information about a current loading of a cluster node.

13. The system of claim 1 , wherein the virtual execution environments act as a single logical common shared server that provides at least one service to the users.

14. The system of claim 1 , wherein an IP address of each virtual execution environment that supports a hosting service is a public IP address.

15. The system of claim 1 , wherein an IP address of each virtual execution environment that supports a hosting service is a private IP address of a virtual execution environment that responds to the request for service through the load balancer.

16. The system of claim 1 , wherein an IP address of each virtual execution environment that supports a hosting service is a private IP address of a virtual execution environment that responds to a request for service via dedicated servers.

17. The system of claim 1 , wherein the virtual execution environments have no dedicated hardware resources.

18. The system of claim 1 , wherein the different types of services include any of providing GIF files, video files, email, CGI scripts and HTML files.

19. The system of claim 1 , wherein the different types of services include serving HTTP requests directed to different URLs.

20. The system of claim 1 , wherein the different types of services include serving FTP requests directed to different URLs.

21. The system of claim 10 , wherein the different types of services provided by the server farms include serving user requests directed to different domains.

22. A method for providing computer hosting services comprising:

forming a computer cluster from a plurality of physical cluster nodes, each node representing a stand-alone physical computer; and

running a plurality of virtual execution environments on the computer cluster,

wherein each virtual execution environment includes the following operating system components: a unique administrative root user, a file system, and an IP address,

wherein the plurality of virtual execution environments are aggregated into a plurality of virtual execution environment sets, each set functioning as a server farm and providing services to the remote users, and different virtual execution environment sets provide different types of services to the remote users,

wherein each physical cluster node includes virtual execution environments that belong to different sets, and

wherein the computer cluster provides hosting services to owners of the server farms.

23. The method of claim 22 , further comprising activating a load balancer for managing the cluster nodes,

wherein the load balancer receives connections from the users and distributes the connections based on any of TCP/IP address, TCP/IP port number, and information obtained from data transmitted by the user.

24. The method of claim 23 , wherein the load balancer is located at several cluster nodes.

25. The method of claim 23 , wherein the load balancer is located on a dedicated cluster node.

26. The method of claim 25 , wherein the load balancer shares the dedicated cluster node with at least one virtual execution environment.

27. The method of claim 23 , wherein the load balancer uses balancing rules to determine processing requirements and selects a virtual execution environment for responding to a request for service, and

wherein the request for service is redirected to the selected virtual execution environment.

28. The method of claim 27 , wherein a response to the request for service is processed using load balancer mediation.

29. The method of claim 27 , wherein the load balancer, when selecting a virtual execution environment for responding to the request for service, uses symmetric balancing, and determines load distribution using balancing rules and information about a current loading of a cluster node.

30. The method of claim 27 , wherein the load balancer, when selecting a virtual execution environment for responding to the request for service, uses an asymmetric balancing scheme, and determines load distribution using balancing rules and information about a current loading of a cluster node.

31. The method of claim 27 , wherein the balancing rules include any of static and dynamic information,

wherein the static information includes any of TCP/IP address and TCP/IP port number, and wherein the static information is known prior to the connection.

32. The method of claim 31 , wherein the dynamic information is determined after connection based on information transmitted by the user, and

wherein the dynamic information depends upon a protocol type.

33. The method of claim 31 , wherein the dynamic information includes any of DNS name, URL, host field of http protocol request, SMTP/FTP protocol user name, and current workload information.

34. The method of claim 22 , wherein the virtual execution environments act as a single logical common shared server that provides at least one service to the users.

35. The method of claim 22 , wherein an IP address of each virtual execution environment that supports a hosting service is a public IP address.

36. The method of claim 22 , wherein an IP address of each virtual execution environment that supports a hosting service is a private IP address of a virtual execution environment that responds to the request for service through the load balancer.

37. The method of claim 22 , wherein an IP address of each virtual execution environment that supports a hosting service is a private IP address of a virtual execution environment that responds to a request for service via dedicated servers.

38. The method of claim 22 , wherein the virtual execution environments have no dedicated hardware resources.

Assignments (12)
SECURITY INTEREST Recorded Sep 25, 2025
From: CLOUDBLUE LLC
To: BANK OF MONTREAL
Reel/Frame 072935/0233 →
NUNC PRO TUNC ASSIGNMENT Recorded Nov 9, 2021
From: INGRAM MICRO INC.
To: CLOUDBLUE LLC
Reel/Frame 058081/0507 →
NOTES SECURITY AGREEMENT Recorded Jul 2, 2021
From: INGRAM MICRO INC.; ACTIFY LLC; SHIPWIRE, INC.; BRIGHTPOINT, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 056756/0834 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 2, 2021
From: INGRAM MICRO INC.; ACTIFY LLC; SHIPWIRE, INC.; BRIGHTPOINT, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 056756/0806 →
ABL SECURITY AGREEMENT Recorded Jul 2, 2021
From: INGRAM MICRO INC.; ACTIFY LLC; SHIPWIRE, INC.; BRIGHTPOINT, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 056756/0820 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2016
From: PARALLELS IP HOLDINGS GMBH
To: INGRAM MICRO INC.
Reel/Frame 037729/0979 →
RELEASE OF SECURITY INTEREST Recorded Dec 14, 2015
From: SILICON VALLEY BANK
To: PARALLELS HOLDINGS LTD. (F/K/A SWSOFT HOLDINGS LTD.)
Reel/Frame 037289/0685 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2012
From: PARALLELS HOLDINGS, LTD.
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 027595/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2011
From: SWSOFT HOLDINGS, LTD.
To: PARALLELS HOLDINGS, LTD.
Reel/Frame 027467/0345 →
SECURITY AGREEMENT Recorded Jun 23, 2011
From: PARALLELS HOLDINGS LTD. (F/K/A SWSOFT HOLDINGS LTD.)
To: SILICON VALLEY BANK
Reel/Frame 026480/0957 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2003
From: TORMASOV, ALEXANDER
To: SWSOFT HOLDINGS LTD.
Reel/Frame 014432/0619 →
CONFIRMATORY ASSIGNMENT Recorded Aug 27, 2003
From: SWSOFT HOLDINGS, INC.
To: SWSOFT HOLDINGS LTD.
Reel/Frame 014433/0820 →