Qual è la differenza tra Java RMI e JMS?

Durante la progettazione di un’applicazione distribuita in Java non sembrano essere poche tecnologie che indirizzo lo stesso tipo di problema. Ho letto brevemente su Java Remote Method Invocation e Java Message Service, ma è difficile vedere davvero la differenza. Java RMI sembra essere più strettamente accoppiato di JMS perché JMS utilizza la comunicazione asincrona, ma per il resto non vedo grandi differenze.

  • Quale è la differenza tra di loro?
  • È uno dei loro più recente rispetto agli altri?
  • Quale è la più comune/popolare nelle imprese?
  • Che vantaggi hanno più di ogni altro?
  • Quando è preferito rispetto all’altro?
  • Si differenziano molto in quanto sono difficili da implementare?

Penso anche che Servizi Web e CORBA l’indirizzo lo stesso problema.

  • Questi sembrano come le domande per l’intervista, perché sembra si hanno accomunato due termini simili, ma dovrebbe essere considerata molto diverso da chi li capisce.
  • Non ‘indirizzo lo stesso tipo di problema”.
InformationsquelleAutor Jonas | 2010-04-05

 

2 Replies
  1. 32

    Non si può davvero confrontare le due, le mele e le arance.

    RMI è una forma di Chiamata di Procedura Remota (RPC). Si tratta di un leggero, Java API specifica che prevede il chiamante e ricevitore essere disponibili al momento della comunicazione.

    JMS è un affidabile messaging API. JMS provider esiste per vari sistemi di messaggistica. I messaggi possono essere passati anche se una delle parti non è disponibile se il fornitore di utensili. I due che mi sono familiari sono TIBCO e IBM MQ.

    RMI non trattare con garanzia di consegna o asincrona risposte, JMS può, a seconda del provider.

    JMS consente l’accoppiamento, nel senso di disponibilità.
    “Servizi Web” consente l’accoppiamento, nel senso di protocollo e dati, ma non specifica molto nel modo di messaggistica affidabile, anche se alcune implementazioni non comprendono questo (Windows Communication Foundation) e alcuni non.

    MODIFICATO: la Revisione per i commenti. Quando ho scritto questa risposta, nel 2010, la mia esperienza è stata in realtà con un solo JMS provider e non lo sapevo non c’era di default JMS provider.

    • JMS una non è né un affidabile sottosistema di messaggistica, né un’alternativa al Mq. Si tratta di una messaggistica API che parlare di MQSeries, tra molti altri sistemi di messaggistica.
    • ciao u può consultare il stackoverflow.com/questions/29683209/…
  2. 41

    Che già si conosce di chiamate di metodo. Che cosa succede se l’oggetto che si desidera richiamare il metodo è su un altro computer? Si utilizza RMI per inviare la chiamata da un computer (client) all’altro (server). Il cliente attendere (o “blocco”) fino a quando il risultato arriva dal server. Questo è chiamato sincrono operazione.

    JMS è diverso: esso consente a un computer di inviare un messaggio ad un altro, come e-mail. Il primo non c’è bisogno di aspettare per una risposta: è possibile continuare a fare qualsiasi lavoro che si vuole. Ci potrebbe anche non essere una risposta. I due sistemi di computer non necessariamente funzionano esattamente nel passaggio, quindi questo è chiamato asincrona.

    Un altro modo di pensare la differenza: RMI è come fare una telefonata, e JMS è come l’invio di un messaggio di testo.

    RMI è un po ‘ più vecchio di JMS, ma che non è davvero rilevante. I due concetti sono molto molto più vecchie di java.

    Non c’è molta differenza nella complessità. Penso che si dovrebbe provare a fare un tutorial su ciascuno di essi. RMI e JMS

    Se vuoi iniziare un progetto da zero, e non siete sicuri di quale utilizzare, quindi probabilmente il sincrono/asincrono problema è il migliore fattore di scelta. Se si sta lavorando su un sistema esistente, probabilmente è meglio non introdurre troppe nuove tecnologie. Quindi, se si utilizza già uno, quindi vorrei suggerire che è probabilmente meglio attaccare con quello.

Lascia un commento