Why my next desktop is a “service oriented hot pluggable visualization engine”

So what does this all mean? First of all, the motivation to think about a new way the desktop should work is clearly the shortcomings of current desktop systems: they are nothing more that a bunch of applications which may communicate a little via drag and drop, but which don’t know what they are doing and don’t know what they can do with data available in some others applications space. Some of the right steps have been made into a good direction, just to mention a wonderful example: Project Utopia and GPhoto2 talking to each other using the d-bus.

The basic idea behind the new Me is that most (or even all) applications will be understood as “services”, that means that the application:

  1. provides the data it uses via some RESTful interface
  2. emits messages if data is processed/received/…

and that the information provided by services are consumed and visualized by “clients”, which:

  1. pick up messages emitted by the applications/services
  2. know how to visualize the messages
  3. fetch data via REST and “work” with the data

Services and clients may be plugged together using a visual editor so that the user may choose which and how messages are visualized by the functions provided by a client.

To archive this pluggability both (service and client) need to describe their interfaces, data structures and operations they provide, hence a central registry or method to negotiate between services and clients is needed.

A very high level Architectur Overview Diagram looks like this:


Nice, but what’s so new about it?

The essence is: this idea gives back power to the user by enabling him to do with the data held by some application what the user wants to do. Applications of today are extensible, this means that one may write plugins for some application to extend the functionality of that application. Having an application emitting messages about what is going on inside the application enables the user to write clients that react on an application. Communication between different services and clients can be established in a more flexible way.

Ja, ok… what for? all this slow and complex stuff?

All this to get rid of unintegrated applications, unintegrated business processes and the fun of having different views onto your living environment: the place you work, the place you life.

Whats next?

The next step will be the definition of some use cases to explain the idea a little more touchy.

supported by loud music: Karma Sutra (Slinky Mix) from the album “Aftershock” by [Aphrodite][5]

[5]: http://www.google.com/search?q=%22Aphrodite%22