1- JMS

Java Message Service is an API which supports the formal communication called as messaging between computers on a network. It provides a common interface for standard message protocols and message services in support to the Java programs. It provides facility to create, send and read messages


www.adam-bien.com/roller the_difference_between_jms_and_websockets
JSR 368: JavaTM Message Service 2.1 (JMS) comes with Java EE and covers both: Point-to-Point as well as Publish-Subscribe protocols. However: JMS is only an Java EE Application Programmer Interface (API) which is implemented by various Messaging Servers (the SPI) like hornetqopenMQ or activeMQ.
Just looking at a JMS application we cannot know which underlying protocol is used. The same approach as JDBC.

Pwning Your Java Messaging With Deserialization Vulnerabilities




JMS destination:


Thực hành:
http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/JMSProducer/JMSProducer.html

2- Websockets

https://blog.idrsolutions.com/2013/12/websockets-an-introduction/
WebSocket is a protocol which allows for communication between the client and the server/endpoint using a single TCP connection. Sounds a bit like http doesn’t it? The advantage WebSocket has over HTTP is that the protocol is full-duplex (allows for simultaneous two-way communcation) and it’s header is much smaller than that of a HTTP header, allowing for more efficient communcation even over small packets of data.

www.adam-bien.com/roller the_difference_between_jms_and_websockets
WebSockets are the exact opposite: the network protocol is standardized. Also WebSockets are exclusively covering Publish-Subscribe (however: point-to-point can be also implemented on top of pub-sub).
Java EE 7 introduced a standard set of WebSocket APIs: JSR 356: JavaTM API for WebSocket. Now a Java WebSocket peer can easily communicate with a peer written in a different language.

www.tutorialspoint.com websockets functionalities


4- Java Socket & RMI

RMI — The Remote Method Invocation API allows an object to invoke methods of an object running on another Java Virtual Machine
Custom Networking — An introduction to the Java platform's powerful networking features.
Sockets Direct Protocol — How to enable the Sockets Direct Protocol to take advantage of InfiniBand.


3- MQTT

MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. For example, it has been used in sensors communicating to a broker via satellite link, over occasional dial-up connections with healthcare providers, and in a range of home automation and small device scenarios. It is also ideal for mobile applications because of its small size, low power usage, minimised data packets, and efficient distribution of information to one or many receivers.

Qualities of Service