You are on page 1of 45

SVEUILITE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

Java i nosivo raunarstvo


Predavanje u sklopu predmeta Mikroraunala

Dipl.ing. Marko Horvat

Nosivo raunarstvo

Java i proimajue raunarstvo ali zbog fokusa na SW sadraj za mobitele ipak ...nosivo... Dva srodna termina:

Wearable computing = nosivo raunarstvo Pervasive computing, Ubiquitous computing = proimajue raunarstvo Nosiva raunala... uvijek rade, tj. uvijek su spremna za interakciju sa korisnikom korisnik ih ne koristi direktno, ona poveavaju njegovu inteligenciju ili mogunosti osjetila enkapsuliraju korisnika (bolje od laptopova, PDA ureaja) Sinergija ovjeka i raunala 6 svojstava nosivog raunala: ne limitiraju korisnika, ne preuzimaju njegovo vrijeme, podaci sa njih su jasno vidljivi, korisnik im lako upravlja, komuniciraju sa okolinom, komuniciraju sa drugim sustavima/korisnicima
2

Proimajue raunarstvo

2 karakteristike sistema proimajueg raunarstva:


fizika integracija

u pametnoj sobi sa zastanke: pametna alica za kavu (Javu?) zna tko je njezin vlasnik, moe pruiti odreene servise; pametne stolice, stol, ploa (whiteboard) opremljene senzorima, mogue ih je umreiti sa PDAovima sudionika sastanka automatski prenos sadraja ploe u PDA u dinaminoj okolini koja se mijenja sustavi se meusobno spontano udruuju u mree, omoguuju prenos i koritenje razliitih podataka

spontana interoperacija

otac proimajueg raunarstva


Mark Weiser, chief technology officer u Xeroxovim laboratorijima (Paolo Alto) mjesto odakle je potekao osobno raunalo, GUI, intranet

ideje (a i realizaciju) njihovih proizvode kopirao je Steve Jobs (Mac), a kasnije njega je kopirao Bill Gates (Microsoft)

Nosivo raunarstvo nekada

Danas

Digitalni runi satovi Runa raunala, dlanovnici, PDA (Personal Digital Assistans), Palm, Visor PalmOS, Windows CE

Danas (2)

Siemens SL45i Java ME, MP3, 128 MB RAM, ...

Nokia 9xxx Communicator Symbian OS, Personal Java, Java ME, mobitel i runo raunalo, ... Transmeta Wearable Computer nosi se oko pojasa

Nosivo raunalo u upotrebi u amerikoj vojsci na nosaima aviona brz pregled nacrta, planova, TODO lista, ... 6

Nosivo raunarstvo sutra?

kao i openito u raunalstvu:


dimenzije ureaja e biti jo manje, a mogunosti jo vee

ali prag omjera dimenzija i mogunosti prenosnih raunala ve je prijeen


npr. runa raunala (Palm, Visor), napredni mobiteli vie klase

kako e cijene padati, i potranja trita rasti, u skoroj budunosti vidjeti emo sve vie jakih i korisnih nosivih raunalnih ureaja
taj trend je ve sada vidljiv...

za taj poveani broj mobilnih ureaja potrebno je napraviti kvalitetni softwarski sadraj
potrebni su napredni programski jezici u kojima se moe to bre napraviti to kvalitetniji SW proizvod!

Zato Java i nosivo raunarstvo?


Java je veoma dobar (najbolji?) odabir za sustave nosivog raunarstva Jer Java je...
prenosiv jezik - radi na mnogim platformama stvara male izvrne datoteke - od nekoliko kB navie rairen je i visoko koriten jednostavan za upotrebu i programiranje

A takoer je i...
objektan - jednostavno je skalirati, proirivati programe distribuiran - koritenje mrenih protokola je ugraeno u Javu robustan - potpora za hvatanje i obradu greaka i iznimaka siguran, vienitan (viedretven), dinamian, ...

Najbitnije je da proizvoai ureaja podre Javu


bez toga nije vano koliko je Java dobra, ili ne... broj mobitela koji podravaju Javu u zadnje vrijeme rapidno raste

Programski jezik Java

Uvod

Programski jezik Java je proizvod amerike raunalne tvrtke Sun Tvrtka i dan danas ima iskljuivo pravo na izmjene jezika i njegove arhitekture
dobiven spor sa Microsoftom i njegovom verzijom Jave kao jo jednog jezika za programiranje Windowsa

Razvoj jezika pokrenut je 1991., a zavren 1995.


Danas aktuelna verzija Jave nastala je 1997. i od tada se razvija dalje

10

Uvod (2)

Osnova misao vodilja: multiplatformski programski jezik


jednostavan i visokih mogunosti

Osnovno: Java programski kod se komapajlira u byte-code (meukod) i interpretira na Java Virtual Machine (JVM, Javin virtualni stroj)
.java datoteke

datoteke sa izvornim kodom


datoteke sa kompajliranim izvornim kodom Javine izvrne datoteke interpteriraju se, izvravaju na Javinom virtuelnom stroju

.class datoteke

Slino je napravljena Microsoftova .NET platforma

Hello World aplikacija


11

Arhitektura

Java izvorni kod Java kompilator (Windows)

Java bajt kod (neovisan o platformi)

Java interpreter (Windows)

Java kompilator (Mac)

Java interpreter (Mac)

Java kompilator (Solaris)

Java interpreter (Solaris)

12

Javine verzije i tehnologije

3 osnovne verzije:
J2EE (Java 2 Enterprise Edition) J2SE (Java 2 Standard Edition) J2ME (Java 2 Micro Edition)

I veliki, veliki broj tehnologija


Za J2EE:
Enterprise JavaBeansTM Architecture, JavaServer PagesTM, JavaTM Servlet, Java Naming and Directory InterfaceTM (JNDI), JavaTM IDL, JDBCTM, JavaTM Message Service (JMS), JavaTM Transaction (JTA), JavaTM Transaction Service (JTS), JavaMail, RMI-IIOP

Za J2SE:

JavaBeansTM Development Kit (BDK), Java HotSpotTM Server Virtual Machine, Collections Framework, JavaTM Foundation Classes (JFC), Swing Components, Pluggable Look & Feel, Accessibility, Drag and Drop, Security, JavaTM IDL, JDBCTM, JavaBeansTM, Remote Method Invocation (RMI), Java 2DTM, JavaTM Platform Debugger Architecture (JPDA)
(J2METM technology), Connected Device Configuration (CDC), Connected Limited Device Configuration (CLDC), C Virtual Machine (CVM), K Virtual Machine (KVM), PersonalJavaTM, EmbeddedJavaTM, Java CardTM, JavaPhoneTM API, Java TVTM API, JiniTM Network Technology, Mobile Information Device Profile (MIDP)

Consumer & Embedded Technologies & Products: Java 2 Platform, Micro Edition

I druge

Da li je mogue sve znati?


13

Povijesni razvoj

Razvoj pokrenut na zasebnoj lokaciji poetkom 1991. U sklopu razvoja projekata za komercijalnu elektroniku Za programiranje mikroprocesora televizora, video-ureaja, glazbenih linija, mikrovalnih penica, tostera, strojeva za pranje rublja, ... Traio se jedinstveni raunalni jezik koji e se izvravati na razliitim tipovima mikroprocesora Projekt Green i programski jezik Oak (hrast)
James Gosling nakon neuspjenog prilagoavanja C++ zbog prevelike sloenosti odluio napraviti novi jezik

Uzeti osnove C-a i prilagoditi za elektronike ureaje C++ minus minus

zapoevi rad na kompajleru otvarao je novi direktorij, nije znao kako da ga nazove, pogledao je van kroz prozor i vidio hrast...

14

Povijesni razvoj (2)

U Oaku su pisane aplikacije za PDA ureaj * 7 (star seven)


*7 je redosljed tipaka na telefonu koje se treba pritisnuti da se u Sunovom sjeditu preuzme poziv sa drugog telefona *7 je koristio operativni sustav GreenOS koji je imao animirano grafiko suelje Duke (Javina maskota) sve to je ostalo od *7 ... Primjer: Duke MIDlet

Za Demonstraciju mogunosti Oaka na World Wide Webu Sun je razvio aplikaciju WebRunner
kasnije pretraiva HotJava Program napisan u Javi koji je mogao pokretati druge programe napisane u Javi Uvelike popularizirao Javu
15

Povijesni razvoj (3)

Debut 23. svibnja 1995. na sajmu SunWorld 95


4 godine nakon poetka razvijanja projekta

Verzija 1.0 - sijeanj 1996.


Konana verzija Jave Sve klase mogue je saeti u jednu ili vie ZIP datoteka (JAR Java Archive). Time se ubrzava dohvaanje Java programa i appleta sa Interneta.

Verzija 1.0.2 svibanj 1996.


Otklonjeni neki sigurnosni problemi

Verzija 1.1 sijeanj 1997.


Uvedene Listener klase za registriranje dogaaja Jo uvijek aktualna u najnovijim verzijama vanijih Internet browsera: IE i NC
16

Povijesni razvoj (4)

Verzija 1.2
Swing klase za izradu naprednih grafikih korisnikih suelja Nazvana (kao i sve kasnije verzije) Java 2

Verzija 1.3 Verzija 1.4 Razvoj se nastavlja...

17

Mogunosti i svojstva

Java je jednostavan, objektno-orijentiran, distribuiran, interpretiran, robustan, siguran, prenosiv, visokouinkovit, vienitan i dinamiki programski jezik Sunova slubena dokumentacija Jednostavnost
Jednostavna sintaksa, Java je laka za uenje, pojednostavljeni C nema pokazivaa (pointera)

nije mogue direktno itati, ili pisati po memoriji upravljanje memorijom je automatsko

Garbage collector isti memoriju umjesto dekonstruktora klasa goto kljuna rije, ali zabranjena uporaba

Objektna orijentiranost
Osnovni element graenja programa u Javi je klasa Samo neki najjednostavniji tipovi podataka (int, char, boolean) nisu objekti

Distribuiranost
Jednostavna uporaba mrenih protokola (TCP/IP, FTP, HTTP)
18

Mogunosti i svojstva (2)

Prenosivost i interpretiranje izvorni kod se kompajlira, prevodi u byte-code i interpetira na Javinom virtuelnom stroju
JVM (Java Virtual Machine) osnovni dio arhitekture

Robusnost ugraena potpora za hvatanje i obradu iznimaka


try...catch...finally blokovi

Sigurnost koristi Java Sandbox zabranjen direktni pristup memoriji, pokuaji krenja prava pristupa datotekama na disku, nepravilnih pretvaranja meu tipovima podataka, ... Vienitnost (viedretven, multi-threaded) koritenje dretvi je ugraeno u Javu Dinaminost programi pisani u Javi ponaaju se dinamiki
jednostavno dodavanje novih objekata, dijelova postojeim Java programima

19

Pozitivne strane Jave

to Java daje programeru?


Dosta pozitivnih stvari, nekoliko negativnih!

Pozitivne:
dosad nabrojana mogunosti i svojstva brza i jednostavna realizacija (kodiranje) iroko trite

Java je iroko koritena na serverskoj strani (servleti i JSP Java Server Pages) multiplatformnost, raznolikost, velike mogunosti objektno orjentiranog jezika

iroke mogunosti primjene

dobra mogunost unovavanja znanja programera...

20

Negativne strane Jave

Negativne:
sporost u nekim primjenama

prvenstveno GUI i desktop aplikacije

fleksibilni programi irih mogunosti zahtjevaju upotrebu (znanje) mnogih Javinih tehnologija

JNI (Java Native Interface) za sistemske pozive OS-a JavaComm za rad sa serijskim i paralelnim izlazima raunala

ograniena rasprostranjenost

operativni sustav, mobilni telefon, ureaj mora imati potporu za JVM


zbog sigurnosti i specifikacije ureaja na kojima se izvode

ograniene mogunosti

21

Primjeri
Primjeri: Java Hello World aplikacija Hello World applet Hello World aplikacija sa objektima Prikaz mrene komunikacije

Primjeri: Java 2 i Swing


Frame applet JFileChooser applet JTree applet BasicTextEditor MDI primjeri

22

J2ME

23

Uvod

Java 2 Micro Edition = Mikro verzija Jave


Java namijenjena malim i mobilnim ureajima poseban skup funkcija (Java API) i JVM iskljuivo za upotrebu na ureajima sa malim procesorkim i memorijskim kapacitetima

Ima sva svojstva jezika Java


sintaksa, jednostavnost, objektnost, distribuiranost, viedretvenost, robusnost, sigurnost, ...

Trenutno idealna solucija za implementaciju nosivog raunarstva!

24

J2ME konfiguracije

Konfiguracija = skup pravila koja odreuju grupu ureaja za koje je namijenjen odreeni Java virtualni stroj Postoje dvije J2ME konfiguracije:
CLDC CDC

25

CLDC konfiguracija

CLDC = Connected Limited Device Configuration


izvrava se na K-virtuelnom stroju (K Virtual Machine, KVM)

podrava ogranien skupa Java 2 funkcija mobilni telefoni PDA (Personal Digital Assistants) bankomati, ... 16/32 bitni mikroprocesor/kontroler 160 KB ukupne memorije, 128 KB ROM, 32 KB RAM 9600 bps bandwidth

namijenjen malim ureajima sa ogranienim resursima


ogranienja:

koristi se na ureajima (mobitelima) sa podrkom za J2ME!

26

CDC konfiguracija

CDC = Connected Device Configuration


izvrava se na C-virtualnom stroju (C Virtual Machine, CVM)

podrava cjelokupnu Javu 2 smart communicators (napredni mobilni telefoni) pageri PDA ureaji za digitalnu televiziju, ... 32 bitni mikroprocesor/kontroler preko 2 MB ukupne memorije jo je u fazi nacrta/prijedloga CLDC je jedina u praksi implementirana J2ME konfiguracija mobiteli koji podravaju J2ME implementiraju iskljuivo CLDC konfiguraciju

namijenjen iroj paleti ureaja, potroake elektronike


ogranienja:

ne koristi se! (jo)


27

Java verzije i konfiguracije

28

MIDP

MID = Mobile Information Device MIDP = MID Profile Profil = skup pravila i uvjeta koji dodatno (stroe) definiraju pravila iz J2ME konfiguracije MID profil je baziran iskljuivo na CLDC konfiguraciji

29

Sun J2ME software paket

http://java.sun.com/j2me/ SW paket namijenjen programerima (developerima) za razvoj J2ME aplikacija, tj. MIDleta
sadri J2ME klase, kompilator, J2ME JVM, sustav pomoi, J2ME emulatore (simulatore mobilnih telefona sa podrkom za J2ME) i ostale alate potrebne za razvoj J2ME koda moe se integrirati sa nekim razvojnim alatima: Sun Forte, Borland JBuilder

Aktuelna verzija J2ME 1.0.3

30

J2ME emulator

J2ME simulator Izvodi J2ME program i simulira njegovo ponaanje na pravom ureaju (npr. mobilnom telefonu) Podrava (simulacijom) sve funkcije pravog mobilnog ureaja (mobitela) Nalazi se u Sunovom J2ME software paketu, ili se isporuuje od proizvoaa mobilnih telefona sa podrkom za J2ME (npr. Siemens, Nokia)

31

Primjeri J2ME emulatora

32

Mobilni ureaji sa podrkom za J2ME

Mobiteli:
Siemens: SL45i, SL45 (sa nadogradnjom SW), M50 Nokia: 3410, 6310i, 7210, 7650, 9210 i 9290 (MIDP i PersonalJava) Motorola: i85s, i50sx, Accompli 008/6288, i55sr, i80s, i90c Samsung: SCH-X130, SCH-x350, SPH-I300 Casio: CdmaOne C452CA LG: p510, p520 Hitachi: CdmaOne C451H J-Phone, Kyrocera, Sendo, Danger, DoCoMo (preko 10 modela)

PDA:
PalmOS, Windows CE 2.11, EPOC (netBook), Psion 5mx, SAVAJE XE, BlackBerry, Symbian

Dobre vijesti: podugaak popis koji se sve vie proiruje...


33

MIDlet

MIDlet
Mobile Information Device Application applet za MID MIDlet je J2ME aplikacija/program

Svi MIDleti koriste suen skup Java 2 funkcija


CLDC konfiguracija i MID profil

Dostavlja se:
1. 2. u JAR (Java Archive) datoteci i sa JAD (Java Definition) datotekom Samo JAD datoteka, a JAR se kasnije downloadira sa Interneta JAR sadri sve izvrne .class datoteke i ostalo (slike, konfig. datoteke, ...) JAD opisuje gdje se JAR nalazi, koliko je velik, kako se MIDlet zove, ... ako imamo samo JAD datoteku JAR datoteka e se prije izvoenja MIDleta automatski skinuti sa interneta

Primjer: MIDlet pozdrav


34

Razvojni ciklus MIDleta

Termini i postupci specifini za J2ME:


predprovjera (preverifying) JAD datoteke (Java Definition File) emulator

Nakon kompajliranja .class datoteke se predprovjeravaju Trae se reference na klase koje MIDP ne podrava
KVM ne mora provjeravati klase i moe biti manji i kompaktniji Nakon predprovjere .class datoteke se pakiraju u jednu JAR datoteku (JAR datoteke su ZIP formata > WinZip, WinRAR) Korak nije obavezan

35

Razvojni ciklus MIDleta (2)

JAD datoteka mora se napraviti runo, ili iz J2ME SW paketa (KToolbar aplikacija)
Sadri aplikacije koje opisuju JAR, njegov naziv i veliinu u bajtovima; naziv i lokaciju MIDleta (Internet, hard disk); koliko je MIDleta u JARu; koja je verzija MIDleta, tko isporuuje MIDlet JAD datoteka je tekstualna datoteka

Za kompajliranje i pakiranje se koristi Java 2 kompajler i aplikacija za pakiranje (javac.exe, jar.exe) Za preprovjeru i emulaciju koriste se J2ME aplikacije (preverify.exe, emulator.exe) Primjer 1: JAD, JAR i manifest (MF) datoteke Primjer 2: kompajliranje, predprovjera, emulacija

36

Prikaz

Ovisi o veliini ekrana, rezolucijama i mogunosti prikaza boja J2ME omoguuje zadovoljavajui mehanizam prikaza grafike i tekstualnih poruka
ovisno o potrebi mogue je poboljati prikaza vlastitim klasama

Vanije J2ME klase za prikaz:


Display Displayable Canvas Screen Alert Form List TextBox

Primjer: MIDletCanvas pozdrav


37

Grafika

Grafike mogunosti naravno variraju od modela do modela Grafika u boji (256 boja) ili crno-bijela (2 boje); crno-uta (SL45i) Rezolucija... Procesorske mogunosti ograniavanju vee grafike (3D) proraune
treba obratiti panju na kvalitetu animacije (broj slika u sekundi; fps)

Mogu se koristiti slike, ali iskljuivo u PNG formatu


paziti na bandwidth i download time

Klasa Graphics
sadri metode za ispis teksta, crtanje toke, linije, pravokutnika, dijela krunice, za popunjavanje istih bojom, za manipulacijom bojama (RGB komponentama), itd. suen skup mogunosti i metoda u usporedbi sa Java2 klasom Graphics

Primjer: Graphics, Amark, TravelingGecko

38

Korisniko suelje (UI)

Dozvoljeno je koritenje gumbi, labela, polja za unos teksta (lozinki, brojki, email adrese, URL adrese, telefonskog broja), lista (grupa lista, check boxova, radio buttona) progress barova, modalnih i nemodalnih poruka, kontrola kalendara i sata, slika i pominog teksta (Ticker) Mogunosti su prilino velike Relevantne klase i suelja:
Alert, AlertType, Choice, ChoiceGroup, Command, DateField, Gauge, ImageItem, List, StringItem, TextBox, TextField, Ticker

Primjer: UIDemo

39

Rad sa datotekama i mreom

Jedno od najveih prednosti J2ME i MIDleta je lak i jednostavan rad sa mreom, mrenim protokolima i resursima
i npr. sa ugraenim modemom, serijskim portom, Bluetooth ureajem

Od poetka (J2ME 1.0.1) podran je HTTP protokol


J2ME 1.0.3 podrava i druge naine mrenog prijenosa podataka: socket, datagram, file, port

http://www.j2me.com/ socket://www.j2me.com:1800 datagram://1800 file:/j2me.txt comm:0;baudrate=9600

mobiteli jo ne podravaju J2ME 1.0.3

40

Rad sa datotekama i mreom (2)

Kako komunicirati sa serverom? Kako server moe komunicirati sa mobitelom?


pomou najobinijeg HTTP GET http://www.j2me.com/cgi?a=1&b=1 http://www.j2me.com/servlet?a=1&b=1

Relevantne klase i suelja:


Connector, Connection, Datagram, DatagramConnection, DataInput, DataOutput, DataInputStream, ...

Primjer: Fortune

41

OEM-ekstenzije

OEM-ekstenzije su dodatan skup J2ME klasa, suelja i pripadajuih metoda koje se naslanjaju na CLDC konfiguraciju, MID profil i proiruju njihove mogunosti

Primjer: Siemens J2ME API Help

Siemensove OEM-ekstenzije omoguuju slanje SMS-a (uz potvrdu korisnika), uspostavljanje poziva, koritenje vibre, upotrebu dijela phonebooka (zbog sigurnosti), slanje i primanje podataka (SMS, IrDA, serijska veza, modem), komponiranje i sviranje melodija, laki rad sa grafikom i animacijama Svoje OEM-ekstenzije nude i drugi proizvoai, npr. Motorola
tako se omoguuje koritenje posebnih funkcija mobitela: Bluetooth suelja, serijskog porta, IrDa suelja, vibre, SMS funkcije, itd.
42

MIDP Record Managment System (RMS)


RMS je skup J2ME klasa i suelja koje omoguuju pohranu podataka u jednostavnu bazu podataka na ureaju na kojemu se izvodi MIDlet Pomou RMSa podaci se mogu trajno pohraniti na mobilnom ureaju i jednostavno dohvatiti kada su potrebni Poput spremanje konfiguracijskih datoteka, ili sistema Windows Registry Osnovna klasa: RecordStore Suelja:
RecordEnumeration, RecordComparator, RecordFilter, RecordListener

Primjer: Contacts

43

Budunost J2ME

Broj ureaja koji podravaju J2ME svakodnevno raste


J2ME mobiteli vie nisu rijetki, niti skupi poveava se potreba za J2ME softwareom i sadrajima koje mobilni ureaji mogu ponuditi trite trai korisne aplikacije i napredak se nastavlja dalje... jedino J2ME daje mogunost pokretanja aplikacija na mobitelima!

Oekuje se implementacija CDC konfiguracije u praksi


snaniji ureaji koji e imati na raspolaganju sve mogunosti Jave 2

Konvergencija J2ME i drugih (Java) tehnologija


nova rjeenja sjedinjuju prenosivo i ne-prenosivo raunarstvo

Sve vie praktinih primjena mobilnog raunarstva


obavljanje novanih transakcija preko mobitela koritenje razliitih web servisa (najblii restoran, kino, rezervacija ulaznica za kazalite, cijena raznih proizvoda, ...) chat, igre, zabava...
44

Relevantni alati i internet adrese


http://java.sun.com/j2me/ http://www.midlet.org/ http://www.microjava.com/ http://www.midletcentral.com/ http://www.corej2me.com/ http://wireless.java.sun.com/ http://www.devicetop.com/ http://yozone.yospace.com/ http://www.jguru.com/ http://wwws.sun.com/software/communitysource/j2me/ I mnoge druge adrese...
Na Internetu se nalazi puno materijala za J2ME

45

You might also like