2011-12-14 13 views
10

¿Cuáles son las razones que pueden motivar a un programador a utilizar la API Java JMS (Java Message Service) en lugar de la API UDP socket del paquete java.net en una aplicación Java distribuida o utilizar la API UDP socket en lugar de la API JMS? Si es posible, entregue ejemplos de aplicaciones.¿Cuándo elegir API JMS sobre API de socket UDP o viceversa?

Respuesta

10

UDP y JMS son diferentes en muchos aspectos, y fundamentalmente desde JMS normalmente se basa en las características inherentes a TCP (ver este comparison of UDP and TCP para tener una idea de las diferencias de los dos protocolos subyacentes).

Básicamente UDP es adecuado para aplicaciones que no requieren ninguna confiabilidad, orden, control de congestión o enrutamiento entre redes (ya que muchos enrutadores de grado comercial y de consumidor no reenvían paquetes UDP). JMS proporciona todas estas características que faltan de UDP y más (como transacciones, pub/sub y hacer cola, suscripciones duraderas, etc.).

UDP podría ser apropiado para la transmisión de grandes cantidades de datos dentro de una red de área local donde la calidad absoluta no es un requisito; JMS sería mejor para aplicaciones que requieren mensajería confiable entre hosts de red de área amplia. Además, JMS oscurece los detalles de sockets, servidores, enlaces, etc. y proporciona una API de alto nivel que es más adecuada para la integración empresarial.

+4

+1. JMS es para UDP lo que es un RDBMS para un archivo plano. –

Cuestiones relacionadas