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
(v6.3.4#6332)

Reply via email to