Almost all Qt platforms have some form of native service framework (e.g. COM on Windows , DBUS on Linux, Symbian S60 LIW/SAPI etc). However, cross platform development of services and clients is much more difficult. Each platform has different capabilities, APIs and limitations.
The aim of the Qt Service framework is to enable easy development of services and a unified way of accessing them. Qt services provider can interact with platform specific services without exposing the platform specifics to clients. This initial release focuses on in-process, aka plug-in based services. Clients can access shared or individual instances of the same service as long as the access happens from within the same process. Support for out-of-process services is planned for later on, as it requires improved signal/slot based IPC communication.
Each service is exposed via a QObject pointer which means that clients can interact with service objects via the Qt MetaObject system. In fact clients can introspect service objects and therefore access any function, signal, slot or property that has been registered via the meta object system without having to include service specific header files. This is particularly interesting for non-native environments, such as a Qt WebKit, which can embed arbitrary QObject instances into web pages and thus makes the service object accessible via JavaScript.
One of the exiting reasons why the Service Framework is part of the Mobility program is that we are hoping that it will be the common framework for future Nokia mobile platform releases. We expect that each Nokia mobile platform will use the same interface name space and in combination with other planned Mobility API’s, such as Bearer Management (also known as Connection management) or a Contacts API, it will enable true cross platform development.
If you want to run the example or just play around with it, grab the full source code from the public Gitorious repository.
8 Responses to “Qt Service Framework”
It’s cool to see this coming in QT. It was effectively missing a portable IPC framework.
Do you planned to make it available in 4.6 ?
Thanks for you work, it’s amazing !
SOAP?
Will a SOAP 1.1/1.2 over HTTP transport be available?
Anyone want to post a simple real world description of a sample app? This chart is too abstract for me.
thanks.
Well, good job on beating us to it.
We (Qxt) have had this very thing in the tubes for at least a year but due to lack of manpower and time have never been able to polish it up enough to make a release out of it.
Can this framework operate over a network connection?
I’m glad to hear about this new direction!
I hope these new frameworks will become even more useful than Qt Extended, which was very overloaded in my point of view.
Especially on mobile phones performance is very important (at least as important as a “feature-rich API”).
I think QtMobility is a present for every Qt embedded programmer and I hope to find Qt preinstalled on every new mobile phone!
Great work chaps! I’ve been hoping you’d do something like this for a while now - so that I don’t have too!
Many thanks.
Glad to hear it…
Last half year dream is to have Qt bindings to AMQP (qpid for example) as easy to use as dbus module is.
Hope you’ll take this into account ![]()
Fantastic! Big thanks to Nokia for taking the open approach.
Please consider including a Python interpreter with full access to the API on each supported Nokia/QT mobile device too, it would be great to be able to use it on all Nokia devices not just S60 series.
