Prezentace ke stažení [PDF - 837 kB]

Transkript

Prezentace ke stažení [PDF - 837 kB]
Komunikace systémů pomocí
zasílání zpráv
Petr Steckovič
10. 11. 2011 Hradec Králové
1
Komunikace
•
•
•
•
Sy c o
Synchronní
/ Asynchronní
sy c o
Jednosměrná / Obousměrná
Přímá / Zprostředkovaná
Nejobvyklejší typ komunikace: Synchronní
Obousměrná, Přímá
2
Úryvek
y
ze specifikace
p
… po té
é co je objed
objednávka
á a založena
ao e a
uživatelem, je poslán e-mail s náhledem
objednávky a zároveň je notifikován
skladový systém, který zajistí vyskladnění
zboží.
b ží Založení
Z l ž í objednávky
bj d á k je
j dál
dále napojeno
j
na účetní systém přes, který bude možné
vytisknout fakturu …
3
Založení objednávky
j
y
4
Rizika synchronní
y
komunikace
• Přímá
á závislost
á s os volajícího
o aj c o na
a volaném
oa é
– Problémy (částečných) výpadků, upgradů
• Příliš tě
těsná
á závislost
á i l t systémů
té ů
– Nutnost znát kolaborující systémy
• Rozdílná rychlost spolupracujících
systémů
5
Asynchronní
y
komunikace
• Nečeká
eče á se na
a kompletní
o p e zpracování
p aco á
zprávy ☺
• Odesílatel zprávy
prá nem
nemusí
sí znát
nát ((všechny)
šechn )
příjemce ☺ - Motivace pro použití
zprostředkované komunikace
• Request / Response (odesílatel zprávy
se obtížně dozví jak zpracování dopadlo)
6
Zprostředkovaná
p
komunikace
e-mail
e-shop
Zprostředkovatel
komunikace
warehouse
accounting
7
Message
g broker
• Prostředník
os ed
oddě
oddělující
uj c vysílajícího
ys aj c o od
příjemce (příjemců)
• Manager queue
q e e / topic a dalších objektů
• Queue – Producer / Consumer
• Topic – Publisher / Subscribe
• Odolnost
Od l
t proti
ti výpadku
ý dk
• Garantované doručení
8
Instalace brokeru
•
•
•
•
•
Dedikovaný
ed o a ý
Součást JEE aplikačního serveru
Součást aplikace
Clustering / Load balancing / Failover
Persistentní úložiště
– Databáze
– Filesystém
y
– Speciální
9
Example
p - Sender
10
Example
p - Receiver
11
Example
p – Ostatní
JNDI
Konfigurace HornetQ
12
Anatomie zprávy
p y
• Header
eade
• Properties
– Standardní
St d d í (JMSX prefix,
fi
JMSXDeliveryCount)
– Application Specific
– Provider ((Broker)) specific
p
• Typ těla zprávy – BytesMessage,
TextMessage StreamMessage
TextMessage,
StreamMessage,
MapMessage, ObjectMessage
13
Selektory
y zpráv
p
• Logický
og c ý jazyk
ja y se
selektorů
e o ů – boo
boolean
ea
• Použití selektorů
– V aplikaci
lik i
– V brokeru (směrování / duplikaci …)
• Příklad selektoru:
COUNTRY = ‘CZ’ AND CITY
CITY_ID=‘HK’
ID=‘HK’
14
Návrh zprávy
p y
• Zpráva
p á a je ob
obvykle
y e rozhraní
o a mezi
e sys
systémy
é y
– Pozor na ObjectMessage !!!
• Vhodné
Vh d é aplikační
lik č í property:
t
– Typ zprávy (ORDER_CREATED,
ORDER_CANCELLED)
– Verze dat
– Některá business data jako property
(ORDER ID COUNTRY
(ORDER_ID,
COUNTRY, CITY_ID)
CITY ID)
15
Transakce / doručení
• Transakce
a sa ce
•
•
•
•
Distribuované transakce
Doručení / Redelivery
Dead Letter Queue (DLQ popř
popř. DMQ)
Expiry Queue
16
Bridge
g
• Přeposílání
epos á zpráv
p á mezi
e b
brokery
o ey
• Lokální komunikace poslání zprávy
• Odolnost proti výpadku remote brokeru
Aplikace
Remote
broker
Embedded broker
Queue
Queue
17
Divert
• Forwading
g - exclusive divert
OrderQueue
OrderTopic
• Duplikace
p
– non-exclusive divert
– možnost využít selektor
OrderQueue
AuditingQueue
18
Rozposílání
p
zpráv
p
Řešení specifikace prostředky brokeru
AccountingQ
EmailQ
OrderQueue
OrderTopic
WarehouseHKQ
WarehouseQ
19
Request
q
/ Response
p
• Emulace synchronního volání
• Proč tak složitě?
• Obousměrná komunikace s exspirací
Request >>>>>>>>
System 1
<<<<<<<< Reponse
System 2
<<<<<<<< Expiry
20
Implementace
p
• Pomocí
o oc dy
dynamického
a c é o se
selektoru
e ou
– Robustní ☺
– Bezeztrátové ☺
– Pomalejší
• Pomocí temporary queue (example)
– Rychlé ☺
– Konfigurace s expirací nelze
– Uzavření
U
ř í temporary
t
Q ztratí
t tí její
j jí obsah
b h
– V době zpracování requestu nemusí již
žadatel existovat
21
Req
q / Res - Klient
22
Req
q / Res - Server
23
Podpora
p
v JEE 6
• Pouze
ou e JJEE Full
u Profile
o e
• ConnectionFactory, Queue .. jsou zdroje
AS - @Resource
@Reso rce
• Plná p
podpora
p
distribuovaných
ý transakcí
• Podpora MDB
• MDB automaticky
t
ti k napojená
j á na th
thread
d pooll
• Propustnost
p
aplikace
p
• Stavební kámen paralelizmu
• Zjednodušený deployment
24
Producer servlet JEE 6
25
Consumer MDB JEE 6
26
Q&A
27

Podobné dokumenty

JMS

JMS Dokud nepřijme a nezpracuje všechny zprávy z transakce, nejsou zprávy odstraněny z fronty

Více

Dekont.sprcha nafukovací Mila

Dekont.sprcha nafukovací Mila ZÁCHRANNÉ A HASIČSKÉ SYSTÉMY

Více

Distribuované systémy a výpočty

Distribuované systémy a výpočty Common Object Request Broker Architecture - procedurální komunikace - programová sběrnice - objektový přístup - podpora složitějších forem chování serveru

Více