Determining whether an application "performs well" is not an easy task in a distributed environment. The following issues should be considered for the evaluation of distributed applications' performance:

  1. Are business transactions succeeding and if not what is the cause of failure?
  2. What is the response time of a transaction?
  3. Where are the bottlenecks, which sub-transaction could cause a bottleneck?
  4. Which and how many transactions are executed in an application?
  5. How to tune an application or its environment to perform better?

Providing answers to these questions, ARM can help the developer implementing an application as well as a system or application administrator who has to maintain the running system. To achieve this, ARM measures the performance and the availability of defined transactions, where a transaction can be a high-level business transaction as well as a technical transaction such as the response time of a client/server relationship.


The main approach of ARM is to define transactions and insert calls to the ARM interface into the application (instrument the application) to measure these defined transactions. For this, availability of source code and of developers who instrument the application using standard ARM API calls is required. The instrumented application can be deployed as usual, except that now ARM transaction measurements are taken and delivered to the appropriate analysis or storage module of the ARM implementation.

tang-IT ARM: Conceptional ARM usage
Figure 1: tang-IT ARM: Usage concept


The following list briefly shows the necessary steps in order to instrument an application using ARM.

  1. Determine the business and technical transactions of interest.
  2. Instrument the application with code using the ARM interface.
  3. Deploy the instrumented application to gather ARM transaction measurements.
  4. View, process or use the measured results as input of statistical operations to get an impression of how the application performs.