D-Bus TCP Transport layer
Andrew Johnson
anj@aps.anl.gov
Fri Jan 28 12:51:20 PST 2005
Can someone who knows comment on the security, robustness and maturity
of the TCP/IP D-Bus transport layer?
A related question: the D-Bus Unix transport layer is said to implement
connection management within the context of a single machine; does/will
the TCP/IP transport layer extend that to remote systems and be able to
detect and report disconnection events caused by power and/or network
failures?
Some context for my question: I'm looking at the feasibility of using
D-Bus to re-implement the functionality of an existing network protocol
called EPICS Channel Access, which is used by research laboratories
throughout the world to build "slow" control systems for large
distributed scientific experiments [visit http://www.aps.anl.gov/epics/
for more information about EPICS]. It would be great for the next major
version of EPICS to be able to base its network communications on a
standard IPC protocol like D-Bus, although we'd obviously have to write
our own wrappers to achieve all the functionality we have now. However
there is no point our adopting D-Bus if it can't provide the features we
need from the network transport layer.
Our existing protocol implements a Publish and Subscribe model across a
network subnet, using both UDP and TCP; client applications use UDP to
broadcast the names of those data channels they are interested in, and
the servers for those data channels identify themselves in a UDP reply,
at which point the clients connect to those servers directly using TCP
and subscribe to data updates for the relevant channels. Data updates
are published to the individual clients asynchronously as they occur,
and the clients can also do gets and puts of data as they wish.
It's very important for us that the IPC layer should correctly handle
connection management in the face of network and/or server failures,
which is one area where many of the other standard network IPC protocols
are severely lacking. If a connected server dies for any reason (the
process may end nicely or be killed, the server machine may be turned
off without any warning or the network connecting the two might fail),
the clients that were subscribed to any of its data channels must be
able to discover this within about 30 seconds of the fault. If the
server later comes back on line, its clients must be able to discover
this and reconnect immediately without having to be restarted.
Similarly if a server only gets started after the clients that are
interested in its data channels, those clients should immediately
recognize that a new server is available and be able to check if it has
any of the unresolved channels they want.
Thanks in advance,
- Andrew
--
Dear God, I didn't think orange went with purple until I saw
the sunset you made last night. That was really cool. - Caro
More information about the dbus
mailing list