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
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