seminario enterprise integration patterns
DESCRIPTION
Introduzione agli Entrprise Integration Patterns per Studenti di TLC - Slide a supporto del seminarioTRANSCRIPT
Enterprise Integration Patterns for TLCby 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
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”
SensorMixUn 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 [email protected]