|
Application Integration
QoS capabilities framework
This page documents the most frequently observed QoS concerns that you must consider when implementing integration solutions. These QoS concerns manifest themselves with differing degrees of importance and specificity in different integration scenarios.
The following QoS concerns are defined in this section:
-
Operability
-
Availability
-
Federation
-
Performance
-
Security
-
Standards compliance
-
Transactionality
Operability
This QoS concern focuses on the systems-management requirements of the deployed solution. It focuses on such issues as monitoring, logging, traces, recovery, and manageability of the solution during operations in a production environment.
Availability
Availability is a measure of the time that a service is functioning normally. It also serves as a measure of the time the recovery process requires after the service fails. It is the downtime that defines service availability. This downtime includes both planned and unplanned downtime.
High availability generally requires that a topology provide some degree of redundancy to eliminate single points of failure. This allows the downtime caused by a component failure to be minimized (ideally zero). It can also allow a service to continue functioning normally during the downtime of a component for planned maintenance or backup procedures, for example.
Federation
Federation is fundamentally about enabling services to interoperate across trusted boundaries. It allows access control functions to span across multiple domains, crossing application, product, platform, site, business unit, and organization boundaries.
Federation requires that each partner domain is trusted to authenticate the identity of its own users. Mechanisms are needed to pass resource and user authentication and authorization information between domains.
Performance
The performance of a service is measured in terms of throughput and latency. Throughput represents the number of requests served in a given time period. Latency is the round-trip time between sending a request and receiving the response. Higher throughput and lower latency values represent good performance of a service.
Scalable topologies can service higher loads by adding the appropriate processing power. This can be achieved by using techniques such as using a faster machine, using a special purpose machine, or creating a cluster of machines.
Other performance improvement techniques include caching, batching, and connection pooling.
Security
Permission to access the participating applications may be associated with the requesting application itself, or this application may carry the credentials of a user initiating the actions. Consequently, access control can be applied as far as the requesting application (a transit of trust) or only from an integration hub (a trusted source) that authenticated the original request.
Securing messages transported and ensuring that integration is achieved only with authorized applications under the correct user credentials is a must. The integration solution needs to provide:
-
Data protection through encryption
-
Authentication of users and subscribing applications (in cases where non-repudiation of the end-user is required, authentication of the end-user)
-
Authorization of the user for participation in an integration activity
Standards compliance
Standards compliance is concerned with identifying and applying the appropriate standards to a scenario. It is an important factor for controlling development and integration costs. Even private standards are beneficial, but widely-accepted public standards have the added advantage of enabling interoperability in the broadest contexts.
Transactionality
A transaction can be viewed as an activity between two or more parties that must be completed in its entirety with a mutually agreed outcome. Transactionality enables multiple application operations to be coordinated to provide an atomic deterministic end result.
Resource managers are used to control access to the resources involved in a transaction. A transaction manager is responsible for coordination and transaction control. Transactional considerations include:
-
ACID versus compensating transactions
-
Flat versus nested transactions
-
System versus client commit control
-
Local versus distributed transactions
Return to the Process Integration patterns.
|