Electrical computers and digital processing systems: multicomput – Distributed data processing – Client/server
Reexamination Certificate
1999-06-14
2004-03-23
An, Meng-Al T. (Department: 2154)
Electrical computers and digital processing systems: multicomput
Distributed data processing
Client/server
C709S229000, C709S241000
Reexamination Certificate
active
06711606
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to a method of increasing the availability of an application executed by a computer system. More particularly, the invention relates to a method of increasing the availability of an application executed by one or more application clients and a multitude of application servers executing the same application.
BACKGROUND OF THE INVENTION
Enterprises depend on the availability of the systems supporting their day to day operation. A system is called available if it is up and running and is producing correct results. The availability of a system is the fraction of time it is available. MTBF denotes the mean time before failure of such a system, i.e. the average time a system is available before a failure occurs (this is the reliability of the system). MTTR denotes its mean time to repair, i.e. the average time it takes to repair the system after a failure (this is the downtime of the system because of the failure). Ideally, the availability of a system is 100%. Today, a system can claim high availability if its availability is about 99.999% (it is called “fault tolerant” if its availability is about 99.99% ). J. Gray and A. Reuter, “Transaction processing: Concepts and Techniques”, San Mateo, Calif. Morgan Kaufmann 1993 give further details on these aspects. As outlined in further details by D. Loshin, “High performance computing demystified”, Academic Press, Inc., 1994 and K. Hwang, Advanced computer architecture: Parallelism, Scalability, Programmability, McGraw-Hill, Inc., 1993 and J. Gray and A. Reuter, “Transaction processing: Concepts and Techniques”, San Mateo, Calif.; Morgan Kaufmann 1993 the fundamental mechanisms to improve MTTR are based on “redundancy”: The availability of hardware is improved by building clusters of machines and the availability of software is improved by running the same software in multiple address spaces.
With the advent of distributed systems, techniques have been invented which use two or more address spaces on different machines running the same software to improve availability (often called active replication). Further details on these aspects may be found in S. Mullender, “Distributed Systems”, ACM Press, 1993. In using two or more address spaces on the same machine running the same software which gets its request from a shared input queue, the technique of warm backups is generalized by the hot pool technique; refer for instance to F. Leymann and D. Roller, “Building a robust workflow management system with persistent queues and stored procedures”, in: Proc. Intl. Conf. on Data Engineering ICDE 98 (Orlando, Fla., Feb. 25-28, 1998).
Despite of all of the detailed progress, further improvements are urgently required for supporting enterprises in increasing the availability of their applications and allowing, for instance, for electronic business on a 7 (days)*24 (hour) basis. Due to the ubiquity of world-wide computer networks, at any point in time somebody might have interest in accessing a certain application server.
It is, therefore, an objective of the present invention to increase the availability of an application executed by a computer system.
SUMMARY OF THE INVENTION
The foregoing and other objectives are realized by the present invention which provides a method for increasing the availability of an application executed by an application client (
131
) and a multitude of M application servers (
101
to
118
). Under the current invention, an application client which is sending an application service request to an application server requesting execution of an application service of said application performs a multi-casting step (
202
) wherein the application client requests execution of an application-service by sending the identical application service request (
121
,
122
,
123
) to a collection of N of said application servers with 1<N≦M in parallel.
Traditionally, computer power is considered to be expensive by many people. Submitting or even performing one and the same request multiple times would not be a viable option for this community. But with the advent of cheap server machines that can be clustered together to ever increasing compute power the cost argument no longer applies. Consequently, the core of the present invention, namely cloning and sending request messages for higher availability does not have any cost obstructions. The advantage will be improved availability of message based applications in clusters.
Moreover, not only availability of an application, but also response time for an application service may be improved. If an identical application service request is sent in parallel to multiple application servers, automatically that application server, the “first” application server with typically the lowest workload, will pick up the application service request first. In the case of application service requests to be executed once only, the additional processing by other application servers, to determine whether a “first” application server has already executed that application service request, is neglectable and does not result in a significant workload increase, if the other application servers abandon to process the application service request. In essence, the current teaching also offers a kind of automatic workload balancing. Due to the invention's flexibility, availability of an application may be improved by hardware redundancy as well as by software redundancy.
Additional advantages are accomplished if, in said multi-casting step, the application client marks (
202
) the application service request with a “once-only” mark indicating that the application service request is to be executed only once. Based on this feature, the current teaching may be applied to the all types of application services, those which may be executed multiple times without jeopardizing application integrity and those which may be executed once only. Moreover, this “once-only” mark may be used by an application server to decide if it has to determine that the requested application service is executed once only.
Additional advantages are accomplished by the teaching of an additional application-service-execution step (
206
), wherein an addressed application server, being an application server of the application server collection, is executing said application service request. Through this teaching an application server is actually enabled to also execute the requested application service.
Additional advantages are accomplished by the teaching of an only-once-determination step, preceding the application-service-execution step. Within the only-once-determination step in a first step (
203
), the addressed application server determines if the application service request is to be executed once only. If the application service request is to be executed once only, in a second step (
204
) the addressed application server checks whether the application service request has already been executed. If the application service request has not been executed yet, in a third step (
205
) the application service request is marked executed and the addressed application server proceeds with the application service execution step. This teaching extends the current invention to support a “once only” execution behavior for an application service request.
Additional advantages are accomplished if, in the first step, the addressed application server determines by analyzing the type of application service or mark, if the application service request is to be executed once only. Both of the suggested solutions to identify a “once only” application service request are attractive as they are easy to implement.
Additional advantages are accomplished if the second step is performed by retrieving from an application service request database (
213
) an indication, whether the application service request has been executed already. And, in the third step, the application service request is marked executed by storing a corresponding indication into the application service request database.
The proposed tea
Leymann Frank
Roller Dieter
An Meng-Al T.
Dougherty Anne V.
International Business Machines - Corporation
Jennings Derek S.
Lin Wen-Tai
LandOfFree
Availability in clustered application servers does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Availability in clustered application servers, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Availability in clustered application servers will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3274322