UNIVERSITATEA POLITEHNICA BUCUREȘTI
FACULTATEA DE ELECTRONICĂ, TELECOMUNICAȚII ȘI TEHNOLOGIA INFORMAȚIEI
TEMĂ DE CASĂ
Arhitectura sistemului de operare Symbian
Profesor coordonator: Studenți:
Conf. dr.ing. Ştefan Stăncescu Cepoi Marian Adrian
Tudorache Bogdan-Alin
Enoiu Dragoș-Ciprian
Mîrzac Adrian Cătălin
Săraru Ștefania-Alexandra
Minea Maria-Adriana
București
2013
Page | 1
CUPRINS
Cepoi Marian Adrian:
Nucleul și interfața hardware
I. INTRODUCERE .............................................................................................. 3
1.1. Obiectivele proiectării ............................................................................... 4
II. ARHITECTURA NUCLEULUI .................................................................... 5
2.1. Nucleul EKA1 și nucleul EKA2 ................................................................. 5
2.2. Componentele SINGLETON ..................................................................... 7
2.3. Componentele arhitecturii nucleului ......................................................... 8
Tudorache Bogdan-Alin:
Sistemul de comunicații în arhitectura Symbian
1. Introducere ..................................................................................................... 11
2. Scopul implementarii....................................................,................................. 12
3. Framework-urile de comunicatie: Comms framework................................... 13
4. Serviciile de telefonie..................................................................................... 14
5. Serviciile de networking..................................................................................16
6. Serviciile punct-la-punct.................................................................................18
Enoiu Dragoș-Ciprian:
Nivelul sistemului de operare
1. Introducere ..................................................................................................... 19
2. Obiectivele proiectarii ................................................................................... 20
3. Blocul serviciilor generice ............................................................................. 21
4. Blocul serviciilor grafice si multimedia ........................................................ 21
4.1. OpenGL ES ............................................................................................. 23
4.2. Serverul ferestrelor ................................................................................. 23
5. Blocul serviciilor de conectivitate ................................................................. 24
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 2
Mîrzac Adrian Cătălin:
Stratul aplicației
I. INTRODUCERE …………………….......................………..................….. 25
1.1. Obiectivele proiectării ……………..................................................….. 26
II. ARHITECTURA …………………….....................……......................….. 27
III. COMPONENTE ……………………....................…………..................... 29
3.1. Protocoale multimedia ........................................................................... 30
3.2. Motoarele de aplicatii office ................................................................. 31
3.3. Suportul aplicatiilor web ....................................................................... 32
Săraru Ștefania-Alexandra:
Implementarea platformei Java ME în sistemul Symbian
1. Introducere ..................................................................................................... 34
2. Cerințele subsistemului Java ME .................................................................. 37
3. Obiectivele proiectării pentru subsistemul Java ME ..................................... 39
4. Evoluția Java în sistemul de operare Symbian .............................................. 40
5. Arhitectura ..................................................................................................... 43
6. Interfețe de programare de nivel inferior ....................................................... 47
6.1. MIDP 2.0 și CLDC 1.1 ........................................................................... 51
Minea Maria-Adriana:
Securitatea platformei Symbian
1. Introducere ..................................................................................................... 54
2. Installer-ul nativ ............................................................................................. 56
3. Data Caging ................................................................................................... 57
4. TCB si TCE ................................................................................................... 59
BIBLIOGRAFIE .................................................................................................. 64
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 3
Nucleul și interfața hardware
I. INTRODUCERE
Symbian este un sistem de operare orientat spre dispozitivele mobile şi o platformă de
calcul concepută pentru telefoanele inteligente, a cărei licenţă este în prezent menţinută de către
Accenture.
Sistemul de operare Symbian a fost iniţial dezvoltat de Symbian Ltd. Acesta este un
descendent al lui Psion EPOC şi ruleaza exclusiv pe procesoarele ARM, deşi o portare pentru
procesoarele de tip x86 a existat.
În momentul de fața Symbian este deținut de Ericsson (15.6%), Nokia (47.9%),
Panasonic (10.5%), Samsung (4.5%), Siemens AG (8.4%), și Sony Ericsson (13.1%)1.
Figura 1. Evoluția platformelor mobile
În 2008 Nokia achiziționează „Symbian Software Limited”, înființînd organizația
independentă non-profit „Symbian Foundation”. Sistemul de operare și platformele software
S60, UIQ și MOAP(S) au fost date de către deținătorii lor către fundație, în scopul transformării
platformei Symbian într-una open-source.
Symbian este optimizat pentru telefoane cu baterii de putere joasă şi pentru sistemele pe
bază de memorie ROM2.
1 http://ro.wikipedia.org/wiki/Symbian_OS
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 4
1.1. Obiectivele proiectării
Symbian este structurat la fel ca multe alte sisteme de operare desktop pe multitasking,
multithreading, și memory protection. Avantajul său major este faptul că a fost realizat pentru
dispozitive mobile, cu resurse limitate, care pot rula luni de zile3.
Sistemul de operare Symbian este conceput astfel încât sa poata fi baza unei mari
varietăți de telefoane de la producători diferiți.
Sistemul de operare Symbian a fost conceput având la bază trei principii:
- integritatea şi securitatea datelor utilizatorului este crucială;
- timpul utilizatorului nu trebuie risipit;
- toate resursele trebuie folosite la maxim.
Pentru respectarea acestor 3 principii, Symbian utilizează un microkernel ce menține o
separare între interfaţa de utilizator şi engine.
EPOC avea o structură „nanokernel”, ultimele versiuni Symbian nu mai au „cu adevarat”
nanokernel, insă, încât includ unele device drivere.
Nucleul și interfața hardware reprezintă nivelul de bază al sistemului de operare. Acesta
cuprinde nucleul și suportul componentelor.
Figura 1.1. Nivelul interfeței hardware și al nucleului în structura sistemului
4.
2 “Sisteme Multimedia”, Proiect, Universitatea Tehnică ”Gheorghe Asachi” Iași
3 Akhil James, “Symbian OS”, Seminar report, 2007
4 Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 5
Nucleul rulează într-un spațiu de adrese protejat, astfel încât o eroare într-o aplicație nu poate
suprascrie stiva nucleului5.
Acest nivel este responsabil de:
- inițializarea hardware-ului;
- crearea și gestionarea proceselor, spațiului de adrese și altor resurse precum timere;
- programarea, preempțiunea și manipularea întreruperilor;
- încapsulează toate procesele care rulează în modul privilegiat în acest nivel;
- separă nivelele superioare de hardware.
II. ARHITECTURA NUCLEULUI
2.1. Nucleul EKA1 și nucleul EKA2
Sistemul de operare Symbian a fost conceput ca un sistem de operare bazat pe
microkernel. Acesta are unele probleme. Dacă sistemele clasice folosesc un singur apel de
sistem, microkernel-ul folosește transmiterea de mesaje6.
Responsabilitațile nucleului sunt împărțite între punerea în aplicare a primitivelor
adecvate pentru utilizarea de către straturile superioare ale sistemului de operare și interfațarea
cu platforma hardware.
Figura 2a. Accesul la nivelul fizic se face de la, sau prin intermediul nucleului.
5 Akhil James, “Symbian OS”, Seminar report, 2007
6 Andrew S. Tanenbaum, “Modern Operating Systems”, Third Edition
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 6
Pentru că nivelul nucleului reprezintă interfața cu platforma hardware, acesta este
dependent de hardware. Compatibilitatea sistemului de operare cu alte platforme hardware
presupune compatibilitatea nucleului cu acestea.
Kernel-urile se comportă mai mult sau mai puţin identic pe partea de utilizator, dar în
interior sunt construite foarte diferit. EKA1(EPOC Kernel Architecture 1) a fost ales de unii
constructori ca să menţina compatiiblitatea cu driverele vechilor dispozitive, în timp ce
EKA2(EPOC Kernel Architecture 2) este un kernel de timp real.
Nucleul EPOC pe 16 biți este inspirat de arhitectura Intel 8086 cu aplicații dezvoltate atât
în OPL cât și în C API-uri native ale sistemului de operare EPOC, oferind șansa oricărui
dezvoltator de a-și creea propriile aplicații soft. Astfel, nucleul pe 16 biți a trebuit să abordeze
multe dintre cerințele care sunt îndeplinite astăzi de EKA2, din cauza poziționării sale între
sistemele de operare în timp real integrate și sisteme de operare desktop clasice, cum ar fi
Windows .
EKA1 este complet pe 32 de biți fără problemele lui EPOC rezultate din arhitectura lui
8086 cu memorie segmentată.
EKA2 merge pe ideea de multi-tasking. Se împarte timpul de execuție al proceselor între
mai multe fire de execuție, oferind utilizatorului telefonului mobil impresia că rulează mai multe
aplicații în același timp. Nucleul alocă timpul procesorului firelor de execuție în funcție de
prioritate și minimizează întârzierile firelor de prioritate mare7.
7 Jane Sales, “Symbian OS Internals”, John Wiley & Sons Ltd, 2007
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 7
2.2. Componentele SINGLETON
Nivelul nucleului și interfeței hardware constă din blocul arhitecturii nucleului (sau
blocuri, în cazul versiunilor care includ ambele variante de nucleu, EKA1 și EKA2) și două
colecții de componente Singleton (a se vedea figura 3a).
Figura 3a. Colecțiile Localizare și Driver de ecran.
Localizarea
Această componentă este un plug-in personalizat, care implementează setările locale
specifice , inclusiv șiruri de caractere standard ( de exemplu , ziua și luna), unitățile de distanță ,
simboluri monetare , data și formatul de timp, și așa mai departe8.
Tabel 3a. Componentele Localizării
Numele componentei Numele de dezvoltare
Locale Support LOCE32 ONGOING, ELOCL
Locale Support este inclus în nivelul nucleului, deoarece acesta pune în aplicare diferite șiruri de
caractere utilizate direct de către nucleu (de exemplu, mesaje implicite de sistem). Acesta este
încărcat de biblioteca utilizator9.
8,9 Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 8
Driver-ul de ecran
Acesta implementează operațiile generice definite de Bit GDI(Graphics Device Interface)
pentru a manipula harta memoriei fizice a ecranului dispozitivului sau harta de biți(bitmap). De
obicei, harta biților și harta memoriei de afișare sunt adresate în același mod, prin urmare, este
furnizată o interfața comună ambelor.
Tabel 3b. Componentele Driver-ului de ecran
Numele componentei Numele de dezvoltare
Screen Driver SCREENDRIVER
2.3. Componentele arhitecturii nucleului
Arhitecturile EKA1 și EKA2 au proprietăți asemănătoare micronucleului. De exemplu,
principalele servicii precum server-ul de fişiere şi biblioteca utilizator, precum şi toate
elementele grafice şi serviciile de comunicaţii, inclusiv crearea de reţele şi telefonie, rămân în
afara nucleului, rulând ca procese pe partea de utilizator. Acest lucru este în contrast, de
exemplu, cu arhitecturile nucleelor monolitice Linux și Microsoft Windows.
EKA2 se bazează pe un nanonucleu care este proiectat pentru a funcționa în timp real și a
susține stiva de protocoale GSM, CDMA, wCDMA.
Regândirea arhitecturii a avut un scop secundar de a îmbunătăți modularitatea nucleului.
EKA1 are un grad mare de dependență de hardware10
.
Figura 2.3a. Arhitectura nucleului EKA2.
10
Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 9
Arhitectura nucleului conține patru componente:
- serviciile nucleului;
- driver-e logice;
- variant;
- ASSP.
Figura 2.3b. Componentele arhitecturii nucleului.
Driverele de dispozitiv logice (LDD)
Sunt plug-in-uri în cadrul nucleului care realizează abstractizarea logică a dispozitivelor
hardware și accepta driverele de dispozitiv fizice (PDD), plug-in-uri care comunică direct cu
dispozitivul fizic.
Figura 2.3c. LDD.
Driver-ul Ethernet este o implementare logică a cipurilor Ethernet;
Driver-ul USB este driver-ul logic pentru portul USB cu versiunea suportată 2.0;
Driverele Audio, Video și voce sunt servicii utilizate de controlerele MDF(Multimedia
Device Framework).11
11
Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Nucleul și interfața hardware Cepoi Marian Adrian
Page | 10
ASSP(Application-specific Semiconductor Parts)
Dependențele hardware sunt împărțite între ASSP, bazat pe proprietățile procesorului și
perifericele aflate pe același cip cu acesta, și perifericelor din exteriorul cipului.
Modulul ASSP conține codul sursă adaptat la o gamă de diferite microprocesoare (de
exemplu, ARM720/920/SA1100/Xscale).
Variant Conține componentele off-chip independente de modului ASSP. Ea prevede
implementarea hardware a funcțiilor de control ale nucleului.
Figura 2.3d. Componentele Variant.
Componenta Bootsrap are rolul de a pregăti perifericele, memoria și harta spațiului de
adrese, dacă există MMU (Memory Management Unit), și pornește nucleul.
Emulatorul este un mecanism care încarca extensiile din memoria ROM și asigură ca
platforma emulată se comportă la fel ca dispozitivul fizic12
.
12
Jane Sales, “Symbian OS Internals”, John Wiley & Sons Ltd, 2007
Sistemul de comunicații Tudorache Bogdan-Alin în arhitectura Symbian
Page | 11
Sistemul de comunicații în arhitectura Symbian
1. Introducere
Dupa cum bine stim sistemul de operare Symbian este aproape ca un trademark pentru
binecunoscuta firma producatoate de telefoane mobile, Nokia. In trecut lucrurile nu au stat chiar
asa; da,este adevarat ca totul a plecat de la compania findandeza dar au fost momente in care
acest sistem a fost implementat atat pe telefoane produse de compania Samsung cat si de Sony
Ericsson.
Prima data aplicatia a aparut in 2002, iar ultima versiune a acesteia a aparut 9 ani mai tarziu, o
data cu lansarea Symbian Anna si Symbian Belle, multe imbunatatiri au fost aduse de la prima
aparitie a acestui software pentru telefoane dar din pacate lupta cu rivale, cum ar fi Android sau
IOS( Apple) a fost pierduta, compania suferind un declin considerabil si nereusind nici pana in
acest moment sa isi revina din colaps.
In aceasta lucrare vom prezentas sistemul de comunicatii, acesta reprezinta in esenta o parte
componenta a Sistemului de Operare Symbian. Mai exact, de referim la bucata care se ocupa cu
serviciile de conectivitate, pe langa cele clasice de telefonie voce, mai nou si video, si
transmitere de mesaje, mesaje multimedia si date ( poze,clipuri, documente).
Ne vom referi la modul in care comunica diferite dispozitive si cum acestea reusesc sa faca
schimb de date. In general pentru a ne conecta la un telefon folosim cablul de date ( conectarea
de cele mai multe ori se face prin porturi de mini-USB, acest lucru fiind mai la indemana datorita
spatiului mic pe care acea componenta il ocupa in ‚scheletul‟ telefonului ) sau sistemul de
bluetooth-ul iar mai nou chiar prin conexiune la internet ( mobile data-oferite de operator sau
Wi-Fi. Facand o scurta paranteza wi-fi este este numele comercial pentru tehnologiile construite
pe baza standardelor de comunicație din familia IEEE 802.11; utilizate pentru realizarea de rețele
locale de comunicație (LAN) fără fir (wireless, WLAN) la viteze echivalente cu cele ale rețelelor
cu fir electric de tip Ethernet.
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 12
In primul rand cand ne referim la blocul de comunicatii trebuie sa ne gandim la complexitatea
acestuia, de cele mai multe ori acesta trebuie sa reprezinte o punte de legatura intre diferite
moduri, tehnologii de comunicatie, incepand cu cele seriale, cele pe distante mici-
USB,Bluetooth sau infrarosu ( din ce in ce mai putin), pana la VoIP (mai nou implementat intr-o
mica masura) dar de asemenea si telefonia voce, date mesaje pentru retele de GSM/UMTS, 2G,
2.5G, 3G si 4G.
Tehnologiile implementate pe sistemul de comunicatie Symbian s-au dezvotat si adaptat repede,
in trend cu constantele imbunatatiri aduse pe toate planurilecum ar fi serviciile de telefonie 2.5G
si 3G.1
2. Scopul implementarii
Serviciul de comunicatii, asa cum il si reprezinta numele are legatura cu tot ceea ce tine de
comunicatie si transfer de date,in esenta de servicii si de protocoale
Exemple: - protocoale seriale RS232 , IrDA si USB
- Bluetooth
- Protocoale de networking TCP/IP ( IPv4 si IPv6 )
- Wi-fi
- Telefonie voce 2G, 2.5 G si 3G, date si mesagerie ( GSM/UMTS)
Acestea la randul lor se ajuta de servicii cum ar fi:
- browsing-ul de internet
- e-mail, SMS, MMS,WAP
- fax
- data sync
Dupa aceste functii de trebuie indeplinite sistemul de comunicatii se imparte in :
- Framework-urile de comunicatie;
1Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007;
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 13
- Serviciile de telefonie;
- Serviciile de networking;
- Serviciile punct-la-punct;2
3.Framework-urile de comunicatie: Comms framework
Reprezinta structura care sustine toate serviciile. Iar pentru a sustine conexiunile de comunicatie
si transfer de date se foloseste interfata client implementata de Sockets Server, impreuna cu
interfete aditionale pentru fiecare comunicatie in parte. De exemplu, pentru a folosi protocolul
TCP/IP folosim Sockets Server impreuna cu librariile Serviciilor de networking. Configurarea
initiala a telefonului se face utilizand Baza de date a sistemului impreuna cu serviciul de scurta
legatura ( short data link- cablu USB).
Sockets Server reprezinta o interfata catre protocoalele de comunicatie catre un ”dead end”, un
capat de linie cunoscut ca sockets. Serverul de Sockets este cunoscut ca ESock, acest nume fiind
numele librariei care il implementeaza.
Architectura
Referindu-ne la telefoanele mobile, scopul principal este de a asiguracomunicatia.
Permintedispozitivelorsa se conecteze a retea, sacreezesisasalvezesetarile de networking,
sacontabilizezetraficul de date pe care, fie le primeste fie le trimite( incoming and outgoing data).
Exemplulcelmai bun esteatuncicand se da refresh la mail, telefonultrimite un mesaj la serverul de
mail, cerand o actualizare a bazei de date, siprimesteraspuns, fie pozitivcadatelesuntactualizate
fie negative impreuna cu datelenecesareactualizarii.
Alcatuire
1. Proceselesisetarilecomunicatiilor:
Acestlucru se afla in Comms Root Server si in Comms Root Server Configurator. Root Server
estecontrolat de catreprocesul C32 in interiorulcaruiaruleazatoateServerele de Comunicatie,
inclusib Sockets Server, Serverul de TelefoniesiServerul de Comunicatiiseriale.
Serverul de Root- Root Server nu esteaccesibilutilizatorului, acestafiindintrebuintatnumai de
catrecreatoriiprogramului.
2. Configuratiacomunicatiilor
AceastacontineBaza de date a Sistemului de Comunicatie, sianumetoatesetarile
framework-ului de comunicatie, acesteareprezintainformatiidespreconexiuniledisponibile,
2http://docs.huihoo.com/symbian/nokia-symbian3-developers-library-v0.8/ Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 14
informatiaestearanjataintr-una din diferiteletabele ( exp: IAP – Internet Access Provider
si Internet Service Provider – informatii cu privire la operatorul de internet).
The Data Communications Server collection contains the components that provide the
frameworks for sockets communications, and for starting network connections.
3. Serverul de date
AcestacontinecomponenteleESock Sever siESock Server Configurator.Contine socket-
urilepentrucomunicatiesipentruconexiuneainitiala la retea.
4. Intrebuintarile framework-urile de comunicatie
Aceastacolectiecontine „scheletul‟sistemului, elementeledarsimanagerulMBuf.
Oferainfrastructuranecesaralegaturiidintrethreadurisiprocese, utilitateaacesteiaeste data de
un comportament special necesarmanagementuluimemoriei, care de
asemeneasarespectestandardeleimpuse de comunicatie.
5. Plug-inurile Serverului serial si Serverului de comunicatie
Aceste plug-inuri( program care se insereaza in alt program pentru a
indeplininistefunctiispecifice), elecontinServerul Serial C32 siPortul Serial CSY( permit
accesultelefonului la portul serial.3
4. Serviciile de telefonie
Acestea au fost create pentru a putea fi folosite de o mare varietate de telefoane, inclusiv GSM si
telefoane de birou cu un dispozitiv Symbian OS integrat.
Blocul este organizat intr-un server primar si un framework, si anume ETel Telephony server
impreuna cu module implementate hardware ( considerate a fi de nivel mic) si utilitati ( de nivel
inalt).
S-a plecat de la Core API, o implementare prin care se un mecanism universal telefoanelor cu
posibilitatea de a fi adaugate module de networking dar si interfete hardware, acestea din urma
oferind suport pentru servicii specifice. Scopul principal era acela de a oferi clientilor informatia
printr-o legatura telefonica.
3Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
http://www.symlab.org/main/documentation/reference/s3/sdk/GUID-8F2D6AC8-8357-55C7-
970B-CD2684BA9B04.html
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 15
Arhitectura
Serviciile de telefoane sunt construite in jurul Etel Telephony Server, acesta reprezentand un
nucleu principal de procese care confera control asupra telefoniei. ETel este in framework
extensibil ale caror module pot extinde functionalitatea nucleului principal. In esenta, ETel poate
fi upgradat in doua directii: hardware- sa suporte retele noi si evolutii hardware- sa suporte
servicii noi. Din aceasta posibilitate de extensie rezulta flexibilitatea, care implica o importanta
divizie a indatorililor sistemului Symbian si suportului oferit de telefon.
Serviciile de telefoniesunt impartite in :
o Telephony Server
o Telephony Messaging
o Component Collections
Telephony Server - realizeaza accesul functiilor de telefonie in sistemul Symbian OS, indiferent
daca telefonul are hardware-ul necesar. Serverul implementeaza standardul client-server frame-
work, oferind clientului API, de asemenea mai implementeaza si interfata CMP, realizand aceste
lucruri are loc comunicatia sub supravegherea Comms Root Server, care ofera canalele de
comunicatie. Principalele mijloace utilizate de server sunt telefoanele, liniile de telefonie si
apelurile.
Principalele indatoriri ale API-ului central sunt functii generice, se verifica statusul
componentelor hardware ale telefonunui si capabilitatile acestuia in gestionarea apelurilor voce,
date si fax-uri.
ETel Server+ Core API + Fax Client-Server= ER5 – baza necesara a fi implementa pe telefoane.
Telephony Messaging – Multimodul ETel extins realizeaza suportul pentru mesagerie, cu
implementatii specifice, cum ar fi Socket Server protocol-module plug-ins, acestea ofera o
interfata pentru clientii care doresc sa trimita mesaje. Se ocupa in special cu codarea si decodarea
mesajelor, suportul Sim pentru stocarea acestora si interactia cu Telephony Server ( via ETel
Multimode) pentru trimiterea si receptia mesajelor.
Component collections:
Utilitatile telefonului - Telephony Utilities Collection
Sunt 3 compomente simple, la care utilizatorul nu are acces, dar care sunt absolut necesare :
Telephony watchers – afiseaza semnalul, nivelul de incarcare al bateriei si atunci cand se
efectueaza un apel
Phone Sync- sincronizarea intre aplicatia agender si intrarile de pe ICC ( sau SIM)
Dial- componentele necesare apelarii
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 16
Baza de date a telefonului- contine toate framework-urile care indeplinesc funciile de baza –
ETel Server and core
ETel 3rd Party API
Fax Client and Server
ETel Multimode
ETel Packet Data
ETel Sim Toolkit
ETel CDMA
Utilitatile SMS- reprezinta acele protocoale care asista in crearea si procesarea mesajelor
SMS.4
5. Serviciile de networking
Navigare pe internet si folosirea email-urilor au fost factorii determinanti de la care s-a decis
includerea serviciilor de internet cand s-a lansat prima oara Symbian OS, desi exista si un mare
potential pentru aplicatii folositoare de internet ca jocurile multiplayer sau stiri on-line.
Nucleul principal al implemenarii serviciilor de networking ramane TCP/IP v4/v6, utilizata ca
un modul PRT Socket Server plug-in.
Wap support- s-a dovedit a deveni un standard pentru device-uri mobile dar mai ales pentru
telefoane, pentru a pune la indemanana browsingul pe acele dispozitive. Wap-ul se foloseste de
asemenea de o stiva ,ca si TCP/IP, cu transport si datagrame stratificate definite pe o varietate
mare de posibile retele mobile. Diferenta cruciala dintre Wap si HTTP o reprezinta folosirea
atata modelelor push cat si a modelelor pull, si anume, clientul cere un gateway si acesta
primeste date, iar la modulul push, clientul primeste date direct de la gateway fara sa fi fost
precedat de vreo cerere .
4http://www.symlab.org/main/documentation/reference/s3/sdk/GUID-8F2D6AC8-8357-55C7-
970B-CD2684BA9B04.html
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 17
Arhitectura
Structura generala a serviciilor de networking este similara celei de standard OSI 7 si exista o
corespondenta pentru fiecare dintre cele 4 nivele.
Incepand de sus in jos:
Serviciile de internet si utilitatile incuzand securtatea networkingului, implementarea
WAP
Extensii specifice catre Socket Server si Network Conection Manager.
Protocoale principale, stiva TCP/IP ( Figura de mai jos)
Managementul interfetei network
Implementatiile interfetei network
Atunci cand o sub-sesiune Socket Server este deschisa de client cerand un socket din protocolul
TCP/IP, cererea este trecuta prin stiva TCP/IP,care incearca sa porneasca o conexiune. Daca nu
reuseste sa gaseasca o interfata, ii cere Managerului Interfetelor Network sa incarce si sa
porneasca coenxiunea pe o conexiune mai potrivita. Cand conexiunea este stabilita, Managerul
Interfetei Network incartca si porneste modulul NIF, care implementeaza Interfata Network si
incepe negocierea autentificarii si alte caracteristici legate de legatura( encapsulare si compresie)
Sistemul de comunicatii Tudorache Bogdan-Alin in arhitectura Symbian
Page | 18
si in cele din urma obtinerea unei adrese IP. In cele din urma Managerul interfetei network leaga
NIF-ul de stiva TCP/IP. 5
6. Serviciile punct-la-punct Sunt utilizate pentru conectarea directa, cu ajutorul unui cablu serial sau USB, sau folosind unde
radio de mica distanta, sau chiar infrarosu/Bluetooth, pentru a comunica doua dispozitive. De
asemenea in aceasta categorie am putea include mai nou si internetul wireless ( wi-fi),
dar nu nici pe departe punct- la-punct sau pe mica distanta.
Reprezentarile pentru: Bluetooth Wireless Usb
Principalele tehnologii punct-la-punct sunt: RS232 serial, USB, infraros/IrDA si Bluetooth, de
asemenea putem vorbi si de Obex, un protocol orientat pe transferul de obiecte,care poate fi
folosit atat pe IrDA cat si pe Bluetooth.
Aceste bloc de servicii include „ managerierea”, utilitatile, implementarea protocoalelor si
adaptarea plug-inurilor hardware.
In aproape toate cazurile aceste servicii sunt folosite pentru transferul de date, datele putand fi
reprezentate de poze,fisiere,documente, .mp3-uri, dar si pentru prealizarea unor conexiuni mai
complexe cum ar fi folosirea telefonului mobil pe post de modem.
Din serviciile discutate pana acum, nu putem trece cu vederea peste faptul ca majorita au ajuns la
‚forma finala‟ fiind destul de greu sa mai fie imbunatatie in vre-un fel, si totusi exceptia o
reprezinta Bluetooth-ul, la acest sistem de comunicatii s-au tot adus imbunatatiri; la viteza cu
care se transera datele, la consumul de energie, la raza de actiune si in cele din urma la rata
erorilor( din ce in ce mai mica).
De retinut faptul ca sistemul de comunicatie seriala si usb au devenit atat de raspandite incat de
multe ori sunt plug and play, ne mai fiind nevoie de instalarea unor programe specializate,
aplicatiile necesare fiind gasite chiar in driverele sistemului de operare utilizat( in cazul
conectarii la PC).
5http://docs.huihoo.com/symbian/nokia-symbian3-developers-library-v0.8/GUID-7821C498-70A2-5D3C-989A-
58CEBAE9162B.html
Nivelul sistemului de operare Enoiu Dragoș-Ciprian
Page | 19
Nivelul sistemului de operare
1. Istoria OSului Symbian
UNIX are o istorie lunga, aproape in forme antice in termeni de calculatoare. Windows ul are o istorie
relativ lunga pe langa UNIX. OSul Symbian, pe de alta parte are o istorie destul de scurta. Are radacinile
sale in sistemul ce a fost dezvoltat in anii 90 si a avut debutul in anul 2001. Acest lucru nu e de mirat,
deoarece platformele smartphone-lor pe care sistemul de operare Symbian ruleaza a evoluat recent
deasemenea.
Sistemul de operare Symbian are radacini in dispozitivele mobile si are un stil de dezvoltare rapid prin
versiunile sale.
În 2008 Nokia a achizitionat „Symbian Software Limited”si a infiintat organizația independenta
non-profit „Symbian Foundation”. Sistemul de operare și platformele software S60, UIQ și MOAP(S) au
fost date de catre detinatorii lor catre fundatie, în scopul transformarii platformei Symbian într-una
open-source.
Symbiana fost la un moment dat este cel mai raspandit sistem de operare pentru telefoane
mobile, întâlnit la aproximativ jumătate dintre vânzările de smartphone-uri. Recordul detinul a fost in
anul 2009 insa vanzarile au scazut dramatic pana in prezent.
Nivelul sistemului de operare Enoiu Dragoș-Ciprian
Page | 20
2. Obiectivele proiectarii sistemului de operare Symbian
Symbian include protectia memoriei și multitasking pe baza de intreruperi.
Sistemul de operare Symbian a fost conceput avand la baza trei principii:
integritatea si securitatea datelor utilizatorului este de maxima importanța
sa nu se piarda din timpul utilizatorului
toate resursele sunt putine
Pentru urmarirea acestor principii, Symbian folosește un microkernel, are o abordare chemare-
și-întoarcere (call-and-callback) a serviciilor și separă interfața de utilizator față de motorul sistemului.
Dispozitivele mobile avînd surse limitate de energie și putere scăzută, sistemul de operare este conceput
pentru a minimiza consumul de putere al sistemului. Aplicațiile și sistemul de operare urmează un model
obiect-orientat: MVC (Model-View-Controller).
Fig. 2: comparație între structurile generice kernel / microkernel; este de remarcat că, în timp ce EPOC
avea o structură „nanokernel”, ultimele versiuni Symbian nu mai au „cu adevarat” microkernel, încât
includ unele device driver-e
Nivelul sistemului de operare Enoiu Dragoș-Ciprian
Page | 21
Iterațiile mai târzii ale sistemului de operare, conform cererilor de piață, au introdus un
kernel „în timp real” și un model de securitate al platformei – în versiunile 8 și 9.
3. Blocul generic de servicii a sistemului de operare.
Aici putem observa cateva servicii oferite pentru utilizarea directa a aplicatiilor,
deasemenea si a unor librarii specifice de programare definite pentru aplicatii si sistem. Inclusiv
pentru interfetele utilizatorului si pentru Layer ele de mai sus.
Serviciile de loggare si cele de planificare a taskurilor folosite de catre aplicatiile
sistemluui sau de componentele sale
Libraria C Standard, obera un mediu de baza POSIX ce este folosit de componentele
sistemului (de exemplu java) si deasemenea este util pentru portarea software ului din
alte platforme
Exista librarii ce suporta securitate bazata pe certificate sau pe criptografie, incluzant cei
si certificari
4. Blocul serviciilor grafice si multimedia
Aceste bloc ofera toate serviciile bazate pe grafica la nivel de hardware si ofera schela ce suporta
serviciile de tip multimedia.
Ofera Windowing, manageruirea de evenimente, grafice vectoriale si bitman toate ce suporta
functiile de bitmap, desen si fonturile de scris, deasemenea suporta printarea de nivel jos pentru
WYSIWYG.
Defineste intr un mod usor de inteles, un set multimedia APIs ce ofera o schita pentru
implementari. Mai include camera si difuzia tuner API, inregistrare si captura de sunet API,
imagini statice si captura de imaginii dinamice, expunere si rulare de API si conversii si
manipulare de tip API.
Nivelul sistemului de operare Enoiu Dragoș-Ciprian
Page | 23
4.1. OpenGL ES
OpenGL ES este un standar pentru grafice 2D si 3D, in special pentru sisteme de tip embedded
incluzand console si telefoane. Defineste aplicatii de tip API pentru redate, mapare de texte, si pentru
alte efecte de grafica, deasemenea pentru sistemele native de tip windowing ca un subset de statii de
lucru si standardul OpenGL desktop-orientat.
OpenGL suporta in sitemul de operare Symbian ce formeaza o schtita de lucru ce
implementeaza legatura API si clientul API standard definit dar ce nu ofera o implementare concreta. O
implementare de tip “ciot” este oferita de OpenGL ES si componentele OpenGL ES.
Cadrul este oferit pentru implementarile de legarura Open GL ES ului si pentru a asigura o
compatibilitate intre dispozitive difeite
4.2. Serverul ferestrelor
Serverul ferestrelor (windowing) este inima arhitecturii a graficei a unui sistem de operare
Symbian si este centrul de manageruieste driverele aplicatiilor. Spre deosebire de celelalte sisteme de
operare, in SO-ul Symbian nu este nicio notiune de aplicatii bazate pe caractere sau dispozitive . Toate
aplicatiile in OSul Symbian sunt grafice intrinseci iar ecranul este la realizarea evenimentul aplicatiei;
deasemenea fiind o sursa importanta pentru evenimentele aplicative.
Serverul de fereastra foloseste conceptul de aplicatie ce apartine windows ului pe afisajul
dispozitivelor pentru a serializa accesul la afisajul de catre aplicatii multiple. O fereastra pe un OS
Symbian este o zona dreptunghiulara ce poate fi desenata de catre aplicatia in raspuns fie cu sistemul de
evenimente si ce primeste concentrarea evenimentelor deasemenea si a evenimentelor pointerilor si a
tastaturii. Serverul ferestrelor detine ecranul ca o resursa si detine coada de evenimente singulare prin
care toate evenimentele dispozitivelor, fie originare de sistem sau originare de aplicatie, sunt
manipulate, manageruite de kernel iar evenimentele aplicatiilor si cele generate de serverul de fereste
insusi ce le distribuie la aplicatii sau sistemelor cu interfete de utilizator. Serverul ferestrelor
implementeaza o schema clasica de OS Symbian – Serializeaza accesul la resursele comune, cea ce in
cazul de fata include afisajul fizic si interactiune cu alte evenimente ( De notat ca dispozitivele ar putea
avea afisaze fizice multiple)
O fereastra este o abstractizare pentru crearea unei regiuni de ecran valabila unei aplicatii de
interactionat. O fereastra abstractizeaza o regiune fizica pe ecran. Din persepectiva unui developer de
aplicatie, o fereastra este o regiune de ecran in care o aplicatie poate fi construita. Pentru a desena in
Nivelul sistemului de operare Enoiu Dragoș-Ciprian
Page | 24
regiunea ferestrei si sa primeasca de la utilizator informatie, aplicatiile creaza inauntrul ferestrei iar
controul devine unitati de interactiune.
Aplicatiile sunt, prin definitie, procese ce apartin ferestrelor deschise. Aplicatiile pot crea si
distruge ferestre, ar putea avea mai multe ferestre si le-ar putea comuta intre ele. Aplicatiile cu ferestre
formeaza un grup de ferestre. Prima aplicatie fereastra intr un grup este fereastra client de sus si o
aplicatie ce trebuie sa aiba macar un ordin de afisaz.
In mod uzual, dimensiunea ferestrei unui ecran complet.Asadar, fereastra nu poate trece peste
dar se pot ascunde una de cealalta.
5. Blocul serviciilor de conectivitate
Arhitectura de conectivitate ofera un cadru pe care serviciile ce au dispozitivele bazate pe
TCP/IP ce pot fi create.Fiindca utilizatorul actual este abstractizat, un astfel de serviciu ruleaza pe orice
purtator. Implementarile sunt aduse pentru dispozitivele host ce au servicii de rezerva.
Windows PC desktop-side are implementari ce sunt oferite ca o parte din Serviciile de
conectivitate si implementari dar in principiu serviciile intr un dispozitiv cu OS Symbian sunt agnostice
despre operatiunea host ului pe sistem.Deoarece serviciile sunt pazate pe TCP/IP, implementarile pe
partea de host (gazda) pot fi scrise pentru orice sistem de operare. Tipic, toate licentele ofera o gazda
de conectivitate de un fel : majoritatea suporta doar Windows, unele suporta doar Mac OS/OS X .
Pachetele gratis de tip Third-party ofera diferite grade de suport pentru Linux sau UNIT in conectivitate
pentru dispozitivele cu OS Symbian.
Stratul aplicației Mîrzac Adrian Cătălin
Page | 25
Stratul aplicației
I. INTRODUCERE
Serviciile de aplicații oferă suport interfața - utilizator - independent pentru
aplicații pe sistemul de operare Symbian ( vezi Figura 7.1 ) . În general , servicii,
ale căror utilizatori sunt destinate în mod special pentru a fi aplicații sau motoare
de aplicatii ( mai degrabă decât componente și servere de System ) pot fi găsite
aici . Un număr de cadre de aplicare esențiale sunt de asemenea incluse . Java ME
folosește , de asemenea, cadrele și servicii găsite în stratul de servicii pentru
aplicații .
Fig. 1 Stratul aplicatiei in modelul de system
Serviciile variază de la cele utilizate de toate aplicațiile ( cadrele aplicațiilor de bază ) , la cele care furnizează logica tehnologiei specifice ( de exemplu , suport pentru aparat, mesaje și protocoale multimedia ) , a serviciilor adresate cererilor individuale specifice ( PIM și aplicații de birou ) . Testul sau referinta interfeței utilizatorului , după caz , sunt furnizate în set de instrumente de personalizare pentru licențiați, dar sunt înlocuite în produsele liceentiate ( inclusiv SDK) 1. 1 Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Stratul aplicației Mîrzac Adrian Cătălin
Page | 26
Scopul:
Stratul Serviciilor de aplicație se bazează pe serviciile de bază ale sistemului
de operare pentru a furniza servicii destinate în primul rând pentru utilizarea
aplicațiilor cat și pentru motoare și include unele cadre de aplicații esențiale , care
sunt folosite de către toate aplicațiile , fie mediată direct sau prin cadre de nivel
superior. Stratul serviciilor de aplicare este , de asemenea, utilizat de componentele
Java ME . Acestea oferă servicii utilizate de toate aplicațiile , dar imediat de
stratul de cadru UI și de interfața cu utilizatorul . De exemplu , instalarea de
aplicații și lansarea , vizualizarea de comutare , și relațiile arhitecturii de aplicare .
De asemenea, acesta ofera:
- servicii generice de sprijin de toate tipurile de aplicații , de exemplu , textul de redare și MIME bazate pe recunoașterea de conținut și de manipulare. - tehnologie de sprijin specifica aplicației , de exemplu , sprijin Versit ( vCard și vCal ) , protocoale și Internet , web și sesiuni multimedia ; alarme pentru aplicații de tip PIM. - aplicații specifice de servicii , de exemplu , motoare si plug -in-uri pentru PIM și aplicații de birou , de gestionare a dispozitivului , și aprovizionare2 .
II. Obiectivele proiectarii
De la început , sistemul de operare Symbian a fost conceput ca o platformă de
aplicații . În special , un obiectiv important a fost reusita de a scrie aplicatii
bogate și convingătoare pentru dispozitivele de buzunar , mobile ( ecran mic ,
ROM și RAM de mică putere , conectate. Arhitectura sistemului capteaza cadrul
cererii ca un serviciu generic folosit de toate aplicațiile și motoare furnizate de
aplicatiile independente ale interfeței cu utilizatorul , si stratificat atât sub cadrele
care au sprijinit aspectele GUI specifice cat si cele ale interfeței cu utilizatorul .
Separarea de bază a aplicațiilor în interfețe utilizator și motoare în special
adoptarea unei abordări MVC are o istorie lungă în sistemul de operare Symbian .
Pe măsură ce sistemul a evoluat , a existat o distincție tot mai mare între motoare și
servicii . Serviciile sunt înțelese ca acordarea de sprijin in lucrul cu modele de date
2 Akhil James, “Symbian OS”, Seminar report, 2007
Stratul aplicației Mîrzac Adrian Cătălin
Page | 27
, de exemplu , identificatori , traducători și gestionari de protocol de date
dactilografiate la nivel de aplicație . Motoarele sunt înțelese mai precis ca logica
aplicației specifice care face parte dintr-o implementare a aplicației care este
independenta de interfața cu utilizatorul . Conform acestei definiții , serviciile de
aplicare ar fi de așteptat pentru a expune Symbian OS, dar motoarele de aplicare nu
ar fi . Aplicând această definiție a sistemului are ca efect deplasarea funcționalitatii
motoarelor ( care devin mai restrânse). Aceasta este direcția în care sistemul de
operare a evoluat. În cele mai recente versiuni ale sistemului de operare prin
urmare , stratul de servicii suportă motoarele de aplicare , dar nu le include ( cu
excepția motoarelor existente ) .
Mostenirea motoarelor aplicatiei În timp ce funcționalitatea poate continua să apară pe dispozitive specifice
, aceasta nu ar trebui să fie considerată ca făcând parte din livrarea sistemului de operare . Alte servicii , de exemplu imprimarea, trebuie, de asemenea, să fie luata în considerare ca moștenire pentru diferite motive. Obiectivele inițiale ale suportului de imprimare în sistemul de operare Symbian ( pentru a asigura imprimarea documentelor WYSIWYG ) au fost depășite de natura conținutului imprimat și de protocoalele noi ( cum ar fi Bluetooth ) .
III. Arhitectura
Un obiectiv al arhitecturii interfață -utilizator în sistemul de operare
Symbian este de a permite funcționalitatea comună cât mai mult posibil, pe partea
de sistem și pentru a pune la dispoziție o gamă cat mai largă de aplicații . Acest
lucru permite aplicațiilor să fie scrise cu un minim de cod. Codul mai complex este
scris doar o singură dată , pe partea sistemului, de unde este testat și validat , și este
refolosit in aplicare . În timp ce strategia pentru realizarea acestui scop s-a mutat de
la furnizarea de motoare de aplicare deplină in a oferi servicii complete , la
motoare ce se deplasează până la straturile licenței , obiectivul rămânand același .
Și în timp ce clasele care definesc arhitectura de bază a unei cereri a sistemului de
operare Symbian diferă între interfețe utilizator -variantă , ele toate provin de la
Stratul aplicației Mîrzac Adrian Cătălin
Page | 28
Symbian OS. Acesta implementează comportamentul care sta la baza . In
aplicatie , acest lucru este interesant . Pe de o parte , este extrem de puternic ,
deoarece un cod aplicație parcurge un drum lung, pe de altă parte prezintă o curbă
de învățare abruptă a scriitorului aplicație . Stratul serviciilor de aplicații oferă
suport pentru aplicații .
Suport pentru aplicatiile generice
Cele mai vechi versiuni ale sistemul de operare Symbian au inclus o serie
de aplicații din categoria Standard PIM și aplicațiile Office ( Agenda , date ,
World Time) , un sistem de ajutor , și așa mai departe . Din ce în ce , furnizarea de
servicii comune și API-uri de standardizare este văzută ca oferind mai multă
valoare pentru licențiați decât furnizarea gata facuta. Cu toate acestea , motoarele
moștenite încă fac parte din sistemul de operare . Împreună cu funcții de telefonie
specifice ( de mesagerie și e-mail , precum și aplicarea telefonului în sine ) ,
aplicatii PIM - cel mai important , o agendă și un calendar simplu - se află în
centrul a ceea ce un telefon modern oferă utilizatorilor săi . O serie de servicii
comune stau la baza acestor aplicatii standard , inclusiv suportul pentru
manipularea de text de bază ,vCard și vCalendar standarde , alarme , de backup,
notificări , fișiere și conversii data .
Serverul de alarmă formeaza o inlantuire de alarme la nivel de system pe
bază de timp şi oferă API-uri pentru aplicaţii pentru a seta si modifica alarmele de
interogare. Serverul de alarmă nu evidentiaza alarmele sonore ci serverul de alerta
evidentiaza aceste functii. Serverul ,,alarma” este un server de Symbian OS
convenţional reusind gestionarea resurselor partajate . Clienţii creaza o sesiune şi
conecteaza serverul pentru a folosi API-uri. Alarmă Server are o lungă istorie în
Symbian OS.3
Suport pentru tehnologiile generice
Mesageria si navigarea au devenit funcții esențiale pentru telefoane mobile .
Stratul serviciilor de aplicații oferă suport extensibil pentru standardele de
Stratul aplicației Mîrzac Adrian Cătălin
Page | 29
mesagerie , inclusiv SMS , MMS, e-mail , pentru protocoale de browser de
Internet și pentru noi protocoale multimedia bazate pe sesiune . Serviciile de
asistență includ recunoașterea de conținut , inclusiv recunoașterea MIME, pentru
datele care provin de la rețeaua și suportul mesajelor " inteligente "( mesaje care
conțin datele de configurare și setările destinate pentru a fi utilizate de către
system in locul utilizatorului.
Suportul pentru mesaje de toate tipurile, de la e-mail pentru mesaje text si
multimedia, este o caracteristică importantă la Symbian OS. Suportul mesagerie
a fost disponibil de la prima lansare. Ca sistemul de operare sa devina mai centrat
pe telefon, mesagerie fără îndoială a devenit mai critică decât a fost iniţial, deşi
cazurile de utilizare sunt diferite pentru telefoane şi PDA-uri. Implementarea
mesajelor pe Symbian OS oferă o infrastructură de mesagerie completă pentru
utilizarea unei aplicaţii de mesagerie, fie de la un beneficiar al licenţei sau de la o
altă sursă. Ea se bazează pe un server de mesaj, care gestionează accesul la un
depozit de mesaje unificate şi efectuează acţiunile generice, care sunt expuse prin
intermediul unui API. Aceasta deţine, de asemenea, un cadru extensibil care să
permită acţiuni generice pentru anumite tipuri de mesaje speciale. Cadrul este
deschis şi este destinat să sprijine personalizare nivelului de întreprindere (de
exemplu, pentru comanda, sistemele de mesagerie corporative, sau servicii),
precum şi prelungirea licenţei (de exemplu, să se adapteze funcţionalitatii generice
pentru un anumit utilizator interfata – aplicaţie de mesagerie S60 si UIQ se
comporta diferit din perspectiva utilizatorului final). Partea client API permite
aplicaţiei client funcţii de bază, precum editare, copiere şi mutare.
IV. COMPONENTE
Componentele sunt afisate in figura de mai jos:
Stratul aplicației Mîrzac Adrian Cătălin
Page | 30
1) Protocoalele multimedia:
Componenta RTP este un server provenind din placa de baza avand acces la
serviciile RTP. Acesta ofera un serviciu de IP bazate pe reteaua de transport în
timp real. Cadrul SIP si SIP furnizor de conectare oferă suport pentru SIP și
integrarea în infrastructura de rețea.
Stratul aplicației Mîrzac Adrian Cătălin
Page | 31
2) Motoarele de aplicatii Office
Această colecție ( vezi Figura 7.11 ) oferă mai vechi implementări cerere -
motor ale EPOC original. Redundante pe un telefon modern , ele sunt
susceptibile de a fi eliminate într -un viitor comunicat de sistem de operare .
(fig. 4.2)
Componentele motorului aplicatiei Office le avem prezentate in urmatorul tabel:
3) Suportul aplicatiilor web:
Stratul aplicației Mîrzac Adrian Cătălin
Page | 32
Această colecţie ( fig. 7.16) oferă Internet, web şi suport de aplicaţie WAP.
Internetul si componentele aplicatiei web:
- Componenta HTTP permite clientilor sa stabileasca o sesiune de
transport pentru protocoalele HTTP, ofera API-uri de baza pentru
sesiunile de transport, tranzactii si mesaje.
- Componenta protocolului HTTP ofera aplicatii incarcate dinamic inclusiv
TCP/IP, HTTP 1.1 şi WSP 1.2.
- Componenta filtrului HTTP ofera plug-in-uri incarcate dinamic pentru a
configura sesiunea de transport inainte de utilizare. Include filtrele de
baza HTTP si WSP care incapsuleaza raspunsurile la evenimentele de
Stratul aplicației Mîrzac Adrian Cătălin
Page | 33
sesiune. Ex: autentificarea clientului , validarea si redirectionarea
mesajului.
- Biblioteca HTTP retine clasele utilitare utilizate de internet . Aceasta
contine implementari pentru URI, un format standardizat de timp .
- Componenta support Bookmark oferă o bază de date marcaj pentru
browserele web
- Componenta motor Telnet oferă un sistem de operare Symbian Telnet
daemon și susține sesiuni pentru a comunica cu o gazda specificata .
- Motorul FTP al sistemului de operare Symbian sustine sesiuni pentru a
comunica cu o gazda specificata.
- Componenta WAP oferă o interfață între stiva WAP și infrastructura de
mesagerie pentru a sprijini WAP ca un transport de mesaje3.
3 Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 34
Implementarea platformei Java ME în sistemul Symbian
1. Introducere
Platforma Java Micro Edition(Java ME) este o parte importantă a platformei Java pentru
telefoane mobile.
Ea are calitatea de a oferi un mediu flexibil pentru toate aplicațiile care rulează pe
dispozitive ca telefoane mobile,e-book-uri,PAD-uri.
Această platformă ofera utilizatorilor interfete flexibile ,dar și securitate și suport pentru
aplicațiile online și offline. Prin urmare,aplicațiile pe platforma Java ME sunt portabile pe mai
marea majoritate a dispozitivelor.Aceste aplicații au în jur de 1 MB.
O altă platformă creată pentru telefoanele mobile este platforma Symbian și este folosită
de Nokia și Sony Ericcson.Este o platformă care a avut un mare succes pentru că deținea la un
moment dat 50 % din piață la nivel global.
1
Cel mai frecvent profil implementat de către platforma Java ME este MIDP (Mobile
Information Device Profile), folosit pentru dispozitive mobile.
Ce inseamna acronimul ME de la Java ME?
Prescurtarea Java ME vine de la Java Micro Edition și este o platforma special conceputa
pentru telefoanele mobile, PDA-uri, fiind cunoscută anterior sub denumirea de J2ME,adica Java
2 Micro Edition.
Java ,de-a lungul timpului s-a consacrat ca un limbaj puternic de programare datorită
faptului că se poate rula pe orice platformă.J2ME este o mașină virtuală optimizată și este cea
1 http://www.slideshare.net/guest7e14b6a/symbian-os-1413049
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 35
care oferă informații cu caracter personal, dispozitive de comunicare și calcul. De cele mai
multe ori , aceste dispozitive sunt de dimensiuni mici și nu atat de puternice cât sunt
dispozitivele de calcul tradiționale.
La ce ne referim cand spunem dispozitive?
Când spunem dispozitive ne referim la mai multe dispozitive diferite atât din punctul de
vedere al capacității , cât și din punctul de vedere al dimensiunii ecranului ori al funcționalității.
O observație bună este că e inutil să avem o singură mașină virtuală pentru toate
dispozitivele.
De ce J2ME?
Pentru ca are capacitatea de a programa dispozitive și pentru ca ea cuprinde un număr de
componente specificate , care au fost definite de către industrie prin JCP (Java Community
Process).
Tehnologia Java se învârte în jurul unui număr de utilizatori diferiți în industrie,toți
participând la îmbunătățirea continuă și dezvoltarea platformei prin intermediul JCP. Utilizatorii
finali cer în mod constant noi caracteristici și capabilități suplimentare pentru serviciile lor ,iar
dezvoltatorii de aplicații depun eforturi pentru a le crea . Dispozitivele de proiectare
OEM(Original Equipment Manufacturers), sunt capabile să găzduiasca aceste noi servicii și
caracteristici. Dezvoltatorii implementează aceste servicii pe mediul mobil pentru că acest lucru
conduce la noi afaceri.
În urmatoarea figură sunt reprezentate exemple pentru cuvintele cheie expuse mai sus.
Poza a fost lasată in limba engleza cu scopul de a nu ii strica din formă.Deci,în
următoarele randuri voi discuta despre componentele ei.Si anume
În mijlocul schemei sunt utilizatorii finali,adică cei care cumpără un dispozitiv iesit pe
piată.În jurul acestor utlizatori se învart celelalte pentru că dispozitivele sunt create cu acest scop,
de a fi utilizate și cumpărate de o lume întreagă.
Observăm că la inceput se pleacă de la platforma Java,apoi se incearcă un conținut,o
verificare de programe și niste crearea de instrumente si opțiuni ,apoi se ajunge la echipamentul
original prin implementare,soluții,verificări și alte instrumente menite să facă o aplicație mult
mai ușoară.
Deci, o concluzie cu referire la aceasta poză ar fi că aplicațiile sunt concepute pe baza
patformei Java și după multe verificări și soluții la codurile greșite se ajunge la un dispozitiv care
este lansat utilizatorilor finali care cumpăra un produs ținând cont atât de brand cat și de ceea ce
poate să facă acel dispozitiv.
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 36
2
Aceasta constantă evoluție asigură că platforma Java va continua să servească nevoile
celor implicați în eco-sistem.
S-a propus vreo modernizare a platformei?
Raspunsul este “Da”.În 2011 , Oracle și parteneri lui sunt cei care lucrează în
conformitate cu JCP(Java Community Process) pentru a lansa Java ME.next, o propunere pentru
a da un suflu nou platformei Java ME .
“Dacă privim tehnologia Java din punct de vedere statistic, 3 miliarde de telefoane
mobile suportă platforma Java. În fiecare an, numărul de telefoane noi ce rulează aplicații Java
este de 31 de ori mai mare decât cele de la Apple si cele cu Android.”
[3]http://programatori.info/blog/2011/05/aplicatii-java-pentru-telefoane-mobile/
Nokia oferă instrumente şi resurse tehnice pentru dezvoltatori în crearea J2ME şi a altor
aplicaţii pe standardele industriei, oferind oportunităţi pentru dezvoltatori să le vândă prin pieţe
industriale de invatare.
2 http://www.oracle.com/technetwork/java/javame/about-java-me-395899.html
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 37
2. Cerințele subsistemului Java ME
Java este o platformă ,un mediu de aplicație care și-a câstigat importanța în zilele noastre
pentru că este utilizată preponderent în crearea aplicațiilor pentru telefoanele mobile,dar și pentru
că oferă gama de descărcare și instalare de programe(jocuri,utilitați,media player).Aceasta este
un standard pentru dezvoltatorii care doresc să extindă sistemele de informații la utilizatorii de
telefoane mobile,precum și aplicații personalizate .
Dezvoltarea unei aplicații pentru Symbian
Acum câțiva ani , telefoanele existente nu dispuneau de sisteme de operare complexe și
nici de platforme de dezvoltare complexe.
În urmatoarea figură avem schema unei arhitecturi software a unui dispozitiv mobil.Se
poate observă că între aplicațiile Java și aplicatiile native există o diferenta din cauza faptului că
cele native au acces direct atât la sistemul de operare al telefonului,cât și la software-ul
sistemului,pe când aplicațiile Java au acces limitat,doar prin mai multe API-uri Java.
Mai sus s-a prezentat arhitectura tipica a unui software al unui telefon mobil, deci voi
prezenta in figura următoare ,arhitectura generala a unui telefon (unde Masina Virtuala Hot Spot
se refera la Mașina Virtuala HotSpot Java creată de Sun) :
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 38
O calitate importantă a filozofiei Java este independentă platformei care se aplică, la fel
de mult atât în contextul MIDP ,cât și implementării desktop Java.
Implementarea Java ME în Symbian OS oferă un mediu standard pentru instalarea și
rularea MID-let-urilor, cu acces la baza serviciilor sistemului de operare prin intermediul MIDP
2.0 API , care include un numar de API-uri optionale - ca de exemplu MobileMedia,Grafica 3D
- precum și la tehnologia Java pentru industria Wireless (JTWI) standard,care are scopul de a
standardiza suportul MIDP pentru telefoane mobile și Interfața Emulatorului Unificat(UEI =
Unified Emulator Interface),o dezvoltare a instrumentelor standarde inițiale.
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 39
3. Obiectivele proiectării pentru subsistemul Java ME
Symbian OS oferă o serie bogată și puternică pentru implementarea Java ME , dar are ,
de asemenea, unele probleme mari . Acestea sunt o consecință a diferențelor de arhitectură dintre
sistemul de operare Symbian și platforma Java și diferențele dintre componentele sistemului de
operare Symbian șiAPI-urile MIDP care sunt construite în partea de sus a API-urilor Symbian .
Există unele nepotriviri specifice între sistemul de operare Symbian și modelele de Java ,
în special faptul ca modelele lor de filetare sunt incompatibile .
Sistemul de operare Symbian are propriul model de aplicație nativă ( pentru C + + ) , cu
care trebuie sa fie integrat ciclului de viață al MIDP, în cazul în care MID-let-urile sunt create
pentru a avea un ciclu de viață fără aplicație nativă .
Symbian OS are un set bogat de controale native, abstractizări de locație, dialoguri
personalizate, mecanisme presetabile, s.a.m.d., toate fiind asteptate să fie customizabile la nivel
de interfată și interactiune, de cei care asigură interfața cu utilizatorul,o alternativă cu care
sistemul de operare este integrat pe orice dispozitiv personalizat Symbian OS. Prin urmare , orice
aspecte dependente de implementare MIDP trebuie să fie personalizate pentru diferite interfețe
pentru o gama variata de utilizatori.
MID-let-urile ar trebui , pe cât posibil , să arate și să se simtă ca fiind aplicații native .
Pentru sistemul de operare Symbian , aceasta reprezintă o provocare specială de când felul cum
arată aplicația în versiune finala depinde foarte mult de interfața cu utilizatorul care rulează pe un
anumit dispozitiv cu sistem de operare Symbian .
Componenentele API a Symbian OS au implementare diferită de la API-urile
MIDP(Mobile Information Device), care necesită o arhitectură internă elaborată pentru a lega
funcționalitatea între cele două ierarhii de clase ortogonale .
Subsistemul Java ME, privit ca ansamblu poate fi schimbat şi înlocuit cu altul.
Beneficiarii de Symbian au, de asemenea, libertatea de a alege care dintre JSR-uri le foloseasca
si care nu.
Pentru a depăsi aceste complicații ,implemenatarea Java ME trebuie să îndeplinească
anumite obiective de bază de proiectare :
• Suport pentru comportament aproape nativ de MID-let-uri , pentru a permite trecerea
fără sudură între MID-let-urile și aplicațiile native
Să asigure o implementare completa ( MIDP specifică caracteristici atât obligatorii cât și
opționale ), pentru a se asigura că punerea în aplicare Java ME pe sistemul de operare Symbian
este extrem de competitiv
• Să permită o " platformă comună ", prin furnizarea unui sistem de bază solid pe toate
smartphone-uri Symbian
• Să furnizeze optiune de personalizare ca element esential, parte din sistemul de operare
Symbian . Deținătorii de licență pot alege să varieze gradul în care au suport Java de pe un
dispozitiv special prin extinderea sau limitarea implicită a implementării Symbian Java ME ,
inclusiv înlăturarea sau înlocuirea în întregime .
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 40
4. Evoluția Java în sistemul de operare Symbian
Prima implementare Java pe Symbian a fost bazată pe JDK 1.1.4 , ce aparținea firmei Sun
și a fost lansată în 1999 ca parte a sistemului de operare Symbian OS v5.Pentru apariția viitoare,
au decis să profite de memoria redusă oferită de PersonalJava (comparativ cu JDK ) ,ca bază
pentru punerea lor în aplicare Java. Această versiune,Symbian OS 6.0, a aparut in 2000.
În plus , Symbian OS versiunea 6.0 oferea o implementare JavaPhone API,o extindere
verticală la platforma de PersonalJava, oferind acces la funcţiile de telefon care stau la bază,
inclusiv capacitatea de a:
• Accesa funcționalitatea telefonului
• De a trimite și a primi datagrame
• De a manipula agenda și calendarul
Între timp, Sun a revizuit strategia Java . În 1999, recunoscând că "o mărime nu se
potrivește tuturor " Sun a anunțat separarea platformei Java în trei versiuni :
• Java 2 Enterprise Edition ( J2EE )
• Java 2 Standard Edition ( J2SE )
• Java2 Micro Edition ( J2ME )
Insa, Java a fost redenumit Java 2 o data cu lansarea de JDK 1.2 .
Editia Enterprise a fost menita să ofere soluţii capăt la capăt, soluțiile concentrându-se pe
partea de server, în timp ce Editia Standard era direcţionată în funcţie de mediul desktop.
Editia Micro a fost direcţionata la o gamă largă de consumatori şi dispozitive electronice
încorporate cu resurse constrânse.Misiunea programului se referea la o gamă largă de dispozitive
diferite pe segmente de piaţă.Aceasta ediție este subdivizată în configuraţii orientate la
configuraţii hardware speciale.
Configurația cea mai potrivită pentru telefoane mobile este CLDC(Connected Limited
Device Configuration), și avea 160-512 KB de memorie disponibile pentru Java, baterie,
eventual intermitentă, conexiune.
Situându-se în top ,deasupra lui CLDC, profilul MIDP (Mobile Information Device)
este cel care specifică un API stabilit adecvat pentru dispozitive de informare mobil precum
telefoanele.
O dată ce s-a văzut că J2ME MIDP castigă spațiu în fața tuturor, producătorii de
telefoane mobile au aprobat ușor faptul că platforma Java este un mediu potrivit pentru
aplicații.Symbian recunoaște puterea în mutarea MIDP incluzând J2ME MIDP 1.0 ca standard
Java în versiunea Symbian OS 7.0 lansat in 2012,precum şi portarea la versiunile anterioare.
Cu toate acestea a fost recunoscut că specificatiile MIDP 1.0 duc la limitarea severa a
domeniului de aplicare al MID-let-urilor.Ca o consecinţă ,mai scumpa, dar cu cea mai mare
memorie, PersonalJava/JavaPhone, a fost reținută ca o opţiune disponibilă pentru licenţiaţii.
În timp, J2ME a progresat față de prima sa concepere din 1999 . Deși MIDP 1.0 a generat
unconsiderabil entuziasm în rândul comunității Java wireless , acesta fiind limitat în capacitățile
sale în ceea ce privește accesul la funcționalitatea oferită de un telefon inteligent tipic din cadrul
unui MID-let . Prin urmare, la scurt timp după lansarea MIDP 1.0,comunitate fără fir a început să
se lucreze la consolidarea capacităților MIDP . Acest lucru a fost manifestat în Specificatiile
MIDP 2.0 Java (JSR 118 ) , lansate in forma sa finală în noiembrie 2002 și o serie de prelungire
API JSR-uri , toate facând parte din Comunitatea Procesului Java.
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 41
Aceste evoluţii vor creşte funcţionalitatea pentru MID-let-uri. În consecinţă, cea mai
recentă versiune de Symbian OS, versiunea 7.0 oferă suport pentru J2ME MIDP 2.0, care aduce
un nou model nou de securitate, îmbunătăţit UI API, API-uri joc şi audio şi o implementare
Impinge Registrii(Push Registry) pentru platforma Java. În plus, Symbian OS v7.0s oferă o
punere în aplicare Java API pentru tehnologia Bluetooth Wireless (JSR82), oferind acces MID-
let-urilor la stiva Bluetooth şi la Mesageria Wireless API (JSR 120), permiţând MID-let-urilorsa
trimite şi sa primeasca mesaje SMS.
Nokia a construit pe cea mai recentă versiune de Symbian OS cu scopul de a produce
versiunea 2.0 din seria lor 60 de platformă. În plus față de funcționalitatea care vine ca standard
în versiunea 7.0s ( a se vedea mai sus ) , Nokia a adăugat , de asemenea, aplicația proprie de API
Media Mobil ( JSR 135 ), având sprijinul Java pentru redare video , generare de ton și de captare
foto , completarea audio API-ul care vine ca parte a MIDP 2.0 .
3 3 http://img.pathfinder.gr/clubs/files/32296/9.pdf
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 42
Beneficiile Java pe Symbian OS din punctul de vedere al dezvoltatorilor , operatorilor de
rețea, și furnizorii de servicii care vor beneficia de valoarea adăugată oferită de Java pe sistemul
de operare Symbian sunt:
• implementarea Symbian Java este robusta . Pierderile de date de utilizator în sistemul de
operare Symbian telefoane este foarte rar , și resetarea sistemul este rareori necesar .
• sistemul de operare Symbian Java este rapid . Symbian MIDP 1.0 oferă suport pentru
software-ul VTK interpret accelerat, în timp ce MIDP 2.0 foloseste Sun CLDC HI VM .
Componentele Java UI Symbian conduc direct la componentele UI nativ . Sistemul de operare
Symbian la rândul său, este extrem de eficient .
• Implementarea Java are o amprentă mică , profitând de filosofie slabă și medie a
sistemul de operare Symbian .
• implementarea Symbian ale noilor API-uri derivate din Java Community Process extind
funcționalitatea de MIDlet .
Cu performanța și capacitățile Java wireless pe sistemul de operare Symbian, care în
continuă îmbunătățire, oferă acum ISV-uri și servicii furnizorilor un mediu de dezvoltare
viabilă, pentru direcționarea marketingului pentru servicii de date avansate în spațiul fără fir .
Hop-urile JavaME
Startul platformei Java ME a fost unul cu greutăți din partea concurenței crescute pentru
că industria de jocuri mobile a fost din totdeauna în continuă creștere.S-a observant ca nu a
existat niciun suport standard de JRS (Java Specification Request) disponibil, si unele
implementări nu concordau cu cerințele stabilite de JRS existente , iar altele le satisfaceau
partial.
Un alt lucru dificil de stabilit a fost cunoașterea specificațiilor care să fie suportate de
orice receptor.S-a intamplat și cazul în care ,în cadrul unei familii de telefoane mobile din cadrul
unui producator , să existe nereguli cu API-urile care să lipsească,iar această lipsă să nu poate să
fie dovedită de vreun motiv concret.Propriile API-uri adaugate de un producător conduce la o
funcție suplimentară care nu poate să fie acoperită de JRS-urile standarde.
Daca în tot acest timp s-a lucrat la specificații și la funcții suplimentare,librariile au rămas
pe loc,neputând fi inlocuite din motive de compatibilitate.
Rezultatul a venit cu o serie de soluții care au avut capabilitatea de a facilita programarea
în aplicații Java ME,care aveau ca țintă o mulțime de dispozitive în același timp.Aplicațiile Java
ME se refereau în mod special la jocuri și s-a încercat scrierea unor librării în medii eterogene și
apoi au trebui să recupereze investigațiile făcute.
Acest fenomen a fost un caz nefericit și s-a numit “fragmentare”,iar tot ce s-a scris pe
bucăti a trebuit sa fie verificat peste tot.Fenomenul a avut un efect negativ pana la scoaterea pe
piața a aplicațiilor Java ME.
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 43
5. Arhitectura
Care este arhitectura platformei?
Arhitectura J2ME este prezentata in figura de mai jos :
O arhitectura este data explicit in urmatoare figura de mai jos:
4
4 http://scdsd.bluepink.ro/2007-2008/scdsd/gs_I_j2me.pdf
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 44
Ce inseamnă figura de mai sus?
Figura de mai sus ne arată din ce blocuri este compusă J2ME și anume:
Masina Java Virtuală
- Execută cod compilat Java la nivel de byte (clasă.)
- Disponibil pentru multe sisteme
- Controlează codul de (de securitate)
KVM , care este des folosită pentru telefoane mobile:
- Kilobyte Virtual Machine (KVM)
- Amprentă de memorie începând de la doar 60 kB (+)
Daca am da un zoom la arhitectura Java ME am observa urmatoarele blocuri
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 45
Care sunt partile componente ale masinii java?
J2ME are 3 parti componente:
1. Configurația care conține o mașină virtuală și câteva librării de clase,adică conține
limbajul Java + JVM(descrisa in figura de jos) + librăriile clasei de bază
5
2. Un profil care ne pune la dispoziție un set folositor de API-uri,iar aici ne referim la
telefoanele mobile care folosesc MIDP ce includ API’uri pentru GUI și jocuri 2D
3. Pachete opționale sau set optional de API-uri ,care pot sau nu pot fi folositoare în crearea
de aplicații,adică : grafică 3D,servicii internet, acces sistem de fișiere
Aceste părți componente sunt evidențiate și prin schema urnătoare
5 http://pip.ac.tuiasi.ro/Doc/curs/Curs_01.pdf
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 46
Ce inseamnă API?
API este un acronim pentru Application Programming Interfaces (APIs) și se traduce în
română prin Interfețe de Programare a Aplicațiilor și constă în diverse și multiple librării ,de
exemplu retea 3D,servicii bazate pe locație.
Acest lucru este arătat în figura următoare:
Care a fost scopul proiectării platformei JAVA ME?
Această platformă a fost concepută de catre Sun cu scopul de a rula pe echipamente
simple(cu memorie redusă,grafică limitată) și să fie compatibilă cu majoritatea sistemelor de
operare.
Tot ei au fost creatorii mașinii virtuale Kauai (KVM),care avea nevoie de 10% din
resursele cerute de mașina virtuală Java (JVM).
Rezultatul final a fost construirea platformei Java ME din trei componente de nivel inalt.
De retinut este faptul că nu există nici o "aplicație J2ME",iar pachetele de configurare,
profil și cel opțional trebuie sa fie alese.
Când Java 2 Platform, Micro Edition (J2ME) a fost introdusă pentru prima dată, avea
definita în specificațiile oficiale doar o singură configurație CLDC (Connected Limited Device
Configuration) și doar un singur profil MIDP (Mobile Information Device Profile).
În prezent, există aproximativ patruzeci de specificații J2ME legate la diferite etape ale
JCP,însă majoritatea definesc pachete opționale, în loc de configurații sau profiluri.
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 47
6. Interfete de programare de nivel inferior
Configurațiile
Acestea sunt de fapt cele care specifica memoria alocată,puterea procesorului și
conectivitatea în retea.
“Configurarea definește o platformă minimă pentru o clasă de dispozitive, cu memorie
similară și capacitățile de procesare. Este un mediu complet de execuție Java, constând din:
O masina virtual Java (VM) pentru a executa cod.
Cod nativ la interfața cu sistemul de bază.
Un set de bază Java clase de rulare.Setul de clase de bază este în mod normal destul de
mic și trebuie să fie îmbunătățită cu clase suplimentare furnizate de J2ME profiluri sau de
implementator de configurare.”6
Clasificare:
CLCD = The Connected Limited Device Configuration
CDC = Connected Device Configuration
Aceasta clasificare este aratata si in urmatoarea figura :
Configurația,are rolul de a defini platforma pentru cele două clase de dispozitive
menționate mai sus:
CLDC
Este o interfață de utilizator limitat
Are putere de calcul redus (de obicei cu o baterie)
Are o rețea cu lățime de bandă mică
6 http://www.cs.huji.ac.il/~ssd/J2ME/J2ME.htm
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 48
CDC
Este o conexiune la rețea cu lățime mare de bandă
Are cerințe de memorie mai mare
Daca CLCD a avut ca scop principal telefoanele mobile PDA-urile low-level,cele CDC
au avut ca scop dispozitivele cu o memorie vastă și cu o conectivitate la o rețea puternică și
procesoare rapide.
Ce configurație e mai folosită?
CLCD ramane cea mai folosită configurație,însa există și telefoane cu system Symbian
care au platforma bazată pe CDC.
Până în ziua de astazi au existat două versiuni ale configurației CLDC,cea mai recentă
apăruta numindu-se CLDC 1.1 și fiind implementată in telefoanele mobile încă din anul
2003.Această configurație include pe lângă alte actualizari și un suport pentru operații in virgulă
mobilă.
Configurațiile sunt specificații care detaliză o mașină virtuală Java și au un API restrâns
care este cel care stă la baza dezvoltării de aplicații pentru o anumită categorie de dispozitive.
Platforma Java ME are un suport larg în industrie, datorită flexibilității sale în a programa
diferite dispozitive.Cuvântul cheie după care se ghidează JavaME este “Write Once, Run
Anywhere”,care vrea să confirme faptul că un cod scris în această platforma se poate mula pe
orice dispozitiv.
În câte versiuni este disponibil CLDC?
CLDC este disponibil în două versiuni:
● CLDC 1.0 care a existat în dispozitive până în maxim anul 2005 și nu conținea tipuri în
virgulă mobilă
● CLDC 1.1 este cel actual și are suport pentru virgulă mobilă(mai ales într-un software
lent) și conține mai multe noutăți.
Se folosește pentru telefoanele mobile,de consum și dispozitive de divertisment,pentru
platforme integrate, controlere, senzori.
7
1. 7 “The symbian os architecture source book “ by Ben Morison
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 49
Profilurile
Acestea construiesc nivelul superior al unei configurații și sunt adaptabile și specializate
pentru dispozitive,tot mai dezvoltate si mai multe,într-o piaţă in continuă creștere, cum ar fi
telefoanele mobile Mobile Information Device Profile (MIDP).
Tot ele sunt” cele care definesc în mod eficient un contract între o aplicație şi un set de
dispozitive de acelaşi tip, de obicei, prin includerea bibliotecilor de clase care sunt mult mai
specifice domeniului decât cele disponibile în orice configurare speciala. “8
Profilurile sunt cele abordează probleme specifice de dispozitiv ca API și ca GUI,
memorie persistentă, funcționalități specifice de dispozitiv etc Cele mai multe profile populare
sunt Mobile Information Device Profile (MIDP), Profil Personal (PP) și Profil titlu personal
(PBP).
“Profilele sunt atasate configuratiilor, adaugând API-ul specific necesar crearii efective
a unei aplicatii.” 9
Clasificare :
Mobile Information Device Profile 1.0 (MIDP1) care Contine suport pentru sunet,are
grafice limitate
Mobile Information Device Profile 2.0 (MIDP2).
Voi enumare cateva diferente majore intre 4 profiluri,diferente specificate in urmatorul
site : 10
“MIDP 1.0
suport pentru sunet,
grafice limitate,
numai HTTP, nu Socket-uri
are multe extensii specifice furnizorului, care este un dezavantaj.
MIDP 2.0
joc API
Mai bună rețea șisuport multimedia
8 http://stst.elia.pub.ro/news/SOA/Teme_SOA_12_13/StanciuValerian/Symbian.pdf
9 http://thor.info.uaic.ro/~acf/java/slides/j2me1_slide.pdf
10 http://www.symbianresources.com/tutorials/javame/JavaME-01-Overview.pdf
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 50
11
MIDP 2.1
Încearcă să îmbunătățească problemele fragmentarii (versiune diferită pentru
fiecare telefon )
Specificații mai stricte pentru pachete
MIDP 3.0 (JSR 271)
MIDlet-uri multiple pot rulaîn același timp sau înfundal, auto-lansare
Specificații mai detaliate
Mai multe posibilități de UI,suport de ecrane secundare “
Profilurile impun cerinte minime pentru dispozitive ca dimensiunea ecranului,posibilitati
de introducere a datelor și anume
● O configurație detaliată
●Conține API-uri pentru UI(User Interface=Interfata utilizatorului), de manipulare
eveniment, de stocare a datelor,rețele, cronometre.
● Cerințe minime pentru dispozitive (dimensiunea ecranului, de introducere posibilități)
● Pentru telefoanele mobile: Mobile Information Device Profile (MIDP)
Care este relația între profiluri și configurații?
Profilul este suma tuturor configurațiile si a caracteristicilor de baza specifice dispozitivelor.
11 “The symbian os architecture source book “ by Ben Morison
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 51
6.1. MIDP 2.0 si CLDC 1.1
Pentru ca MIDP 1.0 era limitat,chiar daca a generat la inceput entuziasm,comunitatea
Java Wireless a dorit sa lucreze la consolidarea capacitatilor de MIDP,pentru ca limitarea primei
versiuni era legata de capacitatiile sale.
“Acest lucru s-a manifestat în MIDP 2.0 (JSR 118), lansat în forma sa finală în noiembrie 2002, şi o gamă de extensie API JSRs, toate făcând parte din Java Community Process. Aceste evoluţii oferă o creştere substanţială a funcţionalităţii disponibile pentru MIDlet-uri. În consecinţă, cea mai recentă versiune de Symbian OS (versiunea 7.0s) şi UIQ 2.1 au trecut la un singur concept tehnologic Java bazat pe J2ME CLDC şi MIDP 2.0 (API-uri suplimentare, plus J2ME opţional). J2ME MIDP este stabilit, în prezent ca platforma Java omniprezenta în aria de telefonie mobila şi, ca atare, Symbian va continua să evolueze şi spori posibilitatile de CLDC/MIDP pe care le ofera. “12
Pe de altă parte , multe dintre caracteristicile convingătoare ale platformei Java ME (
disponibile prin intermediul pachetelor documentate de procesul JSR) , cum ar fi grafice
multimedia și 3D , sunt disponibile numai pe telefoane relativ noi , care de obicei ruleaza pe
CLDC 1.1 și MIDP 2.0 sau 2.1 .
12
http://www.webdesigning.ro/java/javamobility.pdf
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 52
Specificațiile CLDC și MIDP ofera o bază solidă pe care se pot dezvolta cu incredere
jocuri.
Limitările platformei CLDC și MIDP sunt în multe feluri semnificative :de memorie ,
procesoare , crearea de rețele , și capacități grafice care pot restricționa activitățile de dezvoltare
în raport cu eforturile jocului . Acest lucru este în cazul în care apare o diferența reală dintre
dispozitivele de programare pentru micro și PC-uri sau console.
Implementarea platformei Java ME în sistemul Symbian Săraru Ștefania-Alexandra
Page | 53
Tool-ul de instrumente Sun Wireless:
Este bazat pe referinte de implementare CLDC 1.1 si MIDP 2.0
Suporta API-uri aditionale
Simplu si usor de utilizat
Are instrumente pentru performanta aplicațiilor
Pot fi personalizate pentru diverse dispozitive
Se integreaza cu Java IDE disponibile comercial IDE: Eclipse,Netbeans
Securitatea platformei Symbian Minea Maria-Adriana
Page | 54
Securitatea platformei Symbian
1. Introducere
Sistemul de Operare Symbian v9.0 a introdus Platforma de Securitatecu scopul de a
projata datele si integritatea telefonului. Acest model opereaza la nivelul software avand rolul
de detectare si prevenire impotriva aplicatilor neutorizate la hardware , software si de sistem
sau utilizatorul de date. Prin aceste mijloace se incearca a se evita problemele ce apar datorita
blocarii telefonului, compromiterea datelor de utilizator, sau care pot afecta alte softwar -uride
rețea.
Platforma de Securitate previne software-ul ce ruleaza pe Sistemul de Operare Symbian sa
actioneze in mod eronat.De fiecare dată cand se instalează o aplicație, Sistemul de Operare
Symbian de instalare verifică dacă cererea are capacități adecvate prin intermediul unei
semnături digitale emise de o autoritate de încredere1.
Din punct de vedere arhitectural, Platforma de Securitate prezinta un set de modificari ce
se regasesc la toate nivelurile, fiind susținute de SemnaturaSymbian, ce prevede un mijloc
pentru a crea o legătură formală între o aplicație și originea sa, precum și asigurarea unui
mecanism de revizuire pentru a promova cele mai bune practici în proiectarea și scrierea de
aplicatii Symbian OS .
Will Palmer, arhitect de sistem, responsabil cu proiectul platformei de securitate declara:
„Există trei principii pentru Platforma de Securitate.Primul principiu este unitatea de
încredere, ideea procesului de a fi unitatea de încredere. Deoarece memoria este deja
protejata per-proces pe procesor, care se potrivește destul de bine, și are, de asemenea,
avantajul de a fi o abordare „cel mai putin privilegiata”, bazata pe cel mai mic element din
sistemul de operare. Al doilea principiu este ideea capacităților , care au efect de jetoane
autorizate. Deci, pentru a putea accesa o resursă potențială, un proces trebuie să posede o
anumită capacitate care îi permite să facă acest lucru. Și al treilea principiu este cuștile de
date, care se refera la citirea și scrierea fișierelor de protecție, care protejează integritatea
datelor, precum și protecția datelor de ochii indiscreti”2.
Cele mai importante principii sunt:
Procesele ca unitate de încredere, care să transforme încredereaintr-o resursa de
sistem de proces granular
Capabilitati cum ar fi jetoane de incredere ,care sunt necesare pentru a efectua
acțiuni
Cuști de date, care protejează datele de ochii indiscreti sau interferență,sau ambele.
1„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
2“The Symbian OS Architecture Sourcebook - Design and Evolution of a Mobile Phone OS” ,John Wiley & Sons Ltd 2007.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 55
Unitatea de încredere este definita prin faptul că toate firele într-un proces împărtășesc
același nivel de încredere .Scopul este acela de a proteja utilizatorii PC-urilor de intentiile rau-
voitorilor. Pentru o lunga perioda de timp Sistemul de Operare Symbian, a fost protejat
impotriva programelor software rău intentionate deoarece acesta a fost implementat in
dispozitivele ROM,in care sistemul nu putea fi corupt,acest lucru se datoreaza faptului ca
ROM permite doar citirea nu si scrierea. Datorita desing-ului său, Sistemul de Operare
Symbian este protejat impotriva unor lipsuri ce tin de securitate ce pot fi gasite pe alte
sisteme.
Dispozitivele mobile, in special telefoanele,sunt diferite față de sistemele desktop; atat
modul lor de acces fizic cat și accesul la rețea se face diferit. Pe de altă parte telefoanele
prezintă noi oportunități pentru soft-urile rau intentionate3.
Will Palmer este de părere că :
„Când randament modelului de a fost conceput a aparut existența unui set de
constrângeri cu privire la ceea ce a trebuit să ofere: a trebuit să fie robust, a trebuit să fie
simplu, și nu ar trebui să intre în modul de funcționare a unui telefon, astfel, de exemplu, nu
ai putea folosi sute de cicluri de ceas pe el, pentru că pe un dispozitiv mic aveți constrângeri
de performanță și putere. De asemenea, a trebuit să fie adecvate pentru un sistem de operare
deschis: oamenii trebuie să fie capabili sa instaleze software suplimentar pe telefoanele lor
și trebuie să fie simplu și ușor de înțeles.4”
Data Caging-ul (cuști de date), a fost ales pentru simplitate și economie (refindu-se in
acest caz la cicluri de ceas și de putere). O alta remarca importanta a fost cea ca mecanimele
de pe desktop-urile computerelor cu care userii sunt chiar multumiti, cum ar fi logging on , ar
fi nepotrivite pentru telefon.
Will Palmer sustine :
„Autorizatia bazata pe modelul de proces-capacitate este simplu de înțeles și se
potrivește cazului telefon mult mai bine decât un sistem de autentificare. Deci, într- un sistem
de autentificare vă conectați și cu parola pentru a te autentifica sistemului, și o dată
autentificat poți face orice este permis nivelului tau de autentificare. Dar un telefon este
diferit: acesta este un mediu cu un singur utilizator; este în buzunarul tău, îți aparține. Deși
lucrurile devin mai complexe acum, din cauza cerințelor pentru drepturi administrative. De
exemplu, operatorul de rețea ar putea să dorească să modificați setările de pe telefon.5”
Mecanismul de capacitate este folosit pentru a proteja atât resuresele"sistem" cat si pe cele
"utilizator".
3,4
“The Symbian OS Architecture Sourcebook - Design and Evolution of a Mobile Phone OS” , John Wiley & Sons Ltd 2007
5,6
“The Symbian OS Architecture Sourcebook - Design and Evolution of a Mobile Phone OS” ,John Wiley & Sons Ltd 2007.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 56
Will Palmer rezumă diferența :
„Nu exista tipuri de capacități mai puternice decât altele, ele doar protejeaza lucruri
diferite. Capacitățile sistemului protejează integritatea părților interesate și a dispozitivului,
întrucât capacitățile de utilizator protejează intimitatea utilizatorului și bani.6”
API-urile protejate sunt marcate la metoda-nivel cu capacitatea necesară de a le exercita
și a avea acces la toate resursele care stau la bază (fișiere de date, de exemplu). Capacitățile
unei metode fac parte din interfața sa. Pentru a utiliza API-uri protejate, dezvoltatorii trebuie
să solicite un set adecvat de capacități, iar acest lucru se poate realiza prin intermediul
programului de Semnatură Symbian.
Unei aplicații "semnate",i se acordă un set de capacități. Capacitățile de aplicare sunt
verificate de servere atunci când API-urile protejate sunt apelate de aplicații.Software-ul
nesemnat este semnalizat pentru utilizator la momentul instalării ca fiind nesemnat (și, prin
urmare, nu este de încredere).Astfel, în timp ce aplicații nesemnate pot atribui orice capacități
de utilizator pentru orice binare cum crede de cuviință, utilizatorul este avertizat la timpul de
instalare șiîi ofera opțiunea de a aproba cererea sau nu.Aplicațiile nesemnate nu pot utiliza
capacitățile sistemului, acest lucru inseamnă că ele nu pot folosi API-uri care afectează
comportamentul dispozitivului. Securitatea datelor este asigurată pe o baza per cerere de
model „data-caging”.
2. Installer-ul nativ
Programul de instalare este un „ pinch point ” pentru a obține un adaus al pachetului
de programe instalate corect pe un Sistem de Operare Symbian v9 pe telefon. Motorul de
instalare software este furnizat de Symbian, stratul de interfață cu utilizatorul este adăugat de
producător de telefoane mobile, astfel încât controalele aratăfoarte diferit(de exemplu de la un
telefon S60 la un telefon UIQ). Instalatorul menționeaza adesea că programul de instalare
nativ indică faptul că se instalează software-ul ce ruleaza direct pe Sistemul de Operare
Symbian, mai degrabă decât pe straturile superioare (cum ar fi exemplul MIDlet-uri Java ce
rulează într-o Masină Virtuală Java).
Responsabilitățile cele mai importante ale software-ului de instalare sunt:
• Validarea și instalarea de pachete software native (cunoscute sub numele de fișiere SIS)
Securitatea platformei Symbian Minea Maria-Adriana
Page | 57
•Validarea software-ul livrat într-o formă pre-instalată pe carduri media
•Să se ocupe de upgrade-uri și mutări, și să ofere servicii de administrare a pachetelor pentru
restul platformei7.
Installer-ul efectuează o serie de verificări înainte de instalare pentru a verifica dacă
fișierul SIS nu a fost modificat și se verifică dacă capacitățile binare de aplicare nu le
depășesc pe cele permise, pe baza semnăturii, ce însoțește pachetul de SIS.
În cazul în care verificarea se face cu succes , instalatorul plasează fișierele în
directoarele „data-caging” corecte din telefon. Acesta este motivul pentru care instalorul este
cunoscut sub numele de'' gardian'' și face parte din TCB (Trusted Computing Base – Baza de
Calcul de Încredere ).
Introducerea în securitate a platformei pentru Sistemul de Operare Symbian v9 a
adăugat noi cerințe semnificative pentru instalarea software si instalarea pachetelor SIS cu
care acesta funcționează. Sistemul de Operare Symbian a avut posibilitatea de a restructura
structura de bază a dosarelor SIS, și a schimbat formatul intern de la edițiile anterioare. Acest
lucru înseamnă că fișierele SIS anterioare v9 nu sunt compatibile cu Sistemul de Operare
Symbian v9 de instalare software. Acest lucru poate părea a fi o lipsă mare de compatibilitate,
nici binare ce se regăsesc într-un fișier SIS vechi nu sunt compatibile cu cele necesare pentru
a rula pe Sistemul de Operare Symbian v9, din cauzabinarului„se sparge” noua versiune a
sistemului de operare introdusă. Varianta V9 de instalare software verifică binarele și
abandonează dacă întâlnește un stil vechi (anterior V9) incompatibil sau unul construit pentru
o sarcina greșită (de exemplu, un binar construit pentru a rula pe emulator într-un pachet
conceput pentru a instala codul pentru hardware, sau vice-versa).
3. Data Caging
Sistemul de fișiere Symbian OS este împărțit pentru a proteja fișierele de sistem
(deosebit de importante pentru buna funcționare a telefonului), date de aplicare (pentru a
preveni alte aplicații de la furtul de conținut cu drepturi de autor sau coruperea accidentală de
date) și fișiere de date cu caracter personal pentru utilizator (acestefișiere trebuie să rămână
confidențiale)8 .
Această partiționare este denumită „Data Caging”(cuștide date). Termenul de cuști se
referă la toate tipurile de fișiere, indiferent dacă conținutul este cod sau date, astfel că
Sistemul de Operare Symbian ar trebui sa fie numit ''cuști fișier''. Acesta nu este folosită de
întregul sistem defișiere, există unele zone publice, pentru care nu sunt necesare capabilități.
Cu toate acestea, unele directoare în sistemul de fișiere pot fi accesate numai cu ajutorul unor
capabilități, acestea sunt zonele private. Zonele private se află sub trei căi de nivel superior
speciale: \sys(sisteme), \resource(resurse) și \ private (privat).
Restricțiile de acces se aplică în directoarele și a subdirectoarelor din ele, în timp ce
accesul la toate celelalte căi rămâne public și nusunt necesare capacitățipentru a le citi , sau
pentru a le scrie.
7„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
8“Quick Recipes on Symbian OS - Mastering C++ Smartphone Development”, John Wiley & Sons Ltd ,2008.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 58
Procesele TCB (Trusted Computing Base - Baza de calcul de incredere) au acces
complet de citire-scriere in toate directoarele9. Pentru alte procese, capacitățile necesare
pentru a citi sau a scrie in anumite directoare care sunt rezumate în tabelul ce va urma:
Figura 1. Data Caging siCapacitati10
.
Capacitatea de AllFiles permite acces de citire la întregul sistem de fișiere și acces de
scriere la toate subdirectoarele de \ private. Capacitatea TCB(Trusted Computing Base - Baza
de calcul de incredere) extinde această permisiune de acces de scriere la \ sys ,\ resource și
subdirectoarele lor.
Controalele de acces ale unui fișier sunt determinate în întregime de către locatia pe
care directorul o conține, indiferent de unitate, precum și capacitățile procesului de a încerca
să facă acest lucru. Nu este necesar sa aibă liste explicite de control al accesului pentru fiecare
fișier pentru a determina care procese se pot folosi. Acest lucru înseamnă, de asemenea, că,
dacă un dezvoltator doreste să limiteze accesul la un fișier, atunci doar trebuie să fie mutat
intr- un alt director11
.
Căi de „Caged file”: \sys
\ Sys \ bin-ul este locul unde toate programele binare (executabile) locuiesc.
Executabilele construite in ROM-ul telefonuluimobil circulă de la Z: \ sys \ bin, în timp ce
software-ul instalat este scris în directorul \sys\bin al unitatii C: sau directorul echivalent pe
suport detaşabil12
.
9, 11
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006 10
“Quick Recipes on Symbian OS - Mastering C++ Smartphone Development”, John Wiley & Sons Ltd ,2008
12,12, 13, 14
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 59
Pentru a verifica falsificarea de executabile instalate pe suport detașabil, întrucat
binarele ar putea fi modificate prin scoaterea cardului din telefon, C: \ sys \ hasheste folosit
pentru a stoca in siguranta amestecurile de binare.Doar codul de TCB are acces de read / write
in directorul \ sys și subdirectoarele acestuia, codul cu capacități AllFiles are acces de citire la
\ sys. Acest lucru asigură că doar codul de încredere poate accesa executabilele. Codul binar
stocat în altă parte pe telefon nu este executabil, pentru a proteja împotriva instalarii de
software-uri rau voitoare.O consecință a faptului că s-au solicitat toate codurile executabile,
pentru a fi instalate în \ sys \ bineste că potențialul de ciocnire a numelor de fișiere este
crescut. Dezvoltatorii trebuie să se asigure că binarele lor au nume unice, de obicei, prin
includerea SID sau UID3, care sunt unice pentru un binar.
Căi de „Caged file”:\resource
Directorul de \resource este doar pentru fișiere de resurse, care sunt strict pentru citire,
de exemplu: bitmap, fonturi și fișierele de ajutor. Numai TCB poate scrie în acest director,
pentru a furniza aplicații cu asigurarea că resursele lor de date nu vor fi corupte, fie accidental
sau deliberat. Nu sunt necesare capabilități pentru a citi din acest director13
.
Ca și în cazul prezentat mai sus, cazuldirectorului \sys, fișierele din directorul
\resource sunt fie construite în ROM-ul telefonului sau instalate pe media inscriptabil mai
târziu de către programul de instalare.
Căi de „Caged file”:\private
Fiecare proces are propria zonă de fișiere, sistemul de cuști ca un subdirector în
\private, pe fiecare unitate.Subdirectorul este identificat prin SID al EXE. Numai procesele cu
potrivire SID sau cei cu capacitate AllFiles posedă acces complet de citire-scriere in
director.Un DLL nu are propriul director privat, dar folosește pe cel al procesului de
încărcare.In Sistemul de Operare Symbian clasa de accesla serverul de fisiere oferă o metodă
prin care se descoperă numele călii private, numite RFS :: PrivatePath ()14
.
Exceptii
Un fișier de instalare. pkg poate fi utilizat de către alte părți pentru a specifica faptul că
datele să fie puse însubdirectorul\ private \ <sid> \ import de catre o altă aplicație, însă numai
în cazul în care importul subdirectorul există deja pe dispozitiv.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 60
4. TCB și TCE
Platforma de securitate reprezinta definiția unității de încredere, fiind unul dintre
conceptele fundamentale în domeniul securității. Sistemul de Operare Symbian definește
procesul ca cea mai mică unitate de încredere. Procesele cele mai frecvente (aplicatii sau
servere) pot rula pe telefon în numele utilizatorului și pot fi construite în telefon de către
producător sau se pot fi instalate pe telefon, după ce au fost scoase pe piata spre a fi vandute.
Pe Sistemul de Operare Symbian, aceasta platforma ,controlează procesele și le
limitează la activitățile pentru care are privilegiile corespunzătoare. Sistemul va îndeplini o
cerere pentru un serviciu, doar dacă procesul are privilegiul necesar, deoarece fără privilegiile
corespunzătoare, procesul nu este considerat suficient de încredere. Procesul este considerat
ca fiind cea mai mică unitate de încredere, deoarece este unitatea de protecție a memoriei pe
Sistemul de Operare Symbian. Hardware-ul telefonului ridică o eroare de procesor daca
accesul intr-un proces se face printr-o adresa ce apartine unui spatiul virtual de adrese. Asadar
, Sistemul de Operare Symbianse asigură că un proces nu poate accesa direct orice alt spațiu
de adrese virtuale, deoarece se previne acest lucru de hardware.Astfel, protecția hardware-
asistată oferă baza modelului de software de securitate. Există, desigur, mecanisme pentru
schimbul de date între procesele de siguranță, iar acestea sunt mediate de către nucleu.
Sistemul de Operare Symbian are patru niveluri corespunzătoare de încredere care se
aplică proceselor ce rulează pe el , acestea variind de la cel mai de încredere pana la cel care
nu este deloc deîncredere. Acestea sunt prezentate mai jos după cum urmează:
Baza de calcul de incredere - the Trusted Computing Base (TCB)
Mediul de calcul de incredere - the Trusted Computing Environment (TCE)
Alta zona de incredere (semnata) software
Restul platformei (nesemnata, deci de neincredere)15
.
In cele ce vor urma se va discuta despre fiecare din aceste niveluri in parte :
Baza de calcul de incredere - the Trusted Computing Base (TCB)
TCB este partea de încredere din sistemul de operare Symbian, deoarece controlează
nivel scăzu de mecanismele de securitate și are responsabilitatea de a menține integritatea
sistemului. In cadrul codului TCB, Sistemul de Operare Symbian ruleaza la cel mai inalt nivel
de privilegii.InSistemul de Operare Symbian codul TCB este atent verificate pentru a se
asigura se comportă în mod corespunzător și poate fi considerat de încredere. TCB include
nucleul sistemului de operare, are grija de detaliile despre fiecare proces inclusiv inspectarea
setului de privilegii care îi sunt atribuite. Servarul de fisiere deasemenea face parte din TCB si
este folosit pentru a incarca codul programului intr-un proces. Informatiile privilegiate pentru
cod sunt stabilite de nucleu in timpul procesului de rulare. Cele mai multe telefoane Symbian
OS sunt '' deschise'', iar instalarea software-ului (SWinstall) face parte din TCB.Programul de
15
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 61
instalare se execută atunci când un fișier este instalat la un pachet de fișier SIS.Acesta extrage
fișiere, incluzând binarele programului , de la pachet și are rolul important de validarea
privilegiilor cerute pentru binare de program împotriva semnăturii digitală a pachetului
respectiv. Mai exact Unitatea de Gestionare a Memoriei (MMU) precum și alte caracteristici
hardware legate de securitate sunt, de asemenea, parte din TCB16
.
Majoritatea bibliotecilor de utilizatori nu sunt incluse în TCB. Numai cateva dintre
acestea care trebuie să fie utilizate de către server de fișiere sau de instalare software (un
exemplu ar fi bibliotecile criptografie) sunt prezentate ca avand cel mai înalt nivel de
încredere17
.
Mediul de calcul de incredere - the Trusted Computing Environment (TCE)
TCE este de fapt software-ul de încredere furnizat în telefonul mobil de Symbian și
alți furnizori, (de exemplu de catre furnizorul de platforma UI și producătorii de telefoane).
Codul TCE este considerat de incredere si nu are nevoie sa ruleze la cel mai înalt nivel de
privilegii. Acesta oferea mai putine privilegii si este mai putin de incredere comparativ cu
codul de funcționare în cadrul TCB. În cadrul TCE, fiecare componentă are privilegiile
necesare pentru a efectua un set bine definit de servicii. Sistemul de OperareSymbian
limitează amenințarea reprezentată de orice defect dintr-un cod de server sau de posibilitatea
că ar putea fi compromisa,din baza de date. Codul TCE pune în aplicare, aceste servicii de
sistem în procesele de server. Atunci cand se selecteaza serverele caau anumite privilegii,
este posibil să se limiteze accesul la operațiunile sensibile de nivel scăzut și astfel preveni
abuzul prin alte procedee.
In continuare se prezinta un exemplu: consideram două componente ale TCE, serverul
fereastră și serverul de telefonie:
In primul caz, serverul cazul serverului de fereastra (WServ), acesta are acces privilegiat la
hardware-ul ecran, dar nu necesita acces la rețeaua de telefonie;In cel de-al doilea caz,
serverul de telefonie (ETEL) are acces privilegiat la driverul de dispozitiv de comunicare, dar
nu are nevoie sa acceseze hardware-ul ecranului.
Serverele TCE furnizeaza API-uri pentru software-ul din afara TCE oferind astfel
acces la al doilea nivel de servicii inferioare. Spre exemplu, o aplicație din telefon nu face
parte din TCE și nu are aceleași privilegii ca serverul de telefonie sau server fereastră,
deoarece nu comunică direct cu hardware-ul.18
Serverele sistemul de operare Symbian au o semnificatie foarte importanta in cadrul
arhitecturii de securitate a platformei reprezentand pentru acasta o piatra de temelie. Fiecare
16
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006. 17
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006. 18,
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 62
server are datoria de a modera și de a proteja utilizarea resurselor de nivel scazut, pe care le
detine, siofera acces la resurse pentru clienții care rulează în procese de mai puțina încredere.
Software semnat
Majoritatea adaugarilor software se află în afara TCE, dar necesita anumite privilegii
pentru a utiliza serviciile oferite de TCE. De exemplu, software-ul care are nevoie de acces la
serviciile de rețea trebuie să deschidă un socket (priza) de rețea.Serverul de socket (ESOCK)
face parte din TCE și se ocupă de operațiunile de nivel scazut pe interfața de rețea. O aplicație
care dorește să deschidă o rețea de socket cere serverului de socket să facă acest lucru în
numele său. Serverul de socket mai intai va verifica daca cerinta de la un program a fost
acordata unui nivel adecvat de încredere, pentru că nu ar trebui să acorde pur și simplu acces
la toate codurile care doresc să deschidă socket-uri de rețea,altfel codul malitios ar putea ataca
reteaua sau alte dispozitive. Este important ca orice cerere prin care solicită un serviciu sa fie
considerat demn de încredere înainte ca cererea sa fie acordata. Atunci cand o autoritate
externa decide sa semneze o cerere pentru a permite sa efectueze actiuni(cum ar fi
deschiderea unui socket de rețea) de pe telefon, cererea nu este evaluata la fel de riguros ca și
un cod ce se execută în cadrul TCB sau TCE.Insasi codul sursa deobicei nu este inspectat linie
cu linie, desi anumite funcționalități de coduri testate și acreditate de dezvoltator sunt
verificate19
.
Software-ul nesigur
Nu se poate avea încredere în software-ul care nu este semnat, sau este „ auto-
semnat”( este semnat, dar nu de una dintre autoritățile Symbian fiabile), acasata încredere nu
poate fi determinată. Acest lucru trebuie considerat de neîncredere pentru Sistemul de Operare
Symbian. Aceasta nu înseamnă în mod special că software-ul este rău intenționat sau fără
valoare. Există multe operații utile care pot fi efectuate de pe un telefon fără a apela serviciile
de sistem, dar ar necesita un anumit nivel de privilegii. Sistemul de Operare Symbian face
numai controale de securitate acolo unde este necesar pentru a asigura integritatea sistemului
și de a proteja serviciile sensibile. Aceste controale cuprind circa 40% din toate sistemele de
operare ale API Symbian. Un joc de solitaire, de exemplu, nu poate efectua nici o acțiune care
accesează datele utilizatorului sensibile sau date sau servicii de sistem critice. Software-ul de
neîncredere poate fi instalat și poate rula pe telefon, dar este un '' sandboxed'' și nu se poate
efectua nicio acțiune care necesită privilegii de securitate20
.
In continuare se va reprezenta in relatia dintre TCB, TCE si platformei Sistemului de
Operare Symbian.
19, 20
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
Securitatea platformei Symbian Minea Maria-Adriana
Page | 63
Figura 2. Etajele de incredere21
.
Cifra deliberata nu arata TCB ca centrul unui set de inele.
Deși nucleu poate fi în mod normal considerat ca ocupând poziția din imagine, unele
serviciile ale sale sunt disponibile pentru toate procesele.
În al doilea rând, server-ul de fișiere, ca si alte servere, este atât un client al kernel-ului și cat
si disponibil pentru alte procese.
Componenta de instalare software este indicat să se întinda perimetrul exterior, deoarece
acasta actioneaza ca un paznic pentru telefon.
21
„The Accredited Symbian Developer Primer - Fundamentals of Symbian OS” , John Wiley & Sons Ltd , 2006.
Page | 64
BIBLIOGRAFIE
1. Ben Morris, “The Symbian OS.Architecture Sourcebook”, John Wiley & Sons, Ltd, 2007;
2. Jane Sales, “Symbian OS Internals”, John Wiley & Sons Ltd, 2007;
3. Akhil James, “Symbian OS”, Seminar report, 2007;
4. Andrew S. Tanenbaum, “Modern Operating Systems”, Third Edition;
5. http://ro.wikipedia.org/wiki/Symbian_OS;
6. “Sisteme Multimedia”, Proiect, Universitatea Tehnică ”Gheorghe Asachi” Iași.
7. http://ro.wikipedia.org/wiki/Symbian_OS;
8. http://www.crhc.illinois.edu/wireless/assignments/simulations/appLayerControl.html
9. http://www.symlab.org/main/documentation/reference/s3/sdk/GUID-8F2D6AC8-8357-
55C7-970B-CD2684BA9B04.html
10. http://docs.huihoo.com/symbian/nokia-symbian3-developers-library-v0.8/
11. http://docs.huihoo.com/symbian/nokia-symbian3-developers-library-v0.8/GUID-
8F2D6AC8-8357-55C7-970B-CD2684BA9B04.html#GUID-8F2D6AC8-8357-55C7-970B-
CD2684BA9B04
12.http://docs.huihoo.com/symbian/nokia-symbian3-developers-library-v0.8/GUID-
7821C498-70A2-5D3C-989A-58CEBAE9162B.html
13. http://en.wikipedia.org
14. Developing Software for Symbian OS, Second Edition by Steve Babin
15. http://thor.info.uaic.ro/~acf/java/slides/j2me1_slide.pdf
16. http://en.wikipedia.org/wiki/Java_Platform,_Micro_Edition
17. http:/www.idsi.md/files/file/prezentari_practica_studenti/Telefoane%20Mobile.pdf
18. htt://www.j2mesalsa.com/elearning/MIDP.html
19. http:/andreea.uv.ro/dir/Vostinar/Referat/referat.htm
20. http://www.slideshare.net/zdmilan/cldc-hotspot-architecture
21.http://www.slideshare.net/SaurabhJain4/openclass-j2me-introduction-to-cldc-10
22. http://www.slideshare.net/eutie/j2me-step-by-step
23. http://www.slideshare.net/amaneiro/j2me
24. http://www.slideshare.net/edschepis/javame-development-workflow-jmdf-2007
25. http://control.aut.utcluj.ro/scd/lab3/laborator3_j2me.htm
26. http://www.cs.huji.ac.il/~ssd/J2ME/J2ME.htm
27. http://www.inf.unibz.it/~ricci/MS/slides-2010-2011/3-J2ME-GUI.pdf
28. http://www.slideshare.net/anupama12369/j2me-presentation
29. http://www.slideshare.net/muthusvm/midp-api
30. http://www.slideshare.net/surjeetk27/j2-me-beginner
40. http://mobiledevices.kom.aau.dk/uploads/media/An_Introduction_to_Java_ME.pdf
41. http://www.artima.com/designtechniques/hotspot.html
42. http://en.wikipedia.org/wiki/Abstract_Window_Toolkit
43. http://scdsd.bluepink.ro/2007-2008/scdsd/gs_I_j2me.pdf
Page | 65
44.http://jcp.org/aboutJava/communityprocess/ec-public/materials/2012-05-
1617/ME7_JCP_Brazil.pdf
45. http://www.blueboard.com/j2me/why.htm
46. http://www.oracle.com/technetwork/java/javame/index.html
47. https://blogs.oracle.com/java/entry/getting_started_with_oracle_java
48. http://www.blueboard.com/j2me/notes.htm
49. http://www.blueboard.com/j2me/links.htm
50. http://jcp.org/en/jsr/tech?listBy=1&listByType=platform
51. http://mobiledevices.about.com/od/glossary/g/What-Is-Java-Me.htm
52.https://www.princeton.edu/~achaney/tmve/wiki100k/docs/Java_Platform,_Micro_Edition.
html
53. http://pip.ac.tuiasi.ro/Doc/curs/Curs_01.pdf
54.ftp://202.5.194.21/SW_ebooks/GAME%20DEVELOP/Programming%20Java%202%20M
icro%20Edition%20for%20Symbian%20OS.pdf
55.http://www.oracle.com/technetwork/java/javame/javamobile/overview/about/index.html
56. http://www.oracle.com/technetwork/java/javame-old/nokia-137145.html
57. http://www.slideshare.net/andreasjakl/symbian-os-overview
58. http://www.slideshare.net/ezhilarasi46/symbian
59. http://img.pathfinder.gr/clubs/files/32296/9.pdf
60. http://www.slideshare.net/HatemMahmoud/introduction-to-symbian-os
61. http://www.slideshare.net/guest7e14b6a/symbian-os-1413049
62. http://www.webdesigning.ro/java/javamobility.pdf
63. http://www.oracle.com/technetwork/java/index-jsp-138820.html
64. http://www.oracle.com/technetwork/java/whatsnew-138562.html
65.http://www.developer.nokia.com/info/sw.nokia.com/id/3cfc525e-f0ec-491c-badd-
085c0e2df8bf/Java_ME_Developers_Library.html
66. http://thor.info.uaic.ro/~acf/java/slides/j2me1_slide.pdf
67. „The Accredited Symbian Developer Primer - Fundamentals of Symbian OS”, byJo
Stichbury and Mark Jacobs , John Wiley & Sons Ltd,2006.
68. “The Symbian OS Architecture Sourcebook - Design and Evolution of a Mobile Phone
OS” ,by Ben Morris, John Wiley & Sons Ltd , 2007.
69. “Quick Recipes on Symbian OS - Mastering C++ Smartphone Development”, by
Michael Aubert, with Alexey Gusev, Tanzim Husain, Jenny Mulholland, Antony Pranata,
JukkaSilvennoinen, Jo Stichbury, John Wiley & Sons Ltd , 2008.