Common Desktop Infrastructure

1.Abstract

We are developing Common Desktop Infrastructure in order to realize the following purposes based on the background of the following.

1.1 Background

Many ISV, System Integrators (SIers), and software houses do not select an open source desktop environment, such as Linux, as a platform for developing business applications and systems because it is more difficult to develop business applications in an open source environment compared to the Windows environment.

There are some barriers caused by insufficient realization of the following features:

  1. Collaboration features among desktop applications
    1. Data transfer between applications
    2. Linking and embedding of objects
    3. Binding of objects
  2. Collaboration features between network services and desktop applications

The features in (1) can be realized to some extent in a closed environment of one of the desktop component technologies for open source software ("OSS" hereinafter); DCOP, QtDBUS (KDE); ORBit2 (GNOME); XPCOM (Mozilla); or UNO (OpenOffice.org). However, it is impossible to interoperate across the above component technologies because standards and systems for open source desktop environments have not been established sufficiently.
Therefore, desktop applications can satisfy needs by complementing each other but cannot collaborate with each other. The feature in (2) is not realized in OSS.

1.2 Purposes

This framework aims realization of a common component platform and service linkage platform as a common desktop base ("common desktop platform" hereinafter) that satisfy the following use cases to solve the above problems' demands.

  1. To realize easy development of rich UI applications by combining common (abstract) components, such as word processors, spreadsheets, mailers, and schedulers.
    • The deployments of this system architecture become popular solution for project managers, developers, and CIO at ISV, System Integrators, and software houses, etc. in order to reduce costs of system and application developments.
  2. Service collaboration technology
    • Realizes applications that use combined components to display the results of a web service by calling components' service.
    • Realizes creation of a system that operates in combination with multiple web services (e.g. stock transaction system service, passport-issuing system) as a desktop application.
  3. To enable easy creation of a business application by combining the features in (1) and (2) using script languages such as Ruby or Python.

2.Architecture

We act as the first step to progressively realize the system that can interoperate across QtDBUS (KDE), ORBit2 (GNOME), XPCOM (Mozilla), UNO (OpenOffice.org), and SOAP (Web Service) in order to achieve the purposes mentioned above. But, Common Desktop Infrastructure deal with only QtDBus, UNO, and SOAP at present.

In this project, to achieve the purposes, D-BUS is used as a platform that links the desktop component technologies and the protocol for web services. D-BUS was selected because it was developed as a desktop common bus by freedesktop.org project and there is a tendency that increasing number of open source softwares for desktop.

We have developed common component protocol and protocol converter's core based on D-BUS, in order to convert mutually data and remote procedure call (RPC).

And we have introduced abstract component for interoperability. If there isn't it, the users of Common Desktop Infrastructure need to develop software or systems with considering each component. the users can develop with considering only abstract component. For example, if the users want to use mail client, they need to only use mail client component. In this case, the mail client component is mapped to the component of Kmail, Thunderbird, or Evolution according to settings.

Moreover, We have made code generators which generate protocol conversion codes for each components from IDL. So, you can use Common Desktop Infrastructure by only writing IDL. In addition, you can use existing component by using code generators.

The architecture which realizes these is as [Architecture Design Document].

The architecture's concept was presented in DAM4.

3.Download

Version 0.1.0 was released under LGPL version3.
You can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation.

Download the tar file from here.

4.How to build and use

See README included in tar file.

5.About this Project.

SMG Co., Ltd. has been developing Common Desktop Infrastructure.
This project is sponsored by IPA (Information-technology Promotion Agency, Japan).