Přehled služeb Epocu
Všechny služby jsou k dispozici prostřednictvím tříd C++ z dynamicky zaváděných knihoven - toto řešení má výhody i nevýhody. Nevýhody jsou opět dány omezeními jazyka C++. Jelikož jde o statický jazyk, nejsou zde k dispozici ani kategorie, o možnosti dynamicky nahradit jednu třídu jinou už vůbec nemluvě. Proto je problém s doplňky a úpravami systému.
Na druhou stranu je to nejkorektnější možné řešení a patrně nejpohodlnější i z hlediska programátora. Vzhledem k tomu, že standardní knihovny jsou v paměti ROM (díky kvalitní správě paměti Epocu není třeba je zavádět, ale jsou plně a kdykoli k dispozici přímo na svých "romkových" adresách), je spouštění aplikací velmi rychlé. Proto si Epoc může snadno dovolit objektovou aplikační architekturu (viz dále).
Base
Skupina tříd, sdružená pod pojmem Base, nabízí základní služby pro "engine" aplikací: nalezneme zde kontejnerové objekty, služby pro práci s buffery a textovými řetězci (API podporuje i UNICODE, avšak implementace dosud není tak daleko), poměrně luxusní a efektivní systém odchycení a zpracování chybových stavů a další služby.
File server
Základní služby pro práci se soubory až na mírně odlišné API velmi přesně odpovídají klasickým posixovým souborům. Epoc však nabízí mnohem luxusnější služby než naprostá většina ostatních prostředí pro práci s obecnými streamy. Architektura tzv. "stream stores" totiž podporuje rekurzivní vnořování streamů nebo ukládání více streamů do společného kontejneru. To je samozřejmě ideální pro vkládání dokumentů (typu "obrázek vložený v tabulce vložené v textovém dokumentu") a nabízí to velmi luxusní možnosti i pro zapouzdření dat. Představte si textový editor; je velmi přirozené - a z hlediska programátora i velmi pohodlné - uložit čistý text do jednoho streamu, formátovací informace do druhého, do třetího například jméno autora a do čtvrtého nastavení uživatelského rozhraní (např. zoom)... Streamy se mohou skládat i "do série" - je například velmi snadné pracovat se streamem kódovaným pomocí hesla: prostě "nad" streamem se skutečnými daty otevřeme stream, který se stará o šifrování, a k datům přistupujeme jeho prostřednictvím.
Databáze
Epoc standardně obsahuje velmi luxusní databázové API a trochu méně luxusní implementaci databázových služeb. API nabízí skvělé služby pro relační databázi včetně přístupu s využitím standardních SQL příkazů. Konkrétní implementace nabízí trochu omezený subset SQL a je realizována jako sada služeb na straně klienta pro přístup k databázovým souborům. Zatím tedy není k dispozici plnohodnotný server se sdíleným přístupem k datům. I tak jsou ale databázové služby Epocu prakticky srovnatelné například s OpenBase Lite a mnohonásobně převyšují služby databází z wintelu (např. FoxPro).
Aplikační architektura
Architektura aplikací Epocu je poměrně důslednou implementací plně objektového pohledu, kdy vlastně aplikace jako takové neexistují, ale systém obsahuje služby pro zpracování různých druhů dokumentů. To samozřejmě přináší určité problémy (např. s otevíráním jednoho dokumentu v různých aplikacích), ale významně to usnadňuje život laickému uživateli, který se o výpočetní techniku nezajímá a studovat ji nechce - chce prostě jen používat ten či onen přístroj. To dnes již platí dokonce i o většině uživatelů počítačů; docela jistě to platí o drtivé většině uživatelů mobilních přístrojů, od telefonů až po organizéry.
Uživatel tedy většinou nepracuje s "aplikacemi", ale namísto toho jen zavírá a otevírá "dokumenty". Pojem "aplikace" - a některé na něj vázané prvky uživatelského rozhraní - zůstaly zachovány především kvůli aplikacím, jež s dokumenty nepracují (např. hry). Dokumentem aplikace je vždy stream store; v tomto případě navíc obsahuje sériové číslo, jež jednoznačně identifikuje aplikaci, které dokument patří. Podobně jako u Macintoshe tedy neexistuje žádný problém s příponami, protože typ dokumentů se podle nich neurčuje. Epoc navíc obsahuje podporu i pro přiřazení "obyčejných souborů" s danou příponou nebo s definovaným obsahem konkrétní aplikaci, takže je možné je "importovat" prostým otevřením, stejně jako otevíráme-li dokument.
Cone a Eikon
Vyšší vrstvy aplikační podpory jsou v Epocu rozděleny na dvě úrovně. Nižší z nich, Cone, obsahuje abstraktní služby uživatelského rozhraní a grafických prvků bez vazby na jejich konkrétní implementaci. Teprve jasně oddělená vyšší vrstva, Eikon, přidává těmto prvkům konkrétní vzhled a chování. Toto rozdělení dává Epocu neobvyklou flexibilitu uživatelského rozhraní: díky společnému API Cone jsou aplikace - nebo alespoň drtivá většina jejich kódu - přenositelné mezi různými implementacemi, nabízejícími prostřednictvím různých Eikonů různá uživatelská rozhraní.
Této možnosti samozřejmě využívají malá specializovaná zařízení: zatímco kapesní počítač Ericsson MC218 má "obyčejný" Eikon, inteligentní mobil Ericsson R380 nabízí odlišné uživatelské rozhraní díky přepracovanému Eikonu. Přitom zachovává se všemi ostatními implementacemi Epocu základní kompatibilitu. Jiným příkladem využití této služby je již zmíněná (oficiálně dosud nepotvrzená) aktivita firmy Nokia, jež připravuje Eikon s uživatelským rozhraním odpovídajícím oblíbenému PalmOS.
Závěr
Epoc je velmi kvalitní moderní operační systém, který nabízí všechny odpovídající služby (jako je ochrana paměti nebo preemptivní multitasking). Jeho zajímavost spočívá i ve špičkové podpoře specifických vlastností mobilních zařízení, ve vysoce flexibilním uživatelském rozhraní a v široké podpoře od velkých firem (Nokia, Ericsson, Motorola, Panasonic, Sony...). Korektně podporuje nejdůležitější standardy (TCP/IP, IrDA, v budoucnosti BlueTooth...). A to mu předurčuje poměrně světlou budoucnost. Uvidíme, kde všude se s ním budeme v budoucnosti setkávat.