2012-05-19 10 views
11

Non ho molta esperienza di programmazione socket ma ho provato a leggerne un po '. Conosco abbastanza bene le code MDB e di messaggistica. Qualcuno mi ha detto che la coda (ad esempio MDB) è "Non molto più di una connessione socket diretta". Qualcuno può confrontare questi due per me.Code messaggi vs socket

risposta

22

eeeeemph ... questo qualcuno ha sbagliato molto. I due sono incomparabili, poiché vivono in diversi strati. È come dire che "un database relazionale non è molto più di un file su un disco" o "una casa non è molto più di un mattone".

La coda di messaggistica è un software che unisce mittenti e ricevitori in modo che possano comunicare senza sapere molto l'uno dell'altro (entrambi devono conoscere la coda, ovviamente) e non devono implementare codice di rete, gestione errore, instradamento di un messaggio a più ricevitori, ecc. Il sistema funziona anche se mittenti e ricevitori non sono mai attivi contemporaneamente, poiché le code fungono anche da memoria temporanea per i messaggi non consegnati. A parte questo, le code possono fornire servizi aggiuntivi, come autorizzazione, transazioni, ecc.

Una connessione socket è solo un'astrazione di basso livello che dice: "attualmente due programmi possono inviare dati su rete tra loro, almeno fino alla connessione si rompe per qualche motivo ". Quindi sì, di solito una coda di messaggistica utilizzerà le connessioni socket per funzionare.

+0

Oh, va bene, grazie. Quindi, quando qualcuno usa effettivamente solo socket per trasferire dati, semplicemente rende le cose più manuali e complicate da sole? Intendo dire che le code di messaggistica ci vengono in cima per rendere le cose più facili per noi. Come un database in cima al puro file. Penso che quella persona avrebbe potuto significare che non ci sono molte funzionalità aggiunte che non è possibile implementare usando le prese stesse e codificarle manualmente. Grazie comunque per il chiarimento. – Sara

+0

Quindi ecco la sua risposta alla mia domanda precedente: "Possiamo implementare la messaggistica usando una semplice connessione socket I vantaggi e gli svantaggi: La codifica a livello di socket è probabilmente più compatta e basata sulle nostre esigenze. funzionalità già disponibili in molti pacchetti.La scelta è una decisione basata su molti fattori (tempo, costi, talento, talento futuro) " – Sara

+2

La risposta è certamente vera ma anche abbastanza generica. Comprende anche cose come la distribuzione dei propri server http, database, sistemi operativi e così via. Sostituire prodotti così maturi con la birra fatta in casa è probabilmente realistico solo nei casi in cui si hanno requisiti molto specifici e allo stesso tempo molto limitati (come quando si ha una coda che deve essere incredibilmente veloce e compatta, ma non deve essere affidabile o sicuro). – fdreger