A J2ME architektúrája Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu
A Java család A J2ME architektúrája Konfigurációk Profilok Opcionális csomagok 2
3
Lehetővé tegye a Java alkalmazások futtatását hordozható eszközökön, figyelembe véve azok korlátozó tényezőit: Korlátozott kijelző méret Memória Teljesítmény Akkumulátor Kompatibilitás a Java SE-vel 4
Különböző képességű eszközök memória, feldolgozási idő, hardver, megjelenítés szempontjából Konfigurációk: meghatározzák egy készülékcsoport legalapvetőbb közös tulajdonságait Profilok: magasabb szintű csoportosítást tesznek lehetővé a konfigurációkon felül Opcionális csomagok: a készülékek egyedi, speciális funkciói számára 5
Profil Vertikális eszközcsoport (pl. telefonok) Konfiguráció Horizontális eszközcsoport, hasonló teljesítménybeli tulajdonságok, megszorítások 6
7
Meghatározza azokat a minimális JVM funkciókat és osztálykönyvtárakat, amelyek elérhetők egy bizonyos eszköz kategória számára A felhasználók által kevésbé láthatók A legkisebb közös nevező a Java platform szolgáltatásaira és osztályaira nézve A profil fejlesztők a konfigurációra építenek 9
Egy konfiguráció komponensei: Virtuális gép Teljes JVM, vagy annak egy része Alapvető osztálykönyvtárak gyűjteménye Biztosítják az egy kategóriába tartozó eszközök számára az alapfunkcionalitásokat (pl. memóriakezelés, hálózati kapcsolat) 10
CDC és CLDC esetén többnyire a J2SE API részhalmazai, J2ME bővítményekkel A konfigurációk nagyon alacsony szintű API-t biztosítanak Nincs UI elérés Az alkalmazások életciklusát (betöltés, aktiválás) nem felügyelik 11
CLDC(Connected Limited Device Configuration) Kis és középkategóriás PDA-k, mobiltelefonok, személyhívók, stb. számára Szigorú memória korlátok Erősen megcsonkított virtuális gép és osztálykönyvtár CDC(Connected Device Configuration) High end PDA-k és telefonok, beltéri egységek, egyéb beágyazott rendszerek számára Teljes JVM specifikáció támogatása A Java SE kevesebb memóriával rendelkező készülékekre optimalizált változata 12
13
14
Szigorú memóriakorlátokhoz való igazodás A virtuális gép és az osztálykönyvtárak terén megszorítások (KVM virtuális gép, megszüntetett jellemzők) Szabványosítja a Java alkalmazások fejlesztését a korlátozott erőforrásokkal rendelkező eszközökön Small Footprint Alkalmazások fejlesztésére fókuszál Alkalmazások dinamikus letöltésének biztosítása 15
Kilo(byte) Virtual Machine: Tipikusan 16-32bites processzorok számára Minimális memóriaigény Erősen csonkított JVM Célja: Minél gyorsabb, minél egyszerűbb, minél kisebb 16
A CLDC biztosítja: Virtuális gép Java alapkönyvtárak (java.lang.*, java.util.*) Input / Output Hálózat elérés Biztonság Nemzetközi funkciók biztosítása 17
A CLDC NEM biztosítja: Alkalmzás életciklus menedzselése (telepítés, betöltés, törlés) Felhasználói felület Eseménykezelés High-level application model (the interaction between the user and the application) Ezeket a PROFILOK biztosítják! 18
Alacsonyszintű (VM) biztonság class-file verification segítségével Minden metódus ellenőrzésre kerül, pl. egy szerveren a készülékre töltés előtt Stack map attribútummal látja el az osztály metódusait, ez kb. 5% többlet méretet eredményez Alkalmazás szintű biztonság sandbox modell Rendszer osztályok védelme Dynamic class loading korlátozás (csak a saját jar fájlból) 19
Lebegőpontos számábrázolás (float double) Reflexió Felhasználó által definiált osztálybetöltő Thread csoportok, daemon-threadek Finalization metódus Aszinkron kivételkezelés Szűkített Error osztálykészlet 20
Minimális hardver követelmények: Minimum 192k memória Min. 160k nem felejtő memória: KVM, CLDC library-k Min. 32k felejtő memória: KVM 16, vagy 32 bites processzor Alacsony energiafogyasztás (akkumulátor) Hálózati kapcsolat 21
Lebegőpontos támogatás Float, double Újratervezett osztályok Calendar, Date, TimeZone Hibajavítások Weakreference osztályok 160 kb => 192 kb 22
A konfigurációknál magasabb szintű API A konfigurációkra épülnek, azokat bővítik Alkalmazás életciklus modell Felhasználói interfész Tárolók támogatása Hálózati technológia támogatása Stb. A profilok egymásra rétegezhetők A profil(ok) a konfigurációval együttesen alkotja(ák) a J2ME futtató környezetet (JRE) 24
Mobile Information Device Profile (MIDP) Hálózat, UI, Local Storage A legnépszerűbb profil Wireless Java alapja PDA Profile (PDAP) PDA-k számára készített profil 25
Foundation Profile Java 2 1.3 kiterjesztése a CDC számára Más profilokhoz alapként használható Personal Basis Profile Alapvető UI funkciókkal való bővítés A Personal Profile nem biztosítja a több ablakos, komplex UI elemeket Personal Profile Komplex, egyedi UI-k számára RMI Profile Game profile 26
Minimális hardver követelmények: Megjelenítés 96x54, ff, 1:1 arányú pixelméret Adatbevitel Egy-vagy kétkezes billentyűzet, touchscreen Memória 256k nem felejtő(a CLDC-n felül) 8k nem felejtő az alkalmazások számára 128k felejtő memória a Java runtime számára (heap) Hálózat Kétirányú, vezeték nélküli, korlátozott sávszélesség Hang lejátszása 27
Minimális szoftver követelmények: Minimális kernel támogatás Megszakítások kezelése, ütemezés Nem felejtő memória elérése (Record Management System API) Hálózati funkciók (Networking API) Időmérés (Timer API) Képernyőelérése Input eszköz elérése MIDlet életciklus támogatása 28
Secure Networking HTTPS, SSL Multimédia Hang visszajátszás, hang képzés (Mobile Media API részhalmaza) Game API Layer-ek, Sprite-ok RGB Jogosultságok kezelése Trusted/untrustedcode, codesigning, certificateek 29
További bővítések a futtatókörnyezet számára, különféle igényeket elégítenek ki, pl.: Adatbázis kapcsolat Grafika Kommunikációs technológiák Lehet konfiguráció független (CDC és CLDC támogatás is) vagy konfiguráció függő 31
Mobile Media API (MMAPI) (JSR-135) Location API for J2ME (JSR-179) SIP API forj2me (JSR-180) Wireless Messaging API (WMA) (JSR-120, JSR-205) Securityand Trust Services API for J2ME (JSR-177) Mobile 3D Graphics API for J2ME (JSR-184) Java API for Bluetooth (JSR-82) J2ME Web Services (JSR-172) 32
33