DCOP

Information about DCOP



DCOP, which stands for Desktop COmmunication Protocol, is a light-weight interprocess and software componentry communication system. The main point of this system is to allow applications to interoperate, and to share complex tasks. Essentially, DCOP is a ‘remote control’ system, which allows an application or a script to enlist the help of other applications. It is built on top of the X Window System’s Inter-Client Exchange protocol.

The use of DCOP provides extensive new capabilities, without requiring entirely new applications to be written, as might otherwise be the case. KDE applications and the KDE libraries make heavy use of DCOP and most of the KDE applications can be controlled by scripts via the DCOP mechanism.

In modern KDE systems, every KDE application supports a basic set of DCOP interfaces, even if the programmer of the application did not explicitly code in such support. For instance, every application automatically supports the “quit” command to close the application.

There is a command-line tool called ‘dcop’ (note the lower-case letters) that can be used for communication with the applications from the shell. ‘kdcop’ is a GUI tool to explore the interfaces of an application.

For example, the KDE desktop provides a way to display different wallpapers at timed intervals. However, it does not directly provide an interface for changing to the next wallpaper, if the current one does not fit your mood. Neither does it provide a way of permanently removing desktop wallpapers that you decide you do not like, after seeing them as actual wallpaper on your screen.

These features can be added in a few moments, however, using dcop. The command:

dcop kdesktop KBackgroundIface changeWallpaper

will switch to the next wallpaper from a shell, and the command:

dcop kdesktop KBackgroundIface currentWallpaper 1

will get the filename of the wallpaper on desktop 1. (KDE, and most X environments, support multiple ‘virtual’ desktops for organizing work.) By combining the two in a short shell script, you can switch to the next wallpaper, then delete the previous wallpaper, like so:

OLDWALLPAPER=`dcop kdesktop KBackgroundIface currentWallpaper 1` dcop kdesktop KBackgroundIface changeWallpaper rm "$OLDWALLPAPER"

As you can see, DCOP makes it possible to add new features that were never envisaged when an application was first created.

DCOP Model

The model is simple. Each application using DCOP is a client. They communicate to each other through a DCOP server, which functions like a traffic director, dispatching messages/calls to the proper destinations. All clients are peers of each other.

Two types of actions are possible with DCOP: "send and forget" messages, which do not block, and "calls," which block waiting for some data to be returned.

Any data that will be sent is serialized (also referred to as marshalling in CORBA speak) using the built-in QDataStream operators available in all of the Qt classes. There is also a simple IDL-like compiler available (dcopidl and dcopidl2cpp) that generates stubs and skeletons. Using the dcopidl compiler has the additional benefit of type safety.

D-Bus, a message bus system standardized by freedesktop.org, was heavily influenced by the DCOP system and will replace DCOP in the upcoming KDE 4 release.

External links

artificial intelligence (or AI) is "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions which maximizes its chances of success.
..... Click the link for more information.
Distributed constraint optimization (DCOP) is the distributed analogue to constraint optimization. A DCOP is a problem in which a group of agents must distributedly choose values for a set of variables such that the cost of a set of constraints over the variables is either
..... Click the link for more information.
Inter-Process Communication (IPC) is a set of techniques for the exchange of data among two or more threads in one or more processes. Processes may be running on one or more computers connected by a network.
..... Click the link for more information.
Component-based software engineering (CBSE) (also known as Component-Based Development (CBD) or Software Componentry) is a branch of the software engineering discipline, with emphasis on decomposition of the engineered systems into functional or logical components
..... Click the link for more information.
Application software is a subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities,
..... Click the link for more information.
X Window System (commonly X11 or X) is a display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs) on Unix-like operating systems and OpenVMS, and has been ported to all other
..... Click the link for more information.
Maintainer: The KDE Team

OS: Cross-platform
Available language(s): Multilingual (80 different languages.)
Use: Desktop environment
License: GNU General Public License and others
Website: [1] KDE (
..... Click the link for more information.
library is a collection of subprograms used to develop software. Libraries contain "helper" code and data, which provide services to independent programs. This allows code and data to be shared and changed in a modular fashion.
..... Click the link for more information.
Scripting redirects here. For other uses, see script.


Scripting languages (commonly called script languages) are computer programming languages that are typically interpreted and can be typed directly from a keyboard.
..... Click the link for more information.
graphical user interface (GUI) is a type of user interface which allows people to interact with a computer and computer-controlled devices which employ graphical icons, visual indicators or special graphical elements called "widgets", along with text, labels or text
..... Click the link for more information.
An interface defines the communication boundary between two entities, such as a piece of software, a hardware device, or a user. It generally refers to an abstraction that an entity provides of itself to the outside.
..... Click the link for more information.
In computer science, type safety is a property attributed to some, but not all, programming languages. The term is defined differently by different communities who use it — in particular, the formal type-theoretic definition is considerably stronger than what is understood by
..... Click the link for more information.
D-Bus is a free software project which offers a simple way for applications to communicate with one another. It is developed as part of the freedesktop.org project.
..... Click the link for more information.
freedesktop.org (fd.o) is a project to work on interoperability and shared base technology for free software desktop environments for the X Window System (X11) on Linux and other Unix-like operating systems. It was founded by Havoc Pennington in March 2000.
..... Click the link for more information.
This article or section contains information about computer software currently in development.
The content may change as the software development progresses.

KDE 4.0 is the next series of the K Desktop Environment software. The first version (4.
..... Click the link for more information.
Maintainer: The KDE Team

OS: Cross-platform
Available language(s): Multilingual (80 different languages.)
Use: Desktop environment
License: GNU General Public License and others
Website: [1] KDE (
..... Click the link for more information.
    Amusing Misuse Of Resources. Desktop creature.
  • Kodo - Measure how far you move your mouse.

Utilities

  • Ark - Archiving tool
  • Dolphin - File manager
  • BasKet Note Pads - Advanced multi-purpose note-taking application

..... Click the link for more information.
Maintainer: The Amarok Team

OS: Unix-like, Windows (currently in development for version 2)[1]

Use: Audio player
License: GNU General Public License
Website: amarok.kde.
..... Click the link for more information.
K3b (from KDE Burn Baby Burn)[1] is a CD and DVD authoring application for the KDE desktop for Unix-like computer operating systems. It provides a graphical user interface to perform most CD/DVD burning tasks like creating an Audio CD from a set of audio files or
..... Click the link for more information.
Kate is a text editor for KDE. The acronym "Kate" stands for "KDE advanced text editor".

Kate has been part of the kdebase package since KDE release 2.2 (August 15, 2002).
..... Click the link for more information.
Maintainer: KDevelop Team

OS: Cross-platform

Use: Integrated development environment
License: GNU General Public License
Website: [1]

KDevelop
..... Click the link for more information.
KMail is the e-mail client of the KDE desktop environment.

It supports folders, filtering, viewing HTML mail, and international character sets. It can handle IMAP, dIMAP [1] , POP3, and local mailboxes for incoming mail. It can send mail via SMTP or sendmail.
..... Click the link for more information.
Konsole is a free terminal emulator which is part of KDE. It is a complete rewrite, as opposed to many other terminal emulators that are derivatives of xterm or rxvt. Konsole was written by Lars Doelle.
..... Click the link for more information.
Kopete is a multi-protocol, free software instant messaging client. Although it can run in numerous environments, it was designed for and integrates with the KDE desktop environment.
..... Click the link for more information.
Maintainer: The KDE Team

OS: Linux, Mac OS X, Unix-like and embedded systems

Use: Web browser, File browser
License: GNU GPL
Website: Konqueror Konqueror
..... Click the link for more information.
KView is an image viewer for the KDE desktop environment. It uses KParts to display the image.

See also

  • Gwenview
  • Comparison of image viewers

External links

  • Official site
  • A review of KView

..... Click the link for more information.
Maintainer: The Kaffeine Team

OS: Unix-like

Use: Media player
License: GNU General Public License
Website: kaffeine.sourceforge.
..... Click the link for more information.
Noatun is one of two main media players of the K Desktop Environment, a popular desktop environment for Unix-like operating systems. It supports various formats, including Ogg Vorbis and Wav.
..... Click the link for more information.
digiKam Screenshot]]

Developer: The digiKam Team
Latest release: 0.9.2 / June 20, 2007
OS: Unix-like
Genre: Graphics software
License: GPL
Website: www.digikam.org

digiKam is a digital photo management application for the KDE desktop environment.
..... Click the link for more information.
Akregator is an open source aggregator which is part of KDE. It supports both RSS and Atom. Feeds can be sorted into categories. Akregator will aggregate all feeds in a particular category into a single list of new entries so that, for example, all news in the category "Politics"
..... Click the link for more information.

This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.