Kommunikációs middleware, stream processing

Hasonló dokumentumok
Kommunikációs middleware megoldások

Osztott alkalmazások fejlesztési technológiái Áttekintés

webalkalmazások fejlesztése elosztott alapon

JAVA webes alkalmazások

S04-2 Elosztott alkalmazások készítése

Kommunikáció. 3. előadás

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Everything Over Ethernet

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

SzIP kompatibilis sávszélesség mérések

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Using the CW-Net in a user defined IP network

vezeték nélküli Turi János Mérnök tanácsadó Cisco Systems Magyarország Kft.

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Internet of Things az új mobil forradalom

API tervezése mobil környezetbe. gyakorlat

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Reaktív programozás szerver oldalon

Cloud computing Dr. Bakonyi Péter.

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Oracle9i Alkalmazás Szerver Üzleti folyamat integráció. Molnár Balázs Vezető értékesítési konzultáns Oracle Hungary

Komponens modellek. 3. Előadás (első fele)

Félreértések elkerülése érdekében kérdezze meg rendszergazdáját, üzemeltetőjét!

UNIX: folyamatok kommunikációja

Komponens alapú fejlesztés

Osztott Objektumarchitektúrák

IoT rendszerek kommunikációs megoldásai vitmav22

Hálózati ismeretek. Az együttműködés szükségessége:

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Mobil szolgáltatások és alkalmazások fejlesztése

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

A MiddleWare rendszerek Rolls Roysa

Analitikai megoldások IBM Power és FlashSystem alapokon. Mosolygó Ferenc - Avnet

SUSE Linux Enterprise High Availability. Kovács Lajos Vezető konzultáns

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Oracle Enterprise Manager: Az első teljesértékű felhő üzemeltetési megoldás

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

SQL Server High Availability

Informatikai Tesztek Katalógus

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Ethernet/IP címzés - gyakorlat

Adatbányászat és Perszonalizáció architektúra

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Component Soft és tovább

Flex: csak rugalmasan!

CMDB architektúra megjelenítése SAMU-val Rugalmas megoldás. ITSMF Bekk Nándor Magyar Telekom / IT szolgáltatás menedzsment központ

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Osztott rendszerek (Distributed

A Java EE 5 plattform

Adatbázis rendszerek 7. előadás State of the art

Viczián István IP Systems JUM XIX szeptember 18.

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Mobil webszerverek. Márton Gábor Nokia Research Center. W3C Mobilweb Műhelykonferencia, Budapest október 18.

Információs Rendszerek Szakirány

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

GENERÁCIÓS ADATBÁZISOK A BIG DATA KÜLÖNBÖZŐ TERÜLETEIN

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

Felhőszolgáltatások megvalósítása PureSystems eszközökön

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

EEA, Eionet and Country visits. Bernt Röndell - SES

IPv6 A jövő Internet alaptechnológiája

Párhuzamos és Grid rendszerek

Webszolgáltatások (WS)

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Eladni könnyedén? Oracle Sales Cloud. Horváth Tünde Principal Sales Consultant március 23.

Storage optimalizálás egyetemi hálózatokban

Infrastruktúra lehetőségek idén

Data Integrátorok a gyakorlatban Oracle DI vs. Pentaho DI Fekszi Csaba Ügyvezető Vinnai Péter Adattárház fejlesztő február 20.

Szolgáltatási szint és performancia menedzsment a PerformanceVisor alkalmazással. HOUG konferencia, 2007 április 19.

Felhő alapú hálózatok Konténerek orkesztrálása Simon Csaba. Budapesti Műszaki és Gazdaságtudományi Egyetem

2023 ban visszakeresné 2002 es leveleit? l Barracuda Message Archiver. Tóth Imre Kereskedelmi Igazgató Avisys Kft Barracuda Certified Diamond Partner

Big Data adattárházas szemmel. Arató Bence ügyvezető, BI Consulting

Hadoop és használata az LPDS cloud-on

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

SQLServer. SQLServer konfigurációk

Introduction. Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration. Dr. Balázs Simon BME, IIT

Non-stop hozzáférés az üzleti információkhoz bárhol, bármikor és bármilyen eszközzel

Novell és Oracle: a csúcsteljesítményű, költséghatékony adatközpont megoldás. Sárecz Lajos Értékesítési konzultáns

A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

IT trendek és lehetőségek. Puskás Norbert

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

E Q U I C O M M é r é s t e c h n i k a i K f t. H B u d a p e s t, M á t y á s k i r á l y u T. : F.

4. Az alkalmazások hatása a hálózat tervezésre

Átírás:

Kommunikációs middleware, stream processing Szolgáltatásintegráció 2014. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Kérdések Hogyan kommunikálhat két alkalmazás? Szinkron és aszinkron megoldások Ilyet én is tudok írni. Sőt, jobbat is! Melyik megoldás hogyan működik? Melyik mire jó? Mi a különbség? Hol találni ilyet? Aszinkron megoldások olcsón?

Middleware Hol van az a középen? Operációs rendszer felett, alkalmazás alatt Alkalmazásokból alászálló funkciók néha tovább az OS-be Mit csinálnak? Kommunikáció, HA, UI, skálázás, grafika, játék, A továbbiakban itt mindig kommunikációs MW Minek? Alkalmazás integráció, szolgáltatás integráció Komponensközi kommunikáció

Preklasszikus middleware fajták Adatcsere az alkalmazások között, ahogy lehet Fájl átvitel Adatbázisok Elektronikus levelezés Weboldalak Sockets, Pipes Házilagos megoldások alkalmazásokból kiemelve

Korszerű middleware technikák Házilagos megoldások Házon belüli fejlesztés házon belüli igényekhez Távoli eljáráshívás (RPC, ORB) - 1988 Szinkron elosztott alkalmazásokhoz Üzenetsorok (MQ) -1994 Üzenet alapú, nagy megbízhatóságú komm.-hoz Publish-Subscribe (P/S) -1998 Üzenet alapú, valós idejű kommunikációhoz Egyéb aszinkron technikák Üzenet alapú, olcsóbb Rövid érvényességű információhoz

Middleware-ek feladatai Kliens-szerver kapcsolat (tág értelemben) Komponensközi kapcsolat, hívások/üzenetek Platformfüggetlenség (HW-től és OS-től) Hálózatfüggetlenség (hálózati protokolltól is) Publikus API (Mennyire publikus?) Nyelvfüggetlenség (programozási nyelvtől) Adattárolás függetlenség Adatbázis rendszerektől Üzenettárolásnál, jogosultságoknál, címeknél is Egységes alkalmazásfejlesztői platform

Extra MW feladatok 1. Közös felhasználó azonosítás Egységes felhasználói jogosultságok Egyszeri belépés (single sign on) (különböznek!) Tranzakció azonosítás (összetartozó üzenetek) Biztonság Titkosított adat- és vezérlési forgalom Komm. titkosítása + üzenetek titkosítása Elhelyezkedés-függetlenség Hol fut a másik? Ha mozog a másik

Extra MW feladatok 2. Adatbázis-orientált szolgáltatások Elosztott lekérdezések/beillesztések/törlések RDBMS szolgáltatások Alkalmazás-orientált szolgáltatások Bármi, ami ott éppen kell Pl. atomi tranzakciók, óra szinkron,... Menedzsment szolgáltatások MW felügyelete (SNMP, Unicenter, Tivoli, ágens) Konfigurációs eszközök és még sokan mások

Korszerű middleware technikák Házilagos megoldások Távoli eljáráshívás (RPC, ORB) Üzenetsorok (MQ) Publish-Subscribe (P/S) Egyéb aszinkron technikák

Házilagos MW megoldások Zöld mezős, házon belüli megoldások Házon belüli célokra (fejlesztendő alkalmazás(család)hoz) Fejleszteni kell hozzá Mindenféle fejlesztő és tesztelő eszköz Saját hálózati protokoll Saját API, belső működés, technológiák Szakember igény Rendszermérnök, programozó, tesztelő Hálózati mérnök, hálózati adminisztrátor Projekt menedzser

Házilagos MW megoldások A várható igények felmérése (rendszerfejlesztők) Meghozandó fejlesztői döntések Kommunikáció (szinkron, aszinkron) Hálózat (TCP, UDP, IPX,...) Információáramlás (üzenetek/hívások, egyirányú/kétirányú, 1-to-1/1-to-n/n-to-n) Technológiák (C, C++, Java, C#, XML, címzés,...) Teljesítmény (sávszélesség, késleltetés, kliensek száma, üzenetek száma,...) Megbízhatóság, biztonság,...

Házilagos MW megoldások Előnyök Jobb testre szabhatóság, kritikus paraméterei jobbak lehetnek Extrém körülmények között megoldást nyújt Hátrányok Fejlesztés költsége, ideje, szakember igénye Folyamatos karbantartás és fejlesztés Támogatás később is csak házon belülről cég erős függése alkalmazottaitól, kivéve ha nyílt forráskódú projekt (ld. Később)

Házilagos MW megoldások Tipikus alkalmazási területek Valósidejű komm. speciális igényekkel pl. idővezérelt Ethernet Speciális hálózati protokollok felett kevéssé támogatott technológiákhoz Örökölt, kritikus, nehezen integrálható alkalmazásokhoz ha már a kereskedelmi MW házilagos adaptere sem megoldás Csináld magad!

Korszerű middleware technikák Házilagos megoldások Távoli eljáráshívás (RPC, ORB) Üzenetsorok (MQ) Publish-Subscribe (P/S) Egyéb aszinkron technikák

Két rokon middleware technika RPC (Remote Procedure Call) Tradicionális progr. techn. mintájára Szabványos eljáráshívás szerint ORB (Object Request Broker) OO technológia mintájára Metódushívás kiterjesztése Mindkettő Request/reply szinkron kommunikáció Hely és platform transzparens interoperabilitás (gép, nyelv, OS között) heterogén elosztott rendszerek skálázhatóság (egy több gép, kis nagy gép)

Feladatai RPC/ORB Hívás elkapása, hívott fél megkeresése Paraméterek átvitele Szerver eljárásának/metódusának meghívása Eredmény visszajuttatása (vezérlés visszaadása) Technológiák RPC: régi, tisztán nem fordul elő már ORB: különböző technológiák CORBA (OMG szabvány) DCOM (eredetileg Windows alá) RMI (csak Java alá)

RPC/ORB Előnyök Szabványos technológiák elosztott rendszerekhez Alkalmazások központosítható menedzselése Tipikusan objektum-orientált megközelítés Hagyományos alkalmazások webesíthetőek Hátrányok Igazán nagyra rosszul skálázódik Gyakran szakértőt igénylő architektúrák Inkompatibilis ORB implementációk Nehéz hibakeresés és adminisztráció

RPC/ORB Tipikus alkalmazási területek Help desk alkalmazások Számla lekérdező rendszer Hagyományos szerverek webes felülete Jellemző: A kliens úgyis kénytelen megvárni

Általános ORB architektúra Szabó Péter: Távoli eljáráshívás alapú middleware rendszerek modellezése (Diplomaterv, BME MIT, 2003)

Általános ORB kommunikáció Szabó Péter: Távoli eljáráshívás alapú middleware rendszerek modellezése (Diplomaterv, BME MIT, 2003)

Korszerű middleware technikák Házilagos megoldások Távoli eljáráshívás (RPC, ORB) Üzenetsorok (MQ) Publish-Subscribe (P/S) Egyéb aszinkron technikák

Üzenetsorok Jellemzők Üzenet-orientált, aszinkron Inkább csak... az egynek kommunikáció Laza csatolás nincs közvetlen kapcsolat nem szinkronizálódnak nem fogják vissza, nem rántják le egymást Nagy megbízhatóságú nem gyors Alapfogalmak Üzenetek: átküldeni szánt információ adag (msg.) Sorok: üzenetek elosztói, tárolói (queues)

Sorok feladatai Üzenetek fogadása a küldőtől Aszinkronitás (vezérlés visszaadása a lehető leghamarabb) Tárolás, míg címzett át nem veszi Postafiók rendszerű működés Címzett változhat, ha a postafiók marad Üzenet nem veszhet el, amíg a sor él Alkalmazásokat, MW-t futtató gépek leállása Üzenetek transzformációja Interpretálhat, konvertálhat Csak egyszerűbb átalakításokra van idő, kapacitás

QoS Garanciák (külön be kell állítani, ha lehet) üzenet nem veszhet üzenet nem duplikálódhat sorrend nem cserélődhet fel Szintek (másik megközelítés) 0 best effort 1 kézbesítés legalább egyszer 2 kézbesítés pontosan egyszer

Üzenetsorok Előnyök Nagy megbízhatóságú hálózati kommunikáció Mobil (off-line) partnerek kommunikációja Új és hagyományos rendszerek laza csatolása Hátrányok Nehézkes inicializálás és adminisztráció Lassú, ha a sor hosszú Sok soknak komm. nehezen megvalósítható

Üzenetsorok Tipikus alkalmazási területek Webes megrendelés felvétel feldolgozás hagyományos alkalmazásokkal a háttérben, lassan, az ügyfelet elengedve Ügynöki kiszolgáló rendszer ügynökök off-line szakaszainak tolerálása Tranzakciós rendszer felhasználói felülete Felület omlása ne vigye magával a tranzakciót

Korszerű middleware technikák Házilagos megoldások Távoli eljáráshívás (RPC, ORB) Üzenetsorok (MQ) Publish-Subscribe (P/S) Egyéb aszinkron technikák

P/S Jellemzők Üzenet-orientált, aszinkron Jó... a soknak kommunikáció Laza csatolás (mint az MQ-nál) Rugalmas komm. vegyes hálózati környezetben Terjesztő transzformálhatja az üzeneteket Alapfogalmak Üzenetek: átküldeni szánt információ adag (msg.) Terjesztő: fogadó és elosztó hálózat (publishing service, publishing network) Előfizetők: terjesztőnél regisztrált címzettek (subscribers)

Terjesztő feladatai Üzenetek fogadása a küldőtől Aszinkronitás (vezérlés visszaadása a lehető leghamarabb) Címzettek azonosítása, útvonalválasztás Üzenetszórás a regisztrált címzettek felé Terjesztő hálózat optimális kihasználása Regisztrációs lista folyamatos, központosított karbantartása Feliratkozási rendszerek (alap típusok) Kategória alapú Kulcsszavas Mintaillesztős

P/S Előnyök Komm. folyamatosan változó partnerekkel Jól skálázódó... soknak kommunikáció Időre érzékeny hagyományos rendszerek összekötése Hátrányok Nehezen tranzakciósítható Nehézkes üzemeltetés és hibakeresés Robusztus, teljesítőképes hálózat kell alá

P/S Tipikus alkalmazási területek Valósidejű árverező és tőzsdei rendszerek bárki bármikor bármire fel-/leiratkozhat bármelyik tag küldhet Időjárás-jelentő rendszer hírügynökségek feliratkoznak (terület, esemény) jelentések folyamatosan mennek ki jelentés készítése és előfizetés kezelése szétválik Szolgáltatás-orientált rendszerek Nem tudom, kinek a dolga, de valaki csinálja meg bizonyos funkciókra mindig van előfizető Hálózati riasztórendszer hálózat gépei be-/kikapcsoláskor fel-/leiratkoznak

Korszerű middleware technikák Házilagos megoldások Távoli eljáráshívás (RPC, ORB) Üzenetsorok (MQ) Publish-Subscribe (P/S) Egyéb aszinkron technikák

Egyéb aszinkron megoldások Aszinkron kommunikáció sokszor hasznos MQ és P/S infrastruktúrája költséges Időben és pénzben is Sokszor nem a nagy megbízhatóság a lényeg Sokszor fix, ismert a címzett Fire and forget (FF) Ajánlott üzenetek (Sync with server) Lekérdezés (Polling) Visszahívás (Call back)

Fire and forget Szerver nem ad visszatérési értéket Pl. egyoldalú értesítések mennek Hibaüzenetek sincsenek Pl. megismételt üzenet már nem lenne aktuális (külvilág nem állítható meg, pörgethető vissza) Üzenetvesztés elfogadható Pl. nem kritikus a szolgáltatás vagy úgyis csak frissen jó Példák: Loggolás Model View Controller

Megoldás Fire and forget Lokális csonkkal szinkron kommunikáció Csonk üzen távolra, de nem blokkol új szálon fut, vagy nem blokkoló kommunikációt használ

Ajánlott üzenetek Szerver nem ad visszatérési értéket Pl. egyoldalú értesítések mennek Hibaüzenetek sincsenek, de visszaigazolás kell Feldolgozás előtt, csak a kézbesítésről Megoldás: Kliens oldali csonk visszaigazolásig blokkol Hálózati hibát detektál, szerver oldalit alig Szerver oldali csonk nem a feldolgozás szálán fut

Lekérdezés Aszinkron kommunikáció, de kell az eredmény De nem kell azonnal Szerverrel párhuzamosan dolgozó kliens pl. a kért ID generálása közben a kliens létrehoz, konfigurál, kitölt (amit ID nélkül is lehet) Megoldás: 1. Kliens oldali csonk pollozza a szervert kliens blokkolva, aszinkron ez? 2. Kliens oldali csonk blokkolva, kliens dolgozhat kliens pollozza a csonk egy szálát Hosszú pollozás drága; rövid szinkron jobb

Visszahívás Aszinkron kommunikáció, de kell az eredmény Amikor pollozni hosszú lenne Megoldás: Kliens oldali csonk blokkolt szála az eredménnyel visszahívja a klienst kliens call-back interfésze? ennek címe? Több szálas kliens kell nem transzparens módszer

Technológiák

Message Queuing (MQ) Queue manager o Üzenetsorok kezelése Lokális és távoli alkalmazások közti kommunikáció o Banki, biztosítói, stb. rendszerekben elterjedt o Tipikusan elfedik (pl. Message Broker) o IBM Websphere MQ,Apache ActiveMQ, JBoss Messaging, RabbitMQ (Erlang) o Szinkron/aszinkron kommunikáció o Üzenetek perzisztens tárolása o API több nyelvhez (C, C++, Java, COBOL) MQSeries Primer: http://www.redbooks.ibm.com/redpapers/pdfs/redp0021.pdf

MQ folytatás Üzenetek típusa többnyire programozón múlik o Stream, text, byte, map o Nincs garantált típushelyesség Sorok (PTP) és témák (P/S) támogatása Célszerűen a kommunikációs kód leválasztandó MQ lehet átviteli közeg pl. webszolgáltatásokhoz Gyártóspecifikus megoldások

Java API üzenetküldéshez Adminisztráció: JMX o JNDI névtér o ConnectionFactory, Destination Java EE szabvány része o Kötelezően implementálandó alk. szerver oldalon Üzenetsor/téma ( durable subscription ) Java EE: message-driven bean WS-* alatt Java Message Service (JMS) TIBCO, JBoss, IBM, Oracle, Fiorano. Java Message Service API Tutoria by Kim Haase, Sun 2002

MQ Telemetry Transport MQTT o Várhatóan OASIS szabvány lesz o Eclipse támogatás (Paho) Kis protokoll overhead (2 byte), kis sávszélesség o At-most once, at-least once, exactly once Gyors átvitel, megbízhatatlan hálózatra készítve o Max. 256 MB üzenet, TCP/IP fölött o Az üzenet tartalmáról nincs információ Szenzorok, mobil eszközök, stb. o MQTT-S(N): ZigBee (nem TCP/IP) Facebook (pl. mobil szinkronizáció)

AMQP Advanced Message Queuing Protocol Bináris szintű protokoll o Red Hat, Microsoft, VMWare o Bank of America, JPMorgan Nagy üzenetmennyiség kezelése o Prioritások az állapotjelzéseknek o Perzisztencia, biztonság, API mapping o JMS, WCF, Python o Saját üzenetkódolás/xml/json http://www.amqp.org/product/architecture

STOMP Simple Text Oriented Messaging Pr. Scriptnyelvek igényeihez fejlesztve o Ruby, Python, Perl, o HTTP fölött o Nincs közös üzenetküldési szemantika o Nyugtázás, tranzakcionalitás o Session kezelés o Header: kulcs-érték párok http://blogs.vmware.com/vfabric/2013/02/choosing-your-messaging-protocol-amqp-mqtt-or-stomp.html http://stomp.github.io/index.html

Apache Kafka Nyílt forráskódú P/S protokoll (2011) Eredetileg logfeldolgozásra o (LinkedIn) Elosztott architektúra Állapot a fogadó oldalán karbantartva Tipikusan at-least-once szemantika Hatékony üzenetfeldolgozás (pl. Storm, Hadoop ) http://research.microsoft.com/en-us/um/people/srikanth/netdb11/netdb11papers/netdb11-final12.pdf

Kafka példa (LinkedIn) http://www.slideshare.net/chriscurtin/ajug-march-2013-kafka

Legközelebb Hogyan használjuk fel ezeket? Hogyan áll össze a szolgáltatásintegráció?

Stream processing and a network traffic visualization case study Contributions of Tamás Nádudvari and Gábor Urbanics (Quanopt Kft.)

Stream o Massive amount of data Stream processing o Continuously incoming data to our system Challenges o Storing entire data is not possible could be terabytes per day o Near real-time processing is required time-critical data may be concerned o Multiple asyncronous datasources

Stream processing - algorithms Summarization of the stream in some way o E.g. look at only a fixed window of the stream Keep the most recent n elements, or Keep the elements that arrived within the last t time units orepresentative sampling the stream Filter a stream to eliminate most of the undesirable elements Approximation algorithms o A fast estimation is better than an outdated but exact result o Exact calculation may require entire dataset (e.g. median)

Stream processing Examples for stream data o Sensors (weather, traffic, geolocation) o Images (from surveillance) o Internet and web traffic o Stock market data Examples of stream processing systems o IBM InfoSphere Streams o Apache S4 o Apache Storm

CEP o Abstract language Stream processing vs CEP o Typically :situation awareness o Rare output o Clustering needs work o Time&data source Common o Large amount of data o Fast, asynchronous processing Stream processing o Can use many languages o Data processing o Heavy amount of output data o Built-in support for distributed computing o Tuples

Apache Spark

Apache Storm Distributed, fault-tolerant, real-time computation system for stream processing o Written in Java and Clojure o A real-life use case: calculating Twitter trending topics o Builds on ZeroMQ Processing is executed on a cluster of nodes o Nimbus Distributes application code Assigns tasks to nodes and monitors for failures One instance per cluster (default setup) o Supervisor Runs the actual processing steps Many instances per cluster

Apache Storm programming model There are three abstractions in Storm o spout: the source of the streams o bolt: performs the processing and may emit new streams o topology A network of interconnected spouts and bolts A connection defines a data flow between a spout and a bolt or between two bolts Processing steps o The data travels as tuples between the components o Storm Application = manipulating streams of tuples

Storm topology http://www.michael-noll.com/blog/2012/10/16/understanding-the-parallelism-of-a-storm-topology/

Apache Storm execution Development time o Definition of the topology o Implementation of spouts and bolts o Creating a bundle with all the artifacts Runtime o The bundle gets uploaded to Nimbus o The topology (including code) is distributed among the nodes o The topology is running forever in the cluster o Multiple topologies can run simultaneously

Case study Analysing the hostel internet traffic to calculate the number of on-going connections in a per country manner in the last 3 minutes based on the destination IP address Final goal: visualisation of the results on a map

Data source The used data in the protoype was a replay of an already recorded netflow file o 302914 records were in the chosen netflow file o ~4 M records generated per day Netflow: Cisco standard format which contains information about network connections o (src/dst address, start date, number of packets etc.) The netflow records are generated by the hostel core-switch from the students internet traffic The data was anonymized

Data source Using nfdump tool to read the archived netflow file Processing the output with a script to create JSON data from the flow records Send the JSON data to a pub/sub system The pub/sub system will feed the Storm application

Architecture overview The netflow collector sends the JSON data to the cluster The Storm cluster is deployed on Amazon EC2

Technologies Redis: simple, key-value based, in-memory database for storing the aggregated data, pub/sub communication, and caching Programming languages used o Java: the default language of Strom o Python: for testing Storm multilang capabilities, and additional external data processing steps Google Chart API: drawing map for visualization.

Topology overview Pull the JSON data to the topology from the Redis pub/sub Direction of the tuples Database operation

Topology overview Generates a trigger message every second Direction of the tuples Database operation

Topology overview Converts JSON data Output: (destination IP,timestamp) pairs Direction of the tuples Database operation

Topology overview Assigning countries to the destination IP-s based on a free online database Caching them into Redis Output: (country, timestamp) pairs Direction of the tuples Database operation

Topology overview Aggregating the incoming tuples per second Updating the number of connections by country Previous results are used upon update Direction of the tuples Database operation

Topology overview Remove thes outdated (over-slipped) data from the 3 minutes window Time-driven: runs every second Direction of the tuples Database operation Process the dummy tuples generated by TimerSpout per seconds

További referenciák http://pavanz.blogspot.hu/2010/10/messaging-middleware-products.html http://www.docstoc.com/docs/799743/a-comparison-of-middleware-products http://userpages.umbc.edu/~dgorin1/451/middleware/middleware.pdf http://www.b3websolutions.com/article/eaicompetitivecomparison.htm http://blog.cobia.net/cobiacomm/2012/08/02/red-hat-enterprise-middlewarecomparison-with-cloud-native-middleware/ http://www.eaipatterns.com/observerjmsexample.html http://www.einfobuzz.com/2012/01/jms-design-considerations.html Storm website: http://storm.incubator.apache.org/ Rajaraman, Leskovec, D. Ullman: Mining of Massive Datasets http://infolab.stanford.edu/~ullman/mmds/book.pdf