38
lower-level EPOC components of significant complexity, which effectively function as their
engines.
Another benefit of splitting applications into engine and GUI components is that engines can be
designed for optimum performance, data formats, APIs and robustness, and tested aggressively,
without having to worry about GUI code or UI design considerations.
8.3.3.2.2 Object embedding
EPOC’s application architecture is used to support straightforward but effective document
embedding, for file-based applications that use direct file stores for their main document. Such
applications can very easily be enhanced to support embedding.
File-based applications using the permanent file store format may not be embedded. Applications,
which are not file-based — i.e., which don’t work by editing a main document, even though they
may use files in other ways — cannot be embedded.
An embedded document is accessed from the embedding document by means of a
door
. A door
may be iconic (the icon of the embedded document’s application), or glass (the application data
displayed before the door is opened).
Word, Sheet, Sketch, and Record documents may be embedded. Sheet and Sketch use glass doors.
Data, Jotter, Agenda and Contacts use permanent file stores, and may not be embedded.
EPOC’s other applications are not file-based, and so cannot be embedded.
Any application that supports rich text may embed documents, unless explicitly disabled from
doing so. EPOC Email prevents EPOC-style embedding for Internet e-mails, because standard e-
mail protocols do not support such embedding. However, internet e-mails do support sending and
receiving attachments such as Microsoft Word documents, and fax messages composed using
EPOC Email may contain embedded documents with glass doors used to render their content on
the fax.
8.3.3.2.3 PIM servers
The Agenda and Contacts applications serve to enter and display information that is potentially of
use to many applications. But these applications are only one client for the PIM data associated
with them.
PIM information is not owned by the clients, but by dedicated servers. The real owner of the
Agenda data is an Agenda server; the real owner of the Contacts data is the Contacts server. These
servers may be accessed not only by their associated applications, but also by
•
EPOC Connect, for synchronization without closing down the applications
•
E-mail, for finding the e-mail address of a named contact
•
bespoke applications, which may need to query or add contacts or appointments for
various purposes
The DBMS also delivers a server architecture, so that databases may be shared between multiple
clients. Shared databases are used by several EPOC systems and servers. The EPOC Data
application, however, does not use shared databases.
8.3.3.3 Application technology summaries
This section summarizes the technology used in the more important EPOC applications. The
technology used to implement the System application (shell) is described in
EPOC Overview: Core
.
8.3.3.3.1 Office
Word
ETEXT and FORM provide the re-usable code base for Word. A small engine, WPENG, serves
essentially as a container for a rich text object. The LEXICON API is used for spell checking.
WORD provides an application GUI optimized for ease-of-use for intensive word processor users.
Sheet
SHENG is the sheet engine. GRID and CHART are used for data display. SHEET is the application
GUI.
Sheet cells use globally formatted rich text, meaning that character and paragraph format attributes
apply to an entire cell rather than individual characters. Embedded objects are not supported.
Data
DBMS is the underlying data engine. DBMS supports multiple tables and shared access, but Data
constrains the database to include only a single table and owns the file exclusively while it is open,