WO2006029771A1 - Computer arrangement and method for providing services for clients over a network - Google Patents

Computer arrangement and method for providing services for clients over a network Download PDF

Info

Publication number
WO2006029771A1
WO2006029771A1 PCT/EP2005/009718 EP2005009718W WO2006029771A1 WO 2006029771 A1 WO2006029771 A1 WO 2006029771A1 EP 2005009718 W EP2005009718 W EP 2005009718W WO 2006029771 A1 WO2006029771 A1 WO 2006029771A1
Authority
WO
WIPO (PCT)
Prior art keywords
servers
load balancer
network load
information
network
Prior art date
Application number
PCT/EP2005/009718
Other languages
French (fr)
Inventor
Joseph W. Armstrong
Shu-Ching Hsu
Mark Johnston
Rahul Kelkar
Judy King
Brian Kress
Radhika Pennepalli
Kesava Pulijala
Guangji Shen
Pushkar Singh
Kevin Stoner
Rajendran Vishwanathan
Original Assignee
Fujitsu Siemens Computers, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Siemens Computers, Inc. filed Critical Fujitsu Siemens Computers, Inc.
Priority to DE112005001995T priority Critical patent/DE112005001995B4/en
Publication of WO2006029771A1 publication Critical patent/WO2006029771A1/en
Priority to US11/685,485 priority patent/US20070208844A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Definitions

  • the invention relates to a computer arrangement that comprises at least two servers for providing services for clients over a network, and more particularly to the use of an automated administration means and a network load balancer within the computer arrangement.
  • Computer arrangements of that type typically include several computers, called servers, providing particular services that clients can make use of by sending appropriate requests over a network.
  • servers There is a huge variety of different types of services that can be offered by servers. Examples are file-, web- or database-services.
  • each individual service is provided by an application program running on a server.
  • an application program running on a server.
  • many instances of an application are .executed in parallel in order to be able to handle all incoming requests.
  • a single server can host just one but also several instances of one or different application programs. For the following, by way of example a situation is assumed where each server only runs one instance of an application to provide a particular service.
  • clients do not have to care about the actual configuration of an computer arrangement that provides a service, i.e. clients do not have to know (and also they can not know) which one of the servers are available to process their tasks.
  • This can be achieved by providing a central authority, called router, that receives incoming requests of clients and distributes (routes) them to one of the servers.
  • Clients only have to know one address, often called a virtual address, to which they send their request. This virtual address is assigned to the router, which redirects the request to one of the servers by replacing the destination address (i.e. the virtual address) with the address of one of the servers.
  • the servers usually just have addresses that are visible within the computer arrangement only. The router is supplied a list of these addresses.
  • this central authority is referred to as a network load balancer.
  • network load balancers Different types are known, some of which actually measure the load that applications impose on the servers, some keep track of distributed tasks and either calculate load values or just distribute the requests for all servers having to handle a comparable number of requests at the same time.
  • network load balancers exist that determine and use additional information, for example the state of the servers, i.e. whether each server operates correctly or not.
  • a network service provider runs a plurality of servers, called a server farm.
  • a server farm Considering the growing size of modern server farms, which can consist of hundreds of servers, there is an increasing demand to automate administrative tasks, for example allocating the available resources to different types of services.
  • the approach to automate administrative tasks is known as autonomous computing (AC) .
  • a central element in an AC-environment is an automated administration means to perform administrative tasks which is sometimes also referred to as a decision engine.
  • the administration means is capable of dynamically allocating or freeing servers and of starting new or stopping running instances of different applications on these servers, thereby conditioning the server to provide a particular service.
  • provisioning a server is meant to comprise all necessary administrative steps to prepare or condition a server to be ready to provide a particular service.
  • the administration means is hosted on a computer within the arrangement that is specifically designated for administrative tasks.
  • the decision whether to start or stop instances of applications and whether it is necessary to allocate new servers or give away control over servers depends on a number of criteria and basic conditions. Important factors are for example how much load running instances of an application carry and the state of the servers. But also other, non-technical but economical considerations, for example different priorities of customers, might be taken into account.
  • the administration means as well as the load balancers might need information on the servers and on applications in order to fulfill their duties. Both authorities determine this information, thereby causing extra workload and network traffic.
  • the above object is accomplished by a computer arrangement according to claim 1 and a method according to claim 8.
  • the computer arrangement according to the invention comprises at least two servers, each hosting at least one application and designated to provide the services to clients over the network, an administration means, set up to provision the servers to provide the services by allocating the servers and/or by starting or stopping instances of the applications on the servers and at least one network load balancer connected to the clients and the servers, responsible for at least one of the services, set up to gather information on the state of the servers and/or the applications on the servers and set up to route incoming requests of clients to one of the servers .
  • the computer arrangement and the method according to the invention are characterized in that the network load balancer provides the administration means with information on the state of the servers and/or the
  • the administration- means provides the network load balancer with information about which servers are provisioned to provide the at least one service the network load balancer is responsible for.
  • information that is needed by both, network load balancer and administration means is shared. This prevents from obtaining relevant information twice and thus decreases workload and network traffic.
  • each server hosts a network load balancer agent, the network load balancer agent being set up to determine information on the state of the servers and/or the applications on the servers and set up to report the information to the network load balancer.
  • the servers are provided with an operating system having a kernel, and the network load balancer agents are integrated into the kernel.
  • Fig. 1 is a conceptual diagram of an embodiment of a computer arrangement according to the present invention
  • Fig. 2 is a flowchart representation of an embodiment of a method for providing services according to the present invention.
  • Fig. 1 shows several servers 1 (IA, IB, 1C), each hosting an application 2 (2A, 2B, 2C) and a network load balancer agent 3 (3A, 3B, 3C) .
  • the servers 1 are set up to provide services to clients 4 using a network 5.
  • the computer arrangement further comprises a network load balancer 6 with a list of addresses 7 and an administration means 8.
  • the network load balancer 6 is connected to the clients 4 and the servers 1 by the network 5.
  • network load balancer 6 is connected to the network load balancer agents 3 to receive state information 9 and to the administration means 8 to transmit the state information 9 to and receive provisioning information 10 from the administration means 8.
  • the administration means 8 is set up to control the servers 1 using a control connection 11.
  • FIG. 1 shows a computer arrangement where three servers 1 are currently set up to provide a particular service made available by instances of the application 2 to the clients 4.
  • each server 1 hosts just one application 2.
  • Servers 1 could also host several applications 2, possibly in conjunction with different network load balancers 6 for different types of applications 2.
  • the numbers of servers 1 shown in the diagram is just exemplary.
  • Computer arrangements for providing services to clients over a network often comprise several tens or even hundreds of servers .
  • the arrangement might comprise further servers 1 which might be used to provide further services.
  • the invention can be easily applied to computer arrangements (server farms) of any size.
  • the servers 1 can either be independent physical units, for example blade servers, or can be virtual servers. Virtual servers share a common hardware which runs a software that emulates several hardware units.
  • Each service provided by the computer arrangement is related to a particular network address.
  • clients 4 use this particular network address as the destination address in a request to be send to the computer arrangement.
  • each network addresses for a particular service is assigned to a central instance, which receives the request and routes ' it to one of the servers 1.
  • the network load balancer 6 is the central instance that receives all requests of clients 4 concerning the particular service made available by the application 2.
  • the network load balancer ⁇ is responsible for one particular service only. The network load balancer 4 redirects an incoming request to one of the servers 1 and thus to an instance of application 2 that actually processes the request.
  • the server 1 After having processed the request, the server 1 then sends its reply directly back to the client 4, the address of which is contained in the request and thus known to the server 1.
  • the server 1 adds the address of the network load balancer 6 as the sender's address to the reply. In that case, a direct network connection between the servers 1 and the client 4 is needed.
  • network 5 is depicted by point-to-point connections between clients 4 and network load balancer 6, and network load balancer 6 and servers 1, respectively, to symbolize the data flow of requests.
  • the underlying network 5 is usually a network that allows data to be exchanged between all participants. Other known techniques for routing or redirecting requests could as well be used.
  • the reply could e.g. be sent back via the network load balancer 4 who would add its, sender' s address to the reply itself.
  • the network load balancer 6 For the network load balancer 6 to be able to distribute the requests to "the servers 1 it has to be provided with information about which servers 1 are available for the requested service. This information is kept in the list of addresses 7 of available servers 1.
  • the decision to which server 1 a new request of one of the clients 4 is directed is based on the operating state of servers 1 and applications 2. An important factor in the decision making process is the load that the applications 2 impose on the servers 1.
  • network load balancer agents 3 are used. Each server 1 hosts one network load balancer agent 3 which is set up to • determine information 9 on the state of the server 1 and the application 2, which is called state information 9 for short. State information 9 that is relevant for the routing decisions of the network load balancer comprises for example information whether the server 1 operates correctly or not, whether the application 2 works correctly or not, how busy the application is or how much load it imposes on the server.
  • a preferred configuration is to implement the network load balancer agents 3 close to the operating systems of the servers 1 or even integrate them into the kernel of the operating system.
  • Network load balancer agents 3 can then be equipped with wide access privileges which would not be possible if they are implemented in a user accessible operating space where they would only with little access privileges.
  • Kernel based network load balancer agent 3 have several advantages. A kernel based network load balancer agent 3 will be able to send state information under many circumstances where a user space network load balancer agent 3 could not. For example, if the user space allowed processor load is so high that processes cannot run, a kernel based network load balancer agent 3 will still be able to operate.
  • a kernel based network load balancer agent 3 can observe function- and/or subroutine-calls from application 2 to the operating system. It can for example observe if the application is still listening to a network interface (e.g. a port monitored by the application 2) by detecting the network interface.
  • a network interface e.g. a port monitored by the application 2
  • the kernel based network load balancer agent- 3 detects and responds to events faster than a user space network load balancer agent 3.
  • the state information 9 determined by the network load balancer agent 3 is then sent to the network load balancer 6 and is used in the decision making process to which server 1 requests are routed.
  • a separate network could be used for security and/or performance reasons, or the same network 5 that connects the servers 1, the clients 4 and the network load balancer 6 could be used.
  • the information 9 is encapsulated in a mark-up language, for example XML (extensible Markup Language), for transmission.
  • Provisioning the servers 1 by allocating them and/or by starting instances of a particular application 2 is performed by the administration means 8.
  • the administration means 8 may be software-implemented and hosted on a separate computer. For reasons of high availability and redundancy there may also be second administration means that could take over in case of a failure of the first administration means 8.
  • Different methods to provision servers 1 by the administration means 8 are known. One way is to remotely start or stop instances of an application depending on requirements. This bears the danger of collecting remains of all applications that were once started and stopped again (like temporary files) which might lead to an unstable and slow system.
  • provisioning a server 1 for a particular service is meant to comprise all methods that prepare or condition a server 1 to be available for providing a particular service.
  • the control connection 11 between the administration means 8 and the servers 1 which is used to provision the servers 1, could be established through the network 5.
  • a separate network could be used for security and/or performance reasons .
  • Fig. 2 shows a flowchart representation of an embodiment of a method according to the present invention.
  • a provisioning ' decision concerning a particular service is translated into action by the administration means 8 using the control line 11 as described above in connection with Fig. 1. If the particular service is to be started for the first time, the provisioning decision is based on predetermined initialization values or might be initialized by a human administrator.
  • Provisioning information 10 comprises at least the network addresses of the servers 1 that provisioned to provide the particular service the network load balancer is responsible for or that are deprovisioned, i.e. that are either added to or removed from the pool of servers 1 conditioned to provide that particular service. Additional data that might be relevant for the routing process and could be used by the network load balancer 6 could also be contained in provisioning information 10. Such ' additional data could for example be data on the performance of provisioned. servers 1. Provisioning information 10 could be in form a mark-up language based transaction, in particular in form of an XML-based transaction.
  • step C the provisioning information 10 is received by the network load balancer 6 and used to update the list 7 in step D.
  • the list 7 instead of, a list, any appropriate data structure could be used.
  • step E state information 9 on the servers 1 and the application 2 on these servers 1 are gathered from the network load balancer agent 3. State information 9 is then used to decide to which server 1 contained in the list 7 a request of a client is routed to as shown in step F.
  • State information 9 is transmitted to and received by the administration means 8 in steps G and H, respectively.
  • the state information 9 transmitted to the administration means 8 might not be in exactly the same form and format as it was originally received by the network load balancer 6. Instead, it could be a selected subset of the originally received state information 9 or the originally received state information 9 could be processed by the network load balancer 6 before transmission. Processing could for example involve time averaging, especially in case of fluctuating load data.
  • step I the state information 9 is used by the administration means to make further provisioning decisions, if appropriate.
  • the method then restarts with step A to translate any further provisioning decisions into action.
  • the method leads to an iterative and interactive decision making process based on the state information 9 and the provisioning information 10 exchanged between administration means 8 and network load balancer 6.

Abstract

The computer arrangement for providing services for clients (4) over a network (5) comprises of at least two servers (1), each hosting at least one application (2), an administration means (8), set up to automatically provision the servers (1) to provide the services, and at least one network load balancer (6) connected to the clients (4) and the servers (1), responsible for at least one of the services, set up to gather information on the state of the servers (1) and/or the state of applications (2) on the servers (1) and set up to route incoming requests of clients (4) to one of the servers (1). The computer arrangement and method for providing services are characterized in that the network load balancer (6) provides the administration means (8) with information (9) on the state of the servers (1) and/or the applications (2) on the servers (1), and the administration means (8) provides the network load balancer (6) with information (10) about which servers (1) are provisioned to provide the at least one service the network load balancer (6) is responsible for.

Description

Description of the Invention
COMPUTER ARRANGEMENT AND METHOD FOR PROVIDING SERVICES FOR CLIENTS OVER A NETWORK
The invention relates to a computer arrangement that comprises at least two servers for providing services for clients over a network, and more particularly to the use of an automated administration means and a network load balancer within the computer arrangement.
Computer arrangements of that type typically include several computers, called servers, providing particular services that clients can make use of by sending appropriate requests over a network. There is a huge variety of different types of services that can be offered by servers. Examples are file-, web- or database-services.
Usually each individual service is provided by an application program running on a server. Often many instances of an application are .executed in parallel in order to be able to handle all incoming requests. Depending on its capacity and performance, a single server can host just one but also several instances of one or different application programs. For the following, by way of example a situation is assumed where each server only runs one instance of an application to provide a particular service.
It is desirable that clients do not have to care about the actual configuration of an computer arrangement that provides a service, i.e. clients do not have to know (and also they can not know) which one of the servers are available to process their tasks. This can be achieved by providing a central authority, called router, that receives incoming requests of clients and distributes (routes) them to one of the servers. Clients only have to know one address, often called a virtual address, to which they send their request. This virtual address is assigned to the router, which redirects the request to one of the servers by replacing the destination address (i.e. the virtual address) with the address of one of the servers. The servers usually just have addresses that are visible within the computer arrangement only. The router is supplied a list of these addresses. If the routing process is set up to equalize the work-load of the servers, this central authority is referred to as a network load balancer. Different types of network load balancers are known, some of which actually measure the load that applications impose on the servers, some keep track of distributed tasks and either calculate load values or just distribute the requests for all servers having to handle a comparable number of requests at the same time. Furthermore, network load balancers exist that determine and use additional information, for example the state of the servers, i.e. whether each server operates correctly or not.
Often a network service provider runs a plurality of servers, called a server farm. Considering the growing size of modern server farms, which can consist of hundreds of servers, there is an increasing demand to automate administrative tasks, for example allocating the available resources to different types of services. The approach to automate administrative tasks is known as autonomous computing (AC) . A central element in an AC-environment is an automated administration means to perform administrative tasks which is sometimes also referred to as a decision engine. The administration means is capable of dynamically allocating or freeing servers and of starting new or stopping running instances of different applications on these servers, thereby conditioning the server to provide a particular service. In the following, "provisioning" a server is meant to comprise all necessary administrative steps to prepare or condition a server to be ready to provide a particular service. Usually the administration means is hosted on a computer within the arrangement that is specifically designated for administrative tasks. The decision whether to start or stop instances of applications and whether it is necessary to allocate new servers or give away control over servers depends on a number of criteria and basic conditions. Important factors are for example how much load running instances of an application carry and the state of the servers. But also other, non-technical but economical considerations, for example different priorities of customers, might be taken into account.
In an autonomous computer arrangement that uses one or more network load balancers, the administration means as well as the load balancers might need information on the servers and on applications in order to fulfill their duties. Both authorities determine this information, thereby causing extra workload and network traffic.
It is therefore an object of the invention to present a computer arrangement for providing services for clients over a network where the workload and the network traffic caused by the determination of information needed by the network load balancers and the administration means is minimized.
The above object is accomplished by a computer arrangement according to claim 1 and a method according to claim 8. The computer arrangement according to the invention comprises at least two servers, each hosting at least one application and designated to provide the services to clients over the network, an administration means, set up to provision the servers to provide the services by allocating the servers and/or by starting or stopping instances of the applications on the servers and at least one network load balancer connected to the clients and the servers, responsible for at least one of the services, set up to gather information on the state of the servers and/or the applications on the servers and set up to route incoming requests of clients to one of the servers . The computer arrangement and the method according to the invention are characterized in that the network load balancer provides the administration means with information on the state of the servers and/or the
applications on the servers, and the administration- means provides the network load balancer with information about which servers are provisioned to provide the at least one service the network load balancer is responsible for.
According to the invention information that is needed by both, network load balancer and administration means, is shared. This prevents from obtaining relevant information twice and thus decreases workload and network traffic.
In -a preferred embodiment of the invention each server hosts a network load balancer agent, the network load balancer agent being set up to determine information on the state of the servers and/or the applications on the servers and set up to report the information to the network load balancer. In a further preferred embodiment the servers are provided with an operating system having a kernel, and the network load balancer agents are integrated into the kernel. Other features which are considered as characteristic for the invention or which describe advantageous embodiments of the present invention are set forth in the appendend claims.
The above and other objects, features and advantages of the present invention will become apparent from the following description in conjunction with the accompanying drawings.
In the drawings:
Fig. 1 is a conceptual diagram of an embodiment of a computer arrangement according to the present invention;
Fig. 2 is a flowchart representation of an embodiment of a method for providing services according to the present invention.
Fig. 1 shows several servers 1 (IA, IB, 1C), each hosting an application 2 (2A, 2B, 2C) and a network load balancer agent 3 (3A, 3B, 3C) . The servers 1 are set up to provide services to clients 4 using a network 5. The computer arrangement further comprises a network load balancer 6 with a list of addresses 7 and an administration means 8. The network load balancer 6 is connected to the clients 4 and the servers 1 by the network 5. Furthermore, network load balancer 6 is connected to the network load balancer agents 3 to receive state information 9 and to the administration means 8 to transmit the state information 9 to and receive provisioning information 10 from the administration means 8. The administration means 8 is set up to control the servers 1 using a control connection 11. Figure 1 shows a computer arrangement where three servers 1 are currently set up to provide a particular service made available by instances of the application 2 to the clients 4. In the embodiment shown, each server 1 hosts just one application 2. However, the invention is not restricted to such a situation. Servers 1 could also host several applications 2, possibly in conjunction with different network load balancers 6 for different types of applications 2. Also, the numbers of servers 1 shown in the diagram is just exemplary. Computer arrangements for providing services to clients over a network often comprise several tens or even hundreds of servers . The arrangement might comprise further servers 1 which might be used to provide further services. The invention can be easily applied to computer arrangements (server farms) of any size. The servers 1 can either be independent physical units, for example blade servers, or can be virtual servers. Virtual servers share a common hardware which runs a software that emulates several hardware units.
Each service provided by the computer arrangement is related to a particular network address. In order to select a particular service, clients 4 use this particular network address as the destination address in a request to be send to the computer arrangement. Within the computer arrangement, each network addresses for a particular service is assigned to a central instance, which receives the request and routes ' it to one of the servers 1. In the embodiment shown, the network load balancer 6 is the central instance that receives all requests of clients 4 concerning the particular service made available by the application 2. By way of example, the network load balancer β is responsible for one particular service only. The network load balancer 4 redirects an incoming request to one of the servers 1 and thus to an instance of application 2 that actually processes the request. This can for example be achieved by overwriting the destination address of the request with the address of the server 1 to which the request is redirected. After having processed the request, the server 1 then sends its reply directly back to the client 4, the address of which is contained in the request and thus known to the server 1. The server 1 adds the address of the network load balancer 6 as the sender's address to the reply. In that case, a direct network connection between the servers 1 and the client 4 is needed.
In the figure, network 5 is depicted by point-to-point connections between clients 4 and network load balancer 6, and network load balancer 6 and servers 1, respectively, to symbolize the data flow of requests. But it is to be understood that the underlying network 5 is usually a network that allows data to be exchanged between all participants. Other known techniques for routing or redirecting requests could as well be used. The reply could e.g. be sent back via the network load balancer 4 who would add its, sender' s address to the reply itself.
For the network load balancer 6 to be able to distribute the requests to" the servers 1 it has to be provided with information about which servers 1 are available for the requested service. This information is kept in the list of addresses 7 of available servers 1.
The decision to which server 1 a new request of one of the clients 4 is directed is based on the operating state of servers 1 and applications 2. An important factor in the decision making process is the load that the applications 2 impose on the servers 1.
Several different techniques how to determine, calculate or estimate load values are known. In the embodiment shown network load balancer agents 3 are used. Each server 1 hosts one network load balancer agent 3 which is set up to determine information 9 on the state of the server 1 and the application 2, which is called state information 9 for short. State information 9 that is relevant for the routing decisions of the network load balancer comprises for example information whether the server 1 operates correctly or not, whether the application 2 works correctly or not, how busy the application is or how much load it imposes on the server.
A preferred configuration is to implement the network load balancer agents 3 close to the operating systems of the servers 1 or even integrate them into the kernel of the operating system. Network load balancer agents 3 can then be equipped with wide access privileges which would not be possible if they are implemented in a user accessible operating space where they would only with little access privileges. Kernel based network load balancer agent 3 have several advantages. A kernel based network load balancer agent 3 will be able to send state information under many circumstances where a user space network load balancer agent 3 could not. For example, if the user space allowed processor load is so high that processes cannot run, a kernel based network load balancer agent 3 will still be able to operate. Likewise, a kernel based network load balancer agent 3 can observe function- and/or subroutine-calls from application 2 to the operating system. It can for example observe if the application is still listening to a network interface (e.g. a port monitored by the application 2) by detecting the
"listen(}" call to the operating system's kernel, thereby judging whether the application is still operating or not. This is faster and generates less additional workload than repeatedly sending check requests to the monitored port. Finally, the kernel based network load balancer agent- 3 detects and responds to events faster than a user space network load balancer agent 3.
The state information 9 determined by the network load balancer agent 3 is then sent to the network load balancer 6 and is used in the decision making process to which server 1 requests are routed. For the transmission of the state information 9 a separate network could be used for security and/or performance reasons, or the same network 5 that connects the servers 1, the clients 4 and the network load balancer 6 could be used. Preferably, the information 9 is encapsulated in a mark-up language, for example XML (extensible Markup Language), for transmission.
Providing services that have a fast response time on the one hand, and that do not waste any server capacity on the other hand, requires that an appropriate number of instances of an application 2 is running and, therefore, that an appropriate number of servers 1 is dedicated to host these instances.
Provisioning the servers 1 by allocating them and/or by starting instances of a particular application 2 is performed by the administration means 8. The administration means 8 may be software-implemented and hosted on a separate computer. For reasons of high availability and redundancy there may also be second administration means that could take over in case of a failure of the first administration means 8. Different methods to provision servers 1 by the administration means 8 are known. One way is to remotely start or stop instances of an application depending on requirements. This bears the danger of collecting remains of all applications that were once started and stopped again (like temporary files) which might lead to an unstable and slow system. Therefore, often another approach, sometimes called "bare-metal provisioning", is chosen, where for each new task (different customer, different applications) a whole boot image is transferred to a server and the server is re¬ booted with the new boot image. In the following "provisioning" a server 1 for a particular service is meant to comprise all methods that prepare or condition a server 1 to be available for providing a particular service.
The control connection 11 between the administration means 8 and the servers 1 which is used to provision the servers 1, could be established through the network 5. In an other embodiment, a separate network could be used for security and/or performance reasons .
The basic idea behind the invention is that in an autonomous computing environment the performance of the system can be enhanced when administration means 8 and network load balancer 6 share their information on the servers 1. The resulting exchange of information is now described in conjunction with Fig. 2. -
Fig. 2 shows a flowchart representation of an embodiment of a method according to the present invention. In step A of Fig. 2, a provisioning' decision concerning a particular service is translated into action by the administration means 8 using the control line 11 as described above in connection with Fig. 1. If the particular service is to be started for the first time, the provisioning decision is based on predetermined initialization values or might be initialized by a human administrator.
Information 10 on the provisioning process, called provisioning information 10 for short) is then transmitted from the administration means 8 to the network load balancer 6 in step B. Provisioning information 10 comprises at least the network addresses of the servers 1 that provisioned to provide the particular service the network load balancer is responsible for or that are deprovisioned, i.e. that are either added to or removed from the pool of servers 1 conditioned to provide that particular service. Additional data that might be relevant for the routing process and could be used by the network load balancer 6 could also be contained in provisioning information 10. Such' additional data could for example be data on the performance of provisioned. servers 1. Provisioning information 10 could be in form a mark-up language based transaction, in particular in form of an XML-based transaction.
In step C, the provisioning information 10 is received by the network load balancer 6 and used to update the list 7 in step D. Instead of,a list, any appropriate data structure could be used.
In step E, state information 9 on the servers 1 and the application 2 on these servers 1 are gathered from the network load balancer agent 3. State information 9 is then used to decide to which server 1 contained in the list 7 a request of a client is routed to as shown in step F.
State information 9 is transmitted to and received by the administration means 8 in steps G and H, respectively. The state information 9 transmitted to the administration means 8 might not be in exactly the same form and format as it was originally received by the network load balancer 6. Instead, it could be a selected subset of the originally received state information 9 or the originally received state information 9 could be processed by the network load balancer 6 before transmission. Processing could for example involve time averaging, especially in case of fluctuating load data.
In step I, the state information 9 is used by the administration means to make further provisioning decisions, if appropriate. The method then restarts with step A to translate any further provisioning decisions into action.
The method leads to an iterative and interactive decision making process based on the state information 9 and the provisioning information 10 exchanged between administration means 8 and network load balancer 6.
Although the invention herein has been described with reference to particular embodiments, it is to be understood that these ^embodiments are merely illustrative of the principles, and applications of the present invention. It is therefore to be understood that numerous modifications may be made to the illustrative embodiments and that other arrangements may be devised without departing from the spirit and scope of the present invention as defined by the appended claims. Reference List
1 Server
2 Application 3 Network load balancer agent
4 Client
5 Network β Network load balancer
7 List of provisioned servers 8 Administration means
9 State information
10 Provisioning information
11 Control connection

Claims

Claims:
1. A computer arrangement for providing services for clients
(4) over a network (5), comprising - at least two servers (1) , each hosting at least one application (2) and designated to provide the services to clients (4) over the network (5); an administration means (8), set up to provision the servers (1) to provide the services by allocating the servers (1) and/or by starting or stopping instances of the applications (2) on the servers (1) ; at least one network load balancer (6) connected to the clients (2) and the servers (1), responsible for at least one of the services, set up to gather information (9) on the state of the servers (1) and/or the applications (2) on the servers (1) and set up to route incoming requests of clients
(4) to one of the servers (1) ; where the network load balancer provides the administration means with information (9) on the state of the servers (1) and/or the applications (2) on the servers (1) , and the administration means provides the network load balancer (6) with information (10) about which servers are provisioned to provide the at least one service the network load balancer is responsible for.
2. The computer arrangement of claim 1, where the information (10) about which servers (1) are provisioned to provide the at least one service the network load balancer (6) is responsible for comprise a list (7) of the respective servers (1) .
3. The computer arrangement of one of the claims 1 or 2, where each server (I)- hosts a network load balancer agent (3), the network load balancer agent (3) being set up to determine the information (9) on the state of the server (1) and/or the application (2) on the- server (1) and set up to report the information (9) to the network load balancer (6) .
4. The computer arrangement of claim 3, where the servers (1) are provided with an operating system having a kernel, and where the network load balancer agents (3) are integrated into the kernel.
5. The computer arrangement of claim 4, where the network load balancer agents (3) determine information on the state of applications (2) on the servers (I)' by observing function and/or subroutine calls of the applications (2) to the operating system.
6. The computer arrangement of one of the claims 3 to 5, where the information (9) sent from the network load balancer agents (3) to the network load balancer .(6) is encapsulated in a mark-up language, e.g. XML, for transmission.
7. The computer arrangement of one of the claims 1 to β, where the information (9, 10) exchanged between the network load balancer (6) and the administration means (8) is encapsulated in a mark-up language, e.g. XML, for transmission.
8. A method for providing services for clients (4) over a network (5) with the following steps providing a computer arrangement, the computer arrangement comprising: at least two servers (1) , each hosting at least one application (2) and designated to provide the services to clients (4) over the network (5); an administration means (8), set up to provision the servers (1) to provide the services by allocating the servers (1) and/or by starting or stopping instances of the applications (2) on the servers (1) ; - at least one network load balancer (6), responsible for at least one of the services, set up to gather information (9) on the state of the servers (1) and/or the applications (2) on the servers (1) and set up to route incoming requests of clients (4) to one of the servers (1) based on the determined information (9); transmitting information (9) on the state of the servers (1) and/or the applications (2) on the servers (1) from the network load balancer (6) to the administration means (8); basing the decisions, on which of the servers (1) to provision by the administration means (8), on the information (9) transmitted from the network load balancer (6) to the administration means (8); and transmitting information (10) about which servers (1) are provisioned to provide the at least one service the network load balancer (6) is responsible for, from the administration means (8) to the network load balancer (6) .
PCT/EP2005/009718 2004-09-13 2005-09-09 Computer arrangement and method for providing services for clients over a network WO2006029771A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE112005001995T DE112005001995B4 (en) 2004-09-13 2005-09-09 A computer arrangement and method for offering services to users over a network
US11/685,485 US20070208844A1 (en) 2004-09-13 2007-03-13 Computer Arrangement and Method for Providing Services for Clients Over a Network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US60928304P 2004-09-13 2004-09-13
US60/609,283 2004-09-13

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/685,485 Continuation US20070208844A1 (en) 2004-09-13 2007-03-13 Computer Arrangement and Method for Providing Services for Clients Over a Network

Publications (1)

Publication Number Publication Date
WO2006029771A1 true WO2006029771A1 (en) 2006-03-23

Family

ID=35229944

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/009718 WO2006029771A1 (en) 2004-09-13 2005-09-09 Computer arrangement and method for providing services for clients over a network

Country Status (3)

Country Link
US (1) US20070208844A1 (en)
DE (1) DE112005001995B4 (en)
WO (1) WO2006029771A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1903743A1 (en) 2006-09-20 2008-03-26 Fujitsu Limited Method and apparatus for determining resource node, method of controlling resource node, resource node and computer product
WO2012045338A1 (en) * 2010-10-06 2012-04-12 Telefonaktiebolaget Lm Ericsson (Publ) Application allocation in datacenters

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838827B2 (en) * 2008-08-26 2014-09-16 Red Hat, Inc. Locating a provisioning server
US10511694B2 (en) * 2014-07-23 2019-12-17 Citrix Systems, Inc. Systems and methods for application specific load balancing
US9785474B2 (en) 2015-07-23 2017-10-10 International Business Machines Corporation Managing a shared pool of configurable computing resources using a set of scaling factors and a set of workload resource data
US10169086B2 (en) * 2015-09-13 2019-01-01 International Business Machines Corporation Configuration management for a shared pool of configurable computing resources
US10834176B2 (en) 2017-03-10 2020-11-10 The Directv Group, Inc. Automated end-to-end application deployment in a data center
CN111742522B (en) * 2017-12-21 2023-11-24 瑞典爱立信有限公司 Proxy, server, core network node and methods therein for handling events of network services deployed in a cloud environment
US11349783B2 (en) * 2019-08-05 2022-05-31 Cisco Technology, Inc. Host input/output based load balancing on fibre channel N_port virtualizer switch uplinks
US20230169355A1 (en) * 2021-12-01 2023-06-01 Capital One Services, Llc Replica reliability

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867706A (en) * 1996-01-26 1999-02-02 International Business Machines Corp. Method of load balancing across the processors of a server
WO2002037799A2 (en) * 2000-11-03 2002-05-10 The Board Of Regents Of The University Of Nebraska Load balancing method and system
US20050071127A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Autonomous computing probe agent

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813635B1 (en) * 2000-10-13 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for distributing load among redundant independent stateful world wide web server sites
US7475157B1 (en) * 2001-09-14 2009-01-06 Swsoft Holding, Ltd. Server load balancing system
GB0220846D0 (en) * 2002-09-07 2002-10-16 Ibm Remote dynamic configuration of a web server to facilitate capacity on demand
GB0306971D0 (en) * 2003-03-26 2003-04-30 British Telecomm Client server model
US7630313B2 (en) * 2004-09-30 2009-12-08 Alcatel-Lucent Usa Inc. Scheduled determination of network resource availability
US7548945B2 (en) * 2005-04-13 2009-06-16 Nokia Corporation System, network device, method, and computer program product for active load balancing using clustered nodes as authoritative domain name servers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867706A (en) * 1996-01-26 1999-02-02 International Business Machines Corp. Method of load balancing across the processors of a server
WO2002037799A2 (en) * 2000-11-03 2002-05-10 The Board Of Regents Of The University Of Nebraska Load balancing method and system
US20050071127A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Autonomous computing probe agent

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1903743A1 (en) 2006-09-20 2008-03-26 Fujitsu Limited Method and apparatus for determining resource node, method of controlling resource node, resource node and computer product
US8488452B2 (en) 2006-09-20 2013-07-16 Fujitsu Limited Method and apparatus for determining resource node, method of controlling resource node, resource node, and computer product
WO2012045338A1 (en) * 2010-10-06 2012-04-12 Telefonaktiebolaget Lm Ericsson (Publ) Application allocation in datacenters
US9654333B2 (en) 2010-10-06 2017-05-16 Telefonaktiebolaget L M Ericsson (Publ) Application allocation in datacenters

Also Published As

Publication number Publication date
DE112005001995B4 (en) 2011-12-08
DE112005001995T5 (en) 2007-08-02
US20070208844A1 (en) 2007-09-06

Similar Documents

Publication Publication Date Title
US10791168B1 (en) Traffic aware network workload management system
US20070208844A1 (en) Computer Arrangement and Method for Providing Services for Clients Over a Network
CN102187315B (en) Methods and apparatus to get feedback information in virtual environment for server load balancing
US10819589B2 (en) System and a method for optimized server-less service virtualization
US9363198B2 (en) Load balancing in cloud-based networks
US9450783B2 (en) Abstracting cloud management
US8316125B2 (en) Methods and systems for automated migration of cloud processes to external clouds
US8271653B2 (en) Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds
KR101164700B1 (en) Configuring, monitoring and/or managing resource groups including a virtual machine
US8862720B2 (en) Flexible cloud management including external clouds
US10108461B2 (en) Management of virtual appliances in cloud-based network
US8346935B2 (en) Managing hardware resources by sending messages amongst servers in a data center
AU2004288532B2 (en) Method and system for accessing and managing virtual machines
JP5416156B2 (en) Integrated monitoring system and integrated monitoring program
US20100306767A1 (en) Methods and systems for automated scaling of cloud computing systems
US20160055045A1 (en) Method and arrangement for fault management in infrastructure as a service clouds
US20120131193A1 (en) Systems and methods for identifying service dependencies in a cloud deployment
US20110252137A1 (en) Systems and Methods for Dynamically Provisioning Cloud Computing Resources
US20080140759A1 (en) Dynamic service-oriented architecture system configuration and proxy object generation server architecture and methods
CN103365713A (en) Resource dispatch and management method and device
CN108933829A (en) A kind of load-balancing method and device
US11228509B2 (en) Orchestrated hybrid cloud system for data processing
US10592374B2 (en) Remote service failure monitoring and protection using throttling
US10862821B1 (en) Managing processor load in a multi-tenant environment
KR102119456B1 (en) Distributed Broker Coordinator System and Method in a Distributed Cloud Environment

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1120050019950

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 11685485

Country of ref document: US

RET De translation (de og part 6b)

Ref document number: 112005001995

Country of ref document: DE

Date of ref document: 20070802

Kind code of ref document: P

WWP Wipo information: published in national office

Ref document number: 11685485

Country of ref document: US

122 Ep: pct application non-entry in european phase
REG Reference to national code

Ref country code: DE

Ref legal event code: 8607