Programmér mobilen med Java

I fremtiden skal mobiltelefoner med respekt for sig selv kunne afvikle Java-baserede applikationer og spil. Java skal sælge masser af nye telefoner, og i den første af en række artikler om J2ME, Java 2 Micro Edition, ser vi nærmere på arkitekturen bag den komplekse platform med de mange begreber, forkortelser og API'er.

Mikro-Java

I løbet af den forestående jul skal 20 millioner europæere gerne blive glædeligt overraskede over at finde en mobiltelefon med mulighed for Java-spil og -applikationer under juletræet. Det skriver vores søsterpublikation Computerworld Online.

Teknologien, som gør det muligt at afvikle Java-programmer på mobiltelefoner og lommecomputere, hedder Java 2 Micro Edition (J2ME), og selv om specifikationerne bag J2ME er færdiggjorte, er der dog endnu tale om en grøn teknologi. Men som udsagnet i indledningen peger på, regner mobil-producenterne med at J2ME skal sælge den næste generation af telefoner.

Det er som bekendt Suns erklærede ambition, at Java skal være overalt. J2EE er arkitekturen på serversiden, J2SE er Java til skrivebordet. J2ME er Java i mikrokosmos.

Ret beset har Java indtil videre kun været en entydig succes på serversiden, men Sun håber på at J2ME vil betyde det samme for små enheder, som J2EE har betydet for servermiljøerne - en fælles arkitektur, som løser udviklernes grundlæggende problemer.

Problemerne ved at skrive programmer til lommecomputere, mobiltelefoner, konsumelektronik og andre typer af enheder er ganske oplagt: Manglen på ensartethed. Input/output-enheder kan variere, fra slet ingen input til tastatur-baserede, baseret på telefon-knapper, input baseret på trykfølsomme skærme, stemmestyret input og andet.

Output sætter lige så store udfordringer. Her kan graden af variation være lige så stor som på input-siden, og selv om man begrænser sig til den type output vi kender bedst, skærme, så kan variationen i størrelser og opløsninger være en svimlende udfordring til udvikleren.

Ligeledes kan hver enkelt enhed indeholde sine egne brugeflade-metaforer, som udviklingsmiljøet skal imødekomme på en eller anden facon. Situationen svarer lidt til GUI-problematikken på skrivebordet, men hvor de fleste GUI'er ligner hinanden på en række grundlæggende punkter, er der på J2ME-siden ikke engang garanti for, at output er givet ved en skærm.

De her nævnte problemer dækker endda kun over forskelle i input/output. Enhedernes variation i processorstyrke, hukommelse, netværksforbindelse og samt evne til at håndtere lagring kan være lige så stor.

Konfigurationer og profiler

Den store spredning i systemernes egenskaber gør det ikke muligt at bygge på en entydigt bestemt konfiguration, som det kan gøres i de mere ensartede miljøer, som J2EE og J2SE befinder sig i.

Derfor har udviklerne bag J2ME benyttet en modulær arkitektur, som desværre introducerer et temmelig stort antal begreber, der udmønter sig i en lind strøm af forkortelser: CDC, CLDC, KVM, CVM, MIDP, FP, PP, PBP og mere til. Selv når de er skrevet fuldt ud, giver forkortelserne ikke den store mening uden en gennemgang af J2ME-arkitekturen.

Arkitekturen bag
For at kunne passe ind i de mange uensartede platforme, er J2ME opdelt på en lagkagefacon, hvor første lag kaldes konfigurationer, og andet lag profiler.

Konfigurationen definerer afviklingsmiljøet ud fra et sæt af kerneklasser og en specifik virtuel maskine, som altså ikke er identisk med den JVM, som benyttes i J2SE og J2EE. Faktisk definerer J2ME ikke én, men to forskellige VM'er, med navnene KVM og CVM. Det vender vi straks tilbage til.

Profilerne, som er anden etage i J2ME-lagkagen, tilføjer klasser, som er nødvendige ud fra enhedernes anvendelsesområder.

Indtil videre er der defineret to konfigurationer: Connected Limited Device Configuration (CLDC), og Connected Device Configuration (CDC).

Arkitekturen

De to eksisterende konfigurationer kan karakteriseres på følgende facon:

J2ME er ikke en delmængde af standard-platformen J2SE, men udvider J2SE på enkelte punkter.
CLDC bygger på KVM-maskinen, som sigter imod 16- eller 32-bit enheder med begrænset hukommelse. CLDC dækker eksempelvis over lommecomputere og mobiltelefoner med begrænset netværkstilslutning, mindst 128 kilobyte systemhukommmelse og 32 kilobyte flash-hukommelse eller tilsvarende permanent hukommelse. Enkelte områder af selve sproget er udeladt, så som komma-tal, undtagelseshåndtering, finalization og internationalisering.

CDC bygger på CVM-maskinen, og indeholder samme basisklasser som CLDC. CDC retter sig imod enheder med 32-bit processorer og mindst to megabyte systemhukommelse. CDC sigter på større lommecomputere, smartphones, konsumelektronik med videre.

Groft sagt kan man sige, at konfigurationerne adresserer forskelle i hardware, mens profilerne adresserer forskellige anvendelser. Således vil tunge lommecomputere som dem, der bygger på Windows CE, typisk bygge på CDC, mens tynde lommecomputere, som dem der bygger på Palm OS, typisk vil bygge på CLDC. Mobiltelefoner findes ligeledes i begge konfigurationer, afhængig af telefonens kapaciteter og udrustning.

Diagrammet illustrerer J2ME-arkitekturen. Diagrammet er forenklet, i det JavaCard og Embedded Java ikke er med på tegningen.

De fleste af profilerne herover eksisterer kun som forslag i Java Community Process' regi, og er i forskellige grader af færdiggørelse. For CDC-konfigurationens vedkommende drejer det sig om Foundation Profile og Personal Profile, og for CLDC's vedkommende er den eneste færdige specifikation Mobile Information Device Profile (MIDP).

MIDP er rettet imod såkaldte mobile informationsenheder, og det dækker over mobiltelefoner og lette lommecomputere. MIDP adresserer områder som brugerflade, lagring, netværkstilgang og applikationernes livscyklus.

Der er mere information om J2ME at hente på Suns hjemmeside. Der er artikler om J2ME på de sædvandlige Java-relaterede sites, og et site, MicroJava, beskæftiger sig udelukkende med J2ME.

I den næste artikel om mobil Java-udvikling kigger vi på MIDP og miljøets applikationer, MIDlets, i forbindelse med Suns udviklingsværktøjer til J2ME, J2ME Wireless Toolkit, som både kan afvikles på Palm OS og Nokia-telefoner.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Brother Nordic A/S
Import og engroshandel med kontormaskiner.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
Send dine legacysystemer på pension og invitér standardløsninger indenfor

Legacysystemer er rygraden i mange organisationers it-infrastruktur, men før eller siden er det tid til at sige farvel og skifte til en eller flere standardløsninger. Vi udforsker scenarier og muligheder, der gør det muligt at rykke videre. Hvad er businesscasen? Hvilke krav stiller skiftet til din forretning og jeres processer? Hvordan

08. oktober 2024 | Læs mere


Dynamics 365 & Business Central - AI og branchemoduler

Udforsk, hvordan du kommer godt i gang med Business Central, får hjælp til at tilpasse platformen til dine behov og får mest ud af din ERP-løsning med begrænsede ressourcer.

23. oktober 2024 | Læs mere


Årets CISO 2024

Vær med når Computerworld, Dansk Erhverv og Rådet for Digital Sikkerhed tager temperaturen på trusselslandskabet lige nu, og giver dig overblikket over de nyeste trusler, de mest aktuelle tendenser og de bedste løsninger og værktøjer til at sikre effektiv drift og høj compliance.

24. oktober 2024 | Læs mere