[dot] The Pillars of KDE 4: Decibel Definitions and Benefits

Dot Stories stories at kdenews.org
Fri Feb 16 22:03:31 CET 2007


URL: http://dot.kde.org/1171659655/

From: Nathan Ogden <nathanogden76 at gmail.com>
Dept: communication-is-a-wonderful-thing
Date: Friday 16/Feb/2007, @13:00

The Pillars of KDE 4: Decibel Definitions and Benefits
======================================================

   In part 1 [http://dot.kde.org/1170892771/], we gave a general
overview of Decibel [http://decibel.kde.org/]. In part 2 [#part2], we
cover everyone's favorite section - the definitions! Well, at least we
hope that the definitions will be informative. Part 3 [#part3] will
describe some benefits for developers while part 4 [#part4] deals with
benefits for users. Read on for the details.

     Decibel is a service that is concerned with real time
communications; therefore, everything that connects one user with
another user and makes it possible to get replies instantaneously is in
the scope of Decibel. Decibel is based on the Telepathy
[http://telepathy.freedesktop.org/wiki/] D-Bus
[http://www.freedesktop.org/wiki/Software/dbus] API's and uses the
Tapioca [http://tapioca-voip.sourceforge.net/wiki/index.php/Tapioca]
implementation of these API's.
 Definitions
     A few Decibel-related definitions:


A. REAL TIME COMMUNICATION (RTC)

     Real time communication refers to all computer-supported
interactive means of communication. This includes text chats (AIM, MSN,
IRC, Jabber, etc.), telephony (VoIP or CTI), video conferencing, and
more. Other means of communication such as email and newsgroups are not
instantaneous, and as such are beyond the scope of Decibel.


B. COMPUTER TELEPHONE INTEGRATION (CTI)

     Computer Telephone Integration deals with a phone connecting to and
being controlled by a computer. For example, the computer could be used
to dial a phone number on the phone using the computer's address book.
Also, the computer could display the contact information of an incoming
call (by looking up the incoming phone number from the computer's
contact data).


C. TELEPATHY (THE PROJECT)

     Telepathy is a project being hosted at freedesktop.org. Its focus
is to create a set of API's that talk to Real Time Communication
services. These API's are based on D-Bus and are pretty low level.


D. D-BUS

     D-Bus is also a freedesktop.org project, heavily influenced by
KDE's DCOP, and used as a simple means of communications between
applications. The primary purposes of D-Bus are for communication
between desktop applications (for better perceived integration), and
communication between desktop applications and the operating system
(including running system daemons and processes).


E. VOICE OVER INTERNET PROTOCOL (VOIP)

     VoIP, or Voice over Internet Protocol, is the delivery of voice
conversation over an IP-based network. This can be over a local network,
using VoIP technologies for intra-office communications, or over the
internet for inter-personal communications. VoIP service may make use of
an analog POTS (Plain Old Telephone Service) line for access to the
traditional telephone system, or simply a connection between two VoIP
applications.


F. TAPIOCA (THE PROJECT)

     Tapioca is a project that is working towards implementing the
Telepathy specification. Those working on the Tapioca project provide
language bindings that are not available from the Telepathy developers.
They also attempt to smooth over the 'rough edges' of Telepathy
somewhat.


G. HOUSTON

     Houston is a part of Decibel. It is a policy daemon that tracks the
user's online status for all communication channels they use,
persistently stores settings, reacts to connections initiated from
external sources, and more.
 Developer Benefits
     One potential benefit for developers is reported by Tobias:
"Application developers will find with Decibel a centralized place to
store real time communication settings like account data and online
states, a means to establish outgoing connections using these settings
and to react to incoming connection attempts. This makes it possible to
do things like 'go offline with all my accounts' or 'notify me on all
incoming text chats so that I can log them'".

     Tobias continues, "Decibel will make it easy for a developer to do
things like 'start a text chat with the person with these contact
details.' Currently, an application developer will need to find and
access the user's account data (which can be scattered over several
applications), find a protocol the user and the requested contact have
accounts for, bring that account online (using one of several libraries)
and then initiate a chat session. Decibel tries to hide all these
details from an application developer if he does not want to care".

     Developers with experience in real time communications and those
interested in working on Decibel itself are the most likely to be
interested in developing for Decibel, although any developer would
likely receive some benefit. Keep in mind though that Decibel will not
automatically make someone a good programmer. It will just enable good
programmers to be more efficient. Having said that, it will enable your
application to better integrate with other applications, thus increasing
the desirability of the application.

     Interested developers can help in several ways. The build system
used for Decibel has some problems that need to be resolved. Also, the
API's need to be tested. This includes things such as connecting the
Houston daemon to Akonadi [http://pim.kde.org/akonadi/] and creating a
plugin mechanism for Houston so that it can become desktop-neutral.
Other issues to be worked on include writing protocol implementations
following the Telepathy specification and coming up with graphical
interfaces for the demonstrations of Decibel's capabilities. The Decibel
website could also use an overhaul.

     To find out more about the project, developers can visit the
project website [http://decibel.kde.org/] and Tobias' blog
[http://basysblog.org/]. Chatters can visit the IRC channel #decibel at
irc.freenode.net. Please also visit NLnet [http://www.nlnet.nl/], the
organization sponsoring the development of Decibel.
 User Benefits
     Since Decibel is a service rather than an application, users are
not likely to see direct benefits from Decibel. Rather, the benefits
they see will be indirect ones. Also, keep in mind that while these
benefits are possible, it is still up to each application to decide what
features will or will not be used.

     There are two main factors to keep in mind in dealing with the
benefits of Decibel. First, since Decibel deals with Real Time
Communications, the benefits would be realized in this arena. Second,
since there is currently no comparable system with which to compare
Decibel, all examples of benefits will be what Decibel 'could do' as
opposed to what Decibel 'does do'.

     However, these two factors do not mean that the benefits users see
must be small. On the contrary, the integration Decibel provides make it
possible for users to see some exciting benefits in at least two major
areas.

     First, applications normally associated with real time
communications can add more features. For instance, an email program
could use Decibel to update the online status of contacts in its address
book and mail views.

     Second, applications not normally associated with real time
communications could use Decibel to implement communication features. An
office suite could use Decibel to embed chat or even video conferencing
with the author of a document or support channels. Since Decibel will
make it easy to set up communication channels between users, it might
even jump start the development of collaboration features. For example,
a graphics program could use Decibel to set up a communication channel
to another instance of itself running for another user somewhere on the
internet. This channel could then be used for collaborative editing of a
graphics document.

     Decibel just reached the version 0.2.0 milestone which is a mostly
feature-complete proof-of-concept implementation of the framework.
Upcoming versions of Decibel will focus on integration into the KDE
environment as well as improving the existing functionality and demo
applications. Decibel will need some more releases before it can be used
widely. Obviously, much work remains to be done. However, we hope you
have a better understanding of the future possibilities with Decibel.



More information about the dot-stories mailing list