seminario enterprise integration patterns

Post on 18-Dec-2014

115 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introduzione agli Entrprise Integration Patterns per Studenti di TLC - Slide a supporto del seminario

TRANSCRIPT

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

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”

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 cristiano.costantini@gmail.com

top related