1 / 22

Reliability in Message-Oriented Middleware

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

lerato
Download Presentation

Reliability in Message-Oriented Middleware

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reliability inMessage-OrientedMiddleware Daniel de Pedro Castillo University of Helsinki, May 2007

  2. Contents • Introduction • Importance of reliability in MOM • Types of reliability • Strategies to achieve reliability • Summary

  3. 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.

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Types of reliability • Endpoint-to-endpoint reliability • Application-to-middleware reliability • Application-to-application reliability

  12. 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)

  13. 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

  14. 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.

  15. 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

  16. 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)

  17. 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

  18. 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

  19. 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.

  20. 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

  21. 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

  22. 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

More Related