As current e-services are usually based on distributed applications (application services), it is actually possible to use the same techniques to manage both the e-services and the underlying applications. As a consequence there are several new requirements emerging from service orientation in application management: the main focus changes from application deployment and configuration to monitoring and controlling proper fulfillment of the agreed QoS. From a customer's point of view the most interesting QoS parameter in this context is the time needed to successfully complete a transaction. Taking too much time resolves into user's discontent which is to avoid. As providers are strongly interested in fulfilling the agreed QoS parameters, the ability to react in time is most relevant to the provider in case application performance degradation is noticed and thus the violation of an SLA is possible. On the other hand customers want to verify the fulfillment of their SLAs. Thus, for both sides means to monitor the duration of transactions are necessary.
In recent years several techniques evolved to monitor the performance of distributed applications. This paper presents a classification and a criteria-based rating of existing approaches in the area of application performance monitoring from a service oriented point of view. Furthermore, the analysis is used to identify and structure open research questions.
The requirements to be posed on the different approaches have been derived from a generic service model [#!smtf01!#]. As already mentioned, one of the most important requirements is to monitor service-oriented parameters (e.g., transaction duration, service availablity). Of similar importance is the monitoring of actual user experience (as opposed to drawing samples) and the availability of in-depth information to allow providers to easily identify root causes of problems. Further requirements are minimal effort for all participants, minimal performance impact on the application service to be monitored, the possibility to do real-time monitoring as well as general applicability of the solution (concerning e.g., operating systems, programming languages).