Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Mobile

Symbian Database Components


EDBMS: The SymbianOS Internal Database

An early name of SymbianOS was "EPOC" and vestiges of that name remain in certain places in the operating system--the entry point of program executables in E32Main(), for example. The SymbianOS Data Base Management System component is still referred to as "EDBMS," short for "Epoc Data Base Management System."

The DBMS server runs as a separate server process. Like all non-kernel processes in SymbianOS, the DBMS server does not run with supervisor privilege. Requests made to the DBMS server. Like most requests to servers on SymbianOS, requests are routed through the kernel. Client/server requests to the DBMS server use kernel executive calls. Kernel executive calls do not require a context switch for the passing of the request. Messages are stored in internal kernel message slots allocated for the message. Internally, the DBMS server utilizes SymbianOS's active object approach to multitask, which, rather than having the overhead of additional threads, minimizes thread creation and thus context switches, and is an object-oriented to multitasking as well.

Remembering that SymbianOS is designed with a minimal approach, there are some features a larger footprint DBMS might implement, but are missing in the SymbianOS DBMS. To be clear, this is not a full-featured database that is going to let you, say, perform complex queries. But that is not the goal, and there are other solutions for application developers seeking a fuller DBMS implementation. The goal of Symbian's provided DBMS is to facilitate the storage of small amounts of information in a tiny footprint implementation.

In classic Symbian fashion, and in keeping with an object-oriented approach, the DBMS implementation was designed to be extensible. Technically, the DBMS component really just defines API classes, and a wide variety of DBMS implementations could exist. In this article, I discuss the implementation that comes with the operating system, which physically stores the database as a file in the filesystem. However, it is certainly possible to use these API classes with an in-memory implementation for example. In fact, not only would it be possible to implement an in-memory implementation, but the framework is designed to encourage future implementations. This approach of designing for future extensions is similar to the Symbian approach to sockets; for example, where an extensible communication framework was designed. By creating an extensible architecture, plugins for new communication protocols are easily added to SymbianOS. This was the case with early protocols such as WAP and Bluetooth, and also true more recently for protocols such as 802.11x.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.