blob: ba77ac9a5c554c6501251eacf318becbd46f3071 [file] [log] [blame]
<!DOCTYPE html>
<!--
-
- 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" xml:lang="en">
<head>
<title>Overview - Apache Qpid&#8482;</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
<link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
<script type="text/javascript">var _deferredFunctions = [];</script>
<script type="text/javascript" src="/deferred.js" defer="defer"></script>
<!--[if lte IE 8]>
<link rel="stylesheet" href="/ie.css" type="text/css"/>
<script type="text/javascript" src="/html5shiv.js"></script>
<![endif]-->
<!-- Redirects for `go get` and godoc.org -->
<meta name="go-import"
content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
<meta name="go-source"
content="qpid.apache.org
https://github.com/apache/qpid-proton/blob/go1/README.md
https://github.com/apache/qpid-proton/tree/go1{/dir}
https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
</head>
<body>
<div id="-content">
<div id="-top" class="panel">
<a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
<a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
<ul id="-global-navigation">
<li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
<li><a href="/documentation.html">Documentation</a></li>
<li><a href="/download.html">Download</a></li>
<li><a href="/discussion.html">Discussion</a></li>
</ul>
</div>
<div id="-menu" class="panel" style="display: none;">
<div class="flex">
<section>
<h3>Project</h3>
<ul>
<li><a href="/overview.html">Overview</a></li>
<li><a href="/components/index.html">Components</a></li>
<li><a href="/releases/index.html">Releases</a></li>
</ul>
</section>
<section>
<h3>Messaging APIs</h3>
<ul>
<li><a href="/proton/index.html">Qpid Proton</a></li>
<li><a href="/components/jms/index.html">Qpid JMS</a></li>
<li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
</ul>
</section>
<section>
<h3>Servers and tools</h3>
<ul>
<li><a href="/components/broker-j/index.html">Broker-J</a></li>
<li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
<li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
</ul>
</section>
<section>
<h3>Resources</h3>
<ul>
<li><a href="/dashboard.html">Dashboard</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
<li><a href="/resources.html">More resources</a></li>
</ul>
</section>
</div>
</div>
<div id="-search" class="panel" style="display: none;">
<form action="http://www.google.com/search" method="get">
<input type="hidden" name="sitesearch" value="qpid.apache.org"/>
<input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
<button type="submit">Search</button>
<a href="/search.html">More ways to search</a>
</form>
</div>
<div id="-middle" class="panel">
<ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li>Overview</li></ul>
<div id="-middle-content">
<h1 id="overview">Overview</h1>
<h2 id="the-challenge">The challenge</h2>
<p>Modern large-scale applications are rarely built as monoliths.
Instead, they are built as distributed network applications, with
parts of the application in distinct processes and distinct parts of
the world.</p>
<p>All the same, the parts need to work together to behave as one
reliable application. They need a way to communicate, and they must
be able to tolerate failures.</p>
<h2 id="messaging-is-a-better-way">Messaging is a better way</h2>
<p>Modern messaging systems aren't the only way to get processes talking.
Your application's parts can share a view into a database, or you can
use HTTP and REST to expose information. But these approaches have
some serious drawbacks. A database is reliable, but it isn't designed
to intermediate communication. Its focus is storing data, not moving
it between processes. REST helps you communicate efficiently, but it
offers no reliability. If the party you're talking to is unavailable,
the transmission is dropped.</p>
<p>A store-and-forward messaging system gives you efficient, reliable
communication. Message brokers take responsibility for ensuring
messages reach their destination, even if the destination is
temporarily out of reach. Messaging APIs manage acknowledgments so
that no messages are dropped in transit.</p>
<h2 id="proprietary-messaging-solutions">Proprietary messaging solutions</h2>
<p>For decades, the messaging approach to application integration was
available only from proprietary vendors. Each vendor had its own
messaging API and its own wire protocol, and without going to trouble,
they wouldn't interoperate. Imagine each web server vendor using its
own protocol. That would seem intolerable, but that's precisely the
situation messaging was in.</p>
<p>With the introduction of the
<a href="http://en.wikipedia.org/wiki/Java_Message_Service">Java Message Service</a>
API, things got a little better. Now we had a standard messaging API.
But JMS doesn't define a standard wire protocol, and it doesn't help
you if you're not using Java.</p>
<h2 id="qpid-and-amqp">Qpid and AMQP</h2>
<p><a href="/amqp/index.html">AMQP</a> is the first open standard wire
protocol for messaging. AMQP is foremost about the choices it gives
you. You can choose any AMQP solution you prefer, and if the one you
chose doesn't work out, you can switch. Your application will still
work.</p>
<p>The Qpid project aims to spur the growth of the AMQP ecosystem. We
offer messaging APIs and message brokers for use in your application,
and core libraries for making AMQP part of your own messaging product.</p>
<ul>
<li><p><em>Open source</em> - We do our work in the community, and you can gain
from our contributions just as we can gain from yours.</p></li>
<li><p><em>Many languages, many platforms</em> - We want AMQP to be available
everywhere. That's why we have focused on supporting a wide range
of programming languages and computing environments.</p></li>
<li><p><em>Application development</em> - Messaging is essential to reliable
distributed applications, and we offer the tools you need to build
one. Check out our
<a href="/components/index.html#messaging-apis">messaging APIs</a>.</p></li>
<li><p><em>Messaging infrastructure</em> - You can design and deploy an AMQP
network that integrates with other services in your organization.
See our
<a href="/components/index.html#messaging-servers">messaging servers</a>.</p></li>
<li><p><em>Your messaging product</em> - We know that there are many established
messaging systems, and we want to make it easy for them to speak
AMQP. Consider using <a href="/proton/index.html">Qpid Proton</a>
instead of developing your own protocol support.</p></li>
</ul>
<h2 id="the-future-of-messaging-is-bigger-still">The future of messaging is bigger still</h2>
<p>Traditional messaging has focused on the back office, with just one
logical broker at the center of things. The AMQP 1.0 standard makes
messaging possible in a new, larger dimension. The next incarnation
of messaging will provide a diverse network of messaging
intermediaries. It will leverage redundancy in the network to route
around failures, just as TCP and routers do, and it will allow
messaging applications to operate at unprecedented scale.</p>
<p>The Qpid community is building the foundations for these new
technologies.</p>
<h2 id="more-information">More information</h2>
<ul>
<li><a href="get-involved.html">How to get involved</a></li>
<li><a href="http://www.apache.org/foundation/press/pr_2009_03_03.html">Qpid is a top-level project at Apache</a></li>
</ul>
<hr/>
<ul id="-apache-navigation">
<li><a href="http://www.apache.org/">Apache</a></li>
<li><a href="http://www.apache.org/licenses/">License</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
<li><a href="/security.html">Security</a></li>
<li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
</ul>
<p id="-legal">
Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
The Apache Software Foundation; Licensed under
the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
Proton, Apache, the Apache feather logo, and the Apache Qpid
project logo are trademarks of The Apache Software
Foundation; All other marks mentioned may be trademarks or
registered trademarks of their respective owners
</p>
</div>
</div>
</div>
</body>
</html>