Let me thank you in advance for your interest. I’'ll try to define my proposals in a deeper detail.
One of my research topic (I’‘m a PhD student at the univ of Bari, Italy) is supporting collaboration for distribuited workgroups. I’‘ve already had the chance to use the SMACK library for a bit. A few time ago I built a text-conferencing app in Java using the Jxta framework. However, I’'ve never felt very comfortable with that technology; hence one day I decided to test how Jabber/XMPP worked instead. So, I refactored that app to build a general messaging framework to support both JXTA and XMPP at the same time. Personally, I do like how XMPP allows programmer to write very simple and thin clients.
Now that I’‘ve found a good technology candidate for a prototype, I’'d like to improve (or better, evolve) the old application, re-writing a new collaboration tool that fully exploits XMPP. The new tool should allow ad hoc workgroup to be arranged as quickly and simply as possible, allowing both synch (replicating all the feature of the old conferencing tool) and asynch discussion, sharing of artifacts (of course), plus other features related to automated social network analysis and virtual community of practice, that are not relevant here.
Here come my questions.
MUC allows to dynamically add participant to a previously created room (and even ban/remove then). That is, if you and I have joined a room, we can add more participants whenever we want, right? Then, can you have permanent conference rooms whose message history limit is unbounded (without having a custom server omplementation I mean)? This is important to support asynch communication.
- Front end
I would like this app to be a web based collaboration tool, rather than a standalone one; it could be:
a pure web app, built with JSP, PHP and the like; or
a rich web app, built with Mozilla XUL (then one could think to re-build with
the forthcoming XAML, MS counterpart of XUL, for portability’'s sake).
This two options open new observations related to what jabber lib to use.
In the first case (pure web app), I didn’‘t find a full-featured PHP lib to use. I didn’‘t have time to look at Perl impl. yet. Hence, should I choose the JSP option to embed a XMPP into my web-based app, do you know of any limitation (e.g. I’'d really like to know whether one could implement synch communication by server-side push or only by periodic polling; that would be important to know) or impossibility to exploit SMACK (which is pretty full featured, instead…)? Maybe someone else has already done this. I thoght you might have ideas on that because of your Jive Messenger which has a JSP front end.
- File sharing
As the tool is meant to support impromptu communication and collaboration, also the sharing of artifacts has to be as simple as drag-n-drop’'ing a file on the repository area. File sharing w/ XMPP seems a bit messy to me! Browsing the various JEPs about the file transfer feature, I think to understand that the inband solution would fit my need at best (am I wrong?). At the moment of writing, SMACK does not implement any of the file transfer JEP yet, does it? However, that would not be such a big issue, but rather a nice chance to contribute to its growth…
I’'d really like to hear from you, advices, doubts, demurs, whatever! So thanks for spending your time reading my email.