Uploaded image for project: 'Qt Mobility'
  1. Qt Mobility
  2. QTMOBILITY-626

Service Framework API

    XMLWordPrintable

Details

    Description

      Summary

      The Service Framework API provides a set of Qt APIs to that allows clients to discover and instantiate arbitrary services.

      Supported Functionality - In-process

      Requirement Description
      Multiple service provider of same type Presumably each provider implements the same interface, clients can choose which one to use or get default service.
      Multiple clients per provider The same provider shall be usable by multiple clients at the same time. If the provider is plugin-based there will be multiple provider instances. If the provider is IPC based the provider may have to be reentrant
      (Un)Register service New services can be added/removed at any time. Registration should only happen during installation phase. Once the installation is complete a new start of the device must not require reregistration.
      Enumerate the services installed in the device at run time Client can discover service provider based on type and receives notifications once provider becomes available in case provider was not available at time of request.
      Late binding Once client has identified provider, it shall be able to invoke provider, receive return values and subscribe to signals/notifications (synchronous and asynchronous API calls must be supported).
      In-process provider A service provider must be loadable as a plug-in into the same process as the service consumer.
      Provider can use each other A service provider shall be able to utilize the service of another service provider.
      Provider can offer multiple version of same service interface This may be required if the first version of a service has some bugs to which client code has adopted. This adoption may prevent that the second version is usable for some clients.
      Service meta data The service shall be described by meta data. At the very least the following information shall be recorded:
      • interface name
      • service name (name of the service implementing the above interface)
      • version
      • capabilities (for security manager checks)
      • arbitrary key/value pairs (e.g. vendor )
      Qt Service Framework shall return an object pointer castable to a specific C++ interface If the client knows the service interface it shall be able to cast the returned object pointer to the service interface.
      Qt application can bind to Qt Service Framework  
      Notification on adding or removing of service provider The SFW shall provide notifications to clients when a new service/version of an interface is installed or removed.
      Qt Service Framework shall check capabilities on interface level and shall pass security session on to provider This enables security checks on service level and the provider itself can implement more fine-grained/per method security checks. However it is not a requirement to pass a security session to the service framework which is the most common use case for native applications.
      Qt Service Framework shall provide an application context that can be used to pass information between clients and service provider. This could be used to enable user feedback if provider checks capabilities on method level.
      Clients can request default provider for particular interface If the same interface is implemented by multiple providers the SFW shall be able to return the default service.

      Supported Functionality - IPC

      Requirement Description
      Provider started on request If the service doesn't run at all times clients shall be able to start provider.
      Out-of-process provider without IPC specifics visible in service interface A service provider must be invokable across process boundaries. The interprocess aspect shall not be visible in the service interface. The IPC mechanism is considered to be specific to the platform.

      Supported Functionality - Security

      Requirement Description
      Clients must be identifiable The IPC infrastructure provides pointers to a platform specific authentication handle.
      The IPC API encapsulates native authentication mechanism  

      Attachments

        Activity

          People

            alex Alex (closed Nokia identity) (Inactive)
            minshin Minjung Shin (closed Nokia identity) (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: