Description
Computer Arrangement for providing Services for Clients through a Network
Computer networks typically include at least one computer called a server and one or more computers called clients. Clients can request certain services through the network which are provided by the servers.
There is a huge variety of different types of services that can be offered by servers. One example is a file service, where clients can request the transmission of a file which is stored on the server or on a storage device associated with the server. Another example is a web service, where web pages are transmitted upon request. Also known are database services, where, in a similar fashion, data sets of a database are transmitted or processed upon request.
Usually each individual service is provided by an application program running on a server. Depending on requirements or capacity a server can host a single or also several instances of one or a number of different application programs . Often a network service provider runs a plurality of servers (called a server farm) in order to be able to handle all incoming requests. 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 a control means to perform administrative tasks which is sometimes referred to as a decision engine
(DE) . The decision engine is capable of dynamically allocating or freeing servers and of starting new or stopping running instances of different applications on these servers. Usually the control means is hosted on a computer within the network that is neither server nor client but 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 . An important factor is how much load running instances of an application carry. If, for example, all running instances of a certain application are too busy to handle further requests within sufficient time it would be advisable to start another instance of that particular application.
The quantity that is best suited to determine the load depends on the application. For web servers, for example, the number of incoming calls per time unit could be a good measure, whereas for a file server the amount of data transferred per time unit is more significant. Similarly, the value of the quantity that corresponds to a state where the application can be considered as being too busy is application-specific and might also depend on the capacity of the server.
This leads to the problem that the control means, for example a decision engine in an autonomous computing environment, needs to take application-specific details into account. This would require to provide the control means with information about how to judge the load of a specific application running on a specific server. Bearing in mind the variety of possible applications and the fact that the service provider who is in charge of the control means might
not be familiar with customized applications, development and maintenance of a control means with application-specific knowledge would be very expensive or even not feasible.
It is therefore an object of the invention to present a computer arrangement for providing services for clients over a network which utilizes application-specific information to optimize its services in a flexible and feasible manner,
In order to accomplish the above object a computer arrangement for providing services for clients over a network is provided which comprises
- at least one server hosting one or more applications which provide services to clients over the network;
- control means to start or stop instances of said application programs on the at least one server and
- reporting means for reporting normalized load data of the application to the control means, where normalized load data is data that describes the load that running instances of the application impose on the at least one server on a scale which is independent of the type of server and independent of the particular application.
Due to the normalization performed by the reporting means, the control means' is capable of comparing loads independent of application-specific information. It is enabled to make provisioning decisions without any application-specific knowledge. Application-specific information is still needed, but attending to application-specific information is shifted to the reporting means. The reporting means could either be part of the application itself or be implemented as a module which is plugged into the control means. However, in any case it is independent from the core functionality of the control
means. Therefore, the reporting means can be made available by the application provider, who has the knowledge that is required to assess the load that an application imposes on a server.
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 the present invention;
Fig. 2 is a flowchart representation of an embodiment of a method to determine normalized load data.
Fig. 1 shows several servers 1 which are set up to communicate to clients 2 via a network 3. Each server 1 hosts an application 4. Application-specific load data ALD is transferred to reporting means 5. Reporting means 5 reports normalized load data NLD to a control means 6, which is set up to start or stop instances of applications 4 on the servers 1 using a control connection 7.
In the figure and for the description, reference signs with the additional letter a or b denote distinct subsets, e.g. applications 4a and 4b are meant to be two different applications belonging to the common group of applications 4.
The configuration shown in Fig. 1 is typical for a server farm where a provider runs a plurality of servers 1 and each server 1 hosts just one application 4. Often, blade servers, named after their geometric outline, are used in server farms. However, the invention is not restricted to a situation where each server 1 hosts one application 4 only.
By way of example, for the following description application 4a is meant to be a database service application and application 4b is meant to be a web service application. 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 4 is running and, therefore, that an appropriate number of servers 1 is dedicated to host these instances. Provisioning of servers 1 and/or starting instances of a certain application 4 is performed by the control means 6. The control means 6 may be software-implemented and hosted on a separate computer. For reasons of high availability and redundancy there may also be second control means that could take over in case of a failure of the first control means 6.
The control connection 7 between the control means 6 and the servers 1 which is used to provision servers 1 and/or to start or stop instances of applications 4, could be established through the same network 3 that connects the servers 1 and the clients 2. In an other embodiment, a separate network could be used for security and/or performance reasons.
In the example shown in Fig. 1 three of the servers 1 host the database service application 4a and two of the servers 1
actually host the web service application 4b. One of the servers 1 (the top one in Fig. 1) is in the process of being provisioned by the control means 6 to run a third instance of the web service application 4b as indicated by the dashed outline of the application.
Each instance of an application 4a, 4b transmits application- specific load data ALDa, ALDb to the reporting means 5a and 5b respectively. Application-specific load data ALD is data that describes the load of an application 4 using an appropriate measure. In the example, an appropriate measure for the database service application 4a could be the number of transactions per second (TPS) where one request to the database might result in several transactions . An appropriate measure for the web service application 4b could simply be the number of hits per seconds or be the mount of data requested from the server per second in, for example, megabytes per second.
Fig. 2 shows a flowchart representation of an embodiment of a method according to the present invention by which a reporting means 5 determines normalized load data NLD. In step 10 specific load data (ALD) i of one type of application 4 is received by a reporting means 5. The index i is used to distinguish between different instances of the application 4 that are executed ("running instances") , i.e. l<=i<=n where n denotes the number of running instances. In step 20 averaged application specific load data AALD is calculated by averaging all (ALD) i.
Normalized load data NLD is characterized in that it represents the load that an application 4 imposes on a server 1 on a scale which is independent of the type of the server
and independent of the particular application. As an example, a potential scale for the normalized load data NLD just consisting of three possible values, namely "low", "okay" and "high", is assumed in the embodiment shown in Fig. 2. "Low" indicates that the average load on the servers dedicated to this application is too low and that one of the servers may be re-provisioned for other applications. "Okay" indicates that the average load is in an acceptable range. "High" indicates that the average load is too high and that additional servers should be provisioned for this application. More sophisticated normalized scales with more than three possible values or even a continuous range of values are possible and will be within the scope of a person skilled in the art.
For a reporting means 5 to be able to convert application- specific load data ALD into normalized load data NLD, knowledge on the application and on the server has to be incorporated into the reporting means 5. It is therefore apparent that the reporting means 5 will be application- specific itself. Referring to Fig. 2 normalization is achieved by comparing the application-specific load data ALD with given thresholds.
These thresholds denote values of application specific load data ALD that correspond to the transition between different values of normalized load data NLD. In step 12, averaged application specific load data AALD is compared to an upper threshold TH which indicates the transition from "okay" to "high" regarding normalized load. If the condition in step 12 is met, the normalized load data is set to the value "high" in step 13. Otherwise, a comparison of the averaged application specific load data AALD with a lower threshold TH is performed in step 14. If the condition in step 14 is
fulfilled, the normalized load data is set to the value "low" in step 15, if not, it is set to the value "okay" in step 16. The value of normalized load data NLD determined this way is reported to the control means 6 in step 17 before the method starts again with step 10 in a continuous manner.
If, for example, the three instances of the database service application 4a would report 40, 36 and 38 TPS the reporting means 5a would first determine an averaged application specific load data AALD of 38 TPS for this application. Assuming given thresholds of 30 TPS and 40 TPS for the lower transition threshold TL and the upper transition threshold TH, respectively, this averaged application-specific load AALDa of 38 TPS would lead to a normalized load data NLDa having the value "okay" .
If the two web service applications 4b would report 70 and 80 hits per second, respectively, the reporting means 5b would determine an average load of 75 hits per second. Assuming given thresholds TL and TH of 40 and 60 hits per second, this average application-specific load data AALDb would lead to a normalized load data NLDb showing the value "high" .
Application-specific load data ALD may also comprise information about the server 1 an application 4 is hosted on, for example performance data. This data could also be taken into account when determining normalized load data NLD.
Referring again to Fig. 1, the control means 6 is set up to start new instances of an application 4 or stop running instances of an application 4 dependent on normalized load data NLP. In the above example, it could be set up not to act if the value "ok" is reported (as for the database
service application 4a) and to start a new instance of an application 4 if the value "high" is reported (as in case of the web service application 4b) . The control means 6 could also take the ratio of normalized load data NLDa/NLDb reported by different reporting means 5a, 5b into account. This could preferably be done in a situation, where the number of servers 1 needed outlines the number of available servers 1.
Using this scheme, the control means 6, e.g. in an autonomous computing environment, is able to make provisioning decisions based ultimately on application-specific performance metrics without having an application-specific knowledge itself. However, the application-specific knowledge is encapsulated in the reporting means 5 and only normalized load data NLD is sent to the control means 6. A powerful aspect of this approach is that the normalized load data NLD allows the control means 6 to easily compare application performance data from different applications 4 and to allocate resources to the applications that are busiest. This can be particularly useful in predictive provisioning, where trends are analyzed and resources are allocated in advance to meet anticipated future needs. If, for example, the control means 6 is set up to store historical data on the normalized load data NLD, it could perform a trend analysis and predict how busy an application would be in the future. It is also within the scope of the present invention, that the reporting means 5 itself is set up to incorporate historical data into the process of transferring application-specific load data ALD into normalized load data NLD. This could, for example, be achieved by normalized load data NLD that is in part proportional to the first and/or the second derivative with
respect to time of actual load data ALD and/or proportional in parts to integrated application-specific load data ALD.
The reporting means 5 could be hosted on the same computer that hosts the control means 6. In that case, the reporting means 5 could be regarded as a plug-in for the control means 6. The reporting means 5 could also be implemented as an independent unit hosted on another computer within the network. In another embodiment, the reporting means could be hosted on the server 1 that also hosts application 4. Such a configuration could preferably be used if a few powerful servers, for example mainframe servers, which run several applications 4 simultaneously, are operated by the service provider rather than a plurality of less powerful servers like blade servers .
Depending on the location of application 4, reporting means 5 and control means 6, different methods of communicating the application-specific load data ALD and the normalized load data NLD could be chosen. Transmission of the data could, for example, take place via network connections or APIs (Application Programming Interfaces) . If a network connection is used, in one embodiment network 3 could be used. In an other embodiment, a separate network could be used for security and/or performance reasons . In a preferred embodiment, application-specific load data ALD and/or normalized load data NLD could be encapsulated in a mark-up language, for example XML (extensible mark-up language) or (X)HTML ((extensible) hypertext mark-up language) .
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 Client
3 Artwork
4 Application
5 Reporting means
6 Control means
7 Control connection
ALD Application-specific load data
ALD Averaged application-specific load data
NLD Normalized load data
TH Upper threshold
LH Lower threshold