Herald is an easy-to-use messaging framework. It allows Pelix/iPOPO and Java OSGi frameworks to communicate with each other using messages, without worrying about the underlying protocol used for transmission.
Each Pelix or OSGi framework instance is considered as a peer. A peer has a unique ID and a human-readable name. An application ID is associated to each peer: only peers with the same application ID can discover each other.
A peer can send a message to another peer or to a group of peers. A message has a subject, which listeners register to, and a content.
Herald provides an RPC transport implementations for Pelix Remote Services (Python) and for Cohorte Remote Services (Java).
Currently, Herald supports two protocols in Python, and one in Java:
- HTTP (Python & Java):
- Each message is sent as a POST request.
- Peer discovery is based on a home-made multicast heart beat protocol
- Best transport for LAN applications and for single-peer messages
- Python implementation is based on requests.
- Java implementation uses the builtin HTTP client. It requires the Felix HTTP service to work correctly.
- XMPP (Python & Java):
Cohorte Herald is released under the terms of the Apache Software License 2.0.