QtDBus and Interoperability
Speaker: Thiago Macieira
In May 2006, the KDE trunk codebase said goodbye to DCOP and welcomed its successor, D-BUS, an IPC system developed with interoperability in mind. KDE is using the QtDBus implementation, which ties into the Qt meta type and meta object systems seamlessly, extending them to allow KDE applications to communicate with each other and with applications written using other binding implementations. Some of the great innovations that D-BUS brings to the table are the communication with privileged services, allowing normal, user applications to more easily obtain information and manipulate it, and the early adoption of the technology by some key projects, established or in development.
D-BUS and the QtDBus implementation are, by virtue of design, very similar to DCOP, but there are a few caveats that one should be aware of when designing proper QtDBus code. In addition, to ensure a wide range of interoperability between the differing D-BUS binding implementations, there are some restrictions on what features of QtDBus a program can use.
During the porting of KDE Libs and other modules from DCOP to QtDBus, I acquired some experience on the KDE usage of IPC systems that can be shared with other developers. The presentation will therefore consist of an overview of the QtDBus API, followed by hints on how to port from DCOP, designing proper QtDBus code in the process.
Thiago Macieira, 25, holds a double degree in Engineering from the Polytechnic School of the University of São Paulo, Brazil, and the Central School of Lille (Ecole Centrale), France. For a year after graduation, he worked as a consultant, but then moved to work as a software engineer for Trolltech ASA, where he took on the responsibility of writing the QtDBus bindings and being the Trolltech liaison to the KDE community.
He got involved with KDE in late 2000 and early 2001, when looking for a project to fill up his free time and to serve as a testbed for his IPv6 implementation. Since then, he's been the maintainer of the core networking libraries.
A member of the KDE e.V. since mid-2005, he was elected for the initial trial-run of the Technical Working Group in January 2006, a position which allowed him to interact even more with KDE developers and to organise the KDE Four Core meeting.
He is now living in Paris, France, where he is preparing to take a Master in Business Administration.