World Library  
Flag as Inappropriate
Email this Article

Application Response Measurement

Article Id: WHEBN0005747099
Reproduction Date:

Title: Application Response Measurement  
Author: World Heritage Encyclopedia
Language: English
Subject: The Open Group, Open Group standards, Application Management Services Framework, Arm (disambiguation), Enterprise application integration
Collection: 1996 Introductions, Enterprise Application Integration, Open Group Standards
Publisher: World Heritage Encyclopedia

Application Response Measurement

Application Response Measurement (ARM) is an open standard published by the Open Group for monitoring and diagnosing performance bottlenecks within complex enterprise applications that use loosely-coupled designs or service-oriented architectures.

It includes an API for C and Java that allows timing information associated with each step in processing a transaction to be logged to a remote server for later analysis.


  • History 1
  • Introduction 2
  • Approach 3
  • Concepts 4
    • ARM Application 4.1
    • ARM Transaction 4.2
    • ARM System Address 4.3
    • ARM Correlator 4.4
    • ARM Metric 4.5
    • ARM Properties 4.6
    • ARM User 4.7
  • ARM Instrumented Applications 5
  • References 6
  • External links 7


Version 1 of ARM was developed jointly by Tivoli Software and Hewlett Packard in 1996. Version 2 was developed by an industry partnership (the ARM Working Group) and became available in December 1997 as an open standard approved by the Open Group. ARM 4.0 was released in 2003 and revised in 2004.

As of 2007, ARM 4.1 version 1 is the latest version of the ARM standard.


Current application design tends to be more complex and distributed over networks. This leads to new challenges in today's development and monitoring tools to provide application developers, system- and application administrators with the information they need.

Within distributed applications it is not easy to estimate if the application performs well. The following issues help in the evaluation of distributed applications:

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

ARM helps answer these questions. It's important to mention that the ARM benefits as they are defined here are now just a subset of the Application Performance Management space.


The main approach of using ARM is:

  1. Define business as well as technical transactions which are of interest.
  2. Insert calls into the application to the ARM interface to measure these defined transactions.
  3. Deploy the instrumented application in their normal environment with an installed ARM agent.
  4. The used ARM implementation now provides the transaction measurements of interest.


ARM defines the following concepts to provide the described functionality.

ARM Application

Complex distributed applications usually consist of many different single applications (processes). In order to be able to understand the relationship between all single applications the concept of an ARM application is introduced with version 4.0 of the ARM standard. Each ARM transaction is executed exactly within one ARM application.

ARM Transaction

Transactions are the main concept of the ARM standard and represents a single performance measurement. A transaction definition defines the type (name) and additional attributes of an ARM transaction. A transaction can be executed (started and stopped) several times which results in multiple measurements. Each measurement has basic attributes like status of completion (good, failed, aborted), start- and stop timestamp, the resulting duration and the system address (host) it was executed on. Additionally special metrics or context properties can be associated with a transaction measurement.

ARM System Address

Uniquely defines a host by its name, IP address or other unique information.

ARM Correlator

ARM correlators are used to express a correlation between two ARM transactions. This is a synchronous relationship also known as parent-child relationship. Commonly, a parent transaction triggers a child transaction and only continues its execution when the child transaction has finished. Using correlators, it is possible to split a complex transaction into several nested child transactions, where each child transaction can have child transactions of its own. This results in a tree of transactions with the topmost parent transaction being the root of the tree.

ARM 4.1 defines asynchronous relationships to support data flow driven architectures.

ARM Metric

ARM Metrics can be used to get more information about the execution of a transaction. ARM defines a set of metric types for different purposes such as a counter, a gauge or just a numeric value.

ARM Properties

Properties are a set of so-called name/value pair strings which qualifies an ARM transaction or an ARM application beyond the basic definition of these entities and allows to associate additional context information to each transaction measurement.

ARM User

Defines a name of a user on behalf an transaction measurement was executed.

ARM Instrumented Applications

The following applications are already instrumented with ARM calls:


  1. ^ "Apache ARM 4.0 Modul". Retrieved 2012-05-20. 
  2. ^ "For productive environments modified Apache ARM 4.0 Modul". 2011-06-13. Retrieved 2012-05-20. 
  3. ^ "npARM xpcom extension for Mozilla Firefox". 2011-11-26. Retrieved 2012-05-20. 
  4. ^ "WAS v6.1 ARM Transactions". 2012-04-04. Retrieved 2012-05-20. 
  5. ^ "Enabling ARM on HTTP Server". Retrieved 2012-05-20. 
  6. ^
  7. ^ "Using SAS 9.2 ARM Interface with Existing ARM Applications: SAS 9.2 ARM Interface with Existing SAS Applications Overview". 2010-05-27. Retrieved 2012-05-20. 

External links

  • Open Group official ARM Web-Site and Open Source SDK
  • Site to coordinate further development of the Open Source ARM4SDK
  • ARM4-oriented Web-Site
  • Open-ARM Open Source ARM4 Java implementation
  • MyARM Fully ARM 4.0 compliant C/C++, Java, CSharp .NET and Python implementation and a free of charge community edition
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.