diff options
Diffstat (limited to 'protocol.html')
| -rw-r--r-- | protocol.html | 57 |
1 files changed, 41 insertions, 16 deletions
diff --git a/protocol.html b/protocol.html index 922f46e..6f003bd 100644 --- a/protocol.html +++ b/protocol.html | |||
| @@ -30,7 +30,9 @@ | |||
| 30 | 30 | ||
| 31 | 31 | ||
| 32 | 32 | ||
| 33 | <link rel="top" title="EventMQ 0 documentation" href="index.html"/> | 33 | <link rel="top" title="EventMQ 0 documentation" href="index.html"/> |
| 34 | <link rel="up" title="Contributing to EventMQ" href="contributing.html"/> | ||
| 35 | <link rel="prev" title="Contributing to EventMQ" href="contributing.html"/> | ||
| 34 | 36 | ||
| 35 | 37 | ||
| 36 | <script src="_static/js/modernizr.min.js"></script> | 38 | <script src="_static/js/modernizr.min.js"></script> |
| @@ -79,11 +81,25 @@ | |||
| 79 | 81 | ||
| 80 | 82 | ||
| 81 | 83 | ||
| 82 | <ul> | 84 | <ul class="current"> |
| 83 | <li class="toctree-l1"><a class="reference internal" href="jobmanager.html"><code class="docutils literal"><span class="pre">jobmanager</span></code> – Job Manager</a></li> | 85 | <li class="toctree-l1"><a class="reference internal" href="api.html">API Documentation</a></li> |
| 84 | <li class="toctree-l1"><a class="reference internal" href="receiver.html"><code class="docutils literal"><span class="pre">receiver</span></code> – Receiver</a></li> | 86 | <li class="toctree-l1 current"><a class="reference internal" href="contributing.html">Contributing to EventMQ</a><ul class="current"> |
| 85 | <li class="toctree-l1"><a class="reference internal" href="router.html"><code class="docutils literal"><span class="pre">router</span></code> – Router</a></li> | 87 | <li class="toctree-l2 current"><a class="current reference internal" href="">EventMQ Protocol Specification</a><ul> |
| 86 | <li class="toctree-l1"><a class="reference internal" href="sender.html"><code class="docutils literal"><span class="pre">sender</span></code> – Sender</a></li> | 88 | <li class="toctree-l3"><a class="reference internal" href="#goals">Goals</a></li> |
| 89 | <li class="toctree-l3"><a class="reference internal" href="#license">License</a></li> | ||
| 90 | <li class="toctree-l3"><a class="reference internal" href="#language">Language</a></li> | ||
| 91 | <li class="toctree-l3"><a class="reference internal" href="#architecture">Architecture</a><ul> | ||
| 92 | <li class="toctree-l4"><a class="reference internal" href="#topology">Topology</a></li> | ||
| 93 | <li class="toctree-l4"><a class="reference internal" href="#router-addressing">ROUTER Addressing</a></li> | ||
| 94 | <li class="toctree-l4"><a class="reference internal" href="#emqp-client">eMQP / Client</a></li> | ||
| 95 | <li class="toctree-l4"><a class="reference internal" href="#emqp-worker">eMQP / Worker</a></li> | ||
| 96 | <li class="toctree-l4"><a class="reference internal" href="#heartbeating">Heartbeating</a></li> | ||
| 97 | </ul> | ||
| 98 | </li> | ||
| 99 | </ul> | ||
| 100 | </li> | ||
| 101 | </ul> | ||
| 102 | </li> | ||
| 87 | </ul> | 103 | </ul> |
| 88 | 104 | ||
| 89 | 105 | ||
| @@ -114,6 +130,8 @@ | |||
| 114 | <ul class="wy-breadcrumbs"> | 130 | <ul class="wy-breadcrumbs"> |
| 115 | <li><a href="index.html">Docs</a> »</li> | 131 | <li><a href="index.html">Docs</a> »</li> |
| 116 | 132 | ||
| 133 | <li><a href="contributing.html">Contributing to EventMQ</a> »</li> | ||
| 134 | |||
| 117 | <li>EventMQ Protocol Specification</li> | 135 | <li>EventMQ Protocol Specification</li> |
| 118 | <li class="wy-breadcrumbs-aside"> | 136 | <li class="wy-breadcrumbs-aside"> |
| 119 | 137 | ||
| @@ -131,9 +149,8 @@ | |||
| 131 | <div class="section" id="eventmq-protocol-specification"> | 149 | <div class="section" id="eventmq-protocol-specification"> |
| 132 | <h1>EventMQ Protocol Specification<a class="headerlink" href="#eventmq-protocol-specification" title="Permalink to this headline">¶</a></h1> | 150 | <h1>EventMQ Protocol Specification<a class="headerlink" href="#eventmq-protocol-specification" title="Permalink to this headline">¶</a></h1> |
| 133 | <p><em>The status of this document is alpha and subject to heavy change</em></p> | 151 | <p><em>The status of this document is alpha and subject to heavy change</em></p> |
| 134 | </div> | ||
| 135 | <div class="section" id="goals"> | 152 | <div class="section" id="goals"> |
| 136 | <h1>Goals<a class="headerlink" href="#goals" title="Permalink to this headline">¶</a></h1> | 153 | <h2>Goals<a class="headerlink" href="#goals" title="Permalink to this headline">¶</a></h2> |
| 137 | <p>The EventMQ Protocol (eMQP) defines a reliable service-oriented request-reply and pub-sub dialog between a set of clients, a broker, and a set of workers. This goal is to</p> | 154 | <p>The EventMQ Protocol (eMQP) defines a reliable service-oriented request-reply and pub-sub dialog between a set of clients, a broker, and a set of workers. This goal is to</p> |
| 138 | <p>The goals are to:</p> | 155 | <p>The goals are to:</p> |
| 139 | <blockquote> | 156 | <blockquote> |
| @@ -146,32 +163,32 @@ | |||
| 146 | </div></blockquote> | 163 | </div></blockquote> |
| 147 | </div> | 164 | </div> |
| 148 | <div class="section" id="license"> | 165 | <div class="section" id="license"> |
| 149 | <h1>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h1> | 166 | <h2>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h2> |
| 150 | <p>This Specification is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p> | 167 | <p>This Specification is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p> |
| 151 | <p>This Specification is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> | 168 | <p>This Specification is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</p> |
| 152 | </div> | 169 | </div> |
| 153 | <div class="section" id="language"> | 170 | <div class="section" id="language"> |
| 154 | <h1>Language<a class="headerlink" href="#language" title="Permalink to this headline">¶</a></h1> | 171 | <h2>Language<a class="headerlink" href="#language" title="Permalink to this headline">¶</a></h2> |
| 155 | <p>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119[[1](<a class="reference external" href="http://tools.ietf.org/html/rfc2119">http://tools.ietf.org/html/rfc2119</a>)].</p> | 172 | <p>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119[[1](<a class="reference external" href="http://tools.ietf.org/html/rfc2119">http://tools.ietf.org/html/rfc2119</a>)].</p> |
| 156 | </div> | 173 | </div> |
| 157 | <div class="section" id="architecture"> | 174 | <div class="section" id="architecture"> |
| 158 | <h1>Architecture<a class="headerlink" href="#architecture" title="Permalink to this headline">¶</a></h1> | 175 | <h2>Architecture<a class="headerlink" href="#architecture" title="Permalink to this headline">¶</a></h2> |
| 159 | <p>insert pretty picture here</p> | 176 | <p>insert pretty picture here</p> |
| 160 | <div class="section" id="topology"> | 177 | <div class="section" id="topology"> |
| 161 | <h2>Topology<a class="headerlink" href="#topology" title="Permalink to this headline">¶</a></h2> | 178 | <h3>Topology<a class="headerlink" href="#topology" title="Permalink to this headline">¶</a></h3> |
| 162 | <p>eMQP connects a set of client applications (e.g. web servers), a broker, and a pool of workers. Clients connect to the broker as well as the workers.</p> | 179 | <p>eMQP connects a set of client applications (e.g. web servers), a broker, and a pool of workers. Clients connect to the broker as well as the workers.</p> |
| 163 | <p>‘Clients’ is defined as application issuing requests and ‘workers’ as applications that process these requests. (Workers consist of a <cite>JobManager</cite> and a pool of <cite>Worker</cite> resources where the job executes.)</p> | 180 | <p>‘Clients’ is defined as application issuing requests and ‘workers’ as applications that process these requests. (Workers consist of a <cite>JobManager</cite> and a pool of <cite>Worker</cite> resources where the job executes.)</p> |
| 164 | <p>The EventMQ broker handles a set of named queues. The broker SHOULD serve clients on a fair request and MAY deliver requests to workers on any basis, including 0MQ’s built-in round robin or least-recently used.</p> | 181 | <p>The EventMQ broker handles a set of named queues. The broker SHOULD serve clients on a fair request and MAY deliver requests to workers on any basis, including 0MQ’s built-in round robin or least-recently used.</p> |
| 165 | </div> | 182 | </div> |
| 166 | <div class="section" id="router-addressing"> | 183 | <div class="section" id="router-addressing"> |
| 167 | <h2>ROUTER Addressing<a class="headerlink" href="#router-addressing" title="Permalink to this headline">¶</a></h2> | 184 | <h3>ROUTER Addressing<a class="headerlink" href="#router-addressing" title="Permalink to this headline">¶</a></h3> |
| 168 | <p>In the case of request-reply, the broker MUST use a ROUTER socket to accept requests from both clients and workers. The broker MAY use a seperate socket implementing a subset of eMQP, or MAY use a single socket implementing all of eMQP.</p> | 185 | <p>In the case of request-reply, the broker MUST use a ROUTER socket to accept requests from both clients and workers. The broker MAY use a seperate socket implementing a subset of eMQP, or MAY use a single socket implementing all of eMQP.</p> |
| 169 | <p>From the 0MQ manual[[2](<a class="reference external" href="http://api.zeromq.org/master:zmq-socket">http://api.zeromq.org/master:zmq-socket</a>)] | 186 | <p>From the 0MQ manual[[2](<a class="reference external" href="http://api.zeromq.org/master:zmq-socket">http://api.zeromq.org/master:zmq-socket</a>)] |
| 170 | > When receiving messages a ROUTER socket shall prepend a message part containing the identity of the originating peer to the message before passing it to the application. When sending messages a ROUTER socket shall remove the first part of the message and use it to determine the identity of the peer the message shall be routed to.</p> | 187 | > When receiving messages a ROUTER socket shall prepend a message part containing the identity of the originating peer to the message before passing it to the application. When sending messages a ROUTER socket shall remove the first part of the message and use it to determine the identity of the peer the message shall be routed to.</p> |
| 171 | <p>This extra frame is not shown in the specifications below.</p> | 188 | <p>This extra frame is not shown in the specifications below.</p> |
| 172 | </div> | 189 | </div> |
| 173 | <div class="section" id="emqp-client"> | 190 | <div class="section" id="emqp-client"> |
| 174 | <h2>eMQP / Client<a class="headerlink" href="#emqp-client" title="Permalink to this headline">¶</a></h2> | 191 | <h3>eMQP / Client<a class="headerlink" href="#emqp-client" title="Permalink to this headline">¶</a></h3> |
| 175 | <p>A <strong>REQUEST</strong> command consists of 7-frame multipart message, formatted as follows.</p> | 192 | <p>A <strong>REQUEST</strong> command consists of 7-frame multipart message, formatted as follows.</p> |
| 176 | <table border="1" class="docutils"> | 193 | <table border="1" class="docutils"> |
| 177 | <colgroup> | 194 | <colgroup> |
| @@ -218,7 +235,7 @@ | |||
| 218 | </table> | 235 | </table> |
| 219 | </div> | 236 | </div> |
| 220 | <div class="section" id="emqp-worker"> | 237 | <div class="section" id="emqp-worker"> |
| 221 | <h2>eMQP / Worker<a class="headerlink" href="#emqp-worker" title="Permalink to this headline">¶</a></h2> | 238 | <h3>eMQP / Worker<a class="headerlink" href="#emqp-worker" title="Permalink to this headline">¶</a></h3> |
| 222 | <p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p> | 239 | <p>An <strong>INFORM</strong> command consists of a 5-frame multipart message, formatted as follows.</p> |
| 223 | <table border="1" class="docutils"> | 240 | <table border="1" class="docutils"> |
| 224 | <colgroup> | 241 | <colgroup> |
| @@ -389,7 +406,7 @@ | |||
| 389 | </table> | 406 | </table> |
| 390 | </div> | 407 | </div> |
| 391 | <div class="section" id="heartbeating"> | 408 | <div class="section" id="heartbeating"> |
| 392 | <h2>Heartbeating<a class="headerlink" href="#heartbeating" title="Permalink to this headline">¶</a></h2> | 409 | <h3>Heartbeating<a class="headerlink" href="#heartbeating" title="Permalink to this headline">¶</a></h3> |
| 393 | <blockquote> | 410 | <blockquote> |
| 394 | <div><ul class="simple"> | 411 | <div><ul class="simple"> |
| 395 | <li>HEARTBEAT commands are valid at any time after an INFORM command</li> | 412 | <li>HEARTBEAT commands are valid at any time after an INFORM command</li> |
| @@ -401,12 +418,20 @@ | |||
| 401 | </div></blockquote> | 418 | </div></blockquote> |
| 402 | </div> | 419 | </div> |
| 403 | </div> | 420 | </div> |
| 421 | </div> | ||
| 404 | 422 | ||
| 405 | 423 | ||
| 406 | </div> | 424 | </div> |
| 407 | </div> | 425 | </div> |
| 408 | <footer> | 426 | <footer> |
| 409 | 427 | ||
| 428 | <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | ||
| 429 | |||
| 430 | |||
| 431 | <a href="contributing.html" class="btn btn-neutral" title="Contributing to EventMQ" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> | ||
| 432 | |||
| 433 | </div> | ||
| 434 | |||
| 410 | 435 | ||
| 411 | <hr/> | 436 | <hr/> |
| 412 | 437 | ||