Doorgaan naar hoofdcontent

Message Oriented Middleware

With Message Oriented Middleware you can have several different communication mechanisms. The most common are Queues and Publish-Subscribe. Queues are mostly point-to-point, so therefore not loosely coupled, location-based addressing. What does Pub-Sub give you?
  • Decoupling of Producers and Consumers
  • Producers and consumers do not know each other
  • Flexible number of producers and consumers

Addressing Models

With pub-sub there are a number of addressing models.
  • Channel or Topic based
  • Subject based
  • Content based
  • Concept based (not further described here, but tries to describe interest on a high level)

Topic based addressing

This is simple but less powerfull. Example JMS topics.You basically get every message that is published on a particular topic. However you have the possibility to set a filter when a subscription is taken that will filter the messages on attributes in the header of the JMS message.
This is supported by BEA AquaLogic Service Bus.

Subject based addressing

It avoids the use of of physical network addresses. Messages are labeled with subject and consumers can subscribe on subjects. Producers do not need to know how messages are consumed and consumers do not need to know the source. There must be agreement on subject names and subjects can be added dynamically.The names consist of a hierarchy of elements: element.subelement.subsubelement.
Consumers can use wildcards: BOOK.* matches BOOK.TITLE and BOOK.> matches BOOK.TITLE.DESCR.
The disadvantage is that subject hierarchies can not be changed easily.

This type of addressing is supported Tibco's Rendezvous.

Content based addressing

A content based filter is a predicate on the content of the messages.


JMS

The JMS publish and subscribe is a combination of Topics and expressions on envelope's attributes. Factories, Destinations are identified via JNDI.
The message header is used for addressing and extra message properties, which are name value pairs, can be set. A selector (SQL-like expressions) can be used by consumer to filter messages based on the header's properties.

Reacties

Populaire posts van deze blog

OSB 10gR3 and SWA and MTOM

This blog is about using soap with attachments and the use of MTOM within the OSB (10gR3). A service is created that accepts a soap with attachment (DocumentService) and translates it to a service that accepts a binary element. MTOM is used for performance reasons for the second. Some notes: * For the use of attachments you need RPC-style document instead of the usual document-style. This due to the fact that the document-style limits a message to a single . * A service can not have both SWA and MTOM within OSB. First a WSDL is setup for the DocumentService: The $attachments variable holds the attachments and the body holds the attachment data. Also other data is stored within the attachment element (see h

Microservices mindmap

"The tree" - See also   my photo page When you are fairly new within the Microservices land, there are a lot of terms fired at you. So also for my own understanding i have made a mindmap. I think it has a good status now, so that i can share it with you. As always feedback is very welcome ! You can download the mindmap here .

Book review: Data Management at Scale (Piethein Strengholt)

 This blog is a review of the book "Data Management at Scale (See also at bol.com ) Data Management is a hot topic nowadays and this book does a fantastic job at adding value to this topic. It is a must read and one of the few technical books I finished reading in a weekend. The book gives a fantastic overview on how to implement a Data Mesh data architecture. The Data Mesh concept is explained by Martin Fowler here . The book is a good mix between conceptual and implementation architecture level. It gives a lot of examples of how this architecture at scale can work, for both small and big companies. It is practical and I used it to implement it at one of my customers. The book describes an architecture in which the focus is on the DIAL (Data- and Integration Access Layer).  On a high level the book covers the following topics: The key principles for data management at scale - Domain-Driven Design  - Domain Data Stores - Meta data management Ready Data Store The concept of servin