SlideShare uma empresa Scribd logo
1 de 19
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
System Lifecycle
                                 …Because we still
1. Build cool small app.          think like this
2. Needs more capability!
   Scale out.
                                 …But mostly we
3. Interop., maintenance, and     screw up here
   reuse are hard!
   Refactor out platform.
Repeat until you’re ready to…
                                      Mature
4. Build new capabilities atop    ecosystems are
   unmodified platform.            already here

                    © 2012 RTI                     2
Think Different.

Building Applications                   Building Platforms
• Designed as a unit                    • Connect independently
• Managed as a unit                       developed applications
• …To serve a single business           • Focus on interoperability and
  function                                heterogeneous versioning
                                        • …To solve business function(s)
                                          different than its constituent
                                          parts
We will discuss
just one aspect here:                              Mostly from this
Patterns of data distribution                       perspective

                           © 2012 RTI                                 3
Distribution Pattern Overview




        Publish-                           Point to        Request-
       Subscribe                            Point           Reply




* See Hohpe and Woolf,
                                                                      5
  “Enterprise Integration Patterns”, www.eaipatterns.com
Pattern: Publish-Subscribe
                                                           Subscriber

                                                           Subscriber
 Publisher                         Topic
                      Message                                 …
                                                           Subscriber


Scenario for App Use                    Variation Points
• Distributing data                     • Topic structure:
                                          flat vs. hierarchical
                                        • Subscriber quorum

                           © 2012 RTI                                   6
Pattern: Point to Point
                                                         Receiver

                                                         Receiver
  Sender                         Queue
                    Message                                …
                                                         Receiver


Scenario for App Use                  Variation Points
• Distributing computation            • Allowed current
                                        consumers
                                      • Message visibility to
                                        consumers of other roles
                         © 2012 RTI                                 7
Pattern: Request-Reply

                                Request




                                                    “Method”?
                                Channel
                      Message
 Requester                                                      Replier
                                Reply
                                Channel
                      Message

Scenarios for App Use                   Variation Points
• Sending / acknowledging               •   # Repliers
  commands
                                        •   # Replies per Replier
   – Called “Command Pattern”
• Pulling data (often large)
                                        •   Synch. vs. asych.
                                        •   RMI vs. messaging API
                           © 2012 RTI                                     8
Middleware Comparison
Middleware standards hard code specific patterns.
• JMS                                         • HTTP
   – Publish-Subscribe                          – Request-Reply (data-centric)
        • TopicPublisher                            • Messaging: GET, PUT, POST,
        • TopicSubscriber                             DELETE, etc.
   – Point to Point                           • CORBA
        • QueueProducer                         – Request-Reply (imperative)
        • QueueConsumer/QueueBrow                   • RMI, user-defined
          ser
                                                – Point to Point (partial)
   – Request-Reply (idiomatic)                      • oneway call to predefined
        • Based on JMSReplyTo header                  recipient
• DDS
   – Publish-Subscribe
        • DataWriter
        • DataReader

                                 © 2012 RTI                                       9
Combining Patterns             Subscriber
                               Recording

                               Subscriber
                               Monitoring


                                Receiver



                                Receiver
                 Queue
  Sender          Topic
             Request Channel       …
 Publisher
              Reply Channel     Receiver
Requester                        Replier
                   Topic

                © 2012 RTI                  10
Combining Patterns                  Subscriber
Insight:                            Recording

• Data is        Platforms are      Subscriber

              concerned with this   Monitoring
  global
• Patterns                           Receiver
                Applications are
  are local   concerned with this
                                     Receiver
                    Queue
  Sender             Topic
                Request Channel         …
 Publisher
                 Reply Channel       Receiver
 Requester                            Replier
                      Topic

                   © 2012 RTI                    11
Identifying Super-Patterns
• Build platform with super-patterns
  Super-pattern. [noun] Pattern from which all others in
  same category can be derived, by:
  1. Adding constraints and/or
  2. Composing it with itself

• Build applications (1) based on derived patterns
  or (2) isolate logic from pattern altogether
  – For programming ease of use
  – For correctness
  – For manageability
                        © 2012 RTI                         12
This is the Super-Pattern
• Someone produces some data
• Some other(s) observe(s) that data
                                             Subscriber

                                             Subscriber
 Publisher                           Topic
                        Message                 …
                                             Subscriber
• Apply platform concerns here
   – Interoperability
   – Connectivity
   – Governance
                             © 2012 RTI                   13
We Can Constrain It
• Apply delivery policy to limit observation based on
  Receiver role(s)
• Encompasses concurrent consumers
  and multiple roles
                                                   Receiver

                                                   Receiver
  Sender                           Queue
                      Message                           …
                                                   Receiver


• Apply application concerns here
   – Portability
   – Ease of (business logic) development
                           © 2012 RTI                         14
We Can Compose It
• Request, Reply Channels each instance of super-pattern
• Encompasses multiple Repliers, multiple
  Replies, additional producers and consumers

                                Request
                                Channel
                      Message
 Requester                                        Replier
                                Reply
                                Channel
                      Message

• Apply application concerns here
   – Portability
   – Ease of (business logic) development
                           © 2012 RTI                       15
Challenges for Platform Builders
Challenge: System Architecture

Architects and developers need training
and support
• Many platform developers were trained
  as application developers, not systems
  engineers
• Many people think imperatively:
  “Do this, then do this, …”

                    © 2012 RTI             16
Challenges for Platform Builders
Challenge: Performance

• General, reconfigurable implementation
  typically has overhead vs. highly
  specialized one
• …But beware premature optimization




                    © 2012 RTI             17
Challenges for Platform Builders
Challenge: Application Interface
Option #1: Provide Derived                Option #2: Separate Apps from
           Patterns?                                 Patterns?
• Application developers will             • Example (JMS MDB):
  demand many of them!                      void onMessage(
   – Pub-Sub, Point to                         Message event) {
     Point, Request-Reply                      // biz logic…
   – Others?                                }
• Pro: Perceived as                       • Pro: Elegant; one thing to
  familiar, easy to use                     learn; easy to reconfigure
• Con: Many ways to do same               • Con: Requires inversion of
  thing; less reconfigurable;               control => requires
  heavy work for vendors                    container, retraining
                             © 2012 RTI                                   18
Summary
• From app programming POV, certain problems
  feel natural to solve with certain patterns
• From platform or systems POV, handling each
  pattern in independent ad hoc ways results in
  brittle, poorly performing systems
• Solution: Build platform in terms of
  fundamental super-patterns
  1. Option: Derive high-level patterns from super-
     patterns; expose those to apps
  2. Option: Invert control; enforce patterns within
     platform, not apps; make app developers cope
                       © 2012 RTI                      19
P.S. Exercise for the Reader
Find the Super-Patterns:
• Topology                       • Invocation
  – Peer-to-Peer                   – Event-Driven
  – Hub and Spoke                  – Imperative
  – etc.                           – etc.




                    © 2012 RTI                      20

Mais conteúdo relacionado

Mais procurados

{ANOVA} PPT-1.pptx
{ANOVA} PPT-1.pptx{ANOVA} PPT-1.pptx
{ANOVA} PPT-1.pptx
SNEHA AGRAWAL GUPTA
 
statistics in pharmaceutical sciences
statistics in pharmaceutical sciencesstatistics in pharmaceutical sciences
statistics in pharmaceutical sciences
Techmasi
 
Research methodology & Biostatistics
Research methodology & Biostatistics  Research methodology & Biostatistics
Research methodology & Biostatistics
Kusum Gaur
 
Pilot plant scale up techniques for solid dosage forms
Pilot plant scale up techniques for solid dosage formsPilot plant scale up techniques for solid dosage forms
Pilot plant scale up techniques for solid dosage forms
ElahehEntezarmahdi
 

Mais procurados (20)

factorial design
factorial designfactorial design
factorial design
 
DATA GRAPHICS 8th Sem.pdf
DATA GRAPHICS 8th Sem.pdfDATA GRAPHICS 8th Sem.pdf
DATA GRAPHICS 8th Sem.pdf
 
SPSS.pptx
SPSS.pptxSPSS.pptx
SPSS.pptx
 
Factorial design \Optimization Techniques
Factorial design \Optimization TechniquesFactorial design \Optimization Techniques
Factorial design \Optimization Techniques
 
{ANOVA} PPT-1.pptx
{ANOVA} PPT-1.pptx{ANOVA} PPT-1.pptx
{ANOVA} PPT-1.pptx
 
Application of excel and spss programme in statistical
Application of excel and spss programme in statisticalApplication of excel and spss programme in statistical
Application of excel and spss programme in statistical
 
Data Transformation.ppt
Data Transformation.pptData Transformation.ppt
Data Transformation.ppt
 
Social and preventive Pharmacy UNIT 4.pptx
Social and preventive Pharmacy  UNIT 4.pptxSocial and preventive Pharmacy  UNIT 4.pptx
Social and preventive Pharmacy UNIT 4.pptx
 
Drug delivery barriers
Drug delivery barriersDrug delivery barriers
Drug delivery barriers
 
Statistical Package for Social Science (SPSS)
Statistical Package for Social Science (SPSS)Statistical Package for Social Science (SPSS)
Statistical Package for Social Science (SPSS)
 
STATISTICAL PARAMETERS
STATISTICAL  PARAMETERSSTATISTICAL  PARAMETERS
STATISTICAL PARAMETERS
 
Statistics
StatisticsStatistics
Statistics
 
Clinical trials
Clinical trialsClinical trials
Clinical trials
 
Mucoadhesive drug delivery system
Mucoadhesive drug delivery systemMucoadhesive drug delivery system
Mucoadhesive drug delivery system
 
statistics in pharmaceutical sciences
statistics in pharmaceutical sciencesstatistics in pharmaceutical sciences
statistics in pharmaceutical sciences
 
Research methodology & Biostatistics
Research methodology & Biostatistics  Research methodology & Biostatistics
Research methodology & Biostatistics
 
Hypothesis Testing
Hypothesis TestingHypothesis Testing
Hypothesis Testing
 
Pilot plant scale up techniques for solid dosage forms
Pilot plant scale up techniques for solid dosage formsPilot plant scale up techniques for solid dosage forms
Pilot plant scale up techniques for solid dosage forms
 
Application of Excel and SPSS software for statistical analysis- Biostatistic...
Application of Excel and SPSS software for statistical analysis- Biostatistic...Application of Excel and SPSS software for statistical analysis- Biostatistic...
Application of Excel and SPSS software for statistical analysis- Biostatistic...
 
Clinical studies
Clinical studiesClinical studies
Clinical studies
 

Destaque

binomial distribution
binomial distributionbinomial distribution
binomial distribution
Zarish Qaiser
 
STATISTICS: Normal Distribution
STATISTICS: Normal Distribution STATISTICS: Normal Distribution
STATISTICS: Normal Distribution
jundumaug1
 
Normal distribution and sampling distribution
Normal distribution and sampling distributionNormal distribution and sampling distribution
Normal distribution and sampling distribution
Mridul Arora
 
What is a T-test?
What is a T-test?What is a T-test?
What is a T-test?
YanoLabLT
 
T test, independant sample, paired sample and anova
T test, independant sample, paired sample and anovaT test, independant sample, paired sample and anova
T test, independant sample, paired sample and anova
Qasim Raza
 

Destaque (17)

The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
3F test / Introduction
3F test / Introduction3F test / Introduction
3F test / Introduction
 
binomial distribution
binomial distributionbinomial distribution
binomial distribution
 
Normal Distribution, Binomial Distribution, Poisson Distribution
Normal Distribution, Binomial Distribution, Poisson DistributionNormal Distribution, Binomial Distribution, Poisson Distribution
Normal Distribution, Binomial Distribution, Poisson Distribution
 
STATISTICS: Normal Distribution
STATISTICS: Normal Distribution STATISTICS: Normal Distribution
STATISTICS: Normal Distribution
 
Normal distribution and sampling distribution
Normal distribution and sampling distributionNormal distribution and sampling distribution
Normal distribution and sampling distribution
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDS
 
10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS10 Reasons for Choosing OpenSplice DDS
10 Reasons for Choosing OpenSplice DDS
 
The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
What is a T-test?
What is a T-test?What is a T-test?
What is a T-test?
 
T test, independant sample, paired sample and anova
T test, independant sample, paired sample and anovaT test, independant sample, paired sample and anova
T test, independant sample, paired sample and anova
 
Introduction to t-tests (statistics)
Introduction to t-tests (statistics)Introduction to t-tests (statistics)
Introduction to t-tests (statistics)
 
T test
T testT test
T test
 
Chi square test
Chi square testChi square test
Chi square test
 
Student t-test
Student t-testStudent t-test
Student t-test
 

Semelhante a Patterns of Data Distribution

Invited Talk at TU Graz
Invited Talk at TU GrazInvited Talk at TU Graz
Invited Talk at TU Graz
Walid Maalej
 
Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Munish Gupta
 
Building Blocks of Enterprise Integration
Building Blocks of Enterprise IntegrationBuilding Blocks of Enterprise Integration
Building Blocks of Enterprise Integration
WSO2
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
Noam Sheffer
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EE
Dmitri Shiryaev
 
IPTC Rights Working Group Summer 2012
IPTC Rights Working Group Summer 2012IPTC Rights Working Group Summer 2012
IPTC Rights Working Group Summer 2012
Stuart Myles
 
The Build vs. Buy Decision for SaaS Delivery
The Build vs. Buy Decision for SaaS DeliveryThe Build vs. Buy Decision for SaaS Delivery
The Build vs. Buy Decision for SaaS Delivery
OpSource
 
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions  - Deploy and manage tomorrow's applications todayVMware - Snapshot sessions  - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
AnnSteyaert_vmware
 

Semelhante a Patterns of Data Distribution (20)

I'll See You On the Write Side of the Web
I'll See You On the Write Side of the WebI'll See You On the Write Side of the Web
I'll See You On the Write Side of the Web
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
State of Resource Management in Big Data
State of Resource Management in Big DataState of Resource Management in Big Data
State of Resource Management in Big Data
 
State of Resource Management in Big Data
State of Resource Management in Big DataState of Resource Management in Big Data
State of Resource Management in Big Data
 
Invited Talk at TU Graz
Invited Talk at TU GrazInvited Talk at TU Graz
Invited Talk at TU Graz
 
Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012
 
Build highly scalable_low_latency_applications
Build highly scalable_low_latency_applicationsBuild highly scalable_low_latency_applications
Build highly scalable_low_latency_applications
 
OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009
 
Building Blocks of Enterprise Integration
Building Blocks of Enterprise IntegrationBuilding Blocks of Enterprise Integration
Building Blocks of Enterprise Integration
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
IPTC Rights Expression Language Spring 2012
IPTC Rights Expression Language Spring 2012IPTC Rights Expression Language Spring 2012
IPTC Rights Expression Language Spring 2012
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EE
 
IPTC Rights Working Group Summer 2012
IPTC Rights Working Group Summer 2012IPTC Rights Working Group Summer 2012
IPTC Rights Working Group Summer 2012
 
The Build vs. Buy Decision for SaaS Delivery
The Build vs. Buy Decision for SaaS DeliveryThe Build vs. Buy Decision for SaaS Delivery
The Build vs. Buy Decision for SaaS Delivery
 
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions  - Deploy and manage tomorrow's applications todayVMware - Snapshot sessions  - Deploy and manage tomorrow's applications today
VMware - Snapshot sessions - Deploy and manage tomorrow's applications today
 
All Aboard the Databus
All Aboard the DatabusAll Aboard the Databus
All Aboard the Databus
 
Oracle Application Management Suite
Oracle Application Management SuiteOracle Application Management Suite
Oracle Application Management Suite
 
UML Profile for DDS
UML Profile for DDSUML Profile for DDS
UML Profile for DDS
 
Extending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
Extending The Value Of Oracle Crm On Demand Through Cloud Based ExtensibilityExtending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
Extending The Value Of Oracle Crm On Demand Through Cloud Based Extensibility
 

Mais de Rick Warren

Mais de Rick Warren (20)

Real-World Git
Real-World GitReal-World Git
Real-World Git
 
Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJava
 
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to ProductionLetters from the Trenches: Lessons Learned Taking MongoDB to Production
Letters from the Trenches: Lessons Learned Taking MongoDB to Production
 
Data-centric Invocable Services
Data-centric Invocable ServicesData-centric Invocable Services
Data-centric Invocable Services
 
Engineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsEngineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable Systems
 
Scaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and DevicesScaling DDS to Millions of Computers and Devices
Scaling DDS to Millions of Computers and Devices
 
DDS in a Nutshell
DDS in a NutshellDDS in a Nutshell
DDS in a Nutshell
 
Java 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final SubmissionJava 5 Language PSM for DDS: Final Submission
Java 5 Language PSM for DDS: Final Submission
 
Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)Java 5 PSM for DDS: Revised Submission (out of date)
Java 5 PSM for DDS: Revised Submission (out of date)
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised Submission
 
Web-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionWeb-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised Submission
 
Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)Java 5 PSM for DDS: Initial Submission (out of date)
Java 5 PSM for DDS: Initial Submission (out of date)
 
Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1Extensible and Dynamic Topic Types for DDS, Beta 1
Extensible and Dynamic Topic Types for DDS, Beta 1
 
Mapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric ModelMapping the RESTful Programming Model to the DDS Data-Centric Model
Mapping the RESTful Programming Model to the DDS Data-Centric Model
 
Large-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceLarge-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and Finance
 
Data-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System ArchitectureData-Centric and Message-Centric System Architecture
Data-Centric and Message-Centric System Architecture
 
Extensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDSExtensible and Dynamic Topic Types for DDS
Extensible and Dynamic Topic Types for DDS
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDS
 
Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)Java 5 API for DDS RFP (out of date)
Java 5 API for DDS RFP (out of date)
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
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
  • 2. System Lifecycle …Because we still 1. Build cool small app. think like this 2. Needs more capability! Scale out. …But mostly we 3. Interop., maintenance, and screw up here reuse are hard! Refactor out platform. Repeat until you’re ready to… Mature 4. Build new capabilities atop ecosystems are unmodified platform. already here © 2012 RTI 2
  • 3. Think Different. Building Applications Building Platforms • Designed as a unit • Connect independently • Managed as a unit developed applications • …To serve a single business • Focus on interoperability and function heterogeneous versioning • …To solve business function(s) different than its constituent parts We will discuss just one aspect here: Mostly from this Patterns of data distribution perspective © 2012 RTI 3
  • 4. Distribution Pattern Overview Publish- Point to Request- Subscribe Point Reply * See Hohpe and Woolf, 5 “Enterprise Integration Patterns”, www.eaipatterns.com
  • 5. Pattern: Publish-Subscribe Subscriber Subscriber Publisher Topic Message … Subscriber Scenario for App Use Variation Points • Distributing data • Topic structure: flat vs. hierarchical • Subscriber quorum © 2012 RTI 6
  • 6. Pattern: Point to Point Receiver Receiver Sender Queue Message … Receiver Scenario for App Use Variation Points • Distributing computation • Allowed current consumers • Message visibility to consumers of other roles © 2012 RTI 7
  • 7. Pattern: Request-Reply Request “Method”? Channel Message Requester Replier Reply Channel Message Scenarios for App Use Variation Points • Sending / acknowledging • # Repliers commands • # Replies per Replier – Called “Command Pattern” • Pulling data (often large) • Synch. vs. asych. • RMI vs. messaging API © 2012 RTI 8
  • 8. Middleware Comparison Middleware standards hard code specific patterns. • JMS • HTTP – Publish-Subscribe – Request-Reply (data-centric) • TopicPublisher • Messaging: GET, PUT, POST, • TopicSubscriber DELETE, etc. – Point to Point • CORBA • QueueProducer – Request-Reply (imperative) • QueueConsumer/QueueBrow • RMI, user-defined ser – Point to Point (partial) – Request-Reply (idiomatic) • oneway call to predefined • Based on JMSReplyTo header recipient • DDS – Publish-Subscribe • DataWriter • DataReader © 2012 RTI 9
  • 9. Combining Patterns Subscriber Recording Subscriber Monitoring Receiver Receiver Queue Sender Topic Request Channel … Publisher Reply Channel Receiver Requester Replier Topic © 2012 RTI 10
  • 10. Combining Patterns Subscriber Insight: Recording • Data is Platforms are Subscriber concerned with this Monitoring global • Patterns Receiver Applications are are local concerned with this Receiver Queue Sender Topic Request Channel … Publisher Reply Channel Receiver Requester Replier Topic © 2012 RTI 11
  • 11. Identifying Super-Patterns • Build platform with super-patterns Super-pattern. [noun] Pattern from which all others in same category can be derived, by: 1. Adding constraints and/or 2. Composing it with itself • Build applications (1) based on derived patterns or (2) isolate logic from pattern altogether – For programming ease of use – For correctness – For manageability © 2012 RTI 12
  • 12. This is the Super-Pattern • Someone produces some data • Some other(s) observe(s) that data Subscriber Subscriber Publisher Topic Message … Subscriber • Apply platform concerns here – Interoperability – Connectivity – Governance © 2012 RTI 13
  • 13. We Can Constrain It • Apply delivery policy to limit observation based on Receiver role(s) • Encompasses concurrent consumers and multiple roles Receiver Receiver Sender Queue Message … Receiver • Apply application concerns here – Portability – Ease of (business logic) development © 2012 RTI 14
  • 14. We Can Compose It • Request, Reply Channels each instance of super-pattern • Encompasses multiple Repliers, multiple Replies, additional producers and consumers Request Channel Message Requester Replier Reply Channel Message • Apply application concerns here – Portability – Ease of (business logic) development © 2012 RTI 15
  • 15. Challenges for Platform Builders Challenge: System Architecture Architects and developers need training and support • Many platform developers were trained as application developers, not systems engineers • Many people think imperatively: “Do this, then do this, …” © 2012 RTI 16
  • 16. Challenges for Platform Builders Challenge: Performance • General, reconfigurable implementation typically has overhead vs. highly specialized one • …But beware premature optimization © 2012 RTI 17
  • 17. Challenges for Platform Builders Challenge: Application Interface Option #1: Provide Derived Option #2: Separate Apps from Patterns? Patterns? • Application developers will • Example (JMS MDB): demand many of them! void onMessage( – Pub-Sub, Point to Message event) { Point, Request-Reply // biz logic… – Others? } • Pro: Perceived as • Pro: Elegant; one thing to familiar, easy to use learn; easy to reconfigure • Con: Many ways to do same • Con: Requires inversion of thing; less reconfigurable; control => requires heavy work for vendors container, retraining © 2012 RTI 18
  • 18. Summary • From app programming POV, certain problems feel natural to solve with certain patterns • From platform or systems POV, handling each pattern in independent ad hoc ways results in brittle, poorly performing systems • Solution: Build platform in terms of fundamental super-patterns 1. Option: Derive high-level patterns from super- patterns; expose those to apps 2. Option: Invert control; enforce patterns within platform, not apps; make app developers cope © 2012 RTI 19
  • 19. P.S. Exercise for the Reader Find the Super-Patterns: • Topology • Invocation – Peer-to-Peer – Event-Driven – Hub and Spoke – Imperative – etc. – etc. © 2012 RTI 20

Notas do Editor

  1. This talk is not specific to any one middleware technology.
  2. Each message delivered to all available consumers.
  3. Each message is delivered to only a subset (usually one) of a set of consumers that all share a certain role.
  4. Each message is delivered to one recipient, which sends a related message back to the original sender.
  5. 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?
  6. If you remember nothing else from this talk, remember this slide.You could substitute “portability” for “applications” and/or “interoperability” for “platforms”.