[jdev] Bouillon 2 project

Victor Grishchenko gritzko at plotinka.ru
Wed Jun 21 04:14:41 CDT 2006


Yesterday I've launched first public Bouillon server. It is relevant  
to Jabber because it uses XMPP as a transport, it also uses rosters  
as a material for building social network (in plain words, in reuses  
existing IM contact social network). Bouillon functionality  
intersects with Jabber whiteboarding and Jabber wiki initiatives.  
Current Bouillon connects to a Jabber server as an external  
component. Client side is implemented in AJAX.

In two words, Bouillon is "editable Web". In four words, "P2P wiki  
with reputations". In more detail:

- Bouillon allows P2P editing of arbitrary XML (XHTML for now). But,  
there are no single global version of any page. Each user's agent  
retrieves and assembles pieces of a page from user's friends, friends- 
of-a-friend, etc
- If Bouillon user likes a page or a new piece of a page or a new  
version of an existing piece (i.e. considers it relevant) then (s)he  
may confirm that page/piece (i.e. issue an opinion) and let it  
propagate further in the social network
- If a Bouillon user considers a piece to be trash/spam then (s)he  
may suppress propagation of that piece issuing a negative opinion.
- Users may edit existing pieces or insert new pieces using their Web  
browsers or any other client if implemented.

Pieces are identified by POV IDs, i.e. parent_id/own_id:version_id.  
An example:
	Bouillon_Manual-root/EditingTherearethree:author=foaf at oc- 
It means: "Editing" section at "Bouillon_Manual" page, version by  
foaf at oc-co.org created on Tuesday, June 20th.

To see that piece and the whole page a Bouillon user has to visit  
http://some.bouillon.server/page/Bouillon_Manual, so it is much  
analogous to wiki. Realtimeness of Bouillon is currently limited by  
AJAX client which polls a server every minute or so; otherwise,  
changes may propagate in real time.

Technically, Bouillon engine uses <iq> to send requests/responses  
back and forth. User information and roster is obtained from a server  
using simple jabber login having -1 priority.

I consider the core algorithm of Bouillon, the oc-co asynchronous  
switching engine, as mature. Theoretically, it may process any XML  
content, e.g. SVG. The code itself is released under GPL, see http:// 

So finally, I am currently considering possible Bouillon  
applications. In particular I think it worth discussing in regard to  
Jabber-driven real-time wiki and Jabber whiteboarding initiatives.


					Victor Grishchenko
					research fellow
					Ural State University

					see project blog at: http://oc-co.org
					Bouillon public server: http://oc-co.org:8000

More information about the JDev mailing list