Sunteți pe pagina 1din 6

UniversitateaTehnicaMoldovei

FacultateaCalculatoareiTehnologiiInformaionale
CatedraAutomaticiTehnologiiInformaionale

ProgramareaAplicaiilorDistribuite
Titularcurs
DumitruCiorb,dr.
Asisteni
IonelAntohi,magistru
NicolaeCozma,masterand

Lucrare de laborator 1 (8 ore)


Tema
Agentdemesagerie
MessageBroker

Scopul lucrrii de laborator


Integrarea bazat pe ageni de mesaje care ar permite o comunicare asincron dintre
componenteledistribuitealeunuisistem

Obiectivele specifice ale lucrrii

1. Definireaprotocoluluidelucrualagentuluidemesaje
[1]
a. Formatul(tipul)mesajelordetransmis.SerecomandutilizareaformatuluiXML
b. Numruluidecanaleunidirecionale(variabil/fix,dependentdetipulmesajelor,etc.)
c. Structuracomunicaieiasiguratdeagent(
unullaunu
sau
unullamuli)

d. Politici de livrare pentru diverse cazuri definite de logica de lucru al agentului


(mesajeinvalide,cdereaagentului,etc.)

2. Elaborarea nivelului abstract de comunicare (reea) necesar elementelor pentru


primirea/transmitereamesajelordectreemitoragentreceptor
a. Protocoluldetransportsealegendependendeobiectiveleprotocoluluidelucru
b. Tratareaconcurentacererilor
3. Elaborareaelementelorceasigurpstrareamesajelorprimite
a. Metoda transient: mesajele vor fi stocate n colecii concurente de date specifice
limbajuluiselectat
b. Metoda persistent: mesajele vor fi serializate/deserializate utiliznd metode de
procesareasincronsauconcurent
4. Elaborareaniveluluiabstractderutareamesajelor.

Consideraii generale
Agentul de mesaje (
message broker eng.) este o component fizic care gestioneaz
comunicarea dintre componetele unei aplicaii distribuite. Avantajul utilizrii acestei tehnici const
n
decuplarea
receptorului de transmitorul mesajelor. Prin urmare o aplicaie participant
transmitemesajedoaragentului,indicndunnumelogicalreceptorului.

Agentul poate expune diverse interfee aplicaiilor n colaborare i poate transfera mesajele ntre
acestea,
neimpunnd o interfa
comun
tuturor participanilor ntru asigurarea interaciunii.
Responsabilitile i colaborrile eseniale ale unui broker de mesaje sunt prezentatentabelulde
maijos.
Responsabiliti

Colaborri

Primireamesajelor

Expiditori:aplicaii(componente)cetrimitmesaje
agentului

Determinareadestinatarilori
efectuarearutrii

Receptori:aplicaii(componente)ceprimescmesaje
delabroker

Tratareadiferenelordintreinterfee

Transmitereamesajelor

Decizia de a utiliza brokerul de mesaje pentru integrarea aplicaiilor balanseaz ntre flexibilitatea
primitprindecuplareaparticipaniloriefortuldeameninebrokerul
[2]
:
1) Beneficii
a) Reduce cuplarea transmitorii comunic doar cu brokerul, astfel o potenial
grupare a mai multor receptorisubunnumelogiccomunpoatedevenitransparent
transmitorilor

b) Mrete integrabilitatea aplicaiile care comunic cu brokerul nu trebuie s aib


aceiaiinterfa,astfelbrokerulpoatedeveniopuntedintreaplicaiicudiferitenivele
desecuritateicalitateaserviciilorQoS
c) Mrete evolutivitatea brokerul protejeaz componentele de modificrile
individuale ale aplicaiilor integrate, deseori ofernd capaciti de configurare
dinamic
2) Constrngeri
a) Crete complexitatea brokerul comunicnd cu toi participanii trebuie s
implementeze multipleinterfee(protocoale)inperspectivaperformaneiutilizeaz
multithreadingul
b) Crete efortul pentru mentenan toi participanii trebuie s fie nregsitrai la
brockerisecereunmecanismdeidentificareaacestora
c) Reduce disponibilitatea o singur component care intermediaz comunicarea
este singurul punct de eec (
single point of failure eng.
),cdereaacestuia implic
blocarea activitii ntregului sistem aceast problem se remediaz prin dublarea
brokeruluiisincronizareastriloragentuluiprimarisecundar
d) Reduce performana agentul de mesaje adaug un pas adugtor, care implic
cheltuielisuplimentare(
overhead
eng.).
n
[3] sunt descrise diferitevariaiipentruagentuldemesaje,tratatcaelementesenialpentrustilul
arhitectural hubandspoke. Construirea mesajelor, structura canalelor de mesaje i rutarea
servescdreptsubiectealedeciziilordeimplementarencadrullucrriidelaborator.
Implementareaagentuluipoateluancalculstilularhitectural
Brokerd
escrisn
[4]
,caren
[5]
este
prezentatcaablondeproiectare.Unaltablondeproiectarecuinteniisimilareeste
Mediator[
6]

Poteniale sarcini pentru lucrri de laborator


Considernd brokerul o form generalizat a medierii dintre componentele distribuite, se propune
implementri ale rutrii sau construirii de mesaje n conformitate cu abloanele menionate de
GregorHohpen
[3]
,caresuntgrupatenctevaseciuni:
a.
b.
c.
d.
e.
f.
g.

MessagingSystems,
MessagingChannels,
MessageConstructions,
MessageRouting,
MessageTransformation,
Messagingendpoints,
Systemmanagement.

Message Channel (Messaging Systems)

Canaluldemesajeesteunelementlogic utilizatpentruinterconectareaaplicaiilor.Oaplicaiescrie
mesaje ncanal ialtale citete.Prinurmareaceastmetoddeintermediereesteunaprimar,iar
coadademesajereprezintformasadeimplementare.
3

Message Translator (Messaging Systems)

Translatorul de mesaje este utilizat pentru a transforma mesajele dintrun format n altul. De
exemplu o aplicaie trimite mesaje n XML, iar alta primete date doar n format JSON sau un alt
XML.

Publish-Subscribe Channel (Messaging Channels)

Acest tip de canal difuzeaz un eveniment sau o notificare tuturor receptorilor abonai. Se
contrapune n mod evident canalulul puntlapunct. Fiecare abonat va primi o dat mesajul dup
careacestavafieliminatdinsistem.

Dead Letter Channel (Messaging Channels)

Canalul
Scrisorilor Nelivrate descrie scenariul conform cruia sistemul de mesagerie definete ce
de realizat n caz dac mesajul nupoatefilivratunuireceptorspecificat.Acestfaptpoate ficauzat
de o problem n conexiune sau de o excepie datorat lipsei spaiului. n mod obinuit exist
multiple ncercri de a transmite mesajul, succedate de livrarea acestuia spre canalul
Scrisorilor
Nelivrate
.
4

Correlation Identifier (Message Construction)

CorelareaIdentificatoriloroferposibilitateadepotrivitmesajelecererii irspunsuluintrunsistem
demesagerieasincronprinataaremesajuluiunuiidentificatordecorelare.

Content-Based Router (Message Routing)

Ruterul bazat pe coninut examineaz mesajul i l ruteaz n dependen de datele coninute n


mesaj.

Content Enricher (Message Transformation)

Acest tip de transformare completeaz mesajul cu date lipse, frecvent n astfel de cazuri sunt
utilizatesurseexternededate.

Event-Driven Consumer (Messaging Endpoints)

Un consumator bazatpeevenimentepresupune existenadeactivitiasociatecanaluluilasosirea


unuimesaj.Semenioneazcaceastprocesareesteunaasincron.
5

Polling Consumer (Messaging Endpoints)

Un consumator de acest tip va atepta un mesaj, l va procesa i va trece spre urmtorul mesaj.
Astfelacestablonesteprindefiniiesincron,ccivablocafirulpnlavenireaurmtoruluimesaj.

Wire Tap (System Management)

Canalul de supravegere copie mesajul din canal il retransmite ntrun special indicat n scopul
inspectriimesajuluisauanalizeiulterioare.

Evaluarea
Lucrareadelaboratorsevorevaluancorespunderecugraduldeaplicareaabloanelordin
diferiteseciunialeclasificriimenionate(construire,transformare,rutare,etc)nimplementarea
protocoluluidelucruelaborat.

Bibliografie
1.

2.
3.
4.
5.

6.

HohpeG.,WoolfB.IntroductiontoMessagingChannels[Online]//Enterpriseintegration
patterns.URL:
http://www.enterpriseintegrationpatterns.com/patterns/messaging/MessagingChannelsIntro.ht
ml
(accessed:27.08.2015).
TrowbridgeD.MessageBroker[Online]//IntegrationPatterns.MicrosoftCorporation,2004.
URL:
https://msdn.microsoft.com/enus/library/ff648849.aspx
(accessed:27.08.2015).
HohpeG.,WoolfB.EnterpriseIntegrationPatterns:Designing,Building,andDeploying
MessagingSolutions.AddisonWesley,2012.735p.
SchmidtD.C.etal.PatternOrientedSoftwareArchitecture,PatternsforConcurrentand
NetworkedObjects.JohnWiley&Sons,2013.450p.
CunninghamW.etal.Broker[Online]//EnterpriseSolutionPatternsUsingMicrosoft.NET.
MicrosoftCorporation,2003.URL:
https://msdn.microsoft.com/enus/library/ms978706.aspx
(accessed:28.08.2015).
GammaE.etal.DesignPatterns:ElementsofReusableObjectOrientedSoftwarewith
ApplyingUmlandPatterns:AnIntroductiontoObjectOrientedAnalysisandDesignandthe
UnifiedProcess.AddisonWesley,2003.

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