WO2007071286A1 - Method of assigning a user session to one of a set of application servers - Google Patents

Method of assigning a user session to one of a set of application servers Download PDF

Info

Publication number
WO2007071286A1
WO2007071286A1 PCT/EP2005/057052 EP2005057052W WO2007071286A1 WO 2007071286 A1 WO2007071286 A1 WO 2007071286A1 EP 2005057052 W EP2005057052 W EP 2005057052W WO 2007071286 A1 WO2007071286 A1 WO 2007071286A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
hosted
server
user session
session
Prior art date
Application number
PCT/EP2005/057052
Other languages
French (fr)
Inventor
Bob Janssen
Original Assignee
Real Enterprise Solutions Development B.V.
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 Real Enterprise Solutions Development B.V. filed Critical Real Enterprise Solutions Development B.V.
Priority to PCT/EP2005/057052 priority Critical patent/WO2007071286A1/en
Publication of WO2007071286A1 publication Critical patent/WO2007071286A1/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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Definitions

  • the invention relates to a method of assigning a user session belonging to a user of a client comprised in a computer terminal to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it, including receiving a request to establish the user session from a user of a client.
  • the invention also relates to a method of providing a user profile of a user of a client, comprised in a computer terminal, for co-operating with an application server in a system comprising at least one application server for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it.
  • the invention also relates to a server device for assigning a user session belonging to a user of a client comprised in a computer terminal to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of co-operating with a client to provide at least one user interface to the applications for each user session being hosted by it.
  • the invention also relates to a computer program.
  • An example of a method of assigning a user session to one of a set of several application servers, and of a corresponding server and computer program, is known as User Load Balancing.
  • User Load Balancing uses two basic criteria when allocating a user session to an application server.
  • a first criterion is the performance and spare capacity of each application server (at the time of receipt of a request to establish a user session) .
  • the number of users or user sessions already hosted by each of the application servers at the time of receipt of the request is a second criterion.
  • a client at the work station of the user is used to establish a connection with a load balancing application on a server and to transmit a request for allocation of a user session to an application server.
  • the load balancing application determines the application server with the lowest load at that point in time. It returns a message to the client, indicating which application server has the lowest load.
  • the connection between the client and the load balancing application is then terminated, so that the client can connect to the indicated application server.
  • the user of the client is authenticated, in order to determine whether the user session can be commenced.
  • a problem of the known method is that it is relatively ineffective where all users submit requests to establish a user session at substantially the same time, as might occur at the start of a working day. As the execution of instances of applications is commenced during the user sessions, it may become apparent that many user sessions with applications requiring intensive processing are hosted by the same application server.
  • This object is achieved by the method of assigning a user session according to the invention, which is characterised by obtaining respective estimates, associated with the users to which user sessions hosted by the application servers in the set belong, of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user concerned, obtaining for each server in the set a total over all user sessions hosted by the applications server, of the estimates associated with the users to which the hosted user sessions belong, and assigning the user from whom the request was received to one of the set of application servers so as to balance over the application servers the respective totals of the estimates relative to the respective available processing capacities.
  • US 2003/0191848 discloses a plurality of connection servers operatively coupled to a security server and to a plurality of databases.
  • the security server is operatively coupled to a plurality of client computers, and to a plurality of device control computers and network-enabled devices.
  • the user of a client computer contacts the security server.
  • a determination is made by the security server as to whether or not the user of the client computer that made contact is authorised.
  • the security server assigns one of the connection servers to the user of the client computer who was authorised. Connection server assignment is carried out by a load balancing application on the security server.
  • Data tables within a database include information about different types of users, different types of sessions which users may wish to establish, and different types of connection servers that may be used for such users and sessions, as well as current statistics regarding the status availability and power usage of the connection servers.
  • a User Type identifies a type of user and each User Type refers to a Session Type, in which such types of users may take part .
  • An average Power usage for one session can be calculated by summing the average Power usage for each User Type over all User Types that refer to the Session Type of the session to be established. By summing this Power usage over all scheduled sessions at any point in time on a single connection server, the expected Power usage at that point in time can be calculated for a particular connection server.
  • the ratio of this expected power usage to a connection server's maximum Power usage allows a Utilisation Ratio to be determined for each connection server.
  • the connection server with the minimum utilisation ratio relative to the others in the set is then selected as the server to which this Session is assigned.
  • Power is a parameter that serves as a single metric that indicates a server's ability to support connections.
  • connection servers are not application servers, capable of co-operating with a client to provide at least one user interface to the applications for each user session being hosted by it.
  • the load balancing applied by the security server known from
  • US 2003/01918948 is a type of network load balancing, based on the type of data transfers that are to take place during a session between a client computer and one or more network- enabled devices, i.e. the session type.
  • the respective estimates are obtained on the basis of information associated with the respective users based on at least one record for each user, obtainable by measuring characteristics of a user session belonging to the user concerned whilst being hosted by an application server.
  • the effect is that the estimates are relatively reliable predictions of the use of resources by instances of execution of applications associated with a typical user session belonging to the users. Thus, a more effective load balancing is achieved.
  • An embodiment includes receiving an identification of the requesting user with the request, wherein, upon determining that, for the requesting user, no information based on at least one record, obtainable by measuring characteristics of a user session belonging to the requesting user whilst being hosted by an application server is available, data concerning group membership of the requesting user is obtained and used to obtain an identification of at least one other user in a shared group with the requesting user, wherein information is associated with the requesting user which information is derived from information associated with the identified other users in the shared group and based on at least one record for each other user, obtainable by measuring characteristics of a user session belonging to the user concerned whilst being hosted by an application server.
  • the group membership data is definable by an administrator of the system comprising the set of application servers.
  • the respective estimates are obtained by obtaining from a database of user profiles associating identified users with respective ones of a number of pre-defined classes, user classes associated with the users to which user sessions hosted by the application servers in the set belong, and determining the estimates from parameters and definitions of the respective classes.
  • a point in time associated with the requested user session is obtained and the respective estimates of the use of processing capacity are determined in dependence on the point in time associated with the requested user session.
  • the estimate of the use of resources during a typical user session belonging to a particular user is made dependent on the particular time at which the user session is in progress. This feature helps to take account of peaks in the use of processing capacity at particular times in the day or week.
  • An embodiment includes obtaining information identifying a type of user session, wherein the set of several application servers is selected from a super set including at least one further application server in accordance with the type of user session.
  • a single load balancing application executing the method assigns a user session to an application server in one of several possible sets of application servers.
  • This embodiment is useful in systems where diverse so-called silos in a server farm are available for providing published applications to users of computer terminals. It takes account of variations in suites of applications available from the application servers.
  • the request to establish the user session is received from the client over a communications link between the computer terminal and a load balancing server device connected to the computer terminal via a network, including returning information enabling the client to establish a connection over a network to a server device including the assigned one of the set of application servers and breaking down the communications link between the computer terminal and the load balancing server device.
  • This embodiment has the advantage that the load balancing server device need not be involved in routing the data between the computer terminal and the server device including the assigned application server once the requested user session has been established. It is particularly suitable for use in a system wherein a plurality of server devices each include both at least one application server and a module configured to execute the method of assigning the user session to one of the application servers.
  • the server devices in the system can have substantially equal processing capacity, since connections for use in a user session are established directly with the server device including the application server that is hosting the user session.
  • the request to establish a user session may be submitted to a load balancing module on one of the server devices selected at random or by default by the client.
  • the information associated with the respective users based on at least one record for each user is obtained from a database maintained by a system performing a method of providing a user profile of a user of a client according to the invention.
  • the method of providing a user profile of a user of a client is characterised by using at least one record maintained by at least one application server in the system and identifying for each user session hosted by the at least one application server the user to which it belongs and using a measure of the use of processing capacity by any instances of execution of applications associated with the user session, to compile information associating with the user associated with the user profile information for providing an estimate of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user.
  • An embodiment includes classifying each user to which at least one user session in the records belongs in accordance with definitions of a number of pre-defined classes and updating a database of user profiles associating identified users with respective ones of a number of pre-defined classes.
  • a time of hosting is determined for the user sessions in the records and the users to which at least one user session in the records belongs are classified in accordance with the use of processing capacity at the time of hosting.
  • the effect is to allow a time-dependent prediction to be made of the use of processing capacity by applications associated with hosted user sessions.
  • An application would be to reserve extra processing capacity where user sessions are being hosted that belong to users known to cause high peak demands in the course of a user session. In this way, load balancing can be carried out more effectively and more efficiently.
  • the server device is configured to execute a method according to the invention.
  • the server device comprises at least one application server in the set of application servers.
  • the computer program according to the invention includes a set of instructions capable, when incorporated in a machine-readable medium, of causing a system having information processing capabilities to perform a method according to the invention.
  • FIG. 1 shows a system for providing published applications to users of computer terminals wherein load balancing across server devices is carried out
  • FIG. 2 is a flow chart illustrating a method of load balancing across application servers
  • Fig. 3 is a flow chart illustrating a step in the method shown in Fig. 2;
  • Fig. 4 is a flow chart illustrating a method of profiling the users of the system of Fig. 1 to facilitate load balancing across the server devices .
  • An illustration of a system for providing published applications is given in Fig. 1 by way of example.
  • a first computer terminal 1 and a second computer terminal 2 are shown as representative examples of a much larger group of computer terminals at the disposal of a group of users.
  • the first and second computer terminals 1,2 are connected to a network 3.
  • the network 3 is a Local Area Network or Wide Area Network as known per se.
  • Also connected to the network 3 are first, second and third server devices 4-6, constituting a first silo 7, and fourth and fifth server devices 8,9, which constitute a second silo 10.
  • Each server devices includes at least one data processing unit, main memory and one or more devices for non-volatile data storage (not shown) .
  • At least one application server is installed on each of the server devices 4-6,8,9.
  • Each application server comprises a computer program for facilitating the execution of one or more installed software applications.
  • the computer program code is executed by the processing unit or units of the server device 4-6,8,9 that includes the application server.
  • Each instance of execution of an application is associated with a user session being hosted by the application server.
  • Each user session belongs to a particular user with an account in the system.
  • an extra user profile is stored on one or more of the server devices 4-6,8,9, as will be explained below.
  • Each application server includes or co-operates with a terminal server for co-operating with a client installed on one of the computer terminals 1,2 to provide a graphical user interface (GUI) of an operating system desktop.
  • GUI graphical user interface
  • the GUI provides access to instances of execution of applications associated with user sessions being hosted by the application server.
  • Terminal servers are known as such. They co-operate with clients in accordance with one of a number of protocols defined for this purpose. Examples include the Remote Desktop Protocol, Independent Computing Architecture (ICA) and PXES Universal Linux Thin Client.
  • ICA Independent Computing Architecture
  • PXES Universal Linux Thin Client When running published applications, the clients on the computer terminal 1,2 render only the interface to the applications.
  • a user session belonging to any of a first group of users may be hosted by any one of at least three application servers included in the first, second and third server devices 4-6 constituting the first silo 7.
  • a user session belonging to any one of a second group of users may be hosted by any one of at least two application servers included in the fourth and fifth server devices 8,9, which constitute the second silo 10. This separation may be due to a different set of available applications on the application servers in the first silo 7, or it may be due to the users of the first and second groups being members of different administrative organisations.
  • the log-on request is treated as a request to establish a user session belonging to that user on one of the application servers, which will be said to host the user session.
  • an application server hosts a user session belonging to a user of a client included in one of the computer terminals 1,2, a connection between that application server and the client is maintained for the duration of the user session, and is uniquely associated with the user session.
  • the GUI of an operating system desktop that is provided by the terminal server and client allows the user of the client to start one or more applications.
  • Each instance of execution of an application that is thus created is associated with the user session in the context of which it is created.
  • a user session is hosted by only one application server at any one time.
  • the instances of execution of applications associated with the user session make use of the processing capacity available to the application server hosting the user session. These include a share of the memory and a number of processor operations per time interval available to the application server.
  • the load balancer is a software module installed on each of the server devices 4-6,8,9. It is comprised in, or invoked by, the server module that handles requests to log on to the system.
  • the load balancer has access to a user database 11 (Figs. 2-4) .
  • the user database is present on only one of the server devices 4-6,8,9 and accessed via the network 3. In another embodiment, it is replicated in each of the server device 4-6,8,9 and a synchronisation mechanism is used to keep each copy the same.
  • the user database 11 is illustrated in Figs. 2-4 in the shape of a table, in which each row corresponds to an entry for a user. Three columns are shown by way of simplification. A first column 12 contains user identifiers, a second column 13 contains one or more group identifiers and a third column 14 contains an identification of one of a pre-defined number of user classes, with which the user is associated.
  • the group identity is assigned by an administrator of the system for published applications when the user's account is created, or later amended. It advantageously corresponds to an organisational entity, for example a department within an organisation. It may also correspond to a type of user, e.g. engineer or administrative employee.
  • the user class is assigned by a profiler, a software module running on at least one of the server devices 4-6, 8,9. The class forms a measure of the use of processing capacity by instances of execution of applications associated with a typical user session belonging to the user with which the class identity is associated.
  • the process of assigning a user session to an application server is illustrated in Fig. 2.
  • the load balancer receives a request from a user to establish a user session (step 15) .
  • the request may come from a user who already has one or more user sessions in progress.
  • the request is generated by a client on one of the computer terminals 1,2 upon receipt of a command from the user.
  • the request contains an identification of the user by whom it was sent.
  • the identification may be machine-generated or entered by the user.
  • the request may additionally contain an identification of a user group and/or a password or other data for authenticating the user.
  • the user's identity is determined from the request in a next step 16.
  • the user class associated with the identified user is determined (step 17) , by looking up the entry for the identified user in the user database 11.
  • a default class is associated with such a requesting user, optionally in dependence on information associated with the user by an administrator, such as the type of user.
  • a different approach is taken.
  • data concerning group membership of the requesting user is obtained from the second column 13 of the user database 11 (step 18) .
  • the group identification is used to obtain the user identifiers of at least one other user in a shared group with the requesting user, i.e. for whom the entry in the second column 13 has a common component.
  • the user classes associated with these one or more other users are used to assign a user class to the requesting user, which information is copied to the entry in the third column 14 of the user database 11 associated with the requesting user (step 19) .
  • the median user class may be copied, for example.
  • the load balancer determines which applications may be required by the user (step 20) .
  • the data for making this determination characterises a type of user session to be hosted.
  • a set of candidate application servers is selected. In the illustrated embodiment, this means that the application servers in one of the first and second silos are selected as candidate application servers.
  • the user session is assigned to one application server in the selected set of application servers, in such a way as to balance the relative expected use of processing capacities available to the application servers in the set.
  • the class loads of the selected application servers are determined (step 22) .
  • This step will be explained in further detail with reference to Fig. 3.
  • the steps illustrated in Fig. 3 will be executed by each application server individually in response to a request from the load balancer handling the request to establish a user session.
  • the steps will be executed by that load balancer itself, using at least partly databases maintained by the application servers.
  • the application servers each or jointly keep a record 23 of hosted user sessions.
  • the record identifies for each user session the user to whom it belongs, as well as recording measurements of characteristics of the user sessions.
  • measures for determining the use of processing capacity are contained in the record 23. These measures include the point in time (possibly within a time cycle corresponding to a year, month, week or day) at which the user session was established or half-way, the duration of the user session, average use of processing capacity (share of CPU time, for instance), Critical CPU Load Duration (CCLD) values, number of instances of execution of applications, average use of main memory, etc.
  • the critical CPU Load Duration is the duration of a time interval over which a process's use of CPU resources exceeds a pre-determined threshold value.
  • the application servers keep a running average in order to maintain the record, with measurements being made at certain intervals (e.g. every 500 ms) , for example by polling an operating system of the server device 4-6,8,9 on which the application server is installed
  • the sessions currently being hosted are determined (step 24) .
  • the users to whom the sessions belong are determined (step 25) . It is noted that there may be more than one user session belonging to a single user.
  • the classes of the users identified in this step 25 are obtained from the user database 11 (step 26) .
  • a table 27 containing the definitions of the user classes is used to obtain load estimates associated with the session owners
  • the load is time- dependent and the load estimate corresponding to or at least one class is determined in dependence on the point in time associated with the requested user session. This point in time could be, for example, the time of receipt of the request to establish it, the current time, or a future time at which establishment of the requested user session is scheduled.
  • the load estimates associated with the session owners are multiplied by the number of sessions in progress belonging to them, and these totals are then summed over all users identified in the second step 25 (step 29) .
  • the steps 24-26,28,29 are performed for each application server in a selected silo 7,10.
  • the load balancer assigns the user from whom the request was received in the first step 15 to one of the set of application servers so as to balance over the application servers in the set the respective totals of the estimates relative to the respective available processing capacities (step 30, Fig. 2) .
  • the class associated with the requesting user is taken into account.
  • the application server with the lowest existing class load is selected without regard to the additional class load imposed by establishing the requested user session on that application server.
  • the load balancer returns a message to the client used by the requesting user (step 31) .
  • the message includes an identification of the application server to which the assignment was made in the preceding step 30. This identification may include a network address and port, for example.
  • the connection between the load balancer and the client is broken down (step 32) .
  • the client establishes a new connection with the assigned application server in order actually to establish the user session.
  • the user session is, for example, hosted by an application server included in the first server device 4.
  • An instance of execution of a web browser which instance of execution is associated with the user session, may be created.
  • the web browser obtains HTML files from a web server 33 through a Wide Area Network (WAN) 34, such as the Internet.
  • WAN Wide Area Network
  • Connection to the Internet is through one of first and second connection servers 35,36.
  • the connection server through which connection is made, is determined using a different type of load balancing from the one illustrated herein, namely a type of network load balancing.
  • the ability of the connection servers 35,36 to support another connection of the hypertext transfer protocol type (HTTP) determines which one is selected, rather than the use of processing capacity by connections associated with individual , known users .
  • HTTP hypertext transfer protocol type
  • Fig. 4 illustrates a method of providing user profiles for the user database 11.
  • the method is executed by one or more profilers, software modules installed on the server devices 4-6,8,9.
  • the identifier of a user for whom the user profile is to be created or updated is first obtained (step 37) .
  • the record 23 of user sessions is consulted to obtain records of the user sessions belonging to the identified user (step 38) . From these, a measure of the use of processing capacity by any instances of execution of applications associated with a typical user session is obtained.
  • a set of rules is used to derive a single figure from the statistics in the record 23 of user sessions.
  • a set of pairs of time values and values is obtained.
  • each one of the several classes is defined in terms of a time-dependent range within which the measure of the use of processing capacity must lie for the user to be assigned to that class.
  • the third column 14 of the user's entry in the user database 11 is updated to reflect the classification.
  • the profiler is present on each server device including an application server and maintains a running average of statistics of user sessions belonging to users for whom the application server hosts at least one user session. Such a record per user replaces the record 23 of user sessions maintained on a per-session basis in the illustrated embodiment .

Abstract

A method of assigning a user session belonging to a user of a client comprised in a computer terminal (1, 2) to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it, includes receiving a request to establish the user session from a user of a client. Respective estimates, associated with the users to which user sessions hosted by the application servers in the set belong, of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user concerned, are obtained. For each server in the set, a total over all user sessions hosted by the applications server, of the estimates associated with the users to which the hosted user sessions belong is obtained. The user from whom the request was received is assigned to one of the set of application servers so as to balance over the application servers the respective totals of the estimates relative to the respective available processing capacities.

Description

Method of assigning a user session to one of a set of application servers
The invention relates to a method of assigning a user session belonging to a user of a client comprised in a computer terminal to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it, including receiving a request to establish the user session from a user of a client.
The invention also relates to a method of providing a user profile of a user of a client, comprised in a computer terminal, for co-operating with an application server in a system comprising at least one application server for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it. The invention also relates to a server device for assigning a user session belonging to a user of a client comprised in a computer terminal to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of co-operating with a client to provide at least one user interface to the applications for each user session being hosted by it.
The invention also relates to a computer program. An example of a method of assigning a user session to one of a set of several application servers, and of a corresponding server and computer program, is known as User Load Balancing. User Load Balancing uses two basic criteria when allocating a user session to an application server. A first criterion is the performance and spare capacity of each application server (at the time of receipt of a request to establish a user session) . The number of users or user sessions already hosted by each of the application servers at the time of receipt of the request is a second criterion. A client at the work station of the user is used to establish a connection with a load balancing application on a server and to transmit a request for allocation of a user session to an application server. The load balancing application determines the application server with the lowest load at that point in time. It returns a message to the client, indicating which application server has the lowest load. The connection between the client and the load balancing application is then terminated, so that the client can connect to the indicated application server. Then, the user of the client is authenticated, in order to determine whether the user session can be commenced.
A problem of the known method is that it is relatively ineffective where all users submit requests to establish a user session at substantially the same time, as might occur at the start of a working day. As the execution of instances of applications is commenced during the user sessions, it may become apparent that many user sessions with applications requiring intensive processing are hosted by the same application server.
It is an object of the invention to provide methods, a server and computer program of the types mentioned in the opening paragraphs that are more effective in balancing the load imposed on the application servers. This object is achieved by the method of assigning a user session according to the invention, which is characterised by obtaining respective estimates, associated with the users to which user sessions hosted by the application servers in the set belong, of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user concerned, obtaining for each server in the set a total over all user sessions hosted by the applications server, of the estimates associated with the users to which the hosted user sessions belong, and assigning the user from whom the request was received to one of the set of application servers so as to balance over the application servers the respective totals of the estimates relative to the respective available processing capacities.
Because respective estimates, associated with the users to which user sessions hosted by the application servers in the set belong, of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user concerned, are obtained, account is taken of any increase in the use of resources in the course of typical user sessions that is to be expected. These typical user sessions are typical of the users to whom user sessions in progress on the application servers actually belong, because the estimates are associated with the users, rather than some hypothetical user. By obtaining for each server in the set a total over all user sessions hosted by the applications server, of the estimates associated with the users to which the hosted user sessions belong, a prediction of the total use of resources available to each application server is obtainable.
It is observed that US 2003/0191848 discloses a plurality of connection servers operatively coupled to a security server and to a plurality of databases. The security server is operatively coupled to a plurality of client computers, and to a plurality of device control computers and network-enabled devices. The user of a client computer contacts the security server. A determination is made by the security server as to whether or not the user of the client computer that made contact is authorised. The security server assigns one of the connection servers to the user of the client computer who was authorised. Connection server assignment is carried out by a load balancing application on the security server. Data tables within a database include information about different types of users, different types of sessions which users may wish to establish, and different types of connection servers that may be used for such users and sessions, as well as current statistics regarding the status availability and power usage of the connection servers. A User Type identifies a type of user and each User Type refers to a Session Type, in which such types of users may take part . An average Power usage for one session can be calculated by summing the average Power usage for each User Type over all User Types that refer to the Session Type of the session to be established. By summing this Power usage over all scheduled sessions at any point in time on a single connection server, the expected Power usage at that point in time can be calculated for a particular connection server. The ratio of this expected power usage to a connection server's maximum Power usage allows a Utilisation Ratio to be determined for each connection server. The connection server with the minimum utilisation ratio relative to the others in the set is then selected as the server to which this Session is assigned. Power is a parameter that serves as a single metric that indicates a server's ability to support connections.
Thus, US 2003/01918948 does not disclose obtaining respective estimates of the use of processing capacity by instances of execution of application associated with a user session belonging to a particular user which estimates are associated with the actual users. Furthermore, the connection servers are not application servers, capable of co-operating with a client to provide at least one user interface to the applications for each user session being hosted by it. The load balancing applied by the security server known from
US 2003/01918948 is a type of network load balancing, based on the type of data transfers that are to take place during a session between a client computer and one or more network- enabled devices, i.e. the session type.
In an embodiment, the respective estimates are obtained on the basis of information associated with the respective users based on at least one record for each user, obtainable by measuring characteristics of a user session belonging to the user concerned whilst being hosted by an application server.
The effect is that the estimates are relatively reliable predictions of the use of resources by instances of execution of applications associated with a typical user session belonging to the users. Thus, a more effective load balancing is achieved.
An embodiment includes receiving an identification of the requesting user with the request, wherein, upon determining that, for the requesting user, no information based on at least one record, obtainable by measuring characteristics of a user session belonging to the requesting user whilst being hosted by an application server is available, data concerning group membership of the requesting user is obtained and used to obtain an identification of at least one other user in a shared group with the requesting user, wherein information is associated with the requesting user which information is derived from information associated with the identified other users in the shared group and based on at least one record for each other user, obtainable by measuring characteristics of a user session belonging to the user concerned whilst being hosted by an application server.
Thus, for every user having at least one user session that is being hosted on an application server, a relatively reliable prediction of the use of resources available to the application server is available. Even if, for the particular requesting user, no user sessions have previously been hosted, a profile is available that characterises the user in terms of similarity to other users for whom measurement data is available. Preferably, the group membership data is definable by an administrator of the system comprising the set of application servers.
In an embodiment, the respective estimates are obtained by obtaining from a database of user profiles associating identified users with respective ones of a number of pre-defined classes, user classes associated with the users to which user sessions hosted by the application servers in the set belong, and determining the estimates from parameters and definitions of the respective classes.
The use of classes has the effect that the estimate associated with the user need not fluctuate to a great extent with every new user session belonging to that user that is hosted. It allows the introduction of a bandwidth for the use of resources within which the classification of the user remains constant .
In an embodiment, a point in time associated with the requested user session is obtained and the respective estimates of the use of processing capacity are determined in dependence on the point in time associated with the requested user session.
Thus, the estimate of the use of resources during a typical user session belonging to a particular user is made dependent on the particular time at which the user session is in progress. This feature helps to take account of peaks in the use of processing capacity at particular times in the day or week.
An embodiment includes obtaining information identifying a type of user session, wherein the set of several application servers is selected from a super set including at least one further application server in accordance with the type of user session.
Thus, a single load balancing application executing the method assigns a user session to an application server in one of several possible sets of application servers. This embodiment is useful in systems where diverse so-called silos in a server farm are available for providing published applications to users of computer terminals. It takes account of variations in suites of applications available from the application servers. In an embodiment, the request to establish the user session is received from the client over a communications link between the computer terminal and a load balancing server device connected to the computer terminal via a network, including returning information enabling the client to establish a connection over a network to a server device including the assigned one of the set of application servers and breaking down the communications link between the computer terminal and the load balancing server device. This embodiment has the advantage that the load balancing server device need not be involved in routing the data between the computer terminal and the server device including the assigned application server once the requested user session has been established. It is particularly suitable for use in a system wherein a plurality of server devices each include both at least one application server and a module configured to execute the method of assigning the user session to one of the application servers. The server devices in the system can have substantially equal processing capacity, since connections for use in a user session are established directly with the server device including the application server that is hosting the user session. The request to establish a user session may be submitted to a load balancing module on one of the server devices selected at random or by default by the client.
In an embodiment, the information associated with the respective users based on at least one record for each user is obtained from a database maintained by a system performing a method of providing a user profile of a user of a client according to the invention.
According to another aspect, the method of providing a user profile of a user of a client according to the invention is characterised by using at least one record maintained by at least one application server in the system and identifying for each user session hosted by the at least one application server the user to which it belongs and using a measure of the use of processing capacity by any instances of execution of applications associated with the user session, to compile information associating with the user associated with the user profile information for providing an estimate of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user.
Thus, information for making a reliable prediction of the use of processing capacity by instances of execution of an application associated with a typical user session of a user is available for each individual user. This provides information for balancing the load on server devices including the application servers more effectively.
An embodiment includes classifying each user to which at least one user session in the records belongs in accordance with definitions of a number of pre-defined classes and updating a database of user profiles associating identified users with respective ones of a number of pre-defined classes.
The use of classes to provide an indication of the use of processing capacity by instances of execution of applications associated with a typical user session helps to configure available processing power for each server.
In an embodiment, a time of hosting is determined for the user sessions in the records and the users to which at least one user session in the records belongs are classified in accordance with the use of processing capacity at the time of hosting.
The effect is to allow a time-dependent prediction to be made of the use of processing capacity by applications associated with hosted user sessions. An application would be to reserve extra processing capacity where user sessions are being hosted that belong to users known to cause high peak demands in the course of a user session. In this way, load balancing can be carried out more effectively and more efficiently.
According to another aspect, the server device according to the invention is configured to execute a method according to the invention.
In an embodiment, the server device comprises at least one application server in the set of application servers. According to another aspect, the computer program according to the invention includes a set of instructions capable, when incorporated in a machine-readable medium, of causing a system having information processing capabilities to perform a method according to the invention.
The invention will now be explained in further detail with reference to the accompanying drawings, in which: Fig. 1 shows a system for providing published applications to users of computer terminals wherein load balancing across server devices is carried out;
Fig. 2 is a flow chart illustrating a method of load balancing across application servers; Fig. 3 is a flow chart illustrating a step in the method shown in Fig. 2; and
Fig. 4 is a flow chart illustrating a method of profiling the users of the system of Fig. 1 to facilitate load balancing across the server devices . An illustration of a system for providing published applications is given in Fig. 1 by way of example. A first computer terminal 1 and a second computer terminal 2 are shown as representative examples of a much larger group of computer terminals at the disposal of a group of users. The first and second computer terminals 1,2 are connected to a network 3. The network 3 is a Local Area Network or Wide Area Network as known per se. Also connected to the network 3 are first, second and third server devices 4-6, constituting a first silo 7, and fourth and fifth server devices 8,9, which constitute a second silo 10. Each server devices includes at least one data processing unit, main memory and one or more devices for non-volatile data storage (not shown) .
At least one application server is installed on each of the server devices 4-6,8,9. Each application server comprises a computer program for facilitating the execution of one or more installed software applications. The computer program code is executed by the processing unit or units of the server device 4-6,8,9 that includes the application server. Each instance of execution of an application is associated with a user session being hosted by the application server. Each user session belongs to a particular user with an account in the system. As part of the account, an extra user profile is stored on one or more of the server devices 4-6,8,9, as will be explained below. Each application server includes or co-operates with a terminal server for co-operating with a client installed on one of the computer terminals 1,2 to provide a graphical user interface (GUI) of an operating system desktop. The GUI provides access to instances of execution of applications associated with user sessions being hosted by the application server. Terminal servers are known as such. They co-operate with clients in accordance with one of a number of protocols defined for this purpose. Examples include the Remote Desktop Protocol, Independent Computing Architecture (ICA) and PXES Universal Linux Thin Client. When running published applications, the clients on the computer terminal 1,2 render only the interface to the applications.
In the illustrated example, a user session belonging to any of a first group of users may be hosted by any one of at least three application servers included in the first, second and third server devices 4-6 constituting the first silo 7. A user session belonging to any one of a second group of users may be hosted by any one of at least two application servers included in the fourth and fifth server devices 8,9, which constitute the second silo 10. This separation may be due to a different set of available applications on the application servers in the first silo 7, or it may be due to the users of the first and second groups being members of different administrative organisations.
When a user in the first group logs on using one of the computer terminals 1,2, the log-on request is treated as a request to establish a user session belonging to that user on one of the application servers, which will be said to host the user session.
When an application server hosts a user session belonging to a user of a client included in one of the computer terminals 1,2, a connection between that application server and the client is maintained for the duration of the user session, and is uniquely associated with the user session. The GUI of an operating system desktop that is provided by the terminal server and client allows the user of the client to start one or more applications. Each instance of execution of an application that is thus created is associated with the user session in the context of which it is created. A user session is hosted by only one application server at any one time. The instances of execution of applications associated with the user session make use of the processing capacity available to the application server hosting the user session. These include a share of the memory and a number of processor operations per time interval available to the application server.
To prevent one of the application servers being overburdened by hosting too many user sessions relative to the other application servers, a load balancer is provided. In the illustrated embodiment, the load balancer is a software module installed on each of the server devices 4-6,8,9. It is comprised in, or invoked by, the server module that handles requests to log on to the system.
The load balancer has access to a user database 11 (Figs. 2-4) . In one embodiment, the user database is present on only one of the server devices 4-6,8,9 and accessed via the network 3. In another embodiment, it is replicated in each of the server device 4-6,8,9 and a synchronisation mechanism is used to keep each copy the same. The user database 11 is illustrated in Figs. 2-4 in the shape of a table, in which each row corresponds to an entry for a user. Three columns are shown by way of simplification. A first column 12 contains user identifiers, a second column 13 contains one or more group identifiers and a third column 14 contains an identification of one of a pre-defined number of user classes, with which the user is associated. The group identity is assigned by an administrator of the system for published applications when the user's account is created, or later amended. It advantageously corresponds to an organisational entity, for example a department within an organisation. It may also correspond to a type of user, e.g. engineer or administrative employee. The user class is assigned by a profiler, a software module running on at least one of the server devices 4-6, 8,9. The class forms a measure of the use of processing capacity by instances of execution of applications associated with a typical user session belonging to the user with which the class identity is associated.
The process of assigning a user session to an application server is illustrated in Fig. 2. The load balancer receives a request from a user to establish a user session (step 15) . Note that the request may come from a user who already has one or more user sessions in progress. The request is generated by a client on one of the computer terminals 1,2 upon receipt of a command from the user. The request contains an identification of the user by whom it was sent. The identification may be machine-generated or entered by the user. The request may additionally contain an identification of a user group and/or a password or other data for authenticating the user. The user's identity is determined from the request in a next step 16. Then, the user class associated with the identified user is determined (step 17) , by looking up the entry for the identified user in the user database 11.
If the user has not previously owned a user session in the system, then it may occur that there is no class associated with the requesting user. In one embodiment, a default class is associated with such a requesting user, optionally in dependence on information associated with the user by an administrator, such as the type of user. In the illustrated embodiment, a different approach is taken. Upon determining that, for the requesting user, no class information is available, data concerning group membership of the requesting user is obtained from the second column 13 of the user database 11 (step 18) . The group identification is used to obtain the user identifiers of at least one other user in a shared group with the requesting user, i.e. for whom the entry in the second column 13 has a common component. The user classes associated with these one or more other users are used to assign a user class to the requesting user, which information is copied to the entry in the third column 14 of the user database 11 associated with the requesting user (step 19) . Where several other users are identified as belonging to the same group as the requesting user, the median user class may be copied, for example.
From data in the request received in the first step 15, or from data (not shown) in the user database 11, the load balancer determines which applications may be required by the user (step 20) . The data for making this determination characterises a type of user session to be hosted. In a subsequent step 21 a set of candidate application servers is selected. In the illustrated embodiment, this means that the application servers in one of the first and second silos are selected as candidate application servers. The user session is assigned to one application server in the selected set of application servers, in such a way as to balance the relative expected use of processing capacities available to the application servers in the set.
For this purpose, the class loads of the selected application servers are determined (step 22) . This step will be explained in further detail with reference to Fig. 3. In one embodiment, the steps illustrated in Fig. 3 will be executed by each application server individually in response to a request from the load balancer handling the request to establish a user session. In another embodiment, the steps will be executed by that load balancer itself, using at least partly databases maintained by the application servers.
The application servers each or jointly keep a record 23 of hosted user sessions. The record identifies for each user session the user to whom it belongs, as well as recording measurements of characteristics of the user sessions. In particular, measures for determining the use of processing capacity are contained in the record 23. These measures include the point in time (possibly within a time cycle corresponding to a year, month, week or day) at which the user session was established or half-way, the duration of the user session, average use of processing capacity (share of CPU time, for instance), Critical CPU Load Duration (CCLD) values, number of instances of execution of applications, average use of main memory, etc. The critical CPU Load Duration is the duration of a time interval over which a process's use of CPU resources exceeds a pre-determined threshold value. The application servers keep a running average in order to maintain the record, with measurements being made at certain intervals (e.g. every 500 ms) , for example by polling an operating system of the server device 4-6,8,9 on which the application server is installed.
From the record 23, the sessions currently being hosted are determined (step 24) . Then, the users to whom the sessions belong are determined (step 25) . It is noted that there may be more than one user session belonging to a single user. The classes of the users identified in this step 25 are obtained from the user database 11 (step 26) . A table 27 containing the definitions of the user classes is used to obtain load estimates associated with the session owners
(step 28) . In an advantageous embodiment, the load is time- dependent and the load estimate corresponding to or at least one class is determined in dependence on the point in time associated with the requested user session. This point in time could be, for example, the time of receipt of the request to establish it, the current time, or a future time at which establishment of the requested user session is scheduled. Finally, to obtain the class load of an application server, the load estimates associated with the session owners are multiplied by the number of sessions in progress belonging to them, and these totals are then summed over all users identified in the second step 25 (step 29) . The steps 24-26,28,29 are performed for each application server in a selected silo 7,10.
Having determined the class loads, the load balancer assigns the user from whom the request was received in the first step 15 to one of the set of application servers so as to balance over the application servers in the set the respective totals of the estimates relative to the respective available processing capacities (step 30, Fig. 2) . In one embodiment, the class associated with the requesting user is taken into account. In another embodiment, the application server with the lowest existing class load is selected without regard to the additional class load imposed by establishing the requested user session on that application server.
The load balancer returns a message to the client used by the requesting user (step 31) . The message includes an identification of the application server to which the assignment was made in the preceding step 30. This identification may include a network address and port, for example. Then, the connection between the load balancer and the client is broken down (step 32) . The client establishes a new connection with the assigned application server in order actually to establish the user session.
As an example of the type of application that may be run in the course of a user session, consider the situation shown in Fig. 1. The user session is, for example, hosted by an application server included in the first server device 4. An instance of execution of a web browser, which instance of execution is associated with the user session, may be created. The web browser obtains HTML files from a web server 33 through a Wide Area Network (WAN) 34, such as the Internet. Connection to the Internet is through one of first and second connection servers 35,36. The connection server through which connection is made, is determined using a different type of load balancing from the one illustrated herein, namely a type of network load balancing. The ability of the connection servers 35,36 to support another connection of the hypertext transfer protocol type (HTTP) determines which one is selected, rather than the use of processing capacity by connections associated with individual , known users .
Fig. 4 illustrates a method of providing user profiles for the user database 11. The method is executed by one or more profilers, software modules installed on the server devices 4-6,8,9. The identifier of a user for whom the user profile is to be created or updated is first obtained (step 37) . The record 23 of user sessions is consulted to obtain records of the user sessions belonging to the identified user (step 38) . From these, a measure of the use of processing capacity by any instances of execution of applications associated with a typical user session is obtained. In a simple implementation, a set of rules is used to derive a single figure from the statistics in the record 23 of user sessions. In a preferred embodiment, a set of pairs of time values and values is obtained. These are used to classify the user in accordance with the class definitions in the table 27 of user class definitions (step 39) . Preferably, each one of the several classes is defined in terms of a time-dependent range within which the measure of the use of processing capacity must lie for the user to be assigned to that class. Finally, the third column 14 of the user's entry in the user database 11 is updated to reflect the classification.
The invention is not limited to the embodiments described above, which may be varied within the scope of the accompanying claims. There may, for instance be more than one application server per server device, e.g. on separate virtual machines installed on a server device. The processing capacity available to an application server may in such situations vary or be subject to constraints other than the purely physical resources provided by a server device. In an alternative embodiment, the profiler is present on each server device including an application server and maintains a running average of statistics of user sessions belonging to users for whom the application server hosts at least one user session. Such a record per user replaces the record 23 of user sessions maintained on a per-session basis in the illustrated embodiment .

Claims

1. Method of assigning a user session belonging to a user of a client comprised in a computer terminal (1,2) to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it, including receiving a request to establish the user session from a user of a client, characterised by obtaining respective estimates, associated with the users to which user sessions hosted by the application servers in the set belong, of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user concerned, obtaining for each server in the set a total over all user sessions hosted by the applications server, of the estimates associated with the users to which the hosted user sessions belong, and assigning the user from whom the request was received to one of the set of application servers so as to balance over the application servers the respective totals of the estimates relative to the respective available processing capacities.
2. Method according to claim 1, wherein the respective estimates are obtained on the basis of information (14) associated with the respective users based on at least one record for each user, obtainable by measuring characteristics of a user session belonging to the user concerned whilst being hosted by an application server.
3. Method according to claim 2, including receiving an identification of the requesting user with the request, wherein, upon determining that, for the requesting user, no information based on at least one record, obtainable by measuring characteristics of a user session belonging to the requesting user whilst being hosted by an application server is available, data (13) concerning group membership of the requesting user is obtained and used to obtain an identification of at least one other user in a shared group with the requesting user, wherein information is associated with the requesting user which information is derived from information associated with the at least one other user in the group and based on at least one record for each other user, obtainable by measuring characteristics of a user session belonging to the user concerned whilst being hosted by an application server.
4. Method according to claim 2 or 3 , wherein the respective estimates are obtained by obtaining from a database (11) of user profiles associating identified users with respective ones of a number of pre-defined classes, user classes associated with the users to which user sessions hosted by the application servers in the set belong, and determining the estimates from parameters and definitions of the respective classes.
5. Method according to any one of claim 2-4, wherein a point in time associated with the requested user session is obtained and the respective estimates of the use of processing capacity are determined in dependence on the point in time associated with the requested user session.
6. Method according to any one of the preceding claims, including obtaining information identifying a type of user session, wherein the set of several application servers is selected from a super set including at least one further application server in accordance with the type of user session.
7. Method according to any one of the preceding claims, wherein the request to establish the user session is received from the client over a communications link between the computer terminal (1,2) and a load balancing server device (4-6,8,9) connected to the computer terminal (1,2) via a network (3), including returning information enabling the client to establish a connection over a network (3) to a server device (4-6,8,9) including the assigned one of the set of application servers and breaking down the communications link between the computer terminal (1,2) and the load balancing server device (4-6,8,9).
8. Method of providing a user profile of a user of a client, comprised in a computer terminal (1,2), for cooperating with an application server in a system comprising at least one application server for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of cooperating with a client to provide at least one user interface to the applications for each user session being hosted by it, characterised by using at least one record (23) maintained by at least one application server in the system and identifying for each user session hosted by the at least one application server the user to which it belongs and using a measure of the use of processing capacity by any instances of execution of applications associated with the user session, to compile information (11) associating with the user associated with the user profile information (14) for providing an estimate of the use of processing capacity by instances of execution of applications associated with a user session belonging to the user.
9. Method according to claim 8, including classifying each user to which at least one user session in the records belongs in accordance with definitions (27) of a number of pre-defined classes and updating a database (11) of user profiles associating identified users with respective ones of a number of predefined classes.
10. Method according to claim 9, wherein a time of hosting is determined for the user sessions in the records and the users to which at least one user session in the records belongs are classified in accordance with the use of processing capacity at the time of hosting.
11. Method according to claim 2, wherein the information associated with the respective users based on at least one record for each user is obtained from a database (11) maintained by a system performing a method according to claim 9 or 10.
12. Server device for assigning a user session belonging to a user of a client comprised in a computer terminal (1,2) to one of a set of several application servers for hosting user sessions, wherein each application server has processing capacity available for executing applications, each instance of execution of an application being associated with a user session hosted by the application server, and is capable of co-operating with a client to provide at least one user interface to the applications for each user session being hosted by it, which server device is configured to execute a method according to any one of claims 1-11.
13. Server device according to claim 12, wherein the server device comprises at least one application server in the set of application servers.
14. Computer program including a set of instructions capable, when incorporated in a machine-readable medium, of causing a system having information processing capabilities to perform a method according to any one of claims 1-11.
PCT/EP2005/057052 2005-12-21 2005-12-21 Method of assigning a user session to one of a set of application servers WO2007071286A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2005/057052 WO2007071286A1 (en) 2005-12-21 2005-12-21 Method of assigning a user session to one of a set of application servers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2005/057052 WO2007071286A1 (en) 2005-12-21 2005-12-21 Method of assigning a user session to one of a set of application servers

Publications (1)

Publication Number Publication Date
WO2007071286A1 true WO2007071286A1 (en) 2007-06-28

Family

ID=36572410

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/057052 WO2007071286A1 (en) 2005-12-21 2005-12-21 Method of assigning a user session to one of a set of application servers

Country Status (1)

Country Link
WO (1) WO2007071286A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015138152A1 (en) * 2014-03-10 2015-09-17 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9253253B1 (en) 2014-09-26 2016-02-02 International Business Machines Corporation Techniques for assigning user workloads to application servers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191848A1 (en) * 1999-12-02 2003-10-09 Lambertus Hesselink Access and control system for network-enabled devices
EP1564637A1 (en) * 2004-02-12 2005-08-17 Sap Ag Operating computer system by assigning services to servers according to recorded load values

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191848A1 (en) * 1999-12-02 2003-10-09 Lambertus Hesselink Access and control system for network-enabled devices
EP1564637A1 (en) * 2004-02-12 2005-08-17 Sap Ag Operating computer system by assigning services to servers according to recorded load values

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Tarantella Web-enabling Software", AN SCO TECHNICAL WHITE PAPER, 1999, pages 1 - 25, XP002251538 *
GOSWAMI K K ET AL: "PREDICTION-BASED DYNAMIC LOAD-SHARING HEURISTICS", IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 4, no. 6, 1 June 1993 (1993-06-01), pages 638 - 648, XP000398046, ISSN: 1045-9219 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015138152A1 (en) * 2014-03-10 2015-09-17 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9871741B2 (en) 2014-03-10 2018-01-16 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US10182018B2 (en) 2014-03-10 2019-01-15 Microsoft Technology Licensing, Llc Resource management based on device-specific or user-specific resource usage profiles
US9253253B1 (en) 2014-09-26 2016-02-02 International Business Machines Corporation Techniques for assigning user workloads to application servers
US9565248B2 (en) 2014-09-26 2017-02-07 International Business Machines Corporation Assigning user workloads to application servers

Similar Documents

Publication Publication Date Title
US7743142B2 (en) Verifying resource functionality before use by a grid job submitted to a grid environment
US7788375B2 (en) Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
US7441033B2 (en) On demand node and server instance allocation and de-allocation
JP4292693B2 (en) Computer resource dividing apparatus and resource dividing method
US7437460B2 (en) Service placement for enforcing performance and availability levels in a multi-node system
US20050055446A1 (en) Incremental run-time session balancing in a multi-node system
AU2004266019B2 (en) On demand node and server instance allocation and de-allocation
US20080275962A1 (en) Remote access providing computer system and method for managing same
IL187612A (en) Methods and apparatus for selective workload off-loading across multiple data centers
US20060200469A1 (en) Global session identifiers in a multi-node system
US7937704B2 (en) Distributed computer
KR20040062941A (en) Automatic data interpretation and implementation using performance capacity management framework over many servers
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
US6763372B1 (en) Load balancing of chat servers based on gradients
US10992744B1 (en) Allocation of server resources in remote-access computing environments
US7421497B2 (en) Method and system for load balancing of computer resources among computers
CN113177179B (en) Data request connection management method, device, equipment and storage medium
CN108112268B (en) Managing load balancers associated with auto-extension groups
WO2007071286A1 (en) Method of assigning a user session to one of a set of application servers
JP4368730B2 (en) PROCESS ALLOCATION MANAGEMENT DEVICE, PROCESS ALLOCATION MANAGEMENT DEVICE CONTROL METHOD AND PROGRAM
CN113419852A (en) Request response method, device, equipment and storage medium of microservice
RU2771444C1 (en) System and method for balancing connections between clients and servers
Muhammad et al. A novel framework for resource orchestration in OpenStack cloud platform
CN114969670A (en) Method and system for managing software license resources and computer equipment
CN116414519A (en) Access control method and device for virtual resources, storage medium and computer equipment

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05823964

Country of ref document: EP

Kind code of ref document: A1