SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
Enterprise Integration
Patterns for TLC
by Cristiano Costantini
Introduzione
“Integrare”
Cosa si intende quando parliamo di integrazione?
Trovare una soluzione al seguente problema:
“Come posso far funzionare insieme
molteplici applicazioni attraverso lo
scambio di informazioni?”
3
Enterprise Integration Patterns (EIP)
Gli Enterprise Integration Patters offrono
soluzioni per affrontare il precedente
problema.
Cosa sono gli EIP?
4
Un libro!
Gregor Hohpe and Bobby Woolf
Addison-Wesley 2003
5
Perchè “integrare” è importante?
Integrare è quindi l’arte di spostare informazioni da una
applicazione ad un altra:
6
(soprattutto per studenti TLC)
I corsi universitari vi insegnano le tecnologie per spostare
informazioni (su reti);
Gli EIP vi insegnano come organizzare bene questo
trasferimento di informazioni su sistemi ICT.
Come si può fare integrazione?
I principali metodi tramite cui avviene
integrazione nei sistemi software sono:
7
Scambio di file
8
Database Condiviso
9
Remote Procedure Invocation
10
Messaging
Gli EIP si focalizzano sulla integrazione via
“messaging” e definiscono una propria notazione
per rappresentare le soluzioni di integrazione.
11
La notazione EIP
http://www.eaipatterns.com/toc.html 12
Esempi di notazione
13
Esempi di notazione
14
Esempi di notazione
15
Catalogo Pattern
Organizzazione degli EIP
17
Chapter 1:	

Integration Styles
Chapter 2:	

Messaging Systems
Chapter 3:	

Messaging
Channels
Chapter 4:	

Message
Construction
Chapter 5:	

Message
Routing
Chapter 6:	

Message
Transformation
Chapter 7:	

Messaging
Endpoints
Chapter 8:	

Systems
Management
Messaging
Message
Channel
Message
Pipes and
Filters
Message
Router
Message
Translator
Message
Endpoint
File Transfer
Shared
Database
RMI
Panoramica Messaging Systems
18
Message Channel
“How does one application communicate with another using messaging?”
19
Messaging Systems
Message
“How can two applications connected by a message channel exchange a piece
of information?”
20
Messaging Systems
Pipes and Filters
“How can we perform complex processing on a message while maintaining
independence and flexibility?”
21
Messaging Systems
Message Routing
“How can you decouple individual processing steps so that messages can be
passed to different filters depending on a set of conditions?”
22
Messaging Systems
Message Translator
“How can systems using different data formats communicate with each other
using messaging?”
23
Messaging Systems
Message Endpoint
“How does an application connect to a messaging channel to send and
receive messages?”
24
Messaging Systems
Patterns per “Messaging Channels”
25
Point-to-Point channel
“How can the caller be sure that exactly one receiver will receive the
document or perform the call?”
26
Patterns per “Messaging Channels”
Publish-Subscribe channel
“How can the sender broadcast an event to all interested receivers?”
27
Patterns per “Messaging Channels”
Dead-Letter channel
“What will the messaging system do with a message it cannot deliver?”
28
Patterns per “Messaging Channels”
Patterns per “Message Construction”
29
Command Message
“How can messaging be used to invoke a procedure in another application?”
30
Patterns per “Message Construction”
Document Message
“How can messaging be used to transfer data between applications?”
31
Patterns per “Message Construction”
Event Message
“How can messaging be used to transmit events from one application to
another?”
32
Patterns per “Message Construction”
Request Reply
“When an application sends a message, how can it get a response from the
receiver?”
33
Patterns per “Message Construction”
Patterns per “Message Routing” e
“Message Transformation”
34
Message Broker
“How can you decouple the destination of a message from the sender and
maintain central control over the flow of messages?”
35
Patterns per “Message Routing”
Canonical Data Model
“How can you minimize dependencies when integrating applications that use
different data formats?”
36
Patterns per “Message Transformation”
Patterns per “Messaging Endpoints”
37
Polling Consumer
“How can an application consume a message when the application is ready?”
38
Patterns per “Messaging Endpoints”
Event Driven Consumer
“How can an application automatically consume messages as they become
available?”
39
Patterns per “Messaging Endpoints”
Service Activator
“How can an application design a service to be invoked both via various
messaging technologies and via non-messaging techniques?”
40
Patterns per “Messaging Endpoints”
SensorMix
Un esempio di architettura software basata su EIP
SensorMix
42
Architettura
SensorMix
43
Rotte di integrazione campionamenti dai sensori
SensorMix
44
Considerazione sull’uso del Canonical Data Model
SensorMix
45
Datamodel UML
SensorMix
46
Service UML
SensorMix
Slides:

 http://cristcost.github.io/sensormix/
Sensormix:

 https://github.com/cristcost/sensormix/
Sensormix Android:

 https://github.com/cristcost/sensormix-android/
Sensormix Arduino:

 https://github.com/michelefi/sensormix-arduino/ 
47
Collegamenti:
Conclusioni
Libri
•Enterprise Integration Patterns
-G. Hohpe, B. Woolf - Addison Wesley
49
Cristiano Costantini
cristiano.costantini@gmail.com

Weitere ähnliche Inhalte

Ähnlich wie Seminario Enterprise Integration Patterns

communication in distributed systems
communication in distributed systemscommunication in distributed systems
communication in distributed systemsmohammed alrekabe
 
Dreamforce 2015 microservices
Dreamforce 2015 microservicesDreamforce 2015 microservices
Dreamforce 2015 microservicesJames Governor
 
A tale of two microservices
A tale of two microservicesA tale of two microservices
A tale of two microservicesPablo Chacin
 
Beware the monolith
Beware the monolithBeware the monolith
Beware the monolithDee Wilcox
 
VLEs and the democratization of e-learning
VLEs and the democratization of e-learningVLEs and the democratization of e-learning
VLEs and the democratization of e-learningMartin Weller
 
Multi-Agent Architecture for Distributed IT GRC Platform
 Multi-Agent Architecture for Distributed IT GRC Platform Multi-Agent Architecture for Distributed IT GRC Platform
Multi-Agent Architecture for Distributed IT GRC PlatformIJCSIS Research Publications
 
Designing Application over mobile environment
Designing Application over mobile environmentDesigning Application over mobile environment
Designing Application over mobile environmentMaulik Patel
 
Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...
Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...
Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...Hasib ur Rahman, PhD
 
A new model for interoperable administrative data
A new model for interoperable administrative dataA new model for interoperable administrative data
A new model for interoperable administrative dataRob Worthington
 
Ontology Tutorial: Semantic Technology for Intelligence, Defense and Security
Ontology Tutorial: Semantic Technology for Intelligence, Defense and SecurityOntology Tutorial: Semantic Technology for Intelligence, Defense and Security
Ontology Tutorial: Semantic Technology for Intelligence, Defense and SecurityBarry Smith
 
Technology and social movements
Technology and social movementsTechnology and social movements
Technology and social movementsSuresh Fernando
 
Microservices and modern backends - Azure Meetup Frankfurt
Microservices and modern backends  - Azure Meetup FrankfurtMicroservices and modern backends  - Azure Meetup Frankfurt
Microservices and modern backends - Azure Meetup FrankfurtDamir Dobric
 
The Visual Language of Ecosystems
The Visual Language of EcosystemsThe Visual Language of Ecosystems
The Visual Language of EcosystemsEd Morrison
 
PresentationTest
PresentationTestPresentationTest
PresentationTestbolu804
 
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...Matthew Skelton
 
Novel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdf
Novel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdfNovel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdf
Novel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdfMaarit Laanti
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsRicardo Tesoriero
 
Jurnal e-learning management system using service oriented architecture
Jurnal   e-learning management system using service oriented architectureJurnal   e-learning management system using service oriented architecture
Jurnal e-learning management system using service oriented architectureRatzman III
 

Ähnlich wie Seminario Enterprise Integration Patterns (20)

Microservices why?
Microservices   why?Microservices   why?
Microservices why?
 
communication in distributed systems
communication in distributed systemscommunication in distributed systems
communication in distributed systems
 
Dreamforce 2015 microservices
Dreamforce 2015 microservicesDreamforce 2015 microservices
Dreamforce 2015 microservices
 
A tale of two microservices
A tale of two microservicesA tale of two microservices
A tale of two microservices
 
Beware the monolith
Beware the monolithBeware the monolith
Beware the monolith
 
VLEs and the democratization of e-learning
VLEs and the democratization of e-learningVLEs and the democratization of e-learning
VLEs and the democratization of e-learning
 
Multi-Agent Architecture for Distributed IT GRC Platform
 Multi-Agent Architecture for Distributed IT GRC Platform Multi-Agent Architecture for Distributed IT GRC Platform
Multi-Agent Architecture for Distributed IT GRC Platform
 
Designing Application over mobile environment
Designing Application over mobile environmentDesigning Application over mobile environment
Designing Application over mobile environment
 
Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...
Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...
Enabling Scalable Publish/Subscribe for Logical-Clustering in Crowdsourcing v...
 
Making ESSENCE Work
Making ESSENCE WorkMaking ESSENCE Work
Making ESSENCE Work
 
A new model for interoperable administrative data
A new model for interoperable administrative dataA new model for interoperable administrative data
A new model for interoperable administrative data
 
Ontology Tutorial: Semantic Technology for Intelligence, Defense and Security
Ontology Tutorial: Semantic Technology for Intelligence, Defense and SecurityOntology Tutorial: Semantic Technology for Intelligence, Defense and Security
Ontology Tutorial: Semantic Technology for Intelligence, Defense and Security
 
Technology and social movements
Technology and social movementsTechnology and social movements
Technology and social movements
 
Microservices and modern backends - Azure Meetup Frankfurt
Microservices and modern backends  - Azure Meetup FrankfurtMicroservices and modern backends  - Azure Meetup Frankfurt
Microservices and modern backends - Azure Meetup Frankfurt
 
The Visual Language of Ecosystems
The Visual Language of EcosystemsThe Visual Language of Ecosystems
The Visual Language of Ecosystems
 
PresentationTest
PresentationTestPresentationTest
PresentationTest
 
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
Beyond the Spotify Model - Team Topologies - Tech.rocks - 2020-12-10 - Matthe...
 
Novel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdf
Novel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdfNovel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdf
Novel_Value_Stream_Analysis_for_SAFe_-_ver_8.pdf
 
CAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environmentsCAUCE - Model-driven development of ubiquitous computing environments
CAUCE - Model-driven development of ubiquitous computing environments
 
Jurnal e-learning management system using service oriented architecture
Jurnal   e-learning management system using service oriented architectureJurnal   e-learning management system using service oriented architecture
Jurnal e-learning management system using service oriented architecture
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
🐬 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
 
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
 
[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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
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
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
[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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
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
 

Seminario Enterprise Integration Patterns