This document discusses patterns of data distribution that are commonly used when building distributed systems and applications. It identifies three main patterns: publish-subscribe, point-to-point, and request-reply. The document argues that middleware platforms typically implement these patterns in a rigid way, whereas a better approach is for platforms to be built using fundamental "super-patterns" that can be constrained or composed to derive the common patterns. This allows platforms to be more flexible and performant while still providing familiar patterns to application developers. The document also discusses challenges for platform builders in areas like system architecture, performance, and application interfaces.
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Patterns of Data Distribution
1. Your systems. Working as one.
Patterns of
Data Distribution
Workshop on Real-Time, Embedded and Rick Warren
Enterprise-Scale Time-Critical Systems Dir. Tech. Solutions,
Principal Engineer
April 2012; Paris rick.warren@rti.com
4. Distribution Pattern Overview
Publish- Point to Request-
Subscribe Point Reply
* See Hohpe and Woolf,
5
“Enterprise Integration Patterns”, www.eaipatterns.com
This talk is not specific to any one middleware technology.
Each message delivered to all available consumers.
Each message is delivered to only a subset (usually one) of a set of consumers that all share a certain role.
Each message is delivered to one recipient, which sends a related message back to the original sender.
Sender has a job to do, so posts a job to a queue: Point-to-Point pattern. A receiver picks it up.The one that processes the job posts a response back; there’s a layered Request-Reply Pattern.Other consumers use different patterns: consider monitoring and recording scenarios.The queues are really topics! Does the original sender know that?
If you remember nothing else from this talk, remember this slide.You could substitute “portability” for “applications” and/or “interoperability” for “platforms”.