JMS es un servicio de mensajería. Es asincrónico y bidireccional, es decir, puede escribir aplicaciones que envían y reciben mensajes. Pero esto debe ser una aplicación implementada típicamente en Java. Quiero decir que no puede ser un cliente ligero. Y el protocolo estándar de JMS está basado en TCP, por lo que puede ser bloqueado por un firewall.
El servicio web está diseñado como un transporte a través de HTTP, por lo que normalmente pasa cortafuegos. Pero es unidireccional: servidor de llamadas del cliente; el servidor no puede llamar al cliente. Simplemente puede responder llamadas de clientes. El cliente del servicio web (especialmente el servicio web RestFull) es muy simple, por lo que se puede implementar fácilmente como un cliente ligero (por ejemplo, un cliente AJAX).
Posible duplicado [Message Queue vs. Web Services?] (Http://stackoverflow.com/questions/2383912/message-queue-vs-web-services) –