P/S sockets: supporting publish/subscribe communication through the standard socket API

While the address-oriented datagram and reliable stream services supported by the UDP and TCP protocols are the foundation of distributed computing, other forms of communication are increasingly being used to build contemporary systems and applications. A popular alternative to datagram- and stream-based communication is the Publish/Subscribe (P/S) paradigm, where message forwarding and reception is done based on a topic or content descriptions instead of an address. Several middleware systems have been built to support this form of communication, on top of the socket API. Taking a different approach, we discuss how P/S networking can be supported through the socket API, so that this can serve as a universal interface for supporting different communication abstractions. To this end we introduce a new address family and extend the semantics of selected socket primitives to support P/S functions. Also, we describe a proof-of-concept implementation of the proposed socket extension, which features two protocols for ad-hoc and infrastructure-based P/S communication, respectively.

[1]  Craig Metz Protocol Independence Using the Sockets API , 2000, USENIX Annual Technical Conference, FREENIX Track.

[2]  Matthias Scheutz,et al.  Development environments for autonomous mobile robots: A survey , 2007, Auton. Robots.

[3]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[4]  Michael Goldweber,et al.  msocket: multiple stack support for the berkeley socket API , 2012, SAC '12.

[5]  Alexander L. Wolf,et al.  Content-based publish/subscribe networking and information-centric networking , 2011, ICN '11.

[6]  George Xylomenos,et al.  Design and Evaluation of a Socket Emulator for Publish/Subscribe Networks , 2010, FIS.

[7]  Ken Thompson,et al.  Plan 9 from Bell Labs , 1995 .

[8]  Nikos Fotiou,et al.  Illustrating a publish-subscribe Internet architecture , 2012, Telecommun. Syst..

[9]  Bengt Ahlgren,et al.  A survey of information-centric networking , 2012, IEEE Communications Magazine.

[10]  David M. Eyers,et al.  Towards a common API for publish/subscribe , 2007, DEBS '07.

[11]  Van Jacobson,et al.  Networking named content , 2009, CoNEXT '09.

[12]  Alessio Vecchio,et al.  A Cross-Layer Approach for Publish/Subscribe in Mobile Ad Hoc Networks , 2005, MATA.

[13]  David S. Rosenblum,et al.  Design and evaluation of a wide-area event notification service , 2001, TOCS.

[14]  Paul Müller,et al.  A Requirement-Based Socket API for a Transition to Future Internet Architectures , 2012, 2012 Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing.