220 likes | 398 Views
Reliability in Message-Oriented Middleware. Daniel de Pedro Castillo University of Helsinki, May 2007. Contents. Introduction Importance of reliability in MOM Types of reliability Strategies to achieve reliability Summary. Introduction. Middleware
E N D
Reliability inMessage-OrientedMiddleware Daniel de Pedro Castillo University of Helsinki, May 2007
Contents • Introduction • Importance of reliability in MOM • Types of reliability • Strategies to achieve reliability • Summary
Introduction • Middleware Software that connects software components and applications, used to support complex distributed applications. • Message-Oriented Middleware (MOM) Type of inter-application communication software that generally relies on asynchronous message-passing.
Properties of MOM (I) • Asynchrony Communication between systems to establish connection not needed. Programs don’t execute serially and take turns waiting on each other (non-blocking) • Queues Messages are stores in queues until the recipient is ready to read them. Messages can be read as FIFO or a priority criteria
Properties of MOM (II) • Fewer channels Because of asynchronous communication fewer communication channels needed: - easier to manage - more efficient • Persistency Persistent messages stored in non-volatile storage can be reinstated after system restart. Non-persistent messages stored only in memory
Importance of reliability in MOM (I) • Reliability 1) Property which guarantees that data is correctly delivered to the recipient 2) Ability of a system to perform and maintain its functions in routine circumstances as well as hostile or unexpected circumstances
Importance of reliability in MOM (II) • Two concerns in communication • Time for delivering the message Example: video-conference in real-time • Quality of the message (integrity) Example: e-mail, web navigation • What is needed in MOM MOM uses asynchronous communication. Time is not an issue. Integrity and non-corrupt data are more important
Aspects of reliability (I) • Toleration of failures Repeatedly send messages until it is acknowledged by the recipient. Middleware guarantees the delivery and sender can throw-and-remove the message • Isolation of clients Clients send and receive messages though middleware, they don’t deal with each other directly
Aspects of reliability (II) • Order delivery Important in asynchronous environments, where messages are stored in the middleware • Message attributes Messages can be attributed with properties such as expiration timestamps, priority, reply-to address… checked by the middleware to ensure the correct usage of them
Aspects of reliability (III) • Message integration Messages usually are part of a business process and an atomic unit-of-work. Middleware atomically groups messages and other process activities • Examples of products and protocols - IBM Websphere MQ (MQ series) - TIBCO Rendezvous - Microsoft Message Queueing (MSMQ) - Reliable HTTP (HTTPR) - WS Reliability protocol - WS Reliable-messaging protocol
Types of reliability • Endpoint-to-endpoint reliability • Application-to-middleware reliability • Application-to-application reliability
Endpoint-to-endpoint reliability • A message, once delivered from an application (process) to the messaging middleware, is guaranteed to be available for consumption by the receiving process • Messages are made persistent locally on the sender and receiver sides before and after they are being sent • All messages are given unique identifiers, so that a message sender (the endpoint on the sender side) can re-send a message until it gets a positive acknowledgment of receipt by the receiver (the endpoint on the receiver side)
Application-to-middleware reliability • Message delivery guarantees (exactly-once, at-most-once, at-least-once) • Fault-tolerant invocation (of the messaging endpoint) • Ability to atomically group messaging operations with other application actions
Application-to-application reliability • Middleware endpoint-to-endpoint reliability and application-to-middleware reliability provide the foundation on which (higher-level) distributed business processes can be developed • Distributed business processes are constructed from basic application-to-application interactions.
Strategies to achieve reliability • Simple Object Access Protocol (SOAP) • Strategies for endpoint-to-endpoint reliability • Strategies for application-to-middleware reliability • Strategies for application-to-application reliability
Simple Object Access Protocol (SOAP) • SOAP is a protocol for exchanging XML-based messages over computer networks, normally using HTTP • Both synchronous and asynchronous models. • SOAP messages contain an envelope, message headers and a message body • SOAP can be considerably slower than other middleware technologies such as the Common Object Request Broker Architecture (CORBA)
Strategies for endpoint-to-endpoint reliability (I) • Soap-over-HTTP (synchronous) HTTP is only reliable as long as connection stays alive. Needs middleware to be reliable if the connection fails: HTTPR • Soap-over-HTTPR (synchronous) Combined with some persistent storage capability supports middleware endpoint-to-endpoint reliability
Strategies for endpoint-to-endpoint reliability (II) • Soap-over-MQ (asynchronous) - The middleware endpoints are message queue managers provided by the messaging middleware product - The persistent stores are message queues • Enterprise messaging middleware - Middleware endpoint-to-endpoint reliability can also be achieved by employing enterprise messaging middleware directly, independent of SOAP - Middleware must be leveraged to support XML messaging
Strategies for application-to-middleware reliability (I) • Soap-over-HTTP (synchronous) - Reliability mechanisms may be implemented as part of the application - The application can therefore ensure that its components for creating, storing, and delivering messages are all accessed reliably. • Soap-over-Middleware (asynchronous) - SOAP-over-HTTPR or SOAP-over-MQ - The application-to-middleware guarantees that can be provided are the message delivery guarantees of the underlying transport - The reliability of the local procedure calls between the application and the local endpoint.
Strategies for application-to-middleware reliability (II) • Enterprise messaging middleware - The "direct middleware" option of using MQ for XML messaging describes the case where the application uses the reliable middleware's API to send and receive messages. - Application-to-middleware reliability relates to the direct use of the underlying middleware's API and its reliability features
Strategies for application-to-application reliability • Direct transaction processing An agreement protocol such as two-phase commit (2PC) is used to directly include one application's transaction processing as part of another application's transaction processing • Queued transaction processing - Applications interact indirectly using reliable message-oriented middleware - A transaction service integrates messaging resources (for example queues) with other resources used by the applications (for example databases) is also needed
Summary - We have introduced what the middleware and message-oriented middleware are and their role in communication systems, both synchronous and asynchronous - The concept of reliability has been explained, and also its different aspects and types: endpoint-to-endpoint middleware, application-to-middleware middleware and application-to-application middleware - Some strategies for achieving reliability have been also discussed, as well as some actual technologies and protocols, such as SOAP