javacro'14 - zeromq and java(script) – mladen Čikara

23
ZeroMQ i Java(Script) ZeroMQ i Java(Script)

Category:

Technology


1 download

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

Page 1: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

ZeroMQ i Java(Script)ZeroMQ i Java(Script)

Page 2: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 3: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Izbaci uljeza

● ActiveMQ

● RabbitMQ

● HornetQ● HornetQ

● ZeroMQ

● WebSphere MQ

● BizTalk Server

Page 4: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Izbaci uljeza

● ActiveMQ

● RabbitMQ

● HornetQ● HornetQ

● ZeroMQ

● WebSphere MQ

● BizTalk Server

Page 5: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 6: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Message broker (2)

Dodatne funkcionalnosti:

– Upravljanje

– Nadgledanje– Nadgledanje

Page 7: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Message broker (3)

Page 8: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 9: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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

Page 10: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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

Page 11: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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

Page 12: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Što je ZeroMQ? (5)

● PAIR - može biti povezan samo s jednim

peerom. - inter-thread comunication

Page 13: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 14: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Instalacija ZeroMQ-a (1)

Potrebne biblioteke:

– git

– libtools

– c++

Download:

– libzmq - ZeroMQ library

– jzmq - Java binding za ZeroMQ

Page 15: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Instalacija ZeroMQ-a (2)

● sudo ./autogen.sh

● sudo ./configure

● sudo make● sudo make

● sudo make install

U slučaju greške:

● sudo ldconfig

Page 16: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Publish - Subscribe demo (1)

Page 17: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Publish - Subscribe demo (2)

Page 18: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 19: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

ZeroMQ i JavaScript (2)

Page 20: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Use Case (1)

TelefonMreža2

3

1

Aplikacija

Centrala

3

Page 21: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

1

Use Case (2)

TelefonMreža2

Aplikacija

Centrala

2

Page 22: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

DEMODEMO

Page 23: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Pitanja?

[email protected]

github.com/McNullty/zeromq-examples

http://www.podsjetnik.hr/