celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roy Lenferink <lenferink...@gmail.com>
Subject Publisher / subscriber implementation for Celix
Date Fri, 16 Dec 2016 13:58:57 GMT
Hi everyone,

I'm Roy Lenferink, a software engineering student at Saxion University of
Applied Sciences.
For my 3rd year I'm having an internship at Thales Nederland.

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

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.

Soon I will create a JIRA issue together with a pull request to get this
part included within Celix.

If you have any further questions, just reply to this mail!


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message