[[html(
Concordance
noun
)]]
1. a harmonious state of things in general and of their properties (as of colors and sounds);
2. congruity of parts with one another and with the whole;
3. '''a robust XMPP service framework for Python 3.1'''
== Introduction ==
[http://xmpp.org/ XMPP] (eXtensible Messaging and Presence Protocol) is an excellent foundation for countless custom services. Concordance is a framework for building and deploying those custom XMPP services rapidly.
== Paradigm ==
When web applications are written in XMPP content is published to and managed by Concordance in XML form. For example, an application which allows a user to record books in her library could use a [http://xmpp.org/extensions/xep-0004.html data form] to receive the title, author, and isbn of the book. The application could then generate the following XML record internally:
{{{
Dive Into Python 3
Mark Pilgrim
9781430224150
}}}
This internal record is "published" to the [http://xmpp.org/extensions/xep-0060.html PubSub] node for the application and everyone who's subscribed to it will immediately receive the new book record. The magic is in who that encompasses:
* The submitter's own web browser
* The web agent which generates a new snapshot of the page(s) which include this content
* Any other web user currently on a page which includes this content
* Any external agents (other websites, direct XMPP clients, etc) subscribed to the content
So once they submit the data, it appears instantly with no custom javascript or ajax/comet debugging on the application writer's part.
Templates are also managed by [http://xmpp.org/extensions/xep-0060.html PubSub] in [http://en.wikipedia.org/wiki/XSLT XSLT] form so, as in the above example, an updated template can be seen in every browser viewing an affected page immediately.
Virtually any web application can be implemented on this model using the classes and decorators Concordance provides.
== Status ==
Concordance is pre-1.0. There is no release yet and the code is very much in flux, but you can view the current state via our Mercurial repository at [http://hg.concordance-xmpp.org/concordance]. While we've had test servers running, it should not be used for anything even remotely public yet.
We are currently migrating the C code to a new Python-friendly [http://www.gnation.org/ XMPP server] to allow Concordance to be a pure-Python service framework.