Agility™ represents all relationships through Service Agreements. These are created and maintained with regard to the policies of the parties concerned. They allow Agility™ to handle each request in a way that is tailored to the needs of the Service Agreement under which it has been sent. Service Agreements can range from the long term (e.g. representing a longstanding relationship between a company and an external collaborator, to extremely short-term (e.g. sessions); they can also be nested and recursive. Agility™ records details of the Service Agreements created, events and relationships between them. This information can then be used for audit, capacity planning and real-time monitoring.
In the diagram, Dept. A has agreed SA1 with a client who needs to use Dept. A’s App 8. Later, a new client also wants to use the same service. Although the new client’s request rate is low, a fast response is important. The manager of Dept. A’s machines knows that this cannot be guaranteed because the resources at her disposal (primarily low-end servers) are not capable of delivering the response times required. She therefore requests the creation of a new service agreement, SA3, with Dept. B under which Dept. B is to support App 8 with the response times required. (Note that if the Policies of both Dept's allow for the creation of such an agreement, all of this may be acheived without manual intervention). Once SA3 is in place, Dept. A can now make an agreement (SA2) with the new client. When messages arrive at Dept. A under SA2, they are sent to Dept. B under SA3 for fast processing. Using the information recorded by Agility™ about the SAs, Dept. B’s manager can see how many requests have been received from SA3, and cross-charge Dept. A accordingly. Similarly, the manager of Dept. A can monitor the average response for messages sent under SA2 and ensure that they are meeting the new client’s requirements.