Documente Academic
Documente Profesional
Documente Cultură
I ntegrarea
A plicaiilor
D istribuite
lect. dr. Iulian Ilie-Nemedi
iilie@axway.com; inemedi@ie.ase.ro
Organizarea cursului
Agenda
Obiective;
Structur;
Evaluare;
Bibliografie.
Obiective
Studierea modelelor pentru integrarea aplicaiilor distribuite:
Obiective (II)
Studierea arhitecturilor pentru integrarea aplica iilor distribuite:
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);
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
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
12
13
14
15
Modelele de implementare a
aplicaiilor distribuite
Modelul client-server cu client de tip terminal:
Modelele de implementare a
aplicaiilor distribuite (II)
Modelul client-server cu client de tip aplicaie desktop:
17
Modelele de implementare a
aplicaiilor distribuite (III)
Modelul Web cu rencrcarea integral a paginii i
comunicare sincron (Web 1.0):
Modelele de implementare a
aplicaiilor distribuite (IV)
Modelul Web cu ncrcare partial i comunicare asincron
(Web 2.0)
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.
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
24
Schimbul de mesaje:
25
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.
28
29
32
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
Distribuirea ncrcrii.
Avantaje
34
Dezavantaje
35
Avantaje
Dezavantaje
36
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.
38
Dezavantaje
Avantaje
Dezavantaje
39
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.
41
42
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
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
Mesaj
Conducte i filtre
Rutare de mesaje
Translator de
mesaje
46
Descriere
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.
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
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
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
Denumire
Descriere
Canal de tip
punct la punct
Canal de tip
subscriere i
notificare
Canal de tip
punct terminal
Canal care
garanteaz
livrarea
Magistral de
mesaje
55
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
57
58
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
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.
Descriere
Asociator de
structur
Consumatori
concureni
Dispecerizator de
mesaje
63
64
Denumire
Descriere
Subscriere durabil
Consumator
idempotent
Client tranzacional
Poart de mesaje
Activator de serviciu
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
66
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
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
73
Poart de mesaje
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
Adresa de revenire
Identificatorul de corelaie
77
Adresa de revenire
78
Rutarea mesajelor
Agenda
80
Eantionare.
Rutarea mesajelor
81
Denumire
Descriere
Rutare n funcie de
coninut
Filtrare
Lista destinatarilor
mprire
Agregare
Reordonare
82
Denumire
Descriere
Compunere de
mesaje
mprtierereadunare
Avansare
ncetinirea
procesrii
ntrziere
83
Denumire
Descriere
Optimizarea
ncrcrii
Distribuie multipl
Repetare
Eantionare
84
Filtru de mesaje
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
Agenda
mbogirea coninutului;
Filtrarea coninutului;
Recuperarea coninutului;
Normalizarea;
Sortarea;
Ascultarea canalului;
Jurnalizarea.
100
Transformarea mesajelor
Simbol
101
Denumire
Descriere
mbogirea
coninutului
Filtrarea
coninutului
Recuperarea
coninutului
Normalizarea
Sortarea
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
106
Gestiunea sistemului
Denumire
Descriere
107
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
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
113
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.
115
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;
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.
117
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;
119
120
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.
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.
124
Auditarea mesajelor
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
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
128
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:
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
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