celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy Lenferink (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CELIX-389) Publisher / subscriber implementation
Date Mon, 19 Dec 2016 10:33:58 GMT
Roy Lenferink created CELIX-389:

             Summary: Publisher / subscriber implementation
                 Key: CELIX-389
                 URL: https://issues.apache.org/jira/browse/CELIX-389
             Project: Celix
          Issue Type: Improvement
            Reporter: Roy Lenferink

Over the past few months I've been working together with Pepijn Noltes,
Erjan Altena and Gabriele Ricciardi on a (secure) publisher / subscriber implementation, which
is based on the concepts of the remote service admin (i.e. rsa / topology / discovery pattern).

Publishers are senders of data, subscribers can receive data. Publishers
can publish/send data to certain channels (called 'topics' further on), subscribers can subscribe
to these topics. For every topic a publisher service is created by the pubsub admin. This
publisher is announced through etcd. So etcd is used for discovery of the publishers. Subscribers
are also registered as a service by the pubsub admin and will watch etcd for changes and when
a new publisher is announced, the subscriber will check if the topic matches its interests.
If the subscriber is interested in/subscribed to a certain topic, a connection between publisher
and subscriber will be instantiated by the pubsub admin.

The dfi library is used for message serialization. The publisher / subscriber implementation
will arrange that every message which will be send gets an unique id.

For communication between publishers and subscribers UDP and ZeroMQ can be used. When using
ZeroMQ it's also possible to setup a secure connection to encrypt the traffic being send between
publishers and subscribers. This connection can be secured with ZeroMQ by using a curve25519
key pair per topic.

The publisher/subscriber implementation supports sending of a single
message and sending of multipart messages.

This message was sent by Atlassian JIRA

View raw message