The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914.
It is a messaging standard that allows application components based on the Java Enterprise Edition (JEE) to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.
In our project, we used JMS as the way for existing medical devices to connect to network services
Apache ActiveMQ is an open source (Apache 2.0 licensed) message broker which fully implements the Java Message Service 1.1 (JMS).
It provides "Enterprise Features" like clustering, multiple message stores, and ability to use any database as a JMS persistence provider besides VM, cache, and journal persistency.
This whole publish-subscribe process uses SSL protocol and message encryption, thus the data sent can be secured. Besides, on the broker side, we added some features. We used Authentication and Authorization to get control of the access of the publishing and subscription. In our project, topics can be created only by the server, thus keeping track of the topics created. We also improved the Authorization process, making the change of authorization access dynamical, independent of the configuration file. A user friendly visualized interface is implemented for the subscribers.
They can browse all the topics and subscribe the topics they want to, with the restriction of authorization control.