Will Stephenson
Mon, 27 Feb 2006 16:55:06 -0800
So I went to the OpenCDI* Telepathy meeting in Brussels yesterday(ish), here
are the main points from the meeting:
* Open Communication Desktop Interface
Attending: Eva Brücherseifer (KDE/BasysKom - openCDI), Stefan Eilers
(BasysKom)
myself, Olivier Goffart
Rob Taylor, Rob McQueen and Philippe Kalaf (aka Burger) from
Collabora Ltd
Various guys from Nokia (sponsoring Collabora to work on telepathy)
Stichting NL.net (sponsoring BasysKom to work on OpenCDI)
Various Debian people and Raphael Slincx who I think does something
with
DBUS.
Asterisk people were invited but unable to attend
*) Collabora presented the Telepathy framework which is a set of DBUS
interfaces which offer standardized interfaces to interact with IM/VoIP
systems. Think like KIMIface but with relatively more control than presence
emphasis. telepathy.freedesktop.org is the resource but is not quite up to
date.
Goal is to make it very easy for all kinds of apps to use various types of
messaging. Collabora are mainly emphasizing Jabber/VoIP but realize
proprietary IM systems are part of real world messaging.
Telepathy would consist of 3 layers of processes connected by DBUS interfaces.
Not tied to Linux desktop, also possible on MacOS and win32.
UI
|
Mission Control (== libkopete)
|
Connection Manager (== Protocol in Kopete speak) manages 1 or more accounts,
allocates communication channels on demand (KopeteMessageManagers)
The main channels cover lowest-common-denominator messaging, presence, contact
list management, privacy, contact details. To access richer services
supplied by a particular protocol, connection managers offer a getInterfaces
method returning paths to 'proprietary' functionality.
There may be >1 Connection Manager of course.
Galago is proposed as the presence layer but we did not go into much detail on
this (I think there are many open questions about the Galago architecture, is
it too complex, can we define useful subsets such as a reimpl of KIMIface or
an even more restricted presence system for an embedded device with fixed
components?).
ATM implementation is only a python based Jabber Connection Manager and one
for VoIP with testbed level frontends.
*) BasysKom presented their take, they and Stichting NL.net want to create a
standard way for apps to access VoIP and traditional telephony services,
which coincides well with Telepathy.
Questions they raised are: do the UI and Mission Control reside in the same
process, what's left to do on the spec, automatic generation of interfaces
(like dcopidl) and how to continue working together in future?
This took most of the meeting to present, afterwards we had a short
discussion, topics included missing/unclear stuff from the spec - doesn't
cover rich text messaging, some searching, async calling (all DBUS methods
can be called in sync or async mode which is nice). We also talked about
candidate toolkits - everyone has their own preference, Collabora would tend
to glib, BasysKom to Qt, on embedded systems small footprint is a concern,
and there could be problems with some zealots not accepting Qt. Since
proprietary protocols have relatively stable feature sets it would be
desirable to specify these in more detail than "query getInterfaces and go
from there" so that UIs aren't tied to a particular Connection Manager
implementation.
The usual mailing list, website, wiki, defect tracking was discussed and set
in motion.
So, my take, and reasons for being interested:
A year or 2 ago Lilachaze (Richard Smith), Duncan and I talked over separating
Kopete into distinct processes, to aid stability, performance and also to
allow access to IM without having to have a traditional contact list window
type UI visible. The results are on the KDE wiki at
http://wiki.kdenews.org/tiki-index.php?page=Kopete+Development+ContactListResource
We never got beyond talking about it due to lack of time, but we realised it
would be a lot of work. The Telepathy guys have done most of the design work
for us. We will have to redesign the RPC interface anyway with the move to
DBUS for KDE4.
I propose that for KDE4 we restructure Kopete as planned earlier, building on
the Telepathy framework to do this.
Benefits to Kopete IMO:
*) Stability, a crashing protocol can't take down the whole system.
*) Performance, Kopete is an event driven single threaded app, but events may
come from several network sockets or from the user or from the many timers we
use for UI eye candy</rant>, so it feels slow.
*) Cleaner architecture, a more loosely coupled design with well defined
interfaces is much easier to understand and the consequences of making
changes at one level will be easier to see at others. This makes Kopete a
more vital project, easier to attract developers from various areas, easier
to maintain.
*) Influence - Telepathy is not a finished design, we are the mature IM app
involved at an early stage so would be sharing our experience.
*) Broader user base - libkopete has not been used outside Kopete unlike
libgaim. A DBUS interface makes this possible at more levels, we could have
other desktops/OSs using our stable and secure network layers.
Benefits to KDE and rest of world
*) Easier to use Kopete's IM services and those of other apps in a uniform way
- access to a broader range of messaging services
*) Using Qt in real cross-desktop applications, as a core participant.
That's it, I'm going to bed, and I haven't forgotten about finishing the
AddContactDialog bits.
Will
_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel