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 architecture
In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
s.
It includes an
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
for
C and
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
that allows timing information associated with each step in processing a transaction to be logged to a remote server for later analysis.
History
Version 1 of ARM was developed jointly by
Tivoli Software
Tivoli Software encompasses a set of products originally developed by Tivoli Systems Inc. IBM bought the company and ran the operation as its Tivoli Software division. Additional products were acquired and run under the Tivoli portfolio brand. ...
and
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company. It was founded by Bill Hewlett and David Packard in 1939 in a one-car garage in Palo Alto, California ...
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.
, ARM 4.1 version 1 is the latest version of the ARM standard.
Introduction
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
In the fields of information technology and systems management, application performance management (APM) is the monitoring and management of the performance and availability of software applications. APM strives to detect and diagnose complex appli ...
space.
Approach
The main approach of using ARM is:
# Define business as well as technical transactions which are of interest.
# Insert calls into the application to the ARM interface to measure these defined transactions.
# Deploy the instrumented application in their normal environment with an installed ARM agent.
# The used ARM implementation now provides the transaction measurements of interest.
Concepts
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
A name–value pair, also called an attribute–value pair, key–value pair, or field–value pair, is a fundamental data representation in computing systems and applications. Designers often desire an open-ended data structure that allows fo ...
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:
*
Apache HTTP Server
The Apache HTTP Server ( ) is a free and open-source software, free and open-source cross-platform web server, released under the terms of Apache License, Apache License 2.0. It is developed and maintained by a community of developers under the ...
using the ARM 4.0 Module mod_arm4. All
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
requests are measured using ARM.
*
Mozilla Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curren ...
using the ARM 4.0
XPCOM
Cross Platform Component Object Model (XPCOM) is a cross-platform component model from Mozilla. It is similar to Component Object Model (COM), Common Object Request Broker Architecture (CORBA) and system object model (SOM). It features multiple ...
extension npARM.
* IBM
WebSphere Application server
An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.
An application ser ...
. Various requests like
URI,
JSP and others are measured using ARM.
* IBM HTTP Server.
*
IBM Db2 Database Server.
*
SAS (software) supports SAS V8.2 first implemented ARM 1.0 in SAS V8.2.
In January 2002, SAS V9 was released supporting ARM 2.0.
SAS version 9.2 introduced support for ARM 4.0.
*
Baan 5 and Infor ERP Ln 6.1
*
IBM Tivoli Access Manager
References
External links
Open Group official ARM Web-Site and Open Source SDKOpen-ARM Open Source ARM4 Java implementationMyARM Fully ARM 4.0 compliant C/C++, Java, CSharp .NET and Python implementation and a free of charge community edition
{{Open Group standards
Enterprise application integration
Computer-related introductions in 1996
Open Group standards