Programmieren mobiler Geräte Vorlesung WS 03/04 Dr. Martin Guggisberg und Dr. Christian Wattinger Vorkenntnisse: 4 Java Vorlesung: 4 Zeit: Pharmazentrum HS 2 4 Ort: DO 13 - 15 4 3 Kreditpunkte Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 1 Programmieren mobiler Geräte Praktikumsangebot: 4 U1075 PC-Labor 4 Do 15.00 - 16.00 / 16.00 - 17.00 Uhr 4 Registrieren für Praktikum mit unibas-email + passwort: 4 http://courses.cs.unibas.ch 4 Anschluss für eigenes Notebook 4 Testatbedingung für Kreditpunkte: Mitarbeit im Praktikum + Projektarbeit mit Präsentation Vorlesungs-ZIEL: 4 einen guten Überblick über mobile Technologien gewinnen 4 programmieren eigener Anwendungen mit mobilem Client-Teil und Serveranbindung Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 2 Programmieren mobiler Geräte WERKZEUG Vorlesungs-Homepage: 4 http://www.informatik.unibas.ch/lehre 4 Teilnehmerliste mit Natelnr. 4 Übungen 4 Unterlagen Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 3 Ressourcen http://www.joller-voss.ch/ JAVA Skripte (deutsch) http://www.mindview.net/ Free Java Books http://java.sun.com/ JAVA Home http://wireless.java.sun.com/ J2ME Home http://jakarta.apache.org/ Open Source Portal http://www.rfc-editor.org/ Computer Standarts http://www.servlets.com/ Beispiel Sourcecode http://www.oreilly.com/ Beispiel Sourcecode http://www.w3.org/ Internet Richtlinien http://www.alphaworks.ibm.com/xml Entwickler Seite von IBM http://www.xml.com/ XML Portal http://sourceforge.net/ Open Source Portal Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 4 Literatur B. Eckel, “Thinking in Java”, Second Edition, New Jersey, 2000 S. Allamaraju et al., "Professional Java Server Programming J2EE Edition", Wrox Press, 2000 Andrew S. Tanenbaum, "Computer Networks", Prentice Hall, 1996 L. Eilebrecht, "Apache Web-Server", MITP-Verlag Bonn, 2000 Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 5 Technologie Entwicklung Werkzeug Übung 23.10.2003 Organisation, Überblick, Einführung Ant Compilieren mit Ant 30.10.2003 Motivation/Markt, Übertragungs-Technologien Eclipse 1 Projektverwaltung mit Eclipse Eclipse 2 Debuggen mit Eclipse Mobile Geräte und Netzwerke 6.11.2003 Hardware, drahtlose Netze 13.11.2003 WAP2.0, XHTMLMP, WML, WMLScript, WTAI, WAE XML-Crash-Kurs Nokia WAP Toolkit (?)XHTMLMP + SMiL JAVA im mobilen Umfeld 20.11.2003 J2xE -> MIDP, KVM, GUI 1 Eclipse + J2ME ToolkitHello World + GUI 27.11.2003 4.12.2003 J2ME: GUI 2 + Graphik Graphik J2ME: RMS + IO PalmOS Emulator RMS Tomcat Servlet Kannel SMS mit Kannel 11.12.2003 MIDP 2.0 -> Media 18.12.2003 MIDP 2.0 -> Game Vernetzte Systeme mit mobilen Komponenten 8.1.2004 Grundlagen Netzwerk Protokolle, HTTP, Servlet 15.1.2004 Projektarbeitenvergabe SMS / MMS 22.1.2004 mobile Client - Server 1 Web Scraping Servlet mit Midlet 29.1.2004 mobile Client - Server 2 Web Service Projektarbeit 5.2.2004 mobile P2P Cocoon Projektarbeit 12.2.2004 Präsentation Arbeiten, Ausblick, Evaluation Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 6 Übersicht Java Basis Technologien Entwicklungs-Werkzeuge Ant Eclipse Wireless Toolkit Nokia WAP Toolkit PalmOS Emulator J2SE Java Archive ( JAR ) file format J2ME Mobile Information Device Profile (MIDP) J2EE Servlets Cocoon Übertragungs - Technologien Hardware Drahtlose Netze WAP 2.0 SMS / MMS Departement Informatik Universität Basel Mobile Geräte http://www.informatik.unibas.ch/lehre Programmieren mobiler Geräte Lektion 1: Übersicht 7 TECHNOLOGIE Überblick Mobile Geräte 4 Laptop/Notebook 4 Subnotebooks 4 PDA 4 Smart Phones 4 Mobiltelefone 4 ... 4 Embedded Systems Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 8 TECHNOLOGIE Einschränkungen kleines Display monochrom (?) limitierte Eingabemöglichkeiten (Tastatur oder Stift) langsame DatenVerbindung teure Daten-Verbindung VORTEIL: immer dabei günstiger Preis Departement Informatik Universität Basel langsame Rechengeschwindigkeit wenig Speicherkapazität Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 9 TECHNOLOGIE Nutzer weltweit Millionen Nutzer Million Subscribers Mobil-Telefone •Mobile phone Festnetz-Telefone •Fixed-line phone 1.400 1.200 1.000 •TV households Fernseh-Geräte 800 600 •PCs PC 400 200 0 1998 1999 2000 2001 2002 2003 2004 2005 Quelle: McKinsey Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 10 Mobiler Handel: m-Commerce Mobile Commerce Electronic Commerce everywhere & anytime Zu jeder Zeit Zeitgebunden Ortsgebunden Departement Informatik Universität Basel TECHNOLOGIE Traditional Commerce Programmieren mobiler Geräte Lektion 1: Übersicht An jedem Ort http://www.informatik.unibas.ch/lehre 11 Mobile Kommunikation Medien TECHNOLOGIE • Rahmenbedingungen (Reichweite, Bandbreite, Kosten) führen zu einem Mix an mobilen Kommunikationsformen. Reichweite 500-1000 km Satellitenfunk 10-50 km 1-6 km 10-500 m GSMFunkmodem UMTS DECT 5-15 m 1-1,5 m GPRS IEEE802.11b/g Bluetooth IrDA Kilobit - Bereich Departement Informatik Universität Basel Megabit - Bereich Programmieren mobiler Geräte Lektion 1: Übersicht Bandbreite http://www.informatik.unibas.ch/lehre 12 Kommunikation – Zonen TECHNOLOGIE IrDA • sehr geringer Stromverbrauch • keine Interferenz GSM, GPRS, UMTS... • Wide Area Network • universeller Zugriff Bluetooth • sehr kleine Zellen • ad-hoc Networking • klein und stromsparend • geringe Übertragungsleistung 802.11, HiperLAN... Wireless LAN • Wireless LAN • hohe Datenraten Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 13 WERKZEUG IDEs (Entwicklungsumgebungen) http://www.netbeans.org/ Departement Informatik Universität Basel http://www.borland.com/ Programmieren mobiler Geräte Lektion 1: Übersicht http://www.eclipse.org http://www.informatik.unibas.ch/lehre 14 Werkzeuge WERKZEUG Werkzeuge - Beispiele von Informatik Webserver download - Verzeichnis / Package Strukture von JAVA - Java Archive Repository JAR - Compilieren mit J2SE SDK - Automatisertes Compilieren mit ANT - JAVA Security Tools Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 15 Vorlesungen in Informatik WERKZEUG http://www.informatik.unibas.ch/lehre/ Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 16 Vorlesungen in Informatik WERKZEUG http://www.informatik.unibas.ch/lehre/ Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 17 Unterlagen zur Vorlesung WERKZEUG http://fgb.informatik.unibas.ch/fgb/lectures/aktuelle_vorlesungen/Mobil/online zu den Übungen Vorlesung als PDF Beispiele ZIP Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 18 Code Snippets WERKZEUG http://www.acknowledge.co.uk/snippets Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 19 Package Struktur von JAVA WERKZEUG import jax.ws2002.eigenesObjekt ... Klassen Verzeichnis ../classes/jax/ws2002/eigenesObjekt.class Quellen Verzeichnis ../src/jax/ws2002/eigenesObjekt.java Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 20 Compilieren mit J2SE SDK WERKZEUG cd com cd ack cd date [jax:com/ack/date] g% ls BasicDateFormatting.java GetTheCurrentTime.java [jax:com/ack/date] g% javac *.java [jax:com/ack/date] g% ls BasicDateFormatting.class GetTheCurrentTime.class BasicDateFormatting.java GetTheCurrentTime.java java com.ack.date.GetTheCurrentTime Mon Oct 06 23:56:40 CEST 2003 Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 21 Java Archive Repository JAR WERKZEUG Archiv erstellen: jar -cvf snippsets.jar src Manifest wurde hinzugefügt. Hinzufügen von: src/(ein = 0) (aus= 0)(gespeichert 0 %) Hinzufügen von: src/.DS_Store(ein = 6148) (aus= 222)(komprimiert 96 %) Hinzufügen von: src/com/(ein = 0) (aus= 0)(gespeichert 0 %) ... Archiv auspacken: jar -xvf snippsets.jar -c create -x extract -f file -v verbose -t topics Inhalt anschauen: jar -tf snippsets.jar Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 22 1.5 ANT - Make Tool für Java http://jakarta.apache.org/ WERKZEUG Download Unzip Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 23 Automatisierte Compilierung WERKZEUG ant Buildfile: build.xml prepare: compile: [javac] Compiling 52 source files to .../snippsets/build BUILD SUCCESSFUL Total time: 8 seconds Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 24 ANT - Make Tool für Java Targets <target name="A"/> <target name="B" depends="A"/> <target name="C" depends="B"/> <target name="D" depends="C"/> WERKZEUG Automatisierte Ausführung nach Abhängigkeiten: Bsp: >ant D Tasks <name attribute1="value1" attribute2="value2" ... /> Property <property name="src" value="src"/> <property name=“dist" value=“dist"/> Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 25 WERKZEUG Core Tasks <mkdir dir="${dist}"/> <tstamp> <format property="TODAY_UK" pattern="d-MMMM-yyyy" locale="en"/> </tstamp> <delete> <fileset dir="." includes="**/*.bak"/> </delete> <copy todir="../backup/dir" > <fileset dir="src_dir" /> </copy> Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 26 WERKZEUG Core Tasks II <java classname="test.Main" > <arg value="Hans"/> <classpath> <pathelement location="../test.jar"/> <pathelement path="${java.class.path}"/> </classpath> </java> <javac destdir="${build}" classpath="xyz.jar" debug="on"> <src path=”../src"/> <src path="../src2"/> <include name="mypackage/p1/**"/> <exclude name="mypackage/p1/testpackage/**"/> </javac> Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 27 WERKZEUG Bsp: build.xml <?xml version="1.0" ?> <!-- Lektion 1 Programmierung Mobiler Geraete --> <!-- ===========================================================--> <project name="mobil1" default="compile" basedir="."> <!-- Prepares the build directory --> <!-- ======================================= --> <target name="prepare"> <mkdir dir="build" /> </target> <!-- Compiles the source code --> <!-- ======================================== --> <target name="compile" depends="prepare"> <javac srcdir="src" destdir="build"> </javac> </target> <!-- Cleans up generated stuff --> <!-- ======================================= --> <target name="clean"> <delete dir="build" /> </target> </project> Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 28 WERKZEUG ANT Demo cd <<Projekt Verzeichniss>> ant Buildfile: build.xml prepare: [mkdir] Created dir: .../prakt_v1/snippsets/build compile: [javac] Compiling 52 source files to .../prakt_v1/snippsets/build BUILD SUCCESSFUL Total time: 8 seconds Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 29 WERKZEUG javadoc generieren <!-- =================================================================== --> <!-- Creates the API documentation --> <!-- =================================================================== --> <target name="javadocs" depends="prepare"> <mkdir dir="doc" /> <javadoc packagenames="com.ack.*" sourcepath="src" destdir="doc" author="true" version="true" windowtitle="Snippset API" doctitle="Vorlesung Programmierung Mobiler Geraete" footer="Copyright &amp;copy; 2000-2002 Uni Basel. See &lt;a href=&quot;http://fgb.informatik.unibas.ch&quot;&gt; fgb.informatik.unibas.ch&lt;/A&gt; for rights granted." /> </target> javadocs: [javadoc] Generating Javadoc [javadoc] Javadoc execution [javadoc] Loading source files for package com.ack.awt... [javadoc] Loading source files for package com.ack.awt.examples... ... [javadoc] Loading source files for package com.ack.xsl.jaxp... [javadoc] Constructing Javadoc information... [javadoc] Standard Doclet version 1.4.1 [javadoc] [javadoc] Building tree for all the packages and classes... [javadoc] Building index for all the packages and classes... [javadoc] Building index for all classes... Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 30 WERKZEUG weiteres: Unified Resource Locator URL Syntax: <prot.>//<user>:<password>@<host>:<port>/<url-path> telnet://eudora.ifi.unibas.ch:19 ftp://[email protected]/ http://www.google.ch/search?q=Uni+Basel Departement Informatik Universität Basel Programmieren mobiler Geräte Lektion 1: Übersicht http://www.informatik.unibas.ch/lehre 31