forked from nanomsg/nanomsg
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Inital version of publish/subscribe RFC added
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
- Loading branch information
Showing
4 changed files
with
335 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
|
||
|
||
|
||
|
||
Internet Engineering Task Force M. Sustrik, Ed. | ||
Internet-Draft | ||
Intended status: Informational May 4, 2014 | ||
Expires: November 5, 2014 | ||
|
||
|
||
Publish/Subscribe Scalability Protocol | ||
sp-publish-subscribe-01 | ||
|
||
Abstract | ||
|
||
This document defines a scalability protocol used for distributing | ||
data to arbitrary number of subscriber nodes. | ||
|
||
Status of This Memo | ||
|
||
This Internet-Draft is submitted in full conformance with the | ||
provisions of BCP 78 and BCP 79. | ||
|
||
Internet-Drafts are working documents of the Internet Engineering | ||
Task Force (IETF). Note that other groups may also distribute | ||
working documents as Internet-Drafts. The list of current Internet- | ||
Drafts is at http://datatracker.ietf.org/drafts/current/. | ||
|
||
Internet-Drafts are draft documents valid for a maximum of six months | ||
and may be updated, replaced, or obsoleted by other documents at any | ||
time. It is inappropriate to use Internet-Drafts as reference | ||
material or to cite them other than as "work in progress." | ||
|
||
This Internet-Draft will expire on November 5, 2014. | ||
|
||
Copyright Notice | ||
|
||
Copyright (c) 2014 IETF Trust and the persons identified as the | ||
document authors. All rights reserved. | ||
|
||
This document is subject to BCP 78 and the IETF Trust's Legal | ||
Provisions Relating to IETF Documents | ||
(http://trustee.ietf.org/license-info) in effect on the date of | ||
publication of this document. Please review these documents | ||
carefully, as they describe your rights and restrictions with respect | ||
to this document. Code Components extracted from this document must | ||
include Simplified BSD License text as described in Section 4.e of | ||
the Trust Legal Provisions and are provided without warranty as | ||
described in the Simplified BSD License. | ||
|
||
|
||
|
||
|
||
|
||
|
||
Sustrik Expires November 5, 2014 [Page 1] | ||
|
||
Internet-Draft Publish/Subscribe SP May 2014 | ||
|
||
|
||
1. Introduction | ||
|
||
Blah-blah. | ||
|
||
2. Underlying protocol | ||
|
||
The publish/subscribe protocol can be run on top of any SP mapping, | ||
such as, for example, SP TCPmapping [SPoverTCP]. | ||
|
||
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 et | ||
c. | ||
|
||
+---+ TCP +---+ PGM +---+ | ||
| |----------->| |---------->| | | ||
+---+ +---+ +---+ | ||
| | ||
| PGM +---+ | ||
+------------>| | | ||
+---+ | ||
|
||
3. Overview of the algorithm | ||
|
||
Blah-blah. | ||
|
||
4. Hop-by-hop vs. End-to-end | ||
|
||
Blah-blah. | ||
|
||
5. Hop-by-hop functionality | ||
|
||
5.1. PUB endpoint | ||
|
||
Blah-blah. | ||
|
||
5.2. SUB endpoint | ||
|
||
Blah-blah. | ||
|
||
6. End-to-end functionality | ||
|
||
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 | ||
|
||
|
||
|
||
|
||
Sustrik Expires November 5, 2014 [Page 2] | ||
|
||
Internet-Draft Publish/Subscribe SP May 2014 | ||
|
||
|
||
its own. This end-to-end functionality acts basically as a user of | ||
the underlying hop-by-hop functionality. | ||
|
||
6.1. PUB endpoint | ||
|
||
Blah-blah. | ||
|
||
6.2. SUB endpoint | ||
|
||
Blah-blah. | ||
|
||
7. Loop avoidance | ||
|
||
TODO: Do we want any loop avoidance in PUB/SUB? | ||
|
||
8. IANA Considerations | ||
|
||
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. | ||
|
||
IANA should eventually also register and issue numbers for different | ||
message matching algorithms. | ||
|
||
9. Security Considerations | ||
|
||
The mapping is not intended to provide any additional security to the | ||
underlying protocol. DoS concerns are addressed within the | ||
specification. | ||
|
||
10. References | ||
|
||
[SPoverTCP] | ||
Sustrik, M., "TCP mapping for SPs", August 2013. | ||
|
||
Author's Address | ||
|
||
Martin Sustrik (editor) | ||
|
||
Email: sustrik@250bpm.com | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Sustrik Expires November 5, 2014 [Page 3] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
<?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 et c.</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> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters