Professional Documents
Culture Documents
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
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
ideje (a i realizaciju) njihovih proizvode kopirao je Steve Jobs (Mac), a kasnije njega je kopirao Bill Gates (Microsoft)
Danas
Digitalni runi satovi Runa raunala, dlanovnici, PDA (Personal Digital Assistans), Palm, Visor PalmOS, Windows CE
Danas (2)
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
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!
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, ...
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
10
Uvod (2)
Osnovno: Java programski kod se komapajlira u byte-code (meukod) i interpretira na Java Virtual Machine (JVM, Javin virtualni stroj)
.java datoteke
.class datoteke
Arhitektura
12
3 osnovne verzije:
J2EE (Java 2 Enterprise Edition) J2SE (Java 2 Standard Edition) J2ME (Java 2 Micro Edition)
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
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
zapoevi rad na kompajleru otvarao je novi direktorij, nije znao kako da ga nazove, pogledao je van kroz prozor i vidio hrast...
14
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
Verzija 1.2
Swing klase za izradu naprednih grafikih korisnikih suelja Nazvana (kao i sve kasnije verzije) Java 2
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
Prenosivost i interpretiranje izvorni kod se kompajlira, prevodi u byte-code i interpetira na Javinom virtuelnom stroju
JVM (Java Virtual Machine) osnovni dio arhitekture
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:
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
20
Negativne:
sporost u nekim primjenama
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
ograniene mogunosti
21
Primjeri
Primjeri: Java Hello World aplikacija Hello World applet Hello World aplikacija sa objektima Prikaz mrene komunikacije
22
J2ME
23
Uvod
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
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
ogranienja:
26
CDC konfiguracija
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
ogranienja:
27
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
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
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
32
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
MIDlet
MIDlet
Mobile Information Device Application applet za MID MIDlet je J2ME aplikacija/program
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
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
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
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)
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
38
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
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
40
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
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
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
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