<?xml version="1.0" encoding="utf-8"?>
<!--
 
 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.
 
-->

<chapter>

<title>Apache Qpid: Open Source AMQP Messaging</title>

<para>Enterprise Messaging systems let programs communicate by exchanging messages, much as people communicate by exchanging email. Unlike email, enterprise messaging systems provide guaranteed delivery, speed, security, and freedom from spam. Until recently, there was no open standard for Enterprise Messaging systems, so programmers either wrote their own, or used expensive proprietary systems.</para>

<para>AMQP Advanced Message Queuing Protocol is the first open standard for Enterprise Messaging. It is designed to support messaging for just about any distributed or business application. Routing can be configured flexibly, easily supporting common messaging paradigms like point-to-point, fanout, publish-subscribe, and request-response.</para>

<para>Apache Qpid implements the latest AMQP specification, providing transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support and a lot more. And Apache Qpid is extremely fast. Apache Qpid <ulink url="### FIX ME ###">aims to be 100% AMQP Compliant</ulink>.</para>

<section>
<title>AMQP Messaging Brokers</title>

<para>Qpid provides two AMQP messaging brokers:</para>

<itemizedlist>
   <listitem><para>Implemented in C++ - high performance, low latency, and RDMA support.</para></listitem>
   <listitem><para>Implemented in Java - Fully JMS compliant, runs on any Java platform.</para></listitem>
</itemizedlist>

<para>Both AMQP messaging brokers support clients in multiple languages, as long as the messaging client and the messaging broker use the same version of AMQP. See <ulink url="### FIX ME ###">Download</ulink> to see which messaging clients work with each broker.</para>

</section>

<section>
<title>AMQP Client APIs: C++, Java, JMS, Ruby, Python, and C#</title>

<para>Qpid provides AMQP Client APIs for the following languages:</para>

<itemizedlist>
   <listitem><para>C++</para></listitem>
   <listitem><para>Java, fully conformant with JMS 1.1</para></listitem>
   <listitem><para>C# .NET, 0-10 using WCF</para></listitem>
   <listitem><para>Ruby</para></listitem>
   <listitem><para>Python</para></listitem>
</itemizedlist>

</section>

<section>
<title>Operating Systems and Platforms:</title>

<para>The Qpid C++ broker runs on the following operating systems:</para>

<itemizedlist>
   <listitem><para>Linux systems</para></listitem>
   <listitem><para>Windows</para></listitem>
   <listitem><para>Solaris (coming soon)</para></listitem>
</itemizedlist>

<para>The Qpid Java broker runs on:</para>

<itemizedlist>
   <listitem><para>Any Java platform</para></listitem>
</itemizedlist>

<para>Qpid clients can be run on the following operating systems and platforms:</para>

<itemizedlist>
   <listitem><para>Java:</para>
       <itemizedlist>
         <listitem><para>any platform, production proven on Windows, Linux, Solaris</para></listitem>
       </itemizedlist>
   </listitem>


   <listitem><para>C++:</para>
    <itemizedlist>
         <listitem><para>Linux</para></listitem>
         <listitem><para>Windows</para></listitem>
         <listitem><para>Solaris (coming soon)</para></listitem>
    </itemizedlist>
   </listitem>

   <listitem><para>C#</para>
     <itemizedlist>
       <listitem><para>.NET</para></listitem>
     </itemizedlist>
   </listitem>

</itemizedlist>

</section>
</chapter>
