blob: 06732acc8a41c669b6d4ecc6a7fc0d39f8a04195 [file] [log] [blame]
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc category="info" docName="sp-publish-subscribe-01">
<front>
<title abbrev="Publish/Subscribe SP">
Publish/Subscribe Scalability Protocol
</title>
<author fullname="Martin Sustrik" initials="M." role="editor"
surname="Sustrik">
<address>
<email>sustrik@250bpm.com</email>
</address>
</author>
<date month="May" year="2014" />
<area>Applications</area>
<workgroup>Internet Engineering Task Force</workgroup>
<keyword>Publish</keyword>
<keyword>Subscribe</keyword>
<keyword>PUB</keyword>
<keyword>SUB</keyword>
<keyword>distribution</keyword>
<keyword>SP</keyword>
<abstract>
<t>This document defines a scalability protocol used for distributing
data to arbitrary number of subscriber nodes.</t>
</abstract>
</front>
<middle>
<section title = "Introduction">
<t>Blah-blah.</t>
</section>
<section title = "Underlying protocol">
<t>The publish/subscribe protocol can be run on top of any SP mapping,
such as, for example, <xref target='SPoverTCP'>SP TCPmapping</xref>.
</t>
<t>Also, given that SP protocols describe the behaviour of entire
arbitrarily complex topology rather than of a single node-to-node
communication, several underlying protocols can be used in parallel.
For example, publisher can send a message to intermediary node via TCP.
The intermediate node can then forward the message via PGM etc.</t>
<figure>
<artwork>
+---+ TCP +---+ PGM +---+
| |----------->| |---------->| |
+---+ +---+ +---+
|
| PGM +---+
+------------>| |
+---+
</artwork>
</figure>
</section>
<section title = "Overview of the algorithm">
<t>Blah-blah.</t>
</section>
<section title = "Hop-by-hop vs. End-to-end">
<t>Blah-blah.</t>
</section>
<section title = "Hop-by-hop functionality">
<section title = "PUB endpoint">
<t>Blah-blah.</t>
</section>
<section title = "SUB endpoint">
<t>Blah-blah.</t>
</section>
</section>
<section title = "End-to-end functionality">
<t>End-to-end functionality is built on top of hop-to-hop functionality.
Thus, an endpoint on the edge of a topology contains all the
hop-by-hop functionality, but also implements additional
functionality of its own. This end-to-end functionality acts
basically as a user of the underlying hop-by-hop functionality.</t>
<section title = "PUB endpoint">
<t>Blah-blah.</t>
</section>
<section title = "SUB endpoint">
<t>Blah-blah.</t>
</section>
</section>
<section title = "Loop avoidance">
<t>TODO: Do we want any loop avoidance in PUB/SUB?</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>New SP endpoint types PUB and SUB should be registered by IANA. For
now, value of 32 should be used for PUB endpoints and value of 33 for
SUB endpoints.</t>
<t>IANA should eventually also register and issue numbers for different
message matching algorithms.</t>
</section>
<section anchor="Security" title="Security Considerations">
<t>The mapping is not intended to provide any additional security to the
underlying protocol. DoS concerns are addressed within
the specification.</t>
</section>
</middle>
<back>
<references>
<reference anchor='SPoverTCP'>
<front>
<title>TCP mapping for SPs</title>
<author initials='M.' surname='Sustrik' fullname='M. Sustrik'/>
<date month='August' year='2013'/>
</front>
<format type='TXT' target='sp-tcp-mapping-01.txt'/>
</reference>
</references>
</back>
</rfc>