Sunteți pe pagina 1din 138

Academia de Studii Economice

Facultatea de Cibernetic, Statistic i Informatic Economic

I ntegrarea
A plicaiilor
D istribuite
lect. dr. Iulian Ilie-Nemedi
iilie@axway.com; inemedi@ie.ase.ro

Departamentul de Informatic i Cibernetic Economic


Programul de master complementar e-Business

Organizarea cursului

Agenda
Obiective;
Structur;
Evaluare;
Bibliografie.

Obiective
Studierea modelelor pentru integrarea aplicaiilor distribuite:

Integrarea prin fiiere partajate;


Integrarea cu ajutorul bazelor de date partajate;
Integrarea prin apelul de metode la distan;
Integrarea prin schimbul de mesaje.

Studierea tehnologiilor pentru comunicarea ntre aplicaii:


Comunicarea prin apelul de metode la distan (RMI);
Comunicarea prin coji de mesaje (JMS);
Comunicarea prin servicii Web (JAX-WS/JAX-RS).

Obiective (II)
Studierea arhitecturilor pentru integrarea aplica iilor distribuite:

Arhitectura direct punct-la-punct;


Arhitectura broker de tip Hub-and-Spoke;
Arhitectura fulg de zpad;
Arhitecturi bazate pe magistral.

Definirea unui model conceptual pentru integrarea aplica iilor distribuite


i elaborarea unei platforme de integrare pe baza unor componente
orientate pe servicii:

Deschis;
Scalabil;
Extensibil;
Independent de platform.

Structura cursului
Contextul integrrii aplicaiilor distribuite;
Integrarea prin schimbul de mesaje;
Tehnologii suport pentru aplicaii distribuite;
Implementarea integrrii prin schimbul de mesaje;
Studii de caz privind integrarea aplicaiilor.

Evaluare
Examen scris (50% din nota final):
2 subiecte teoretice de tratat printr-un paragraf (40% din nota de examen);
5 ntrebri deschise cu rspuns scurt (40% din nota de examen);
10 ntrebri gril cu rspuns unic (20% din nota de examen);

Implementarea unui proiect de integrare utiliznd Camel

(50% din nota final):

Utilizarea a minim dou puncte de acces diferite (20% din punctaj);


Utilizarea unui procesator pentru construirea mesajului (20% din punctaj);
Utilizarea a minim dou procesatoare de rutare (20% din punctaj);
Utilizarea a minim dou procesatoare de transformare (20% din punctaj);
Utilizarea unui procesator de gestiune (20% din punctaj).

Bibliografie

Balasubramanian R., Carlyle B., Erl R., Pautasso C. SOA with REST:
Realizing Service-Orientation with REST Technologies and Practices, Prentice
Hall, 2011
Cogolugnes A., Templier T., Piper A. Spring Dynamic Modules in Action,
Manning, 2010
Daigneau R. Service Design Patterns: Fundamental Design Solutions for
SOAP/WSDL and RESTful Web Services, Addison-Wesley, 2011
Erl T. Service-Oriented Architecture (SOA): Concepts, Technology, and
Design, Prentice Hall, 2005
Flower M. - Patterns of Enterprise Application Architecture, Addison-Wesley,
2003
Hohpe G., Woolf B. Enterprise Integration Patterns: Designing, Building, and
Deploying Messaging Solutions, Addison-Wesley, 2003
Ibsen C, Anstey J. Camel in Action, Manning, 2010

Contextul integrrii aplicaiilor distribuite

Agenda
Necesitatea integrrii aplicaiilor;
Paradigme ale sistemelor distribuite;
Suportul pentru comunicarea n reea;
Modele de implementare a aplicaiilor distribuite;
Arhitectura pe niveluri a aplicaiilor distribuite;
Avantajele i limitele modelelor distribuite;
Definirea conceptului de integrare;
Soluii pentru integrarea aplicaiilor distribuite.

10

Necesitatea ntegrrii aplicaiilor


Coexistena n pia a sistemelor informatice eterogene:
Adresabilitatea i accesibilitatea pe baza mai multor platforme
hardware;
Tehnologii software de implementare specializate sau generalizate.

Gradul de ndeplinire a cerinelor mediului de afaceri de


ctre soluiile informatice:
Soluiile verticale au un caracter mult prea general;
Soluiile orizontale au un caracter nu prea particular.

Maximizarea investiiei iniiale impune reutilizarea soluiilor:


Necesitatea dezvoltrii de conectori ntre aplicaiile existente;
Evoluia sistemelor informatice nu este posibil fr integrarea
versiunilor anterioare.
11

Paradigme ale sistemelor distribuite

12

Paradigme ale sistemelor distribuite (II)

13

Suportul pentru comunicarea n reea

14

Suportul pentru comunicarea n reea (II)

15

Modelele de implementare a
aplicaiilor distribuite
Modelul client-server cu client de tip terminal:

Permite execuia de comenzi la distan, captarea i afiarea rezultatelor


sub form text, utiliznd protocolul SSH (Secure Shell), sau grafic, cu
ajutorul protocolului RFB (Remote Frame Buffer) sau RDP (Remote
Desktop Protocol);
Necesit instalarea unei aplicaii server specifice, clientul fiind oferit n mod
implicit de sistemul de operare;
Aplicaiile se execut cu drepturile conturilor de sistem locale, avnd acces
la resursele sistemului.
16

Modelele de implementare a
aplicaiilor distribuite (II)
Modelul client-server cu client de tip aplicaie desktop:

Permite execuia de comenzi specifice protocolului de aplicaie ntre client i


server prin intermediul unor canale de comunicaie n reea care asigur
transportul mesajelor cu ajutorul protocolului TCP orientat pe conexiune
bidirecional, sau pe baza protocolului UDP, unidirecional;
Necesit instalarea unei aplicaii specifice pe server i client;
Aplicaiile se execut cu drepturile conturilor de sistem locale, avnd acces
la resursele sistemului.

17

Modelele de implementare a
aplicaiilor distribuite (III)
Modelul Web cu rencrcarea integral a paginii i
comunicare sincron (Web 1.0):

Permite accesarea unor resurse statice sau construite n mod dinamic de


pe maina server Web de ctre aplicaia client de tip browser;
Resursele sunt identificate prin intermediul unei adrese URL unic n
contextul aplicaiei server;
La fiecare accesare a unei resurse se primete coninutul ntregii pagini;
Necesit instalarea unei aplicaii server Web specific, clientul de tip
browser fiind oferit n mod implicit de sistemul de operare;
Aplicaiile se execut, de regul, cu drepturile unor conturi foarte restrictive,
neavnd acces la resursele sistemului.
18

Modelele de implementare a
aplicaiilor distribuite (IV)
Modelul Web cu ncrcare partial i comunicare asincron
(Web 2.0)

Permite accesarea unor resurse statice sau construite n mod dinamic de


pe maina server Web de ctre aplicaia client de tip browser;
Resursele sunt identificate prin intermediul unei adrese URL unic n
contextul aplicaiei server;
Resursele pot fi ncrcate asincron prin apeluri AJAX;
Necesit instalarea unei aplicaii server Web specific, clientul de tip
browser fiind oferit n mod implicit de sistemul de operare;
Aplicaiile se execut, de regul, cu drepturile unor conturi foarte restrictive,
neavnd acces la resursele sistemului.
19

Modelele de implementare a
aplicaiilor distribuite (V)
Modelul Cloud Computing:
Integrarea nivelului hardware i al sistemelor
software (infrastructura cloud) i oferirea lor ca
serviciu ntr-o maniera integrat:
Maniera X-as-a-Service;
Pay-per-Use: serviciul este oferit ca furnizor
independent clienilor externi.

Scalabilitate dinamic, la cerere, de tip:


Single-tenant;
Multi-tenant.

Virtualizare:
Abstractizare: interfee de servicii;
ncapsulare: niveluri de acces.
Serviciile Cloud sunt consumate via Web
browser sau via API.

20

Modelele de implementare a
aplicaiilor distribuite (VI)
Evoluia gradului de integrare n modelul Cloud Computing:

21

Arhitectura pe niveluri
a aplicaiilor distribuite

22

Avantajele i limitele
modelelor distribuite

23

Definirea conceptului de integrare

24

Soluii pentru integrarea


aplicaiilor distribuite
Fiiere partajate:
Transformarea datelor n formatele ateptate de
fiecare aplicaie din sistem, pe baza coninutului
fiierelor partajate.

Baze de date partajate:


Aplicaiile nu consum funcionalitate comun, ci doar
se ateapt s primesc informaii procesate de o alt
aplicaie.

Apelul de metode la distan:


Fiecare aplicaie ncapsuleaz propriile procesri,
expunnd un contract prin care metodele ei pot fi
consumate la distan.

Schimbul de mesaje:

25

Aplicaii implementate pe platforme i n tehnologii


eterogene consum n mod asincron funcionalitate
comun, n condiiile unui nivel foarte ridicat de
ncapsulare i deculpare.

Arhitecturi pentru integrarea


aplicaiilor distribuite

Agenda
Tipuri de canale pentru integrare;
Topologii ale arhitecturilor de integrare:
Modelul punct-la-punct complet interconectat;
Modelul de tip Hub-and-Spoke;
Modelul de tip Hub-and-Spoke cu adaptori simpli;
Modelul de tip Hub-and-Spoke cu adaptori complec i;
Modelul de tip fulg-de-zpad;
Modelul bazat pe magistral;
Modelul bazat pe magistral orientat pe flux;
Modelul bazat pe magistral orientat spre integrare;
Modelul bazat pe magistral orientat pe servicii.

Complexitatea soluiilor pentru integrarea aplicaiilor.


27

Tipuri de canale pentru integrare

28

n raport cu numrul de accesri concurente:


Punct-la-punct;
Punct-multipunct sau multipunct-punct.
n raport cu direcia de transfer a datelor:
Bidirecionale;
Unidirecionale.
n raport cu blocarea transmisiei datelor:
Sincrone;
Asincrone.
n raport cu modalitatea de extragere a datelor:
Prin interogare periodic;
Prin subscriere i notificare.
n raport cu asigurarea transmisiei datelor:
Cu garantarea livrrii;
Fr garantarea livrrii.

Topologii ale arhitecturilor de integrare


Modelul punct-la-punct:

Aplicaiile comunic direct, fr interpunerea unui nivel intermediar


de legtur;
Aplicaiile sunt modificate pentru a expune o interfa pentru
schimbul de date i apelul de metode;
Implementarea acestei interfee este inclus la nivelul fiecrei
aplicaii, aa nct pentru ca o aplicaie s poat comunica direct cu
toate celelalte aplicaii din sistem.

29

Topologii ale arhitecturilor de integrare (II)


Modelul punct-la-punct complet interconectat:

Numrul interfeelor ce trebuiesc implementate este n (n 1) / 2;


La adugarea unei noi aplicaii n sistem, numrul interfeelor ce
trebuiesc implementate crete dramatic.
30

Topologii ale arhitecturilor de integrare (III)


Modelul de tip Hub-and-Spoke:
Aplicaiile trimit i primesc date prin
intermediul unui server central;
Datele provenite de la o aplicaie
emitent sunt extrase prin intermediul
unor adaptori specializai i trimise ctre
motorul de broadcast;
Adaptorii pot fi simpli sau compleci.
Nodul central ofer urmtoarele faciliti:
Transformarea mesajelor utiliznd instrumente complexe de asociere;
Validarea i controlul mesajelor att sintactic ct i semantic;
Agregarea i sortarea pe baza prioritilor a mesajelor;
Rutarea mesajelor n funcie de subiect, context sau coninut;
Gestiunea comunicrii complexe inter-aplicaii;
Monitorizarea i auditarea tranzaciilor i a fluxurilor de date;
Adaptori pentru conectarea aplicaiilor la un canal de transmisie de tip broker
hub (de exemplu adaptori pentru EDI, SWIFT, XML, baze de date, etc.).
31

Topologii ale arhitecturilor de integrare (IV)


Modelul de tip Hub-and-Spoke cu adaptori simpli:
Majoritatea funcionalitilor pot fi localizate la nivelul broker-ului central din motorul de
broadcast;
Adaptorii faciliteaz comunicarea ntre broker-ul central i aplicaii din sistem;
Mesajele native sunt trimise ctre broker-ul central de ctre aplicaii, iar acesta decide
modalitatea de rutare, transformare, control i validare a mesajelor recepionate;
n cazul mai multor aplicaii destinaie diferite, mesajul este transformat de ctre o
component de mapare a broker-ului, iar apoi, noul mesaj rezultat n urma transformrii
este trimis aplicaiilor destinatare.
Avantaje
Dezavantaje

32

Cuplarea slab a aplicaiilor;

Integrare prin invazivitate minim la nivelul


logicii fiecrei aplicaii integrate;
Reducerea complexitii soluiei de
integrare prin instrumente centrale de
integrare;

Instrumente complexe de mapare.

Gtuirea traficului prin broker-ul central datorit


deservirii ntregului trafic prin intermediul unui
singur nod central;
Dificultatea subscrierii ntregului sistem la un
singur canal central de comunicare;
Robustee
sczut
datorit
condiionrii
funcionrii ntregului sistem de un singur nod
central de broadcast, a crui redundan pentru
rezistena la incidente este adesea imposibil
datorit distribuirii geografice a arhitecturii.

Topologii ale arhitecturilor de integrare (V)


Modelul de tip Hub-and-Spoke cu adaptori compleci:

Majoritatea funcionalitilor sunt implemente prin intermediul adaptorilor compleci localizai la nivelul
fiecrei aplicaii, fapt ce leag adaptorii de logica fiecrei aplicaii n parte;
Mesajele sunt transmise de ctre broker-ul central ntr-o form canonic, fiind apoi transformate dup
necesiti la nivelul fiecrui conector;
Aplicaia local trimite mesajul ctre adaptor; acesta l transform ntr-un format canonic, trimindu-l
apoi la broker-ul central;
Broker-ul doar ruteaz mesajul astfel npachetat ctre adaptorul aplicaiei destinaie;
Adaptorul aplicaiei destinaie este specializat pentru a lucra n mod destinaie prin transformarea
mesajului din format canonic n formatul specific aplicaiei pe care o deservete, realiznd totodat i
validarea i controlul mesajului;
Acest adaptor este deci parte integrant a procesului de business specific aplicaiei destinaie.

Avantaje

33

Dezavantaje

Orientarea pe aplicaiile destinaie;

Sigurana comuncaiei prin transmiterea


datelor sub form de mesaje;
Transformarea i rutearea mesajelor pe
baza unor standarde unice;

Distribuirea ncrcrii.

Obligativitatea utilizrii unui format canonic;


Regulile de transformare i rutare sunt
implementate pe baza unui format canonic i nu
n funcie de procesul de business;
Transformrile nu sunt centralizate.

Topologii ale arhitecturilor de integrare (VI)


Modelul de tip fulg-de-zpad:
Generalizare a modelului Hub-and-Spoke n care toate aplicaiile trimit i primesc mesaje
prin intermediul unui server sau motor central care asigur conectarea subsistemului pe
care l integreaz la alte subsiteme similare, pe baze mai multor tipuri de crierii precum:
Localizarea geografic;
Tipul reelei de comunicaiei dintre platforme;
Gradul de ncrcare;
Serviciile funcionale oferite.

Avantaje

34

Similare arhitecturii Hub-and-Spoke;


Distribuirea suplimentar a ncrcrii.

Dezavantaje

Complexitatea ridicat n administrarea soluiei


de integrare datorit necesitii propagrii
parametrilor ntr-un mediu distribuit.

Topologii ale arhitecturilor de integrare (VII)


Modelul bazat pe magistral:
Corespunde nevoii de a permite oricrei aplicaii s schimbe date cu oricare alt aplicaie
fr a trece neaprat printr-un nod central de tip broker;
Schimbul de date dintre aplicaii se poate realiza n mai muli pai;
O trstur definitorie a acestui model este controlul fluxului de date dintre aplicaii;
Atunci cand o aplicaie trimite date pe magistral, magistrala este responsabil cu livrarea
lor la destinaie.

Arhitecturile bazate pe magistral pot fi mprite n trei mari grupuri:


Arhitecturi de tip magistral orientate pe flux;
Arhitecturi de tip magistral orientate spre integrare;
Arhitecturi de tip magistral orientate pe servicii.

35

Topologii ale arhitecturilor de integrare (VIII)


Modelul bazat pe magistral orientat pe flux:
Se concentreaz asupra fluxului transmiterii directe a datelor de la o aplicaiei la alta, cu
posibilitatea transformrii lor de ctre un motor intermediar;
Scopul principal al unei asemenea arhitecturi este cine poate trimte ce i cui.
Aplicaia A trimite un flux de date
ctre aplicaia B. Aplicaia B nu
poate interpreta date n format EDI
i nici fluxuri de mesaje. Pentru a
suplini
acest
neajuns,
este
necesar interpunerea unui nivel
intermediar n flux pentru a
transforma datele din flux n formate
procesabile de ctre aplicaia B.

Avantaje

Dezavantaje

36

Aplicaiile surs pot trimite date pe


magistral fr a ine cont de formatul de
reprezentare;
Controlul i autorizarea schimbului de date
ntre aplicaii;
Schimbul de date nu necesit verificarea
sintactic de ctre intrastructura de
comunicaie;
Disponibilitatea pentru majoritatea
platformelor.

Necesit stabilirea unei ci fixe de comunicare


ntre aplicaii;
Implementarea dificil a mai multor destinaii
pentru acelai flux iniial.

Topologii ale arhitecturilor de integrare (IX)


Modelul bazat pe magistral orientat spre integrare:
Similar arhitecturilor de tip Hub-and-Spoke, avnd n plus o serie de adaptori care
comunic prin intermediul unei magistrale;
Aplicaiile comunic prin intermediul conectorilor proprii ataai magistralei, care
convertesc datele ntr-o form de reprezentare standard pe care le trimit apoi oriunde este
nevoie;
Este posibil ca destinaia intermediar a datelor s fie un motor de transformare care
modific sau mbuntete datele pe care le retransmite apoi ctre posibilele lor
destinaii iniiale.

37

Aplicaia A trimite date ctre aplicaiile B i C. Datele interschimbate sunt reprezentate n format XML, care
s-a impus ca standard de facto pentru reprezentarea canonic a informaiei. Apoi acestea sunt transportate ca
mesaje. Aplicaia A poate consuma direct datele reprezentate n format XML , dat fiind c dispune de un
conector la magistral care interpreteaz n mod nativ acest format. Aplicaia B n schimb necesit
mbuntirea semantic a datelor primite. Aa nct datele trimise n format XML sunt transformate i
mbuntite n coninut semantic prin intermediul unui motor de transformare i reprezentate din nou n
format XML . Atunci cnd datele n format XML prelucrate vor ajunge la aplicaia B, conectorul
aplicaiei B ctre magistral le va converti n formatul nativ neles de aplicaia B.

Topologii ale arhitecturilor de integrare (X)


Modelul bazat pe magistral orientat spre integrare:
Avantaje

38

Scalabilitatea ridicat a integrrii;


Distribuirea procesrii ntre platformele
participante la integrare;
Arhitectur robust dat fiind c n cazul unui
incident local al unui motor de transformare,
acesta poate fi nlocuit de un altul la
distan;
Sigurana schimbului de date deoarece
acesta se face prin intermediul schimbului
de mesaje;
Disponibilitatea implementrii pentru
majoritatea platformelor.

Dezavantaje

Controlul sczut al destinaiei finale a datelor;


Creterea ncrcrrii prin conversia datelor n
formate standard n fiecare punct al magistralei;
Dependena de servere de integrare monolit care
nu pot face fa transferului unui volum mare de
date;
Transformarea, mbuntirea i rutarea datelor
sunt nc tratate la nivel operaional tehnic ca
netransparente.

Topologii ale arhitecturilor de integrare (XI)


Modelul bazat pe magistral orientat pe servicii:
Sunt rezultatul evoluiei arhitecturilor de integrare prin ncorporarea mecanismului de
expunere a funcionalitii aplicaiilor prin intermediul unui nivel intermediar de acces.
Aplicaia A preia datele de intrare din fiiere.
Magistrala de servicii furnizeaz fiierele
ctre serviciul care este responsabil cu
deciziile privind rutarea datelor n funcie de
context. Serviciul trimite apoi datele direct
ctre aplicaiile C i B prin intermediul
serviciului .

Avantaje

Dezavantaje

39

Scalabilitatea ridicat a integrrii;


Serviciile pot ascunde nivelul semantic
reprezentat prin diversele implementri
tehnice;
Schimburile de date i informaii ntre
aplicaii pot fi orchestrate n fluxuri;
Controlul mai bun asupra destinaiei unui
flux de date;
Implementarea standardelor.

Creterea ncrcrii sistemului prin conversia


datelor n formate standard;
Dependena de servere de integrare monolit care
nu pot face fa transferului unui volum mare de
date;
Dificultatea integrrii aplicaiilor mai vechi care nu
sunt conforme cu cele mai noi standarde n
domeniul comunicrii ntre aplicaii prin intermediul
serviciilor.

Comparaie ntre topologiile


arhitecturilor de integrare

40

Nodurile comunic
direct, fiecare cu
fiecare;
Fiecare nod
dispune de cte un
adaptor pentru
celelalte noduri.

Nodurile comunic
indirect, prin intermediul
unui nod central;
Adaptorii pot fi localizai la
nivelul nodului central sau
pe fiecare nod n parte.

Nodurile comunic att


indirect ct i direct prin
intermediul unei magistrale;
Magistrala ofer servicii
delocalizate consumate de
noduri prin intermediul unor
adaptori.

Complexitatea soluiilor pentru


integrarea aplicaiilor distribuite

41

Componentele Apache Camel

42

Integrarea prin schimbul de mesaje

Agenda
Sisteme pentru schimbul de mesaje:
Mesaj;
Canal de mesaj;
Puncte de acces;
Conducte i filtre;

Rutarea mesajelor;
Transformarea mesajelor.

44

Agenda
Sisteme pentru schimbul de mesaje;
Canale pentru schimbul de mesaje;
Puncte de acces la mesaje;
Construirea mesajelor;
Rutarea mesajelor;
Transformarea mesajelor;
Gestiunea sistemului.

45

Sisteme pentru schimbul de mesaje


Simb
ol

Denumire

Canal de mesaje

Modalitatea prin care mai mule aplicaii conectate prin intermediul unui
canal de comunicaie pot reprezenta datele interschimbate n vederea
transmiterii de informaii ntre ele.
Instrumentul prin care mai multe aplicaii comunic ntre ele prin
schimbul de mesaje.

Punct de acces

Mecanismul prin care o aplicaie se conecteaz la un canal de mesaje


pentru a trimite i primi informaii.

Mesaj

Conducte i filtre

Rutare de mesaje
Translator de
mesaje

46

Descriere

Instrumentele care permit aplicarea de procesri complexe asupra


mesajelor cu un grad de independen, flexibilitate i reutilizabilitate
ridicat.
Mecanismul de decuplare a pailor procesrii individuale a mesajelor
care permite aplicarea de filtre n funcie de un set de condiii
specificat.
Instrumentul cu ajutorul cruia mai multe sisteme care utilizeaz
diferite formate de reprezentare a datelor pot comunica unul cu cellalt
n vederea schimbului de informaii.

Mesaj
Mesajul constituie modalitatea prin care mai mule
aplicaii conectate prin intermediul unui canal de
comunicaie pot reprezenta datele interschimbate n
vederea transmiterii de informaii ntre ele.
Tipuri de mesaje:
Mesaje de intrare un mesaj care parcurge o rut
plecnd de la un punct de acces de tip consumator ctre
unul de tip productor, iniiind procesul de transfer de
date;
Mesaje de ieire un mesaj care parcurge o rut de la
un punct de acces de tip productor ctre unul de tip
consumator, ca rspuns la un mesaj de intrare, ncheind
procesul de transfer de date.
Structura unui mesaj:
Antet conine metadatele care descriu datele propriuzise ale mesajului;
Corp de obicei, conine datele din care sunt extrase
informaiile n urma schimbului de mesaje;
Ataamente bloc opional coninnd date auxiliare
pentru completarea schimbului de informaii, necesare a
fi ataate celor trimise n corpul mesajului.
47

Canal de mesaje
Un canal pentru schimbul de mesaje
este o component esenial utilizat
pentru conectarea participanilor ntrun sistem bazat pe transmiterea de
mesaje.

Tipuri de canale pentru schimbul de mesaje:


Canal de tip punct la punct: asigur comunicarea ntre un singur emitent i destinatar
pentru mesajul schimbat;
Canal de tip subscriere: asigur subscrierea mai multor destinatari care sunt notificai
prin intermediul unui mesaj trimis de emitent la un moment dat;
Canal de tip punct terminal: trateaz cazul mesajelor care nu pot fi livrate la destinatar;
Canal care garanteaz livrarea: asigur livrarea mesajului ctre destinatarul acestuia
chiar i n condiiile n care canalul de comunicaie este afectat de erori de transmitere;
Magistral de mesaje: arhitectur de comunicaie care asigur decuplarea aplicaiilor,
astfel ca o aplicaie s poat s se ataeze sau s se decupleze fr afectarea
celorlaltor participani la schimbul de mesaje.
48

Punct de acces
Punctul
de acces constituie
mecanismul prin care o aplicaie se
conecteaz la un canal de mesaje
pentru a trimite i primi informaii.
Un punct de acces reprezint o interfa ntre aplicaii i sistemul pentru schimbul de mesaje,
prin care acestea transmit i recepioneaz date. La baza acestora se afl un emitent,
denumit adesea i proxy, care este responsabil cu trimiterea mesajului de intrare, la cellalt
capt aflndu-se un destinatar, a crui sarcin este s recepioneze mesajul de intrare. Un
punct de acces poate fi identificat n mod generic printr-o adres URI.
Tipuri de puncte de acces:
Consumator este localizat la nceputul unei rute i iniiaz procesul de tranformare prin
citirea mesajului de intrare, echivalent unui receptor.
Productor este localizat la sfritul unei rute i finalizeaz procesul de transformare
prin scrierea mesajului de ieire pe canalul destinaie, echivalent unui emitor. O rutare
de mesaje poate avea mai multe puncte de tip productor care genereaz diferite mesaje
de ieire pentru un singur mesaj de intrare, n funcie de coninutul acestuia i de starea
sistemului de integrare la momentul procesrii lui.

49

Conducte i filtre

Conductele i filtrele reprezint o modalitate standard de construire a rutelor prin nlnuirea


i restrngerea domeniului de aplicare al procesatoarelor care transform mesajele de
intrare, caz n care mesajul de ieire construit de un procesator este preluat ca intrare
pentru urmtorul din secven, permind astfel descopunerea procesului de transformare
n servicii complexe ncapsulate.
Aplicarea de filtre permite procesarea selectiv a mesajelor prin blocarea sau ntrzierea
execuiei unor mesaje n funcie de criteriile de filtrare, existnd posibilitatea definirii unor
filtre actualizate dinamic, ceea ce permite procesului de integrare un grad ridicat de
adaptabilitate la datele schimbate ntre aplicaii i partenerii acestora. n timp ce rutarea
mesajelor realizeaz selecia proiectului de integrare n func ie de identificatori cheie
prezeni n mesajele de intrare, filtrarea asigur procesarea selectiv a mesajelor cu
ajutorul aceluiai procesator ales anterior de ctre procesul de rutare.

50

Rutarea mesajelor
Rutarea mesajelor descrie procesul
prin care mesajele sunt preluate de pe
canalele
de
intrare
de
ctre
componentele de tip consumator i
livrate pe canale de ieire de ctre
componentele de tip productor, fr
modificarea coninutului mesajelor.
Rutarea mesajelor n funcie de
coninutul lor permite selectarea
destinaiei unde trebuie livrat mesajul
prin analiza coninutului acestuia.
Un proces de rutare a mesajelor reprezint un tip special de filtrare a unui mesaj de intrare
care este redirecionat ctre o singur destinaie dintre mai multe posibile n funcie de un
anumit criteriu, fr modificarea coninutului mesajului iniial.

51

Transformarea mesajelor
Transformarea mesajelor se realizeaz
cu ajutorul unor componente care
schimb
coninutul
unui
mesaj,
transformndu-l ntr-un alt format de
reprezentare sau sub o alt structur.

52

Canale pentru schimbul de mesaje

Agenda
Canal de tip punct la punct;
Canal de tip subscriere i notificare;
Canal de tip punct terminal;
Canal care garanteaz livrarea;
Magistral de mesaje.

54

Canale pentru schimbul de mesaje


Simb
ol

Denumire

Descriere

Canal de tip
punct la punct
Canal de tip
subscriere i
notificare
Canal de tip
punct terminal
Canal care
garanteaz
livrarea

Asigur comunicarea ntre un singur emitent i destinatar


pentru mesajul schimbat.
Asigur subscrierea mai multor destinatari care sunt notificai
prin intermediul unui mesaj trimis de emitent la un moment
dat.
Trateaz cazul mesajelor care nu pot fi livrate la destinatar.

Magistral de
mesaje

55

Asigur livrarea mesajului ctre destinatarul acestuia chiar i


n condiiile n care canalul de comunicaie este afectat de
erori de transmitere.
Arhitectur de comunicaie care asigur decuplarea
aplicaiilor, astfel ca o aplicaie s poat s se ataeze sau s
se decupleze fr afectarea celorlaltor participani la schimbul
de mesaje.

Canal de tip punct la punct

Un canal de tip punct la punct permite accesul unui singur consumator pentru a
recepiona mesajul de ieire la un moment dat. n cazul n care mai muli consumatori
trebuie s partajeze la un moment dat canalul de ieire, sarcina asigurrii accesului unic
la mesajul de rspuns revine canalului.
Urmtoarele componente implementeaz canale de tip punct la punct:
JMS implementarea are la baz o coad de mesaje accesibil printr-un URL, de
forma jms:queue:namespace.name;
ActiveMQ implementarea se bazeaz tot pe cozi de mesaje adresabile printr-un
URL de forma activemq:queue:namespace.name;
SEDA implementarea are la baz o coad blocant, adresabil printr-un URL de
forma seda:name;
JPA este utilizat pentru asigurarea persistenei ntr-o baz de date
XMPP descrie canale utilizate pentru comunicarea n timp real ntre persoane.
56

Canal de tip subscriere i notificare


Un canal de tip subcriere i
notificare permite mai multor
consumatori s se nregistreze
pentru a pimi mesajele trimise
se acel canal la un moment
dat. Asemena canale sunt
utilizate pentru a trimite un
mesaj mai multor consumatori
n mod asincron, prin notificare.

57

Canal de tip punct terminal


Canalele
de
tip
punct
terminal
implementeaz aciunile de compensare
n cazul n care un mesaj nu poate fi
livrat la detinaie, precum rencercarea
trimiterii sau arhivarea mesajelor care nu
pot fi livrate chiar i dup ce s-a
rencercat trimiterea lor. Este posibil s
atam un procesator care s fie
executat nainte ca un canal de tip punct
terminal s ncerce retransmiterea
datelor unui mesaj, avnd astfel
posibilitatea s modificm mesajul
nainte de a fi retransmis.

58

Canal care garanteaz livrarea

Garantarea livrrii mesajelor nseamn c din momentul n care un mesaj intr n


procesul de schimb de mesaje, acesta garanteaz c mesajul va ajunge la
destinaie, chiar dac pari ale sistemului de integrare pot nceta s mai
funcioneze. n general, pentru garantarea livrrii mesajelor se utilizeaz un mod
de stocare a lor naintea livrrii la destinaie, urmnd s fie recuperate i
retransmise n caz de eroare. Funcionarea canalelor pentru garantarea livrrii are
la baz utilizarea unui suport persistent pentru stocarea mesajelor care nu pot fi
livrate destinatarilor, n vederea retrimiterii lor n momentul n care canalele
destinatare devin active.

59

Magistral de mesaje
Magistrala pentru schimbul de mesaje descrie o
arhitectur de comunicaie care permite
conectarea i deconectarea transparent a mai
multor aplicaii rulnd n domenii diferite, fr a
afecta funcionarea pe ansamblu a sistemului de
integrare, aplicaiile putndu-se ataa sau detaa
n mod transparent.
Magistrala pentru schimbul de mesaje are urmtoarele caracteristici:
Infrastructur comun de comunicare rutarea mesajelor se realizeaz cu ajutorul unei
arhitecturi bazat pe partajarea procesatoarelor puse la dispoziie de platform pentru
fiecare aplicaie care ader la magistral n parte. La baza acestei infrastructuri st lo
stiv de protocoale eterogene de transport care utilizeaz diferite formate de
reprezentare a datelor;
Adaptoare conversia ntre diferitele formate utilizate pentru reprezentarea datelor este
realizat cu ajutorul adaptoarelor, astfel nct, ntreaga platform poate fi privit ca un
adaptor ntre aplicaiile implicate n schimbul de mesaje prin intermediul ei. n unele
cazurie este posibil chiar integrarea adaptoarelor direct n aplicaia extern, sau cel
pentru serializarea datelor.

60

Puncte de acces i construirea mesajelor

Agenda
Puncte de acces la mesaje:
Asociator de structur;
Consumator orientat pe evenimente;
Consumator prin interogare periodic;
Consumatori concureni;
Dispecerizator de mesaje;
Subscriere durabil;
Consumator idempotent;
Client tranzacional;
Poart de mesaje;
Activator de serviciu.

Construirea mesajelor:
62

Identificatorul de corelaie;
Adresa de revenire.

Puncte de acces la mesaje


Denumire

Descriere

Asociator de
structur

Realizeaz corespondena ntre diferitele cmpurile ale


mesajelor transmise.

Consumator orientat Primete notificri privind mesajele noi pentru a le prelua i


pe evenimente
extrage.
Consumator prin
interogare periodic

Interogheaz n permanen canalul pentru a extrage


mesajele noi primite.

Consumatori
concureni

Trateaz mesajele n mod concurent, permind i altor


consumatori accesul la acestea.

Dispecerizator de
mesaje

Decide n privina livrrii mesajelor de pe canalul de


comunicaie unui anumit destinatar.

Consumator selectiv Realizeaz selecia mesajelor ce urmeaz a fi tratate.

63

Puncte de acces la mesaje (II)

64

Denumire

Descriere

Subscriere durabil

Asigur tratarea mesajelor pentru care s-a subscris chiar i


n cazul n care consumatorul nu este activ la momentul
primirii mesajului.

Consumator
idempotent

Asigur tratarea mesajelor duplicate recepionate.

Client tranzacional

Implementeaz mecanisme de compensare pentru controlul


tranzaciilor n schimbul de mesaje.

Poart de mesaje

ncapsuleaz mecanismele specifice schimbului de mesaje,


expunnd o interfa pentru comunicarea cu sistemul
integrat.

Activator de serviciu

Asigur declaarea execuiei unui serviciu de procesare n


momentul primirii mesajului ateptat.

Asociator de structur
Un asociator de structur descrie mecanismul de construire a
obiectelor specifice unui domeniu de procesare din mesaje ntrun formar canonic, ct mai independent de platform posibil.
Mesajele canonice trebuie s permit transmiterea prin
intermediul unei magistrale, utilizat pentru integrarea unei
varieti de sisteme, dintre care unele pot s nu fie orientate pe
procesarea obiectelor. Un exemplu tipic de asociator de
structur este un punct de acces de tip ORM.

65

Consumator orientat pe evenimente

Un consumator orientat pe evenimente permite


activarea canalului de procesare n momentul
declanrii unui anumit eveniment.

66

Consumator prin interogare periodic

Un consumator prin interogare periodic


extrage mesaje cu o anumit frecven pe care
le utilizeaz pentru activarea canalului de
procesare.

67

Consumatori concureni
Mecanismul consumatorilor concureni
permite mai multor consumatori s
extrag simultan mesaje din aceeai
coad, oferind garania c fiecare
mesaj va fi procesat cel doar o
singur dat. Acest mecanism poate fi
utilizat pentru a nlocui procesarea
serial
a
mesajelor
cu
cea
concurent.

68

Dispecerizator de mesaje

Un dispecerizator de mesaje este


utilizat pentru a consuma mesaje
dintr-un canal prin distribuirea lor
ctre o serie de procesatori locali,
care sunt responsabili cu tratarea
mesajelor.

69

Consumator selectiv
Un consumator selectiv descrie
mecanismul prin care un canal aplic o
filtrare mesajelor primite, astfel nct
doar mesajele care ndeplinesc o
anumit condiie ajung s fie
procesate.

70

Subscriere durabil
Un consumator de tip subscriere
durabil asigur primirea i procesarea
tuturor mesajelor unui canal de tip
subscriere i notificare, inclusiv a
mesajelor transmise n perioada n
care punctul de acces este deconectat
de la canal.

71

Consumator idempotent
Acest mecanism este utilizat pentru filtrarea mesajelor prin eliminarea duplicatelor.

72

Client tranzacional

Punctele de acces de tip client tranzacional


implementeaz schimbul de mesaje ntr-o
manier tranzacional ntre dou sisteme.

73

Poart de mesaje

Poarta de mesaje descrie abordarea integrrii prin intermediul


unui sistem orientat pe schimbul de mesaje n care interfaa care
implementeaz schimbul de mesaje este transparent
dezvoltatorilor la nivel aplicaie, spre exemplu, transformarea
invocrilor sincrone n schimburi de mesaje de tip cerererspuns se realizeaz transparent, fr ca dezvoltatorii integrrii
s fie nevoii s gestioneze aceast schimbare.

74

Activator de serviciu
Activatorul de serviciu descrie mecanismul prin
intermediul cruia un set de operaii este invocat ca
rspuns la un mesaj primit. Rolul activatorului de
serviciu este s identifice operaia care trebuie
executat i s extrag din mesajul primit argumentele
pentru apelul acesteia.

75

Construirea mesajelor

76

Denumire

Descriere

Identificatorul de
corelaie

Descrie modalitatea prin care se identific de ctre un


procesator crei cereri i corespunde rspunsul primit.

Adresa de revenire

Precizeaz unde s fie livrat rspunsul unei cereri.

Identificatorul de corelaie

Identificatorul de corelaie este utilizat


pentru asocierea mesajului de rspuns
cererii n cazul comunicrii asincrone de
tip cerere-rspuns. Acesta are la baz
identificarea unic a cererilor prin
intermediul unui identificator al cererii,
pentru care rspunsul va conine un
identificator de corelaie. Platforma
propus implementeaz transmiterea
acestor identificatori n antetul mesajelor.

77

Adresa de revenire

Adresa de revenire presupune


prezena n antetul mesajul iniial a
unei informaii care precizeaz
unde s fie livrat mesajul de
rspuns. Acest mecanism permite
decuplarea punctului de acces al
canalului
care
va
procesa
rspunsul de acela al canalului
care a generat mesajul iniial.
Recuplarea se poate realiza n
mod adaptativ, prin generarea
dinamic a valorii adresei de
revenire.

78

Rutarea mesajelor

Agenda

80

Rutare n funcie de coninut;


Filtrare;
Lista destinatarilor;
mprire;
Agregare;
Reordonare;
Compunere de mesaje;
mprtiere-readunare;
Avansare;
ncetinirea procesrii;
ntrziere;
Optimizarea ncrcrii;
Distribuie multipl;
Repetare;

Eantionare.

Rutarea mesajelor

81

Denumire

Descriere

Rutare n funcie de
coninut

Dirijarea mesajelor spre anumite canale pe baza


coninutului acestora.

Filtrare

Livrarea mesajelor doar ctre acele canale pentru care


prezint interes.

Lista destinatarilor

Trimiterea mesajelor ctre o list specificat dinamic de


destinatari.

mprire

Partiionarea mesajului n elementele componente pentru a


putea trata fiecare component ntr-un mod diferit.

Agregare

Combinarea rezultatelor atomice ntr-un ansamblu tratat


apoi unitar.

Reordonare

Rearanjarea mesajelor n secven pentru a reface fluxul de


date iniial.

Rutarea mesajelor (II)

82

Denumire

Descriere

Compunere de
mesaje

Combinarea mesajelor pentru a construi un bloc de mesaje


trimis n pachet.

mprtierereadunare

Trimiterea mesajului ctre mai muli destinatari i


recompunerea rspunsurilor acestora.

Avansare

Trecerea mesajului printr-o secven de pai construii n


mod dinamic n funcie de mesajul de intrare.

ncetinirea
procesrii

ncetinirea fluxul de tratarea a mesajelor pn la nivelul


convenit de componenta care efectueaz rutarea sau de
punctul de acces destinatar.

ntrziere

Ateptare introdus n tratarea mesajului.

Rutarea mesajelor (III)

83

Denumire

Descriere

Optimizarea
ncrcrii

Eficientizarea procesului de tratare a mesajului de-a lungul


nodurilor rutei.

Distribuie multipl

Trimiterea mesajului ctre mai multe puncte de acces


simultan.

Repetare

Reluarea tratrii mesajului pn la efectuarea procesrii


solicitate.

Eantionare

Extragerea de mostre din mesaj pentru evaluarea calitii


procesrii i evitarea supraaglomerrilor.

Rutarea n funcie de coninut


Rutarea mesajelor n funcie de
coninutul lor permite selectarea
destinaiei unde trebuie livrat
mesajul prin analiza coninutului
acestuia.

84

Filtru de mesaje

Un filtru de mesaje este un procesator utilizat pentru a elimina mesajele care nu


ndeplinesc un anumit criteriu. Filtrarea este implementat cu ajutorul unor unui set de
reguli care preiau ca argument predicate logice definite de proiectanii procesului de
integrare n funcie de valoarea de adevr a crora mesajul este acceptat sau blocat.

85

Lista destinatarilor
Livrarea ctre o list de destinatari
permite implementarea unui proces de
rutare n care mesajul de intrare este
trimis mai multor destinatari, care pot fi
determinai i n mod dinamic, la
momentul execuiei rutei pe baza unor
criterii de selecie definite anterior n mod
static, care pot fi la rndul lor
parametrizate.
O utilizare general a livrrii ctre o list de destinatari o constituie confirmarea primirii sau
trimiterii unui mesaj ca rezultat al integrrii ctre un canal al partenerului care a trimis mesajul
sau ctre o ter parte specificat prin contractul de integrare aferent canalului implicat n
procesarea mesajului. Tot prin intermediul acestui mecanism se poate ataa o list de
subscripii pentru notificarea asincron a activrii canalului aplicaiei.

86

Diviziunea mesajelor
Un procesator pentru diviziunea mesajelor
este utilizat pentru a mprii mesajul de
intrare ntr-o serie de mesaje de ieire,
fiecare mesaj de ieire coninnd pari ale
celui de intrare.
Mecanismele de mprire a mesajelor se pot combina cu cele de agregare pentru
recompunerea mesajului ntr-unul singur, dup efectuarea de procesri complexe asupra
parilor rezultate prin mprire, permind astfel transformri de structur i coninut asupra
mesajului iniial. n cazul execuiei n paralel a procesului de diviziune asupra mesajului de
intrare, este posibil ca pri de la sfritul su s fie disponibile pentru agregare naintea unor
de la nceputul mesajului, ceea ce conduce la schimbarea ordinii n care componentele
mesajului sunt recepionate de ctre procesatorul de agregare, astfel nct acestea trebuiesc
reordonate dup mprire pentru a se pstra coerena datelor n flux. Reodonarea se
realizeaz n mod implicit, dar poate fi solicitat prin apelul comenzii de post-procesare

87

Agregarea mesajelor
Un procesator pentru agregarea mesajelor
de intrare permite combinarea mai multor
mesaje ntr-unul singur.
Pentru controlul procesului de agregare se utilizeaz urmtoarele elemente:
Expresia de corelaie determin ce mesaje vor fi agregate, prin evaluarea pentru fiecare mesaj a unei
chei de corelaie, mesajele avnd aceeai cheie urmnd s fie grupate ntr-o singur secven de
agregare. Dac se dorete agregarea tuturor mesajelor de intrare, atunci trebuie folosit o cheie cu
valoare constant;
Condiia de evaluare a completitudinii determin dac o secven de mesaje ce trebuiesc agregate
este complet sau nu, prin precizarea dimensiunii, sau n general, prin intermediul unui predicat care
este evaluat pentru fiecare mesaj nc negrupat care are aceeai cheie de corelaie ca i cele din
secven deja grupate;
Algoritmul de agregare combin mesajele avnd aceei cheie de corelaie, care nu au fost deja
grupate pn la completarea secvenei, ntr-un singur mesaj agregat.

88

Reordonarea mesajelor
Strategia de reordonare a mesajelor n
secven permite sortarea mesajelor n funcie
de o expresie de secven, mesajele avnd o
valoare mai mic a numrului de secven fiind
plasate naintea celor cu o valoare mai mare.
Mecanisme pentru reordonarea mesajelor:
Reordonarea gruprilor colecteaz mesajele ntr-un grup prin sortarea rezultatului;
Reordonarea fluxului colecteaz mesajele n secven cresctoare prin analiza
distanei dintre ele.

89

Compunerea de mesaje
Compunerea de mesaje
permite procesarea unui
mesaj complex prin
mprire, rutarea prilor
rezultate ctre destinaii
dedicate i reagregarea
rspunsului ntr-un singur
mesaj rezultat.

90

mprtiere-readunare
Rutarea de tip mprtiere-readunare permite
trimiterea mesajelor ctre o serie de
destinatari specifiai n mod dinamic i
reagregarea rspunsurilor ntr-un singur
mesaj rezultat. Se poate realiza ca o
combinaie ntre mprire sau list de
destinatari i un agregator.

91

Transferul controlului
Mecanismul de transfer al controlului ntre
procesatoarele de rutare, permite trecerea
unui mesaj prin mai muli pai pn la
destinaie care nu sunt cunoscui la
momentul
proiectrii
procesului
de
integrare, rutele prin care poate trece fiind
stocate n antetul su i selectate n mod
dinamic de ctre fiecare procesator n parte
care se execut asupra mesajului de
intrare. Posibilele rute prin care mesajul
poate trece sunt definite n antetul su sub
forma unei liste separate prin virgul de
adrese URI.

92

ncetinirea procesrii
Mecanismul de ncetinire a procesrii mesajelor limiteaz fluxul de
mesaje care poate fi procesat n unitatea de timp pentru a evita
suprancrcarea punctelor consumator cu mesaje de intrare sau a
celor de tip productor cu mesaje de ieire. Un caz particular al
ncetinirii prelurii mesajelor l constituie ntrzierea asincron
non-blocant, care creaz un proces paralel pentru a prelua n
continuare mesajele ce urmeaz s fie procesate dup
completarea cozii procesatorului curent, urmnd ca de fiecare
dat cnd i acest proces secund se completeaz, s se creeze
un altul subsecvent lui, motorul de execuie ateptnd
sincronizarea n final prin unirea tuturor firelor astfel pornite.

93

ntrzierea procesrii
Acest mecanism ofer un procesator care permite introducerea
unui interval de ateptare naintea aplicrii procesrii mesajelor
primite. ntrzierea poate fi util pentru completarea unei secvene
de mesaje care s fie ulterior procesate mpreun, sau pentru
resincronizarea fluxurilor de mesaje.

94

Optimizarea ncrcrii
Rutarea pentru optimizarea ncrcrii permite delegarea procesrii mesajelor ctre un anumit
procesator dintr-o serie de puncte de acces, pe baza unei strategii sau politici de uniformizare
a gradului de ncrcare a acestora.
Strategii de optimizare a ncrcrii procesatorilor:
Round-Robin simplu procesatoarele pregtite pentru execuie sunt organizate ntr-o coad,
mesajele fiind trimise primului procesator din coad pentru o cuant de timp dt; dac dup expirarea
cuantei de timp, procesul nca nu s-a terminat, el va fi trecut din nou n coad, n ultima poziie,
procesatoarele fiind executate n ordinea sosirii lor n coada READY;
Round-Robin limitat procesatoarele nou venite sunt introduse n coada principal care ateapt
numai pentru k treceri; dac nu se termin n k treceri, ele vor fi trecute ntr-o coad secundar, de
unde se iau cnd nu mai este niciun proces n coada principal;
Round-Robin pe mai multe niveluri, cu reacie invers procesatoarele nou venite vor fi inserate n
prima coad; dac ele nu se termin n k cuante, ele vor fi trecute n coada urmtoare. Cnd n coada
iniial nu mai este niciun proces, se va trece la aplicarea unui Round-Robin simplu n coada
urmtoare. Dac un anumit timp nu s-a facut nicio planificare n coada i, primul procesator din aceast
coad este promovat ultimul n coada i-1 (mbtrnirea procesatoarelor le crete prioritatea).

95

Distribuia multipl
Mecanismul de rutare prin distribuie
multipl este o variaie a punctului de
acces de tip lista destinatarilor prin
adugarea unei strategii dinamice care
determin n funcie de mesajul de
intrare lista destinatarilor la care trebuie
acesta trimis.

96

Repetarea mesajelor
Rutarea prin repetarea mesajelor permite procesarea
unui mesaje de mai multe ori, fiind util n scopul
testrii integrrii.

97

Eantionarea
Mecanismul de eantionare permite extragerea unei secvene din fluxul de
mesaje cu ajutorul unei rute bazate pe intervale de eantionare, pe durata
crora este permis trecerea unui singur schimb de mesaje care compune
secvena de tip mostr, n timp ce restul vor fi oprite.

98

Transformarea i gestiunea mesajelor

Agenda
mbogirea coninutului;

Filtrarea coninutului;
Recuperarea coninutului;
Normalizarea;
Sortarea;
Ascultarea canalului;
Jurnalizarea.

100

Transformarea mesajelor
Simbol

101

Denumire

Descriere

mbogirea
coninutului

Adugarea de coninut solicitat de destinatarii mesajului iniial.

Filtrarea
coninutului

Extragerea coninutul relevant din cadrul mesajelor.

Recuperarea
coninutului

Analiza datelor mesajelor n vederea reduceii traficului pe canalele de


comunicaie fr pierderea de informaii.

Normalizarea

Procesarea mesajelor echivalente semantic avnd formate diferite de


repezentare.

Sortarea

Ordonarea coninutului mesajului dup anumite criterii.

mbogirea coninutului
mbogirea coninutului const
n adugarea de informaii
adiionale mesajului iniial din
surse externe.

102

Filtrarea coninutului
Spre deosebire de rutarea mesajelor prin
filtrare, care proceseaz doar anumite mesaje
ce ndeplinesc criteriile de filtrare, filtrarea
coninutului presupune eliminarea din corpul
mesajelor a unor.

103

Recuperarea coninutului
Recuperarea
coninutului
permite, ntr-o prim faz,
nlocuirea mesajului cu o cheie
unic, care poate fi utilizat
ulterior
pentru
recuperarea
coninutului mesajului dintr-un
depozit persistent, n cazul in
care mesajul are o dimensiune
ridicat.

104

Normalizarea
Normalizarea se utilizeaz
pentru
a
uniformiza
mesaje
care
sunt
semantic echivalente, dar
sunt
reprezentate
n
formate sintactice diferite.

105

Sortarea

Sortarea se utilizeaz pentru a reordona coninutul corpului


unui mesaj, presupunnd c acesta conine o list de
elemente a cror ordine poate fi schimbat.

106

Gestiunea sistemului
Denumire

Descriere

Ascultarea canalului Permite inspectarea mesajelor care sunt schimbate pe un


canal prin realizarea unei copii care este ulterior analizat.
Jurnalizarea

107

Colecteaz aciunile fcute de utilizatori n sistem pentru


auditarea ulterioar.

Ascultarea canalului
Ascultarea canalului permite
rutarea unei copii a mesajului
ctre o locaie separat, i in
acelai
timp
livrarea
mesajului ctre destinaia
iniial.

108

Jurnalizarea integrrii

Jurnalizarea se poate realiza apelnd la urmtoarele implementri:


Metode care scriu n fiierul de jurnalizare;
Interceptori ataai fluxurilor de mesaje;
Procesatori sau componente configurate n cadrul punctelor de acces.

109

Implementarea integrrii
prin schimbul de mesaje

Agenda

111

Modelul de integrare;
Arhitectura motorului de integrare;
Punctele de acces;
Rutarea mesajelor;
Filtrarea mesajelor;
Distribuia multipl a mesajelor;
Auditarea mesajelor;
Transformarea datelor;
mbogirea coninutului mesajelor;
Serializarea i deserializarea obiectelor;
Conversia tipului obiectelor.

Modelul de integrare

Modelul de integrare se bazeaz pe schimbul de mesaje ntre un emite i un destinatar. n cadrul unui
schimb de mesaje, acest model poate fi aplicat recursiv pentru a permite modelarea prin descompunea
n subschimburi a comunicrii dintre mai muli emiteni sau ctre mai muli destinatari.

112

Un mesaj este compus din:

Antete: descriu metadata asociate informaiilor transmise, incluznd


identificatorul mesajului, identificatorul de corelaie n cazul mesajelor de ieire
pentru a preciza crui schimb de mesaje i corespund, emitentul sau
destinatarul mesajului i altele, fiind serializate ca hri asociative cu cheie de
tip ir de caractere i valoare obiect generic;

Corp: conine un obiect cu ajutorul cruia se pot accesa datele transmise pe


canalul de integrare i care trebuie adaptat tipului de obiecte cu care opereaz
emitentul i destinatarul mesajului cu ajutorul unor transformri;

Indicator de eroare: unele protocoale, precum WSDL, descriu rspunsul unei


integrri ca fiind de tip rezultat sau excepie, caz n care corpul mesajului
trebuie s conin un indicator pentru interpretarea coniunutului transmis ca
obiect pentru rezultatul integrrii;

Ataamente: permit transferarea unor date auxiliare ataate cererii de


integrare, ca de exemplu ataamentele unui e-mail sau pentru transferul unor
blocuri de date mari n timpul invocrii unei metode a unui serviciu Web SOAP.

Modelul de integrare (II)


Schimbul de mesaje este compus din:

Identificator: numr unic generat de integrator sau setat


manual n momentul iniierii schimbului de mesaje;

ablon de integrare: descrie tipul schimbului de mesaje,


dac este de intrare sau intrare i ieire, n cazul unui
schimb de tip intrare i ieire, se va genera un mesaj de
confirmare trimis iniiatorului schimbului;

Excepie: conine eroare aprut n orice moment al


execuiei integrrii;

Proprieti: metadata similare antetelor mesajelor avnd


durat de via egal cu durata de execuie a schimbului
de mesaje;

Mesaj de intrare: conine datele i descriptorii care iniiaz


schimbul de mesaje, fapt pentru care prezena sa este
obligatori pentru declanarea integrrii;

Mesaj de ieire: conine datele i descrptorii rezultai n


urma procesrii schimbului de mesaje, care vor fi generai
doar dac ablonul de integrare este de tip intrare i ieire.

113

Modelul de integrare (III)


Contextul de integrare este alctuit din:

Componente: adaptoare care permit schimbul


de mesaje utiliznd diferite protocoale,
descoperite i ncrcate m mod dinamic din
CLASSPATH sau prin activarea unui resurse
OSGi.

Puncte de acces: instane de componente care


identific sursa sau destinaia unui schimb de
mesaje;

Rute: descriu mecanismele de transportare a


mesajelor ntre punctele de acces productor i
cele consumator, fr alterarea coninutului
mesajelor;

114

Convertoare de tip: permit transformarea unui obiect n alt obiect prin schimbarea clasei;
Formate de date: descriu modalitatea de serializare a datelor mesajelor schimbate;
Registru: gestioneaz obiectele care implementeaz diverse faete ale procesului de integrare,
incluznd strategii de rutare, mprire sau agregare, predicate ale condiiilor de filtrare, mprire,
rutare sau agregare i altele, permind accesarea lor n mod direct, dup indentificatorul cu care au
fost nregistrare;
Limbaje: motoare de execuie utilizate pentru interpretarea expresiilor din diferitele condiii aplicate
obiectelor de integrare, pentru accesarea i extragerea unor cmpuri din datele mesajelor schimbate.

Arhitectura motorului de integrare

115

Motorul de integrare este compus din:

Context de integrare: descrie logica integrrii cu ajutorul rutelor care fac apel la diverse
componente de integrare pentru a accesa datele mesajelor de intrare i a construi i livra mesajele de
ieire folosind diverse procesatoare de rutare, filtrare, mprire, agregare i altele;

Motor de execuie a rutelor: este reponsabil cu interpretarea codului rutelor prin transformarea lor n
secvene de apel de metode i executarea acestor metode;

Procesatoare: execut diverse operaii asupra fluxului de mesaje, precum rutare, filtrare, mprire,
agregare i altele;

Componente de acces: permit consumarea mesajelor cu ajutorul protocoalelor de comunicaie.

Punctele de acces
Un punct de acces este descris prin:

Schem: corespunde protocolului utilizat pentru care trebuie s existe o component de acces
nregistrat n prealabil;
Context: identific o resurs care poate fi accesat n mod unic cu ajutorul valorii contextului respectiv;
Opiuni de acces: precizeaz faete sau modaliti n care va fi consumat resursa respectiv.

Consumatorii pot extrage mesajele n dou moduri:

Prin subscriere pentru a primi notificri n momentul n


care datele sunt disponibile pe canal;

Prin interogare periodic i extragerea datelor, dac


acestea sunt disponibile la momentul interogrii.
Modalitatea de acces este specific componentei care
gestioneaz punctul de acces i care poate permite precizarea
acestei modaliti cu ajutorul opiunilor de acces, n cazul n
care suport ambele politici.
116

Punctele de acces (II)


Fluxul de date este gestionat astfel:

Punctul de acces care corespund iniierii unei rute


genereaz un mesaj n momentul notificrii sau prin
interogare periodic;

n urma primirii unui mesaj se creaz un schimb de


mesaje pentru tratarea acestuia;

n cadrul unei rute, punctele de acces de tip productor


creaz noi subschimburi de mesaje, prin generarea
unor mesaje ca rezultat al activrii periodice sau n
momentul n care un consumator solicit extragarea
unor date adiionale;

Consumatorii unei rute extrag date din mesajele primite


de ctre punctele de acces care iniiaz ruta, sau prin
apelarea productorilor pentru a obine date atiionale
n vederea mbogirii coninutului mesajului consumat;

Consumatorii apeleaz procesatoare de rutare, filtrare,


mprire, agregare, tranformare, etc., n vederea
adaptrii mesajului primit la specificul modalitii de
consum.

117

Punctele de acces (III)


Copierea unui fiier utiliznd componenta file:

118

Rutarea mesajelor
Rutarea descrie modalitatea cu ajutorul creia mesajele sunt transmise la destinaie.
S considerm urmtoarea integrare:
Un magazin pentru componente de motociclet
permite clienilor s iniieze o cerere cu ajutorul
unei aplicaii Web sau direct, prin plasarea unei
comenzi pe FTP la o adres;

Iniial, cererile depuse prin FTP erau n format


CSV, pentru ca ulterior s se utilizeze XML-ul
pentru cererile venit prin aplicaia Web;

Integrarea necesit transformarea mesajelor n


obiecte, plasarea obiectelor pe o coad de
mesaje i procesarea din coad cu un sistem
dedicat, existent n cadrul firmei.
Pentru accesarea canalului FTP definim un punct de
acces de forma:

Mesajele extrase sunt transmise unei cozi ActiveMQ:

119

Rutarea mesajelor (II)

Procesatoarele permit adaptarea


rutrii la contextul schimbului de
mesaje prin interpunerea ntre
consumatorul mesajului generat
de punctul de acces de intrare i
productorului
punctuului
de
acces de ieire.

120

Rutarea mesajelor (III)


Rutarea n funcie de coninut permite
trimiterea mesajelor ctre un anumit
destinatar n funcie de elemente din corpul
sau din antetul mesajului.
Spre exemplu, n funcie de extensia
fiierului pus pe FTP, putem decide sa rutm
mesajele ctre o coad destinat fiierelor
XML i alta pentru fiierele cu extensia CSV.
Condiia poate fi exprimat i cu ajutorul unui predicat.
Predicatul ofer o metod pentru evaluarea schimbului
de mesaje:

121

Filtrarea mesajelor
Filtrarea
presupune
procesarea
selectiv a mesajelor n funcie de
ndeplinirea unui criteriu de filtrare.
De exemplu, putem elimina din procesare mesajele de pe coada XML al cror nume de
comand este egal cu valoarea test, acceptndu-le doar pe acelea care nu au valoarea
respectiv.

Filtrarea poate fi implementat utiliznd predicate predefinite oferite de integrator pentru


condiii exprimate n limbajele suportate (ca de exemplu xpath), sau prin definirea de
predicate evaluate pe schimbul de mesaje curent.
122

Distribuia multipl a mesajelor


Distribuia multipl permite
transmitarea mesajelor ctre
mai multe rute, stabilite n mod
dinamic, cu procesatorul de
multicast, sau static, prin lista
destinatarilor.

n mod implicit, distribuia are loc n secven, ns poate fi paralelizat cu ajutorul procesatorului omonim.
Acesta utilizeaz o coad de 10 procesatori
pentru a trimite datele, dar poate fi configurat cu
ajutorul unui executor de serviciu utilizator.

123

Distribuia poate fi
configurat s se
opreasc dup prima
eroare aprut.

Distribuia multipl a mesajelor (II)


Lista destinatarilor descrie o rutare de tip distribuie
multipl n care rutele sunt stabilite n mod static. Cu
toate acestea, valoarea listei poate fi calculat n mod
dinamic, apelnd la un procesator care completeaz o
valoare din antetul mesajului, utilizat apoi pentru rutare.

124

Auditarea mesajelor

Auditarea mesajelor presupune interceptarea rutei i


analiza mesajelor schimbate n cadrul rutei respective.
Procesatorul de audit se ataeaz la rut, permind
trimiterea unei copii a mesajului ctre un punct de acces
de unde productor, de unde mesajul poate fi consumat
pentru jurnalizare sau alte operaii specifice auditului.

125

Transformarea datelor
Transformarea datelor presupune schimbarea structurii,
adic a tipului, sau a formatului de reprezentare a acestora.
Transformarea structurii sau a tipului const n adugarea,
eliminarea i agregarea unor cmpuri, ca de exemplu
construirea unui obiect de tip javax.jms.TextMessage dintr-un
java.lang.String. Transformarea formatului de reprezentare
const n modificarea modului de serializare al obiectelor.

126

Transformarea datelor n rute: se poate realiza cu ajutorul procesatorilor de mbogire a


coninutului (ContentEnricher) sau de translatare a atributelor (MessageTranslator);
Transformarea datelor cu ajutorul componentelor: face apel la componente de procesare
predefinite, precum XSLT n cazul mesajelor n format XML;
Transformarea datelor cu ajutorul formatelor de reprezentare: se bazeaz pe componentele de
serializare / deserializare n formate dedicate, precum XML, JSON, CSV, etc;
Transformarea datelor cu ajutorul abloanelor : presupune utilizarea unor motoare pentru
expandarea abloanelor de format, precum Apache Velocity, care permit definirea unei machete
ablon i completarea ei cu date provenite dintr-un obiect ntr-un anumit format de intrare neles;
Transformarea datelor cu ajutorul mecanismului de conversie a tipului: motorul de integrarea
dispune de un mecanism de conversie a unui obiect de un anumit tip ntr-un obiect de alt tip prin
apelul unei metode de conversie localizat pe baza unor ci implicite de regsire a resurselor;
Transformarea mesajelor prin apelul unor componente adaptoare: componentele adaptoare
permit cuplarea la formatul de reprezentare specific diverselor protocoale pentru punctele de acces.

Transformarea datelor (II)


Transformarea
cu
ajutorul
unui
translator de mesaj se poate realiza prin
apelul unui procesator sau a unei
componente de tip bean.

Procesatorul
compune
un
mesaj pe baza datelor primite i
nlocuiete mesajul de intrare al
rutei cu cel construit. n acest
fel, ruta va transmite mai
departe mesajul transformat.
De remarcat c n acest mod
nu se poate schimba tipul de
dat al mesajului de intrare,
fiind necesar o transformare
de tip conversie de tip pentru a
putea transmite mai departe un
obiect de alt tip.

127

Transformarea datelor (III)

Transformarea cu ajutorul unei


componente
de
tip
bean
presupune implementarea ntr-o
clas a unei metode statice de
asociere, care primete ca
argument corpul mesajului i
construiete ca rspuns un nou
obiect de acelai tip cu acesta.
De remarcat c att numele
metodei, ct i convenia privind
tipul parametrului i tipul
rezultatului sunt implicite.

128

Transformarea datelor (IV)


Componenta de transformare oferit de platform permite aplicarea unei translaii peste mesajul de
intrare pe baza unei expresii de transformare, definit cu ajutorul expresiilor regulate sau a unei expresii
client, care are acces la contextul schimbului de mesaje i la tipul obiectului coninut de mesajul de
intrare.

129

mbogirea coninutului
mesajelor
mbogirea coninutului mesajelor presupune
adugarea de informaii din surse externe la mesajele
procesate.
Pentru exemplu viznd comanda pieselor de schimb
pentru motociclete, putem considera urmtorul proces:

Executm un proces periodic care extrage cererile


de pe server-ul Web;

Un procesator transform cererile din format XML


n format CSV;

O cerere trebuie completat cu ataamente


extrase din server-ul FTP;

Raportulgenerat este salvat n sistemul de fiiere.


Motorul de integrare ofer dou modaliti de
mbogire a coninutului:

Procesator de tip consumator prin interogare;

Procesator de tip productor.


Combinarea mesajelor se realizeaz folosind o
strategie de agregare.

130

mbogirea coninutului
mesajelor (II)
Strategia de integrare preia coninutul mesajului care trebuie mbogit din corpul mesajului de intrare
al contextului asociat vechiului schimb de mesaje i i ataeaz informaiile adiionale primite ca i
coninut al mesajului de intrare din schimbul nou de mesaje, plasnd rezultatul n corpul mesajului de
intrare al schimbului de mesaje vechi.

131

Serializarea i
deserializarea obiectelor
Motorul de integrare ofer suport pentru
serializarea i deserializarea mai multor tipuri de
formate, incluznd XML, JSON, CSV, SOAP, etc.
Serializarea i deserializarea CSV:

132

Operaie

Tip surs

Tip destinaie

Serializare

Map<String, Object>

OutputStream

Serializare

List<Map<String, Object>>

OutputStream

Deserializare

InputStream

List<List<String>>

Serializarea i
deserializarea obiectelor (II)
Serializarea i deserializarea datelor n format XML utilizeaz componenta JAXB sau XStream.

133

Serializarea i
deserializarea obiectelor (III)

Implementarea
unui
format
propriu
de
reprezentare a datelor

134

Conversia tipului obiectelor


Conversia tipului obiectelor utilizeaz clase de
conversie adnotate i se realizeaz prin selecia metodei
pe baza tipului argumentului i a rezultatului.

135

Concluzii

Concluzii
Integrarea aplicaiilor distribuite este un proces
complex, care necesit o abordare general, care
s permit reutilizarea mecanismelor de integrare i
adaptarea la specificul problemei de integrat;
Dat fiind specificul aplicaiilor distribuite, platforma
de integrare trebuie s ofer ct mai multe
componente
adaptoare,
care
s
permit
comunicarea att n mod sincron, ct i asincron cu
aplicaiile ce urmeaz a fi integrate;
Platforma trebuie s ofere mecanisme generale de reprezentare i manipulare a
mesajelor schimbate ntre aplicaii, incluznd formate de serializare, deserializatoare n
obiecte, transformare, rutare, mprire, agregare, conversie;
Aceste mecanisme trebuie s poat fi combinate ntre ele ct mai flexibil, pentru a permite
adaptarea la nevoile specifice de integrare ale aplicaiilor vizate;
Dezvoltarea proceselor de integrare trebuie s optimizeze raportul ntre gradul de
detaliere al componentelor i pstrarea viziunii de ansamblu asupra solu iei, astfel nct s
permit colaborarea ntre analiti, care au o abordare funcional, i programatori, care au
o abordare tehnic asupra soluiei implementate;
Soluia de integrare trebuie s fie deschis pentru a permite adaptarea ei n mod continuu
la schimbrile intervenite n cadrul aplicaiilor pe care le conecteaz.
137

ntrebri

138

S-ar putea să vă placă și