Upload
niles
View
48
Download
1
Embed Size (px)
DESCRIPTION
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. Java i nosivo računarstvo. Dipl.ing. Marko Horvat. Predavanje u sklopu predmeta “Mikroračunala”. Nosivo računarstvo. “Java i prožimajuće računarstvo” ali zbog fokusa na SW sadržaj za mobitele ipak “...nosivo...” - PowerPoint PPT Presentation
Citation preview
Java i nosivo računarstvo
Predavanje u sklopu predmeta “Mikroračunala”
SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I
RAČUNARSTVA
Dipl.ing. Marko Horvat
22
Nosivo računarstvo “Java i prožimajuće računarstvo”
ali zbog fokusa na SW sadržaj za mobitele ipak “...nosivo...”
Dva srodna termina: Wearable computing = nosivo računarstvo Pervasive computing, Ubiquitous computing = prožimajuće
računarstvo Nosiva računala...
uvijek rade, tj. uvijek su spremna za interakciju sa korisnikom korisnik ih ne koristi direktno, ona povećavaju njegovu
inteligenciju ili mogućnosti osjetila enkapsuliraju korisnika (bolje od laptopova, PDA uređaja)
Sinergija čovjeka i računala 6 svojstava nosivog računala:
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
33
2 karakteristike sistema prožimajućeg računarstva: fizička integracija
– u pametnoj sobi sa zastanke: pametna šalica za kavu (Javu?) zna tko je njezin vlasnik, može pružiti određene servise; pametne stolice, stol, ploča (whiteboard) opremljene senzorima, moguće ih je umrežiti sa PDAovima sudionika sastanka – automatski prenos sadržaja ploče u PDA
spontana interoperacija– u dinamičnoj okolini koja se mijenja sustavi se međusobno spontano
udružuju u mreže, omogućuju prenos i korištenje različitih podataka
otac prožimajućeg računarstva Mark Weiser, chief technology officer u Xeroxovim laboratorijima
(Paolo Alto) – mjesto odakle je potekao osobno računalo, GUI, intranet
– ideje (a i realizaciju) njihovih proizvode kopirao je Steve Jobs (Mac), a kasnije njega je kopirao Bill Gates (Microsoft)
Prožimajuće računarstvo
44
Nosivo računarstvo nekada…
55
Danas
Digitalni ručni satovi
Ručna računala, dlanovnici, PDA (Personal Digital Assistans), Palm, Visor – PalmOS,
Windows CE
66
Danas (2)
Siemens SL45i – Java ME, MP3, 128
MB RAM, ...
Transmeta Wearable
Computer – nosi se oko pojasa
Nokia 9xxx Communicator –
Symbian OS, Personal Java,
Java ME, mobitel i ručno računalo, ...
Nosivo računalo u upotrebi u američkoj vojsci na nosačima aviona – brz pregled nacrta,
planova, TODO lista, ...
77
kao i općenito u računalstvu: dimenzije uređaja će biti još manje, a mogućnosti još veće
ali prag omjera dimenzija i mogućnosti prenosnih računala već je prijeđen npr. ručna računala (Palm, Visor), napredni mobiteli – “više
klase” kako će cijene padati, i potražnja tržišta rasti, u skoroj
budućnosti vidjeti ćemo sve više “jakih” i korisnih nosivih računalnih uređaja taj trend je već sada vidljiv...
za taj povećani broj mobilnih uređaja potrebno je napraviti kvalitetni softwarski sadržaj potrebni su napredni programski jezici u kojima se može što brže
napraviti što kvalitetniji SW proizvod!
Nosivo računarstvo sutra?
88
Zašto Java i nosivo računarstvo? Java je veoma dobar (najbolji?) odabir za sustave nosivog
računarstva Jer Java je...
prenosiv jezik - radi na mnogim platformama stvara male izvršne datoteke - od nekoliko kB naviše raširen je i visoko korišten jednostavan za upotrebu i programiranje
A također je i... objektan - jednostavno je skalirati, proširivati programe distribuiran - korištenje mrežnih protokola je ugrađeno u Javu robustan - potpora za hvatanje i obradu grešaka i iznimaka siguran, višenitan (višedretven), dinamičan, ...
Najbitnije je da proizvođači uređaja podrže Javu bez toga nije važno koliko je Java dobra, ili ne... broj mobitela koji podržavaju Javu u zadnje vrijeme rapidno raste
99
Programski jezik Java
1010
Programski jezik Java je proizvod američke računalne tvrtke Sun
Tvrtka i dan danas ima isključivo 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 završen 1995.
Danas aktuelna verzija Jave nastala je 1997. i od tada se razvija dalje
Uvod
1111
Osnova misao vodilja: multiplatformski programski jezik jednostavan i visokih mogućnosti
Osnovno: Java programski kod se komapajlira u byte-code (međukod) i interpretira na Java Virtual Machine (JVM, Javin virtualni stroj) .java datoteke
– datoteke sa izvornim kodom .class datoteke
– datoteke sa kompajliranim izvornim kodom– Javine “izvršne” datoteke– interpteriraju se, “izvršavaju” na Javinom virtuelnom stroju
Slično je napravljena Microsoftova .NET platforma
Hello World aplikacija
Uvod (2)
1212
Arhitektura
Java izvorni kod
Java bajt kod (neovisan o platformi)Java
kompilator (Windows)
Java kompilator
(Mac)
Java interpreter (Windows)
Java interpreter (Mac)
Java interpreter (Solaris)
Java kompilator (Solaris)
1313
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)
Consumer & Embedded Technologies & Products: Java 2 Platform, Micro Edition (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)
I druge… Da li je moguće sve znati?
Javine verzije i tehnologije
1414
Razvoj pokrenut na zasebnoj lokaciji početkom 1991. U sklopu razvoja projekata za komercijalnu elektroniku Za programiranje mikroprocesora televizora, video-
uređaja, glazbenih linija, mikrovalnih pećnica, tostera, strojeva za pranje rublja, ...
Tražio se jedinstveni računalni jezik koji će se izvršavati na različitim tipovima mikroprocesora
Projekt Green i programski jezik Oak (hrast) James Gosling – nakon neuspješnog prilagođavanja C++
zbog prevelike složenosti odlučio napraviti novi jezik– Uzeti osnove C-a i prilagoditi za elektroničke uređaje– “C++ minus minus”
započevši rad na kompajleru otvarao je novi direktorij, nije znao kako da ga nazove, pogledao je van kroz prozor i vidio hrast...
Povijesni razvoj
1515
U Oaku su pisane aplikacije za PDA uređaj * 7 (“star seven”) *7 je redosljed tipaka na telefonu koje se treba pritisnuti da
se u Sunovom sjedištu preuzme poziv sa drugog telefona *7 je koristio operativni sustav GreenOS koji je imao
animirano grafičko sučelje Duke (Javina maskota) sve što je ostalo od *7 ... Primjer: Duke MIDlet
Za Demonstraciju mogućnosti Oaka na World Wide Webu Sun je razvio aplikaciju WebRunner kasnije pretraživač HotJava Program napisan u Javi koji je mogao pokretati druge
programe napisane u Javi Uvelike popularizirao Javu
Povijesni razvoj (2)
1616
Debut 23. svibnja 1995. na sajmu SunWorld ’95 4 godine nakon početka razvijanja projekta
Verzija 1.0 - siječanj 1996. Konačna verzija Jave Sve klase moguće je sažeti u jednu ili više ZIP datoteka
(JAR – Java Archive). Time se ubrzava dohvaćanje Java programa i appleta sa Interneta.
Verzija 1.0.2 – svibanj 1996. Otklonjeni neki sigurnosni problemi
Verzija 1.1 – siječanj 1997. Uvedene Listener klase za registriranje događaja Još uvijek aktualna u najnovijim verzijama važnijih Internet
browsera: IE i NC
Povijesni razvoj (3)
1717
Verzija 1.2 Swing klase –za izradu naprednih grafičkih korisničkih
sučelja Nazvana (kao i sve kasnije verzije) “Java 2”
Verzija 1.3
Verzija 1.4
Razvoj se nastavlja...
Povijesni razvoj (4)
1818
“Java je jednostavan, objektno-orijentiran, distribuiran, interpretiran, robustan, siguran, prenosiv, visokoučinkovit, višenitan i dinamički programski jezik” – Sunova službena dokumentacija
Jednostavnost Jednostavna sintaksa, Java je laka za učenje, “pojednostavljeni C” nema pokazivača (pointera)
– nije moguće direktno čitati, ili pisati po memoriji– upravljanje memorijom je automatsko
Garbage collector čisti memoriju umjesto dekonstruktora klasa goto ključna riječ, ali zabranjena uporaba
Objektna orijentiranost Osnovni element građenja programa u Javi je klasa Samo neki najjednostavniji tipovi podataka (int, char, boolean) nisu
objekti Distribuiranost
Jednostavna uporaba mrežnih protokola (TCP/IP, FTP, HTTP)
Mogućnosti i svojstva
1919
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 – ugrađena potpora za hvatanje i obradu iznimaka try...catch...finally blokovi
Sigurnost – koristi Java Sandbox – zabranjen direktni pristup memoriji, pokušaji kršenja prava pristupa datotekama na disku, nepravilnih pretvaranja među tipovima podataka, ...
Višenitnost (višedretven, multi-threaded) – korištenje dretvi je ugrađeno u Javu
Dinamičnost – programi pisani u Javi ponašaju se dinamički jednostavno dodavanje novih objekata, dijelova postojećim Java
programima
Mogućnosti i svojstva (2)
2020
Pozitivne strane Jave Što Java daje programeru?
Dosta pozitivnih stvari, nekoliko negativnih!
Pozitivne: dosad nabrojana mogućnosti i svojstva brza i jednostavna realizacija (kodiranje) široko tržište
– Java je široko korištena na serverskoj strani (servleti i JSP – Java Server Pages)
široke mogućnosti primjene– multiplatformnost, raznolikost, velike mogućnosti objektno
orjentiranog jezika dobra mogućnost unovčavanja znanja programera...
2121
Negativne strane Jave Negativne:
sporost u nekim primjenama– prvenstveno GUI i desktop aplikacije
fleksibilni programi širih mogućnosti zahtjevaju upotrebu (znanje) mnogih Javinih tehnologija
– JNI (Java Native Interface) za sistemske pozive OS-a– JavaComm za rad sa serijskim i paralelnim izlazima računala
ograničena rasprostranjenost– operativni sustav, mobilni telefon, uređaj mora imati potporu za JVM
ograničene mogućnosti– zbog sigurnosti i specifikacije uređaja na kojima se izvode
2222
Primjeri Primjeri: Java
Hello World aplikacija Hello World applet Hello World aplikacija sa objektima Prikaz mrežne komunikacije
Primjeri: Java 2 i Swing Frame applet JFileChooser applet JTree applet BasicTextEditor MDI primjeri
2323
J2ME
2424
Java 2 Micro Edition = “Mikro verzija” Jave Java namijenjena malim i mobilnim uređajima poseban skup funkcija (Java API) i JVM isključivo za upotrebu na
uređajima sa malim procesorkim i memorijskim kapacitetima
Ima sva svojstva jezika Java sintaksa, jednostavnost, objektnost, distribuiranost,
višedretvenost, robusnost, sigurnost, ...
Trenutno idealna solucija za implementaciju nosivog računarstva!
Uvod
2525
J2ME konfiguracije Konfiguracija = skup pravila koja određuju grupu uređaja za
koje je namijenjen određeni Java virtualni stroj
Postoje dvije J2ME konfiguracije: CLDC CDC
2626
CLDC konfiguracija CLDC = Connected Limited Device Configuration
izvršava se na K-virtuelnom stroju (K Virtual Machine, KVM)– podržava ograničen skupa Java 2 funkcija
namijenjen malim uređajima sa ograničenim resursima– mobilni telefoni– PDA (Personal Digital Assistants)– bankomati, ...
ograničenja:– 16/32 bitni mikroprocesor/kontroler– 160 KB ukupne memorije, 128 KB ROM, 32 KB RAM– 9600 bps bandwidth
koristi se na uređajima (mobitelima) sa podrškom za J2ME!
2727
CDC konfiguracija CDC = Connected Device Configuration
izvršava se na C-virtualnom stroju (C Virtual Machine, CVM)– podržava cjelokupnu Javu 2
namijenjen široj paleti uređaja, potrošačke elektronike– smart communicators (napredni mobilni telefoni)– pageri– PDA– uređaji za digitalnu televiziju, ...
ograničenja:– 32 bitni mikroprocesor/kontroler– preko 2 MB ukupne memorije
ne koristi se! (još)– još je u fazi nacrta/prijedloga– CLDC je jedina u praksi implementirana J2ME konfiguracija– mobiteli koji podržavaju J2ME implementiraju isključivo CLDC
konfiguraciju
2828
Java verzije i konfiguracije
2929
MIDP MID = Mobile Information Device MIDP = MID Profile
Profil = skup pravila i uvjeta koji dodatno (strože) definiraju pravila iz J2ME konfiguracije
MID profil je baziran isključivo na CLDC konfiguraciji
3030
Sun J2ME software paket http://java.sun.com/j2me/
SW paket namijenjen programerima (developerima) za razvoj J2ME aplikacija, tj. MIDleta sadrži J2ME klase, kompilator, J2ME JVM, sustav pomoći, J2ME
emulatore (simulatore mobilnih telefona sa podrškom za J2ME) i ostale alate potrebne za razvoj J2ME koda
može se integrirati sa nekim razvojnim alatima: Sun Forte, Borland JBuilder
Aktuelna verzija J2ME 1.0.3
3131
J2ME emulator “J2ME simulator”
Izvodi J2ME program i simulira njegovo ponašanje na pravom uređaju (npr. mobilnom telefonu)
Podržava (simulacijom) sve funkcije pravog mobilnog uređaja (mobitela)
Nalazi se u Sunovom J2ME software paketu, ili se isporučuje od proizvođača mobilnih telefona sa podrškom za J2ME (npr. Siemens, Nokia)
3232
Primjeri J2ME emulatora
3333
Mobilni uređaji sa podrškom 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: podugačak popis koji se sve više proširuje...
3434
MIDlet MIDlet
“Mobile Information Device Application” “applet za MID” MIDlet je J2ME aplikacija/program
Svi MIDleti koriste sužen skup Java 2 funkcija CLDC konfiguracija i MID profil
Dostavlja se:1. u JAR (Java Archive) datoteci i sa JAD (Java Definition) datotekom2. Samo JAD datoteka, a JAR se kasnije downloadira sa Interneta JAR sadrži sve izvršne .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 izvođenja
MIDleta automatski skinuti sa interneta
Primjer: MIDlet pozdrav
3535
Razvojni ciklus MIDleta Termini i postupci
specifični za J2ME: predprovjera
(preverifying) JAD datoteke
(Java Definition File)
emulator
Nakon kompajliranja .class datoteke se predprovjeravaju Traže se reference na klase koje MIDP ne podržava KVM ne mora provjeravati klase i može biti manji i kompaktniji
Nakon predprovjere .class datoteke se pakiraju u jednu JAR datoteku (JAR datoteke su ZIP formata –> WinZip, WinRAR) Korak nije obavezan
3636
Razvojni ciklus MIDleta (2) JAD datoteka mora se napraviti ručno, ili iz J2ME SW paketa
(KToolbar aplikacija) Sadrži aplikacije koje opisuju JAR, njegov naziv i veličinu u
bajtovima; naziv i lokaciju MIDleta (Internet, hard disk); koliko je MIDleta u JARu; koja je verzija MIDleta, tko isporučuje 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
3737
Prikaz Ovisi o veličini ekrana, rezolucijama i mogućnosti prikaza boja J2ME omogućuje zadovoljavajući mehanizam prikaza grafike i
tekstualnih poruka ovisno o potrebi moguće je poboljšati prikaza vlastitim klasama
Važnije J2ME klase za prikaz:Display
Displayable
Canvas
Screen
Alert
Form
List
TextBox
Primjer: MIDletCanvas pozdrav
3838
Grafika Grafičke mogućnosti naravno variraju od modela do modela Grafika u boji (256 boja) ili crno-bijela (2 boje); crno-žuta (SL45i) Rezolucija... Procesorske mogućnosti ograničavanju veće grafičke (3D)
proračune treba obratiti pažnju na kvalitetu animacije (broj slika u sekundi;
fps) Mogu se koristiti slike, ali isključivo u PNG formatu
paziti na bandwidth i download time Klasa Graphics
sadrži metode za ispis teksta, crtanje točke, linije, pravokutnika, dijela kružnice, za popunjavanje istih bojom, za manipulacijom bojama (RGB komponentama), itd.
sužen skup mogućnosti i metoda u usporedbi sa Java2 klasom Graphics
Primjer: Graphics, Amark, TravelingGecko
3939
Korisničko sučelje (UI) Dozvoljeno je korištenje 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 pomičnog teksta (Ticker)
Mogućnosti su prilično velike Relevantne klase i sučelja:
Alert, AlertType, Choice, ChoiceGroup, Command, DateField, Gauge, ImageItem, List, StringItem, TextBox, TextField, Ticker
Primjer: UIDemo
4040
Rad sa datotekama i mrežom Jedno od najvećih prednosti J2ME i MIDleta je lak i jednostavan
rad sa mrežom, mrežnim protokolima i resursima i npr. sa ugrađenim modemom, serijskim portom, Bluetooth
uređajem
Od početka (J2ME 1.0.1) podržan je HTTP protokol J2ME 1.0.3 podržava i druge načine mrežnog 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 podržavaju J2ME 1.0.3
4141
Rad sa datotekama i mrežom (2) Kako komunicirati sa serverom? Kako server može komunicirati
sa mobitelom? pomoću “najobičnijeg” HTTP GEThttp://www.j2me.com/cgi?a=1&b=1
http://www.j2me.com/servlet?a=1&b=1
Relevantne klase i sučelja: Connector, Connection, Datagram, DatagramConnection,
DataInput, DataOutput, DataInputStream, ...
Primjer: Fortune
4242
OEM-ekstenzije
Siemensove OEM-ekstenzije omogućuju slanje SMS-a (uz potvrdu korisnika), uspostavljanje poziva, korištenje vibre, upotrebu dijela phonebooka (zbog sigurnosti), slanje i primanje podataka (SMS, IrDA, serijska veza, modem), komponiranje i sviranje melodija, lakši rad sa grafikom i animacijama
Svoje OEM-ekstenzije nude i drugi proizvođači, npr. Motorola tako se omogućuje korištenje posebnih funkcija mobitela: Bluetooth
sučelja, serijskog porta, IrDa sučelja, vibre, SMS funkcije, itd.
OEM-ekstenzije su dodatan skup J2ME klasa, sučelja i pripadajućih metoda koje se naslanjaju na CLDC konfiguraciju, MID profil i proširuju njihove mogućnosti
Primjer: Siemens J2ME API Help
4343
MIDP Record Managment System (RMS) RMS je skup J2ME klasa i sučelja koje omogućuju pohranu
podataka u jednostavnu bazu podataka na uređaju na kojemu se izvodi MIDlet
Pomoću RMSa podaci se mogu trajno pohraniti na mobilnom uređaju i jednostavno dohvatiti kada su potrebni
Poput spremanje konfiguracijskih datoteka, ili sistema Windows Registry
Osnovna klasa: RecordStore Sučelja:
RecordEnumeration, RecordComparator, RecordFilter, RecordListener
Primjer: Contacts
4444
Budućnost J2ME Broj uređaja koji podržavaju J2ME svakodnevno raste
J2ME mobiteli više nisu rijetki, niti skupi povećava se potreba za J2ME softwareom i sadržajima koje mobilni
uređaji mogu ponuditi tržište traži korisne aplikacije i napredak se nastavlja dalje... jedino J2ME daje mogućnost pokretanja aplikacija na
mobitelima! Očekuje se implementacija CDC konfiguracije u praksi
snažniji uređaji koji će imati na raspolaganju sve mogućnosti Jave 2 Konvergencija J2ME i drugih (Java) tehnologija
nova rješenja sjedinjuju prenosivo i ne-prenosivo računarstvo Sve više praktičnih primjena mobilnog računarstva
obavljanje novčanih transakcija preko mobitela korištenje različitih web servisa (najbliži restoran, kino, rezervacija
ulaznica za kazalište, cijena raznih proizvoda, ...) chat, igre, zabava...
4545
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