Skip to content

Latest commit

 

History

History
59 lines (41 loc) · 1.86 KB

README.rst

File metadata and controls

59 lines (41 loc) · 1.86 KB

Herald

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.

Concepts

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.

Remote Services

Herald provides an RPC transport implementations for Pelix Remote Services (Python) and for Cohorte Remote Services (Java).

Transports

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):
    • Each message is a either a message or a group message
    • Discovery is based on a Multi-User Chat room (XEP-0045)
    • Best transport for distributed applications and for group messages
    • Python implementation is based on SleekXMPP
    • Java implementation is based on Babbler

License

Cohorte Herald is released under the terms of the Apache Software License 2.0.