2010-10-20 15 views
9

Ho cercato di capire esattamente quale middleware orientato ai messaggi è, ma non sono stato in grado di trovare esempi del mondo reale non enterprise che abbiano senso per me. Qualcuno può darmi una spiegazione chiara e facilmente comprensibile di ciò che è MOM, e forse alcuni semplici esempi di come viene utilizzato al di fuori dell'azienda?Cos'è il middleware orientato ai messaggi?

+0

dov'è il contenuto di programmazione? –

+3

Per quanto posso dire, SO ha tonnellate di domande non di programmazione. Qual è il miglior libro per X? Quali sono i casi d'uso per Y? Ad esempio, questa domanda inviata da te non ha alcun contenuto esplicito di programmazione (http://stackoverflow.com/questions/165985/resources-to-create-applications-with-a-great-user-experience). Non vedo la differenza tra quelle domande e le mie. Non riuscivo a capire cosa sia MOM e a cosa serve. È chiaramente una tecnologia di interesse per i programmatori e quindi credo che si adatti abbastanza bene al tema di SO. – jammur

+0

mentre SO era più rilassato con tali domande, è diventato un po 'più rigido nell'applicazione off-topic mentre la famiglia di siti Web stackexchange cresceva. Molte domande su Grandfather dovrebbero essere chiuse come fuori tema ora. Ricorda che programmers.stackexchange.com è disponibile per discussioni non di programmazione ma correlate. Per quanto riguarda questa domanda, nel mio (fallibile anche se può essere) il giudizio, è rispondente e in argomento. – Will

risposta

3

Il middleware orientato ai messaggi è un tipo di infrastruttura che utilizza lo scambio di messaggi anziché le chiamate di funzione/memoria condivisa. È un principio di progettazione e, di conseguenza, può essere utilizzato ovunque. Probabilmente è più utile in sistemi eterogenei/ad alta disponibilità/ad alte prestazioni.

1

Il middleware orientato ai messaggi è un sistema di framework per l'invio e la ricezione di messaggi su reti di computer e dati. Il middleware messaging fornisce la base per Broker, server delle applicazioni e automazione dei processi aziendali.

vedere bel disegno che lo spiega http://www.onlinemq.com/wiki/index.php/Image:Flow-diagram.jpg

0

Utilizzando messaggi MOM vengono inviati al cliente sono raccolti e conservati fino a quando non abbiano l'impatto desiderato, mentre client continua altro processo.

2

Come ho appena risposto a una domanda in qualche modo simile - vorrei rispondere alle vostre, ma con alcune terminologie extra, alla fine per chiarire cosa MOM è in un modo pratico. Qui ci sono pochi pianura dizionario inglese di alcuni componenti (come più si scava nel MOM, questi termini verranno ancora e ancora alla fine - e anche la questione è aggiunto rabbitmq):

  • MOM - è un approccio, un'architettura per il sistema distribuito, vale a dire un livello intermedio per l'intero sistema distribuito, dove c'è molta comunicazione interna (un componente sta interrogando i dati, e quindi ha bisogno di inviarlo all'altro componente, che farà un po 'di elaborazione sui dati) quindi i componenti devono condividere informazioni/dati tra di loro.
  • Mediatore di messaggi - è qualsiasi sistema (in MOM) con messaggi di maniglie, o per essere più precisi quali rotte di messaggi allo specifico destinatario/destinatario. Un Message Broker è in genere costruito su una MOM. Il MOM fornisce la comunicazione di base tra le applicazioni e cose come la persistenza dei messaggi e la consegna garantita. "I broker di messaggi sono un elemento fondamentale del middleware orientato ai messaggi."
  • Rabbitmq - un broker di messaggi; un'implementazione MOM; un'implementazione open-source di AMQP; come da Wikipedia:

    RabbitMQ è un software Message Broker open source (a volte chiamato middleware orientato ai messaggi) che implementa l'Advanced Message Queuing Protocol (AMQP).

ho accennato RabbitMQ qui, per chiarire ulteriormente MOM, in modo in cui è stato in uso intorno a noi.


Message-Oriented-Middleware - è un approccio, un'architettura per sistema distribuito cioè uno strato intermedio per l'intero sistema distribuito, dove c'è molta comunicazione interna modo che i componenti devono condividere informazioni/dati tra di loro , ad esempio: un componente sta interrogando i dati e quindi deve inviarlo all'altro componente, che eseguirà un po 'di elaborazione sui dati. In breve, è un modo di progettare un sistema, e sì, a seconda dei requisiti generali, ad es.svilupperemo un sistema distribuito, con alcune comunicazioni interne. Il più grande vantaggio dell'architettura/decisione MOM è il disaccoppiamento dei componenti, ovvero se stiamo cambiando il componente della query dei dati non avrà alcun effetto sui componenti di elaborazione dati, poiché stanno comunicando tramite MOM (es. Rabbitmq Cluster) - il componente di elaborazione dati sta ricevendo i dati nei messaggi di modulo.

MOM alla fine è solo una decisione progettuale, che usiamo un middleware per incollare i componenti del nostro sistema (distribuiti), un middleware per gestire le comunicazioni tra di loro, sotto forma di messaggi (ad esempio JSON).


Un molto rilevante SO domanda e risposta - Message broker vs. MOM (Message-Oriented Middleware)