SlideShare uma empresa Scribd logo
1 de 10
The Real-Time
Middleware Experts
Data-Centric and Message-Centric
System Architecture
Making Design Explicit to Reduce Cost and Risk
Rick Warren, Principal Engineer rick.warren@rti.com
April 2010
Data-Centric vs. Message-Centric Design
 Anyone can publish and subscribe
– DDS
– JMS
– AMQP
– WS-Eventing
– REST-MS
 …but different technologies have very
different models
Treating them as interchangeable has ramifications:
– Increased cost, risk
– Decreased return on technology investment
– Decreased performance
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 2
Data-Centric vs. Message-Centric Design
Data-Centric
 Infrastructure does
understand your data
– What data schema(s) will
be used
– Which objects are distinct
from which other objects
– What their lifecycles are
– How to attach behavior
(e.g. filters, QoS) to
individual objects
 Example technologies:
– DDS API
– RTPS (DDSI) protocol
Message-Centric
 Infrastructure does not
understand your data
– Opaque contents vary from
message to message
– No object identity;
messages indistinguishable
– Ad hoc lifecycle mgmt
– Behaviors can only apply to
whole data stream
 Example technologies:
– JMS API
– AMQP protocol
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 3
Example: Data-Centric Track Data
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 4
Publish
Subscribe
Data SchemaData Schema
x : floatx : float
y : floaty : float
id : string (key)id : string (key)
NewNew
45.645.6
78.978.9
“AA123”“AA123”
UpdateUpdate
56.756.7
89.089.0
“AA123”“AA123”
NewNew
65.465.4
32.132.1
“DL987”“DL987”
DisposeDispose
“AA123”“AA123”
X
Map this into XML; rows + cols
Express content-based filters
Propagate data efficiently
Example: Data-Centric Track Data
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 5
Publish
Subscribe
Data SchemaData Schema
x : floatx : float
y : floaty : float
id : string (key)id : string (key)
Quality of ServiceQuality of Service
DeadlineDeadline
Time-Based
Filter
Time-Based
Filter
HistoryHistory
 Once infrastructure understands objects, can attach
QoS contracts to them
 “Keep only the latest value” or “I need updates at
this rate” make no sense unless per-object
– Flight AA123 updates shouldn’t overwrite DL987, even if
AA123 is updated more frequently
– Update rate for one track shouldn’t change just because
another track appeared
Example: Message-Centric Track Data
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 6
Publish
Subscribe
x=float(45.6)x=float(45.6)
y=float(78.9)y=float(78.9)
id=“AA123”id=“AA123”0x00000006
4141010203
0042366666
429DCCCD
0x00000006
4141010203
0042366666
429DCCCD
“My app
knows this
means
dispose.”
“My app
knows this
means
dispose.”
(No Data
Schema,
Limited QoS)
(No Data
Schema,
Limited QoS)
Nothing to base filters, xforms on
Error checking dev  integration
Self-describing data is verbose
When Message-Centric Design Works Well
(Example: Securities order processing system)
 No notion of objects or state beyond individual
message; e.g. “Buy 12 shares IBM @ $12”
 No need to filter based on content; e.g. all orders
need to be processed eventually
 No need for real-time QoS; e.g. maybe to you,
“real-time” just means “fast”
 Messaging interface is not integration interface
between systems, providers, versions: one team
implements both sides of interaction at same time
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 7
When Data-Centric Design Works Well
(Examples: Distribution of track data, weather data)
 Object lifecycle spans multiple updates;
e.g. “Track AA123” or “Weather at (45.6°, 78.9°)”
 Topic-per-object is impractical because
– …objects are too numerous and/or
– …their identities are unknown a priori and/or
– …commonalities make them more manageable as a group.
– Independent topic for each of 10K tracks?
For each (latitude, longitude) tuple?
 Need data-aware filtering and/or QoS enforcement; e.g.
– “Give me the current state of all tracks” or
– “Show me a weather map within this geographical region”
 Integrating independently developed components
and/or systems
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 8
Don’t Confuse Architecture and Technology
 Can implement message-centric design with data-
centric technology
– Use generic data schemas (e.g. an opaque binary buffer)
– Don’t define QoS contracts
 Can implement data-centric design with message-
centric technology
– Build layers on top to handle data schemas, data caching,
QoS definition and enforcement, discovery, etc.
– Capture service definitions informally in documentation
 Define data/service architecture first,
then select appropriate technology
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 9
Recap
 Start with architecture for data, services
– Q: What data is to be exchanged under what conditions?
– Explicit contracts allow:
• Early error checking to lower costs
• Automatic enforcement to avoid misbehavior
• Independent development with lower-risk integration
• Efficient data transmission for greater performance
• COTS tools and integration components
 …Then select technology
– Data-centric and message-centric technologies
have different capabilities,
tho’ both described as “publish-subscribe messaging”
© 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 10

Mais conteúdo relacionado

Mais procurados

DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardAngelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIAngelo Corsaro
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsReal-Time Innovations (RTI)
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Sumant Tambe
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011Gerardo Pardo-Castellote
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part IIAngelo Corsaro
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollerseProsima
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationGerardo Pardo-Castellote
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 

Mais procurados (20)

Best Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDSBest Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDS
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++Standardizing the Data Distribution Service (DDS) API for Modern C++
Standardizing the Data Distribution Service (DDS) API for Modern C++
 
Overview of the DDS-XRCE specification
Overview of the DDS-XRCE specificationOverview of the DDS-XRCE specification
Overview of the DDS-XRCE specification
 
RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011RTI Data-Distribution Service (DDS) Master Class 2011
RTI Data-Distribution Service (DDS) Master Class 2011
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 

Destaque

Data-Centric Approach for Project Delivery
Data-Centric Approach for Project DeliveryData-Centric Approach for Project Delivery
Data-Centric Approach for Project DeliveryAVEVA Group plc
 
Data-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your Business
Data-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your BusinessData-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your Business
Data-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your BusinessDATAVERSITY
 
Club Urba-EA - Vers un SI "data centric"
Club Urba-EA - Vers un SI "data centric" Club Urba-EA - Vers un SI "data centric"
Club Urba-EA - Vers un SI "data centric" Club Urba-EA
 
Data-Centric Infrastructure for Agile Development
Data-Centric Infrastructure for Agile DevelopmentData-Centric Infrastructure for Agile Development
Data-Centric Infrastructure for Agile DevelopmentDATAVERSITY
 
Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...
Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...
Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...Olivier TASSEL
 
Data centric : une plate-forme orientée donnée au coeur de votre organisation
Data centric : une plate-forme orientée donnée au coeur de votre organisationData centric : une plate-forme orientée donnée au coeur de votre organisation
Data centric : une plate-forme orientée donnée au coeur de votre organisationJean-Michel Franco
 

Destaque (6)

Data-Centric Approach for Project Delivery
Data-Centric Approach for Project DeliveryData-Centric Approach for Project Delivery
Data-Centric Approach for Project Delivery
 
Data-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your Business
Data-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your BusinessData-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your Business
Data-Ed Slides: Data-Centric Strategy & Roadmap - Supercharging Your Business
 
Club Urba-EA - Vers un SI "data centric"
Club Urba-EA - Vers un SI "data centric" Club Urba-EA - Vers un SI "data centric"
Club Urba-EA - Vers un SI "data centric"
 
Data-Centric Infrastructure for Agile Development
Data-Centric Infrastructure for Agile DevelopmentData-Centric Infrastructure for Agile Development
Data-Centric Infrastructure for Agile Development
 
Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...
Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...
Du SEO empirique au SEO Data centric - Comment piloter sa stratégie SEO en 20...
 
Data centric : une plate-forme orientée donnée au coeur de votre organisation
Data centric : une plate-forme orientée donnée au coeur de votre organisationData centric : une plate-forme orientée donnée au coeur de votre organisation
Data centric : une plate-forme orientée donnée au coeur de votre organisation
 

Semelhante a Data-Centric and Message-Centric System Architecture

Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsJaime Martin Losa
 
Psdot 18 performance analysis of cloud computing
Psdot 18 performance analysis of cloud computingPsdot 18 performance analysis of cloud computing
Psdot 18 performance analysis of cloud computingZTech Proje
 
Cloud Standards and Virtualization
Cloud Standards and VirtualizationCloud Standards and Virtualization
Cloud Standards and VirtualizationPeter Tröger
 
MPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - SillMPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - SillAlan Sill
 
Cloud Computing and Security - by KLC Consulting
Cloud Computing and Security - by KLC ConsultingCloud Computing and Security - by KLC Consulting
Cloud Computing and Security - by KLC Consultingkylelai
 
Hope, fear, and the data center time machine
Hope, fear, and the data center time machineHope, fear, and the data center time machine
Hope, fear, and the data center time machineCisco Canada
 
Winds of change from vendor lock in to the meta cloud
Winds of change  from vendor lock in  to the meta cloudWinds of change  from vendor lock in  to the meta cloud
Winds of change from vendor lock in to the meta cloudMunisekhar Gunapati
 
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 DDSRick Warren
 
Asset Lifecycle Management: flexible infrastructures enabling future change
Asset Lifecycle Management: flexible infrastructures enabling future changeAsset Lifecycle Management: flexible infrastructures enabling future change
Asset Lifecycle Management: flexible infrastructures enabling future changeSchneider Electric
 
Understanding_the_Cloud
Understanding_the_CloudUnderstanding_the_Cloud
Understanding_the_CloudMelissa Kattke
 
Cloud: a disruptive technlogy that CEO should use to transform their business
Cloud:  a disruptive technlogy that CEO should use to transform their businessCloud:  a disruptive technlogy that CEO should use to transform their business
Cloud: a disruptive technlogy that CEO should use to transform their businessBertrand MAES
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Gerardo Pardo-Castellote
 
Cloud Computing: Architecture, IT Security and Operational Perspectives
Cloud Computing: Architecture, IT Security and Operational PerspectivesCloud Computing: Architecture, IT Security and Operational Perspectives
Cloud Computing: Architecture, IT Security and Operational PerspectivesMegan Eskey
 
consistency as a service auditing cloud consistency
 consistency as a service auditing cloud consistency consistency as a service auditing cloud consistency
consistency as a service auditing cloud consistencyswathi78
 
Dynamic Service Chaining
Dynamic Service Chaining Dynamic Service Chaining
Dynamic Service Chaining Tail-f Systems
 
Silicon Valley CloudStack User Group - Designing CloudStack Clouds
Silicon Valley CloudStack User Group - Designing CloudStack CloudsSilicon Valley CloudStack User Group - Designing CloudStack Clouds
Silicon Valley CloudStack User Group - Designing CloudStack CloudsShapeBlue
 

Semelhante a Data-Centric and Message-Centric System Architecture (20)

Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 
Psdot 18 performance analysis of cloud computing
Psdot 18 performance analysis of cloud computingPsdot 18 performance analysis of cloud computing
Psdot 18 performance analysis of cloud computing
 
Notes
NotesNotes
Notes
 
Cloud Standards and Virtualization
Cloud Standards and VirtualizationCloud Standards and Virtualization
Cloud Standards and Virtualization
 
MPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - SillMPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
MPLS/SDN 2013 Intercloud Standardization and Testbeds - Sill
 
Cloud Computing and Security - by KLC Consulting
Cloud Computing and Security - by KLC ConsultingCloud Computing and Security - by KLC Consulting
Cloud Computing and Security - by KLC Consulting
 
Hope, fear, and the data center time machine
Hope, fear, and the data center time machineHope, fear, and the data center time machine
Hope, fear, and the data center time machine
 
Winds of change from vendor lock in to the meta cloud
Winds of change  from vendor lock in  to the meta cloudWinds of change  from vendor lock in  to the meta cloud
Winds of change from vendor lock in to the meta cloud
 
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
 
Asset Lifecycle Management: flexible infrastructures enabling future change
Asset Lifecycle Management: flexible infrastructures enabling future changeAsset Lifecycle Management: flexible infrastructures enabling future change
Asset Lifecycle Management: flexible infrastructures enabling future change
 
Cisco project ideas
Cisco   project ideasCisco   project ideas
Cisco project ideas
 
Understanding_the_Cloud
Understanding_the_CloudUnderstanding_the_Cloud
Understanding_the_Cloud
 
Cloud: a disruptive technlogy that CEO should use to transform their business
Cloud:  a disruptive technlogy that CEO should use to transform their businessCloud:  a disruptive technlogy that CEO should use to transform their business
Cloud: a disruptive technlogy that CEO should use to transform their business
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.
 
cloud computing
cloud computingcloud computing
cloud computing
 
Cloud Computing: Architecture, IT Security and Operational Perspectives
Cloud Computing: Architecture, IT Security and Operational PerspectivesCloud Computing: Architecture, IT Security and Operational Perspectives
Cloud Computing: Architecture, IT Security and Operational Perspectives
 
consistency as a service auditing cloud consistency
 consistency as a service auditing cloud consistency consistency as a service auditing cloud consistency
consistency as a service auditing cloud consistency
 
Dynamic Service Chaining
Dynamic Service Chaining Dynamic Service Chaining
Dynamic Service Chaining
 
Silicon Valley CloudStack User Group - Designing CloudStack Clouds
Silicon Valley CloudStack User Group - Designing CloudStack CloudsSilicon Valley CloudStack User Group - Designing CloudStack Clouds
Silicon Valley CloudStack User Group - Designing CloudStack Clouds
 
CLOUD
CLOUDCLOUD
CLOUD
 

Mais de Rick Warren

Building Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaBuilding Scalable Stateless Applications with RxJava
Building Scalable Stateless Applications with RxJavaRick Warren
 
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 ProductionRick Warren
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data DistributionRick Warren
 
Data-centric Invocable Services
Data-centric Invocable ServicesData-centric Invocable Services
Data-centric Invocable ServicesRick Warren
 
Engineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsEngineering Interoperable and Reliable Systems
Engineering Interoperable and Reliable SystemsRick Warren
 
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 DevicesRick Warren
 
DDS in a Nutshell
DDS in a NutshellDDS in a Nutshell
DDS in a NutshellRick Warren
 
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 SubmissionRick Warren
 
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)Rick Warren
 
C++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionC++ PSM for DDS: Revised Submission
C++ PSM for DDS: Revised SubmissionRick Warren
 
Web-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionWeb-Enabled DDS: Revised Submission
Web-Enabled DDS: Revised SubmissionRick Warren
 
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)Rick Warren
 
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 1Rick Warren
 
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 ModelRick Warren
 
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 FinanceRick Warren
 
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 DDSRick Warren
 
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)Rick Warren
 
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 DDSRick Warren
 
Extensible and Dynamic Topic Types For DDS (out of date)
Extensible and Dynamic Topic Types For DDS (out of date)Extensible and Dynamic Topic Types For DDS (out of date)
Extensible and Dynamic Topic Types For DDS (out of date)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
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data Distribution
 
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
 
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
 
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)
 
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
 
Extensible and Dynamic Topic Types For DDS (out of date)
Extensible and Dynamic Topic Types For DDS (out of date)Extensible and Dynamic Topic Types For DDS (out of date)
Extensible and Dynamic Topic Types For DDS (out of date)
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Data-Centric and Message-Centric System Architecture

  • 1. The Real-Time Middleware Experts Data-Centric and Message-Centric System Architecture Making Design Explicit to Reduce Cost and Risk Rick Warren, Principal Engineer rick.warren@rti.com April 2010
  • 2. Data-Centric vs. Message-Centric Design  Anyone can publish and subscribe – DDS – JMS – AMQP – WS-Eventing – REST-MS  …but different technologies have very different models Treating them as interchangeable has ramifications: – Increased cost, risk – Decreased return on technology investment – Decreased performance © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 2
  • 3. Data-Centric vs. Message-Centric Design Data-Centric  Infrastructure does understand your data – What data schema(s) will be used – Which objects are distinct from which other objects – What their lifecycles are – How to attach behavior (e.g. filters, QoS) to individual objects  Example technologies: – DDS API – RTPS (DDSI) protocol Message-Centric  Infrastructure does not understand your data – Opaque contents vary from message to message – No object identity; messages indistinguishable – Ad hoc lifecycle mgmt – Behaviors can only apply to whole data stream  Example technologies: – JMS API – AMQP protocol © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 3
  • 4. Example: Data-Centric Track Data © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 4 Publish Subscribe Data SchemaData Schema x : floatx : float y : floaty : float id : string (key)id : string (key) NewNew 45.645.6 78.978.9 “AA123”“AA123” UpdateUpdate 56.756.7 89.089.0 “AA123”“AA123” NewNew 65.465.4 32.132.1 “DL987”“DL987” DisposeDispose “AA123”“AA123” X Map this into XML; rows + cols Express content-based filters Propagate data efficiently
  • 5. Example: Data-Centric Track Data © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 5 Publish Subscribe Data SchemaData Schema x : floatx : float y : floaty : float id : string (key)id : string (key) Quality of ServiceQuality of Service DeadlineDeadline Time-Based Filter Time-Based Filter HistoryHistory  Once infrastructure understands objects, can attach QoS contracts to them  “Keep only the latest value” or “I need updates at this rate” make no sense unless per-object – Flight AA123 updates shouldn’t overwrite DL987, even if AA123 is updated more frequently – Update rate for one track shouldn’t change just because another track appeared
  • 6. Example: Message-Centric Track Data © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 6 Publish Subscribe x=float(45.6)x=float(45.6) y=float(78.9)y=float(78.9) id=“AA123”id=“AA123”0x00000006 4141010203 0042366666 429DCCCD 0x00000006 4141010203 0042366666 429DCCCD “My app knows this means dispose.” “My app knows this means dispose.” (No Data Schema, Limited QoS) (No Data Schema, Limited QoS) Nothing to base filters, xforms on Error checking dev  integration Self-describing data is verbose
  • 7. When Message-Centric Design Works Well (Example: Securities order processing system)  No notion of objects or state beyond individual message; e.g. “Buy 12 shares IBM @ $12”  No need to filter based on content; e.g. all orders need to be processed eventually  No need for real-time QoS; e.g. maybe to you, “real-time” just means “fast”  Messaging interface is not integration interface between systems, providers, versions: one team implements both sides of interaction at same time © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 7
  • 8. When Data-Centric Design Works Well (Examples: Distribution of track data, weather data)  Object lifecycle spans multiple updates; e.g. “Track AA123” or “Weather at (45.6°, 78.9°)”  Topic-per-object is impractical because – …objects are too numerous and/or – …their identities are unknown a priori and/or – …commonalities make them more manageable as a group. – Independent topic for each of 10K tracks? For each (latitude, longitude) tuple?  Need data-aware filtering and/or QoS enforcement; e.g. – “Give me the current state of all tracks” or – “Show me a weather map within this geographical region”  Integrating independently developed components and/or systems © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 8
  • 9. Don’t Confuse Architecture and Technology  Can implement message-centric design with data- centric technology – Use generic data schemas (e.g. an opaque binary buffer) – Don’t define QoS contracts  Can implement data-centric design with message- centric technology – Build layers on top to handle data schemas, data caching, QoS definition and enforcement, discovery, etc. – Capture service definitions informally in documentation  Define data/service architecture first, then select appropriate technology © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 9
  • 10. Recap  Start with architecture for data, services – Q: What data is to be exchanged under what conditions? – Explicit contracts allow: • Early error checking to lower costs • Automatic enforcement to avoid misbehavior • Independent development with lower-risk integration • Efficient data transmission for greater performance • COTS tools and integration components  …Then select technology – Data-centric and message-centric technologies have different capabilities, tho’ both described as “publish-subscribe messaging” © 2009 Real-Time Innovations, Inc. COMPANY CONFIDENTIAL 10

Notas do Editor

  1. From the beginning, the data stream is associated with the schema of the data that will be propagated on that stream. Your applications already have some expectations; if you express those to a data-centric infrastructure, it can help you. For example, you can use this schema to automatically transform data into other formats. (This is how the Routing Service and Web Integration Service work.) The infrastructure can also dissect your data to filter on content (for example “give me updates where x > 5”). “Key” means “this field establishes the identity of a unique object.” Like the key in a relational database table. In DDS, can be any number of fields of any type(s). New track you’ve never seen before. Notice that since type is already known, only need to send field values, not field names or types. Update to a track you’ve already seen Another new track – notice that the key is different A track you’ve seen before has gone away
  2. The first thing to notice is that the knowledge of your data model that was associated with the data stream in the data-centric technology disappears when you use a message-centric technology. That makes it much harder to develop a generic component such as the Web Integration Service, which much transform arbitrary data types to and from XML, downsample data by based on content, etc. First message arrives. It has the same structure as we saw before, except without a known type definition, the type information must be embedded within the message itself, significantly increasing its size. The second message arrives. It’s in a totally different format than the first! This one is just a blob of binary-encoded data. Maybe the consuming application understands how to decode it and maybe not. Each application connected to the network will have expectations about the formats of the messages it receives. But a messaging infrastructure can’t support those expectations, so they have to be enforced by an organizational policy. I write up a Word document that describes how you should format your messages and email it to you, and you have to follow my instructions. If you make a mistake, we’ll have to debug it at integration time. In a data-centric approach, data type enforcement is built in: developers work with typed objects in their programming languages, errors are detected when the code is compiled before it’s ever deployed, and runtime mismatches that do occur are detected automatically by the middleware. How do I describe a content-based filter on a binary blob? How do I transform it into another format? How do I map it into a database? The third message arrives. It’s in yet a third format: a plain text string. Because the messaging system doesn’t have any concept of object lifecycle, each system has to define its own ad hoc system of sentinels: “create” messages, “dispose” messages, etc. More work, and it makes it much more difficult to leverage something you’ve built for one project on the next project. By comparison, Web Integration Service takes advantage of the built-in lifecycle support in DDS – you saw that when tracks were marked with “X” or “?”. And without any knowledge of your objects or their lifecycle, a messaging infrastructure can only support qualities of service that make sense across an entire topic: for example time-to-live (“lifespan” in language of DDS).
  3. Last point is most subtle. But lack of explicit data model makes integration more difficult. If message definitions and formats are ad hoc and supported only in documentation, not by the infrastructure, problems arise: More teams need to share this documentation and implement correctly. More chances for errors, more chances for change management to break down. Team members can call each other up and sort out these problems; multiple geographically and organizationally separated have a harder time. Infrastructural components – persistence, logging, technology/protocol gateways, custom tooling – become coupled to system-specific message definitions, making them very brittle in the face of change. If one team manages everything, they can roll out changes to whole line at once. But incremental updates across multiple teams is hard. This is how corporations roll out messaging solutions: one IT department from one company has total control over the deployment. Deployment may span several groups within the company, but almost never spans companies.