Saturday, 24 August 2013

Messaging Design Pattern(MDP)-Implementation of Adapter

🚀 Enjoying Java Tutorials?

Subscribe to Ram N Java for clean, beginner-friendly core Java tutorials and interview prep!

🔔 Subscribe to Ram N Java

Introduction

The Message Design Pattern (MDP) provides a foundational architectural approach to facilitate and implement other well-known software design patterns—such as the Gang of Four (GoF) patterns, DAO, and J2EE patterns. In enterprise architectures, components frequently need to communicate asynchronously or in loosely coupled environments where data formats do not match.

In this tutorial, we explore how the Message Design Pattern is used to implement the Adapter Pattern to transform message formats dynamically between senders and receivers.

The Incompatibility Challenge

In distributed messaging systems:

  • A Sender produces and dispatches data formatted in Format A (e.g., XML, custom payload).
  • A Receiver is configured to process only messages formatted in Format B (e.g., JSON, domain-specific object model).

The sender cannot transmit Format A directly to the receiver because the receiver cannot parse or interpret it. Modifying either endpoint is often impossible or violates separation of concerns.

How the Adapter Operates in MDP

The Adapter acts as a message translator and transformer:

  • It intercepts the incoming message in Format A.
  • It transforms the message into Format B so the receiver can consume and process it.
  • When the receiver replies with a response in Format B, the adapter translates that reply back into Format A so the original sender can understand the outcome.

Sequence Diagram Execution Flow

  1. Sender → Messenger: The Sender creates a message in Format A and sends it to the Messenger/Broker, specifying the destination adapter.
  2. Messenger → Adapter: The Messenger invokes processMessage() on the designated Adapter.
  3. Transformation (Format A → Format B): The Adapter converts the message payload into Format B.
  4. Adapter → Receiver: The transformed message is delivered to the Receiver.
  5. Processing & Response: The Receiver processes the instructions and emits a reply message in Format B back to the Adapter.
  6. Reverse Transformation (Format B → Format A): The Adapter transforms the reply back to Format A.
  7. Adapter → Messenger → Sender: The converted response is routed back through the Messenger to the Sender.

MDP Adapter Pattern Mapping

Component Data Format Role & Responsibility
Sender Format A Dispatches the original message
Messenger Transport routing Routes messages between sender, adapter, and endpoints
Adapter Format A ↔ Format B Performs bidirectional transformation of message payloads
Receiver Format B Consumes, executes instructions, and returns responses

Related Tutorials from Ram N Java


Click here to watch in Youtube : https://www.youtube.com/watch?v=JF4Ul_Mb6xs

Click the below Image to Enlarge
Messaging Design Pattern(MDP)-Implementation of Adapter














See also:

  • All Design Patterns Links
  • No comments:

    Post a Comment

    Tutorials