(JME) Vybrané partie z jazyka Java (NPRG021) Jiří Tomeš



Podobné dokumenty
JAVA. Java Micro Edition

JAVA. Java Micro Edition

Technologie Java. Jaroslav Žáček

Mobilní správce hesel


SCADA systémy na platformě mobilních zařízení

J2ME. Java 2 Micro Edition. David Stach Ondřej Dušek

Knihovna pro tvorbu GUI v mobilních zařízeních

MOBILNÍHO TELEFONU S BLUETOOTH

JSR tutorial 1 Úvod do JSR-184

}w!"#$%&'()+,-./012345<ya

Čipové karty úvod, Ing. Jiří Buček. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

Sem vložte zadání Vaší práce.

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Využití J2ME při vývoji telemedicínských aplikací pro klasické mobilní telefony

Programování Java aplikací pro mobilní telefony - hra Piškvorky

Aplikace pro mobilní zařízení Semestrálná práce z Y36MM1

Programování v Javě I. Leden 2008

Identifikátor materiálu: ICT-3-03

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

PŘÍJEM A POSÍLÁNÍ SMS ZPRÁV POMOCÍ APLIKACE URČENÉ PRO PLATFORMU JAVA ME SMS APPLICATION FOR JAVA ME PLATFORM

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

Programování v Javě I. Únor 2009

TELEFONU HANDSET BASED COMPUTER CONTROL

Matematika v programovacích

Technologie Java. Jaroslav Žáček

Programovatelné automaty SIMATIC S7 a S5

RMI Remote Method Invocation

Remoting na platformě mobilní Javy

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

Java aplety. Předávání parametrů z HTML

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

SADA VY_32_INOVACE_PP1

SIM karty a bezpečnost v mobilních sítích

Integrace mobilního klienta do IS přes webovou službu

Úvod do programování v jazyce Java

Vytváření a použití knihoven tříd

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

VirtualBox desktopová virtualizace. Zdeněk Merta

edice Windows 10 je pro vás nejvhodnější? Firemní prostředí Kancelářské a uživatelské prostředí Správa a nasazení Home Pro Enterprise Education

Hra lodě v mobilním prostředí

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

3. Základy programovacího jazyka Java

Profilová část maturitní zkoušky 2013/2014

Ope p r e a r čn č í s ys y té t m é y y Windo d w o s Stručný přehled

Windows a real-time. Windows Embedded

Vývoj OS Windows Mobile. Ing. Jiří Šilhán

Programové vybavení OKsmart pro využití čipových karet

Obsah PODĚKOVÁNÍ...11

Profilová část maturitní zkoušky 2017/2018

Mobilní informační průvodce - RegTim

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

IW3 MS SQL SERVER 2014

Bezpečnost vzdáleného přístupu. Jan Kubr

Aplikace s grafickým uživatelským rozhraním

Softwarové komponenty a Internet

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Možnosti využití balíčku Wireless Messaging API na platformě Java ME

O Apache Derby detailněji. Hynek Mlnařík

Informační technologie. Název oboru: Školní rok: jarní i podzimní zkušební období 2017/2018

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

RadioBase 3 Databázový subsystém pro správu dat vysílačů plošného pokrytí

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Android 100% Java telefon. Petr Musil

RMI - Distribuované objekty v Javě

Vytváření uživatelských datových typů a funkcí v Javě

Rychlost kryptografických operací na mobilních telefonech

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

7 Jazyk UML (Unified Modeling Language)

Instalace a konfigurace web serveru. WA1 Martin Klíma

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Komu je tato kniha určena? Jak je kniha uspořádána? Konvence použité v té to knize. Část i základy Microsoft Windows XP Professional

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

SSL Secure Sockets Layer

Využití Bluetooth přenosu v J2ME aplikacích - BT Messenger

IT Bezpečnostní technologie pro systémy integrované bezpečnosti

Multiplatformní osobní organizér v jazyce Java

11. Přehled prog. jazyků

JAVA Unit testing Java, zimní semestr

České vysoké učení technické v Praze Fakulta Elektrotechnická

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Vysoká škola ekonomická v Praze

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Remote Method Invocation RMI

IT ESS II. 1. Operating Systém Fundamentals

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Software SMART Bridgit

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Server Security, Serverové produkty

Windows 2008 R2 - úvod. Lumír Návrat

Maturitní témata Školní rok: 2015/2016

Transkript:

Java Micro Edition (JME) Vybrané partie z jazyka Java (NPRG021) Jiří Tomeš

O čem se dnes budeme bavit O platformě JME Základní rozdělení JME CLDC MIDP MIDlet(y) a MIDLet suite Ukázky 2 programů IMP CDC Java TV Java Card Užitečné odkazy Prostor pro Vaše dotazy

O platformě JME Java MicroEdition Různá starší označení (J2ME=Java 2 Micro Edition) Jedna ze 3 základních platforem (edic) Javy Podmnožina platformy JSE Určena pro malá zařízení s omezenými prostředky (mobilní telefony,set-top-boxy,herní konzole,pda, ) Součástí Java Card (bude řeč později ) Vyvinuto firmou SUN (dnes Oracle Comporation) Základní dělení JME, na kterých je založena: A) Konfigurace (JVM + API + základní knihovny) B) Profily (konkrétnější API) C) Volitelné balíčky (např Bluetooth pro síťování)

Konfigurace 2 základní typy: 1) Pro malá zařízení (CLDC) The Connected Limited Device Configuration 2) Pro schopnější zařízení (CDC) The Connected Device Configuration

Konfigurace CLDC Vyvinuta v rámci Java Community Process jako JSR 30 (CLDC 1.0) JSR 139 (CLDC 1.1) Omezená paměť (512KB), grafické prvky,16 nebo 32-bitový procesor Vychází z JSE (základní knihovny,stejná syntaxe) KVP (Zjednodušená virtual machine) Nemá plnohodnotný verifikátor bytecodu Hlavní rozdíly vůči JSE: A) Několik API chybí nebo jsou pozměněné B) Změny ve třídách a rozhraních

Nejdůležitější změny v CLDC Nepodporuje interface Serializable() JNI (Java Native Interface) Částečná podpora Reflection třída java.lang.reflex Metody ve třídě java.lang.class Dále nepodporuje: 1) Používání vlastních class loaders 2) Skupinová a Daemon vlákna 3) Week references 4) Matematické a dat. struktury s plovoucí řádovou čárku (CLDC 1.0) Z metod potom: Object.finalize() Thread.interrupt() (CLDC 1.0)

Hlavní balíčky CLDC Všeobecné API: java.io (zjednodušená verze balíku JME pro vstup a výstup) Abstraktní třídy InputStream, OutputStream,Reader,Writer Filtry java.lang (nezbytné pro Javu-celá čísla,řetězce,základní výjimky,..) java.util (zjednodušená verze, třídy Hashtable, Vector, ) javax.microedition.io (třídy pro správu všeobecného spojení) Volitelné balíčky (pro PDA): PIM (Personal Information Management) Přístup k osobním údajům, správa informací FC (FileConnection) Souborové systémy a vyjímatelná úložiště-např. paměťové karty

2 základní profily: Profily CLDC A) PDA Základní programátorské prostředky uživateského rozhraní Ukládání dat v PDA zařízení Operační systém pro PDA=PalmOS B) MIDP Definováno výrobcem Operační systém Hardware

MIDP a MIDlety

MIDP Mobile Information Device Profile Určeno pro mobilní telefony, PDA Nejznámější profil Java ME MIDP+CLDC=Java Runtime Environment Základ pro Wireless Java Obsahuje GUI + základní 2D herní API (Gamecanvas,...) Rozšiřuje CLDC o: Práci se sítí (protokol HTML 1.1) Uživatelské rozhraní (LCDUI) Lokální úložiště dat (API) RMS( Record Magement Systém) ( = Systém správy záznamů) Správu průběhu aplikací

MIDP Technické požadavky: Displej minimálně 96 x 54 pixelů, 2 barvy Klávesnice, popř. dotyková obrazovka 32 KB pro Javu, 128 KB pro komponenty MIDP, 8KB stálé paměti pro dlouhodobé ukládání dat aplikací. Možnost obousměrného síťového spojení

Nové důležité knihovny: 1) MIDP 1.0 (JSR 37) MIDP javax.microedition.midlet (základní třída MIDlet) javax.microedition.rms (správa perzistence dat) javax.microedition.lcdui (práce s uživatelským rozhraním) javax.microedition.io (class HttpConnection) 2) MIDP 2.0 (JSR 118) javax.microedition.media (přehrávání multimedií,podmnožina JSR 135 Java Mobile Media API) javax.microedition.lcdui.game - herní API na jednoduché 2D hry javax.microedition.pki - autentizační API pro zabezpečené přípojení

MIDP 3) MIDP 3.0 (JSR 271) Poslední verze, prosinec 2009 Běh více MIDletů současně a jejich komunikace Podpora IPv6 LIBlety (knihovny) Volitelné balíčky: PDA Optional Packages for the Java ME Platform=PIM (JSR 75) Java APIs for Bluetooth (JSR 82) Wireless Messaging API 2.0 (JSR 205) Mobile Media API (JSR 135) Mobile 3D Graphics API for JME (JSR 184)

MIDlet(y) Java aplikace postavená na MIDP (základ pro mobilní hry a další aplikace) Základem soubor.jar (Java Archive) Třídy Zdroje (obrázky,zvuky,další soubory, ) Manifest (main class a další informace o obsahu) Někdy také i soubor.jad (Java Apllication Descriptor) Informace o.jar souboru Některé implementace explicitně vyžadují

Fungující MIDlet aplikace Nutné požadavky: (na mobil. telefonu) třída javax.microedition.midlet.midlet Od té dědí main class MIDlet zabalen v.jar souboru.jar soubor musí být preverifikován Někdy navíc vyžadován i podepsání.jar souboru mobilním operátorem

Uživatelské rozhraní MIDlet Zařízení s MIDP jsou schopna zobrazit pouze1 uživatelské okno Běží-li současně více MIDletů, pouze 1 z nich má přístup k displej. Využití více oken je lze implementovat přepínáním viditelnosti Definované třídy a metody pro grafiku uživatelského rozhraní.

Práce se sítí v MIDLetu Podpora HTTP (implementace nejčastěji pomocí TCP/IP nebo WAP) Podpora UDP (User Datagram Protocol). Podpora TCP (Transport Control Protocol) Při přístupu na Internet (mimo IP): Spojení přes Gateway (tj. ověřění URL adresy) 2 způsoby posílání dat na server: GET (součást URL adresy) POST (blok dat)

Instalace aplikace MIDlet 1) Klient ->požadavek -> server 2) Server ->.jad soubor -> klient 3) Klient a) -> vyhovuje ->server->.jar soubor b) -> nevyhovuje -> konec (nový požadavek)

Ukládání dat v MIDletu Každý záznam (=pole bitů) má vlastní ID Možnosti vzájemného sdílení více záznamů v rámci jedné aplikace Není možno přistupovat k databázím jiné soustavy MIDletů 2 databáze se stejným jménem lze vytvořit jen pro 2 různé aplikace

MIDlet suite = Speciální případ MIDletu, kde : Soubor.jad obsahuje informace o více.jar Je možnost využití společné databáze+proměnné balíček javax.microedition.rms Schéma MIDLetu : Spuštění MIDletu Přerušený Přerušení od MIDletu nebo zařízení Start nebo znovu spuštění zařízením nebo MIDletem Aktivní Uživatel ukončí MIDlet Ukončení MIDletem Zrušený Uživatel ukončí MIDlet

Ukázka programu package muj; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Pozdrav extends MIDlet implements CommandListener { Display display; private Command koneccommand=new Command("Konec aplikace",command.screen,1); Form formular=new Form(null); public Pozdrav() { display=display.getdisplay(this); } public void destroyapp(boolean unconditional) { display.setcurrent(null); } public void pauseapp() { } public void startapp() { formular.settitle("můj první program"); formular.addcommand(koneccommand); formular.append("zdravím svého uživatele"); formular.setcommandlistener(this) ; display.setcurrent(formular); } } public void commandaction (Command c, Displayable d) { if(c==koneccommand) { destroyapp(false); notifydestroyed(); } }

package muj; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Grafika extends MIDlet implements CommandListener { } Display display; Kresli grafcanv; private Command koneccommand=new Command("Konec",Command.SCREEN,1); Form hlavniform=new Form(null); public Grafika() { grafcanv=new Kresli(); hlavniform.settitle("grafika"); grafcanv.addcommand(koneccommand); grafcanv.setcommandlistener(this) ; } public void destroyapp(boolean unconditional) { } public void pauseapp() { } public void startapp() { Display.getDisplay(this).setCurrent(grafcanv); } public void commandaction(command c, Displayable d) { if(c==koneccommand) { destroyapp(false); notifydestroyed(); } } Jednoduchá grafika package muj; import javax.microedition.lcdui.*; public class Kresli extends Canvas { int width, height; public Kresli(){ width=getwidth(); height=getheight(); repaint(); } public void paint(graphics g) { g.setcolor(0xfef00f); g.fillrect(0,0,width,height); g.setcolor(0x000000); g.drawarc(width/2 20,height/2 20,40,40,0,360); g.drawarc(width/2 9,height/2 10,4,4,0,360); g.drawarc(width/2+5,height/2 10,4,4,0,360); g.drawline(width/2 10,height/2+10,width/2+10,height/2+10); g.drawstring("hezký den",10,10,0); } }

IMP Information Module Profile Patří pod CLDC konfiguraci (podmnožina MIDP bez uživatelského rozhraní) Profil určen především pro: Zařízení bez displeje (ev. s velmi jednoduchým) Jednoduché bezpečností systémy Prodejní automaty

Souhrnný přehled CLDC

CDC (Connected Device Configuration) Pro náročnější zařízení (set-top-boxy,smartphony ) Vychází z Javy SE (téměř identická) Opět 3 svazky API (konfigurace,profily, vol.balíčky) Aplikace = Xlet(y) Technické požadavky konfigurace: Potřeba kompletní JVM 32-bitový procesor Operační paměť > 2MB Síťové připojení

Profily CDC Zde celkem 3 nejdůležitější profily: 1) The Foundation Profile (JSR 219) Žádná podpora GUI Kompatibilní s CDLC 1.0 2) The Personal Basis Profile (JSR 217) Podpora Xletů Podpora The Foundation Profile 3) The Personal Profile (JSR 216) Plná podpora AWT Podpora appletů+ technologie PersonalJava

Volitelné balíčky CDC (= Sada technologicky specifických API) Balíček RMI Poskytuje J2SE RMI pro síťové spotřebitele a embedded systémy Pro dané zařízení rožšíření základního profilu Balíček RMI Balíček JDBC poskytuje JDBC 3.0 API (pro práci s relační databází a tabulkami obecně)

Platforma Java TV Nová konfigurace Java ME (využívána na CDC) Pro tvorbu interaktivních televizních služeb (vzhled aplikací) Aplikace = Xlety (stejně jako u CDC) Main class musí být potomkem abstraktní třídy javax.tv.xlet.xlet

Java TV Ostatní balíčky z veřejných API: 1) javax.tv.graphics jednoduché vykreslení plátna 2) javax.tv.locator poskytuje lokátor ve stylu URL za služby a média 3) javax.tv.service Servisní informace+databáze (televizní kanály) Implementace Java TV společnostmi: Sony, Philips, LG, Toshiba, OPENTV,

Souhrnný přehled CDC

Java Card

Java Card Nejmenší z celé Javy (hlavně pro Embedded systémy) Pro bezpečných běh aplikací (= Java Card applety) na čipových kartách dynamické aplikace JCVM (Java Card Virtual Machine) Nezávislá na platformě, kompatibilní se všemi standardy paměťových karet Podpora komunikačních protokolů a šifrovacích algoritmů Aktuální verze Java Card 3.0 (Classic a Connected Edition)

Java Card Využití technologie v praxi: SIM karty pro mobil. telefony Bankovní (ATM) karty Karty pro hromadnou dopravu Podnikové využití (ID karty, věrnostní karty,..)

Java Card Hlavní výhody (Bezpečnost) : Zapouzdření dat Oddělení dat od hardware a OS Izolované prostředí Java Card Virtual Machine Applet Firewall Zabezpečení vzájemného přístupu k datům pro více aplikací Šifrování Šifr.algoritmy DES,AES,RSA,.. Elektronický podpis, generování a výměna klíčů

1) Jazyk Java Card vs. Java totožná konstrukce chybí vlákna, vícerozměrná pole, char,double, float, long,.. 2) Bytecode podmnožina Java SE, ale jiné kódování 3) Knihovny Zásadní rozdíly (Java Security Manager) O bezpečnost se stará JCVM 4) Specifické znaky (JCR+JCVM) Stálost (ukládání do paměti ROM) Atomicita (omezené vnější nápájení->atomické operace) Izolace appletů (Java Card Firewall)

Přehled celé platformy JME

Užitečné odkazy java.sun.com/javame (oficiální stránka Oracle) http://eclipseme.org/ (distribuce Eclipse) http://netbeans.org/features/javame/ (distribuce NetBeans) http://community.java.net/mobileandembedded/ (společenství vývojářů v Java ME)

Prostor na Vaše dotazy Nebojte se mě na cokoliv zeptat (Samozřejmě ne otázky typu: Kolik je hodin? )

KONEC