Having developed separate, incompatible IPC frameworks, both of the major Free desktops have now standardized on D-Bus, which has proved to be flexible enough to accommodate hardware abstraction APIs and a comprehensive IM framework while remaining lightweight enough to be used conveniently in small applications. But in many cases, D-Bus APIs have not so much been designed as accumulated, with unnecessary client-side complexity, race conditions, and generally unpleasant interfaces.
Fortunately, developers' collective experiences of such APIs are leading to ideas for better designs, and to the development of tools to help study and profile D-Bus services. As existing frameworks are refactored and rewritten to escape the swamp of poor decisions, distributing the accrued wisdom should help to avoid future projects falling into the same traps.
Drawing examples from Telepathy (probably the most extensive D-Bus API to date, which has undergone heavy refactoring to address these kinds of issues) and from other frameworks, this talk will highlight common D-Bus anti-patterns, and tactics for reducing complexity in client- and service-side code. It will also introduce Bustle, a tool for generating sequence diagrams and statistics from D-Bus traffic, which can help to identify bottlenecks and API ugliness.
| Attachment | Size |
|---|---|
| noabstract.doc | 93.5 KB |