ARM stands for Application Response Measurement. It is an API jointly developed by an industry partnership that is used to monitor the availability and performance of applications. This monitoring is done from the perspective of the application itself, so it reflects those units of work that are important from the perspective of the business.
Applications define units of work (transactions) that are meaningful within the application. Typical examples are transactions initiated by a user, or transactions with servers. Applications then call the API when transactions begin and end, allowing these transactions to be measured and monitored.
There are many different techniques for measuring response times, but only ARM measures them accurately from the perspective of the business. Other approaches, although useful in other ways, can only measure business service levels by making assumptions or guesses about what is a business transaction, and when it begins and ends. Other approaches also can't provide important information that ARM can, such as whether a transaction completed successfully.
Version 1 of ARM was developed jointly by Tivoli Systems and Hewlett Packard in 1996. Version 2 will be available in December 1997. It was developed by an industry partnership (the ARM Working Group). Members of the ARM Working Group are BGS, BMC Software, The Boeing Company, Candle, Citicorp, Compuware, Hewlett-Packard Company, IBM, Landmark, Novell, Oracle, SAS, SES, Sun, Tivoli Systems and Unify.
ARM 2.0 is an approved standard of The Open Group. It is part of the IT DialTone(tm) initiative. Although The ARM Working Group is not part of The Open Group, ARM 2.0 was submitted to The Open Group under the Direct Review process and approved in June 1998. The ARM Working Group continues to work with The Open Group and with a subgroup formed in the Desktop Management Task Force (DMTF) in 1998, "Distributed Application Performance." The Distributed Application Performance subgroup is made up mostly of members of The ARM Working Group.
You need to install and configure an agent that implements the API, and an application to manage the agent. Solutions are available from several vendors.
A software developers kit can be downloaded from www.cmg.org, www.hp.com, or www.tivoli.com. The developers kit is also available on CD-ROM. The software developers kit contains the API Guide, sample programs, API library implementations for several platforms, and the source code for a logging agent. You use the API library implementations to give your application something to link to and call if an agent isn't available. You replace the API library implementation with an agent when installing the agent. The source code for the logging agent can be compiled and used to test the API calls in your application. There also are development tools available from vendors that support ARM.
Combining ARM calls within your application with an ARM agent, users of your application will be able to answer questions like the following. Is a transaction (and the application) hung, or are transactions failing? What is the response time? Are service level commitments being met? Who uses the application and how many of each transaction are used?
Using version 2 of ARM, applications can provide information that show how transactions are affected by other transactions, both within the same system and on different systems. This information can be used to pinpoint where response times are the longest, and where bottlenecks are occurring.
ARM has been designed to be a high speed interface that has minimal impact on applications. ARM agents are designed to quickly extract the information that is needed and return control to the application immediately. Processing of the information is done in a different process that can run when the system is otherwise idle.
ARM fully supports cross-thread and cross-process transactions, allowing you to design your application in the most optimal way possible, and still use ARM so application performance can be monitored.
Point your browser at http://www.cmg.org for information about ARM, the ARM Working Group, and the ARM Special Interest Group (SIG).