<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
 -
 - Licensed to the Apache Software Foundation (ASF) under one
 - or more contributor license agreements.  See the NOTICE file
 - distributed with this work for additional information
 - regarding copyright ownership.  The ASF licenses this file
 - to you under the Apache License, Version 2.0 (the
 - "License"); you may not use this file except in compliance
 - with the License.  You may obtain a copy of the License at
 -
 -   http://www.apache.org/licenses/LICENSE-2.0
 -
 - Unless required by applicable law or agreed to in writing,
 - software distributed under the License is distributed on an
 - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 - KIND, either express or implied.  See the License for the
 - specific language governing permissions and limitations
 - under the License.
 -
-->
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Apache Qpid Dispatch&#8482;: A Platform for Building AMQP Infrastructure</title>
    <link href="css/style.css" rel="stylesheet" type="text/css"/>
  </head>

  <body>
    <div class="container">
      <!-- begin header -->

      <div class="header">
        <div class="logo">
          <h1>Apache Qpid Dispatch&#8482;</h1>
          <h2>A Platform for Building AMQP Infrastructure</h2>
        </div>
      </div>

      <!-- end header -->

      <!-- begin menu -->
      <!--#include virtual="includes/menu.include" -->
      <!-- end menu -->

      <!-- begin content -->
      <div class="main_text_area">
        <div class="main_text_area_top"></div>

        <div class="main_text_area_body">

<p>Qpid Dispatch is a library to help developers build infrastructure
components for AMQP.  Dispatch is not a general-purpose Messaging API.
Rather, it is a foundation on which to build applications, services, and
appliances that need direct access to the detailed constructs of AMQP.</p>
<hr width="80%" />
<h2>Overview</h2>
<p>Dispatch is an extension of the Engine and Driver interfaces of
<a href="http://qpid.apache.org/proton">Qpid Proton</a>.  It neither
uses nor exposes the Messenger interface of Proton.  Rather, it
provides a way for developers to use Proton's more detailed Engine
facility.  The following features are provided:</p>

<ul>
  <li>An asynchronous, event-oriented application environment</li>
  <li>Safe multi-threaded use of Proton</li>
  <li>Operating System Signal handling</li>
  <li>Quiesce and Resume for the application's threads</li>
  <li>Timers</li>
  <li>Resilient outbound connections (retry/reconnect)</li>
  <li>Polling support for the application's non-AMQP file descriptors</li>
  <li>An AMQP Node Container that allows the developer to create
  custom node types</li>
</ul>
<p />
<hr width="80%" />
<h2>Architecture</h2>
<center><img src="images/arch.png" /></center>
<ul>
  <li><b>Proton Engine and Driver</b> provide the underlying AMQP capability</li>
  <li><a href="doxygen/server/modules.html">Dispatch Server</a>
    wraps Proton connections in a multi-threaded server environment</li>
  <li><b>Dispatch Container</b> provides management of AMQP nodes (links, termini, and deliveries)</li>
  <li><b>Dispatch Message</b> provides efficient message encode/decode, optimized for messaging intermediaries</li>
  <li>The <b>Application</b> uses all of the above services to implement scalable and performant AMQP infrastructure</li>
</ul>
<hr width="80%" />

        </div>
        
        <div class="main_text_area_bottom"></div>
      </div>
      <!-- end content -->

      <!-- begin footer -->
      <!--#include virtual="includes/footer.include" -->
      <!-- end footer -->

    </div>
  </body>
</html>
