28.05.2013 Views

download tesi - MobiLab

download tesi - MobiLab

download tesi - MobiLab

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Affidabilità<br />

Analisi delle prestazioni delle principali soluzioni<br />

per servizi publish/subscribe<br />

Una differenza fondamentale tra OpenAMQ e altri prodotti AMQP è l'approccio alla<br />

affidabilità. Ogni messaggio deve essere parte di una transazione in modo che un eventuale<br />

fallimento può essere recuperato. L'affidabilità è centralizzato, il recapito dei messaggi è<br />

meticoloso, e il protocollo per la consegna affidabile è molto complesso. Quando abbiamo<br />

un mix di questo modello con un clustering per l'alta disponibilità (cioè di essere in grado<br />

di passare a un server di backup se si blocca il primo server) si ottiene in un territorio<br />

ancora più complessa. La complessità crea inaffidabilità e il rischio di incidenti e la perdita<br />

di dati aumenta. L'affidabilità centralizzata è incompatibile con il clustering dei mediatori,<br />

e va contro la moderna progettazione di rete. Consideriamo la rete AMQP idealmente<br />

costruita da apparati a basso costo. Questi possono essere organizzati in modo che un nodo<br />

può essere uno o due AMQP server. Questi nodi possono essere uniti insieme. Tali reti,<br />

essendo più semplice di classici messagge broker, risolvono parte del problema della<br />

reliabity. Per ottenere la piena affidabilità implementiamo un protocollo end-to-end nelle<br />

API per ottenere una maggiore affidabilità. Si noti però che le WireAPI non implementano<br />

ciò, questo è stato fatto dalle applicazioni AMQP piuttosto che da OpenAMQ. Il design è<br />

molto semplice. Costruire messaggistica affidabile come richiesta coppie di messaggio di<br />

risposta. Il mittente di una richiesta detiene la richiesta in memoria o sul disco, fino ad<br />

ottenere una risposta. Se non ottiene una risposta in tempi brevi, invia nuovamente la<br />

richiesta. L'altra estremità ignora le richieste di duplicato. In questo modello l'affidabilità è<br />

invisibile per il protocollo (che poi può essere più semplice e quindi migliore), e non ha<br />

bisogno di sostegno da parte del server (che può essere più semplice e più affidabile). E<br />

funziona con qualsiasi rete AMQP, non importa quanto grande o quanto molti server sono<br />

coinvolti.<br />

2.8.5 QPID<br />

Apache Qpid è un message middleware bastato sulle ultime specifiche AMQP fornendo la<br />

gestione delle transizioni, la coda dei messaggi, la distribuzione dei messaggi, la sicurezza,<br />

71

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!