The module org.jage.services.communication-hazelcast
provides concrete implementations of components required by the communication manager to work. They are using the Hazelcast library. The image below shows contents of the package org.jage.communication.hazelcast
.
Neighbourhood scanner
The Hazelcast-based scanner uses a Hazelcast cluster membership information to find all other accessible nodes.
The scanner operates in the separate thread.
Communication protocols
The Hazelcast communication module provides two protocols based on the two different models: publish-subscribe and send-receive. Both use distributed topics to carry messages. The main difference between them is that the latter defines a separate topic for every node.
The publish-subscribe protocol has the following characteristics:
- it uses natural broadcast to send broadcast and multicast messages,
- it does not alter messages from the communication service in any way.
The send-receive protocol on the other hand:
- translates one-to-many messages into separate messages for each target,
- does not send original messages from the communication service.
Both protocols share a common implementation of the barrier based on CountDownLatch from Hazelcast.