Léczfalvy Ádám A J2ME architektúrája
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
Konfiguráció Horizontális eszközcsoport, hasonló teljesítménybeli tulajdonságok, megszorítások Profil Vertikális eszközcsoport (pl. telefonok) 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 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, certificate- ek 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