6.2. Client–Server

Intent

Synchronize and securely police access to a shared resource or service from multiple client processes by using the Symbian OS client–server framework.

AKA

None known

6.2.1. Problem

6.2.1.1. Context

Resources and services need to be shared among multiple clients running in different processes.

6.2.1.2. Summary

Many applications are designed around concurrent objects running in different processes to improve quality of service such as performance and reliability. Often these different objects need to access a shared resource. In this concurrent environment, it is necessary that:

  • We have a transparent means of inter-process communication.

  • Access to shared resources is synchronized.

  • Both synchronous and asynchronous requests from clients can be met easily.

  • Where applicable, the access to shared resources, or sensitive data, is policed.

6.2.1.3. Description
  • Inter-process communication should be transparent.

    The need to protect against memory corruption across process boundaries means that in most cases objects cannot be called passively across this boundary. Such calls must be serialized and passed across the boundary using privileged code. It is impractical for each application developer to do this. So what is needed is an inter-process communication mechanism that provides user-friendly support for transforming the memory representation of an object to or from a data format suitable for storage or transmission, a process known as marshaling[] and un-marshaling ...

Get Common Design Patterns for Symbian OS: The Foundations of Smartphone Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.