javacro'14 - zeromq and java(script) – mladen Čikara
Upload: hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association
Post on 29-Nov-2014
914 views
DESCRIPTION
ZeroMQ is messaging framework that is aimed for use in scalable distributed and concurrent applications. (In 2011, CERN performed a study to unify middleware solutions used in managing CERN accelerators. In this study they compared CORBA, Ice, Thrift, ZeroMQ, YAMI4, RTI and AMQP, and in the end ZeroMQ showed the best results. Goal of this presentation is to show out why did ZeroMQ win, and what distinguishes ZeroMQ from other messaging solutions. With different examples we will show how to use ZeroMQ with Java on the server side and with JavaScript on the client side.TRANSCRIPT
ZeroMQ i Java(Script)ZeroMQ i Java(Script)
Uvod
● Općenito o Message brokerima
● Po čemu se ZeroMQ razlikuje od ostalih
● Instalacija ZeroMQ-a● Instalacija ZeroMQ-a
● Primjeri u Javi i JavaScriptu
● Use case
● Demo
Izbaci uljeza
● ActiveMQ
● RabbitMQ
● HornetQ● HornetQ
● ZeroMQ
● WebSphere MQ
● BizTalk Server
Izbaci uljeza
● ActiveMQ
● RabbitMQ
● HornetQ● HornetQ
● ZeroMQ
● WebSphere MQ
● BizTalk Server
Message broker (1)
● Omogućava validaciju, transformacije i
usmjeravanje (routing) poruka
● Posredovanje u komunikaciji između različitih
aplikacija – Decoupling aplikacija
● Messaging patterns - utvrđeni obrasci za
razmjenu podataka među aplikacijama
Message broker (2)
Dodatne funkcionalnosti:
– Upravljanje
– Nadgledanje– Nadgledanje
Message broker (3)
Što je ZeroMQ? (1)
● Vrlo lightweight messaging sustav
● Zero -> bez brokera (ili što bliže tome)
● “More generally, “zero” refers to the culture of ● “More generally, “zero” refers to the culture of
minimalism that permeates the project. ”
● “Its sockets on steroids”
● Postojeći built-in patterni:
Što je ZeroMQ? (2)
● Request - Reply : remote procedure call ili task
distribution
● Publish - Subscribe : data distribution
● Pipeline : parallel task distribution
● Patterne se kreira kombiniranjem ZeroMQ
socketa
Što je ZeroMQ? (3)
● REQ - klijent koji šalje zahtjeve i očekuje
odgovore
● REP - servis koji prima zahtjeve i šalje odgovore
● DEALER - dijeli poruke grupi klijenata (round
robin)
● ROUTER - usmjerava poruke na određenog
klijenta
Što je ZeroMQ? (4)
● PUB - publisher koji distribuira podatke
● SUB - subscriber koji prima podatke od
publishera
● PUSH - šalje podatke svim prijavljenim
nodovima (round robin)
● PULL - prima podatke od nadređenih nodova
Što je ZeroMQ? (5)
● PAIR - može biti povezan samo s jednim
peerom. - inter-thread comunication
Usporedba ZeroMQ-a s AMQP-om
● AMQP nudi gotova rješenja na uobičajene
probleme
● ZeroMQ nudi alate za rješavanje tih problema
● ZeroMQ ne dolazi s postojećim brokerom već je
biblioteka funkcija od kojih developeri slože
custom brokera
Instalacija ZeroMQ-a (1)
Potrebne biblioteke:
– git
– libtools
– c++
Download:
– libzmq - ZeroMQ library
– jzmq - Java binding za ZeroMQ
Instalacija ZeroMQ-a (2)
● sudo ./autogen.sh
● sudo ./configure
● sudo make● sudo make
● sudo make install
U slučaju greške:
● sudo ldconfig
Publish - Subscribe demo (1)
Publish - Subscribe demo (2)
ZeroMQ i JavaScript
● ZmsSocket.js – ZeroMQ binding za JavaScript
● Java script ne podržava raw TCP veze → Flash
bridge
Ograničenja
– Maksimalna veličina poruke 2^32 – 10 byteova
– Nisu podržane binarne poruke
ZeroMQ i JavaScript (2)
Use Case (1)
TelefonMreža2
3
1
Aplikacija
Centrala
3
1
Use Case (2)
TelefonMreža2
Aplikacija
Centrala
2
DEMODEMO