Web(Site)-Engineering Alexander Zinchenko 13.12.2005 1
Gliederung 1. Endgeräte 2. Betriebssysteme 3. Anwendungen 4. Trends 5. Konnektivität 6. Mobile Security 7. Web-Site Engineering 8. Anwendungs-Engineering 8.1 Entwicklungsoptionen 8.2 J2ME 9. Ausblick 2
Endgeräte 1 Endgeräte 1.1 Geschichtliche Entwicklung: von PDA zum Smartphone - Mobilität gewinnt Ende 90-er immer mehr an Bedeutung Unterstützt durch technologische Fortschritte 3
Endgeräte PDA (Personal Digital Assistent): handgroße Geräte mit Display QWERTZ-Tastatur oder Touchscreen Stellen viele Organizer- und PIM-Funktionalitäten zur Verfügung Schnittstellen zur Anbindung an andere mobile/stationäre Geräte (IR,WLAN, BT) Erste PDAs bereits 1985 (HP95LX von HP) Ende 90-er immer leistungsstärkere PDAs Trotzdem ehe geringe Verbreitung wegen hoher Preise und grösstenteils Business-Funktionalitäten 4
Endgeräte Handy-Boom Ende 90-er sinkende Gerätekosten Subventionen von Mobilfunkanbietern grosse Beliebtheit im Consumer-Bereich Ende 90-er: leistungsschwache Geräte, ermöglichen Gespräche und primitive Datenübertragungsfunktionen Ab 2000: neue leistungsstärkere Generationen von Handys bieten neue Kommunikations- und Datenaustausch Features an Java Unterstützung auf CLDC/MIDP Basis 5
Endgeräte Vereinigung der beiden Gerätetypen zum smart device 2001: Ericsson stellt eines der ersten mit Betriebssystem Symbian vor : schlaues Telefon", auch PDA-Phone vereint Leistungsumfang eines PDAs mit einem Mobiltelefon weitere smarte Funktionalitäten: - integrierte Camera - MP3 Player, Radio - TV-Tuner - GPS-System 6
Endgeräte 1.2 Wichtigste Merkmale: Funktionsumfang des BS per Software erweiterbar (1) Konnektivität, diverse Schnittstellen (2) PIM, Organizer und Office Funktionen Grosses Display Effizientere Bedienung durch QWERTZ-Tastatur oder Touchscreen Problem: Abgrenzung von Smart-Handys zunehmend leistungsstärkere Handys mit Smartphone -Charakter Geräte unterschiedlicher Hersteller tendieren oft stärker zu Handy als zu PDA (z.b. Motorola MPX 220) Merkmale (1) und (2) als Abgrenzungskriterien 7
Endgeräte Hardware Ausstattung Nokia 9500 Communicator Prozessor RAM, intern, extern Display Außen-Display Schnittstellen GPRS Betriebssystem Software Sonstige Features OMAP 150 MHz dual core 64 MB, 80MB, MMC-cards 640 x 200 Pixel (65k Farben) 128 x 128 Pixel (65k Farben) WLAN, Bluetooth, Infrarot, USB 2.0, Pop-Port 236,8 kbit/s (53,6kbit/s in DE) Symbian OS 7.0S Büro-Programme, Opera Browser, Mail-Client, QWERTZ-Tastatur, HTML,xHTML, Java-Script, Flash 5, IP4/IP6, IMAP4 Camera, MM-Player Motorola MPx220 Prozessor RAM, intern, extern Display Außen-Display Schnittstellen GPRS Betriebssystem Software Sonstige Features OMAP (204 MHz) 32MB, 32 MB, SD-cards 176 x 220 Pixel (65k Farben) 96 x 64 Pixel (4096 Farben) Bluetooth, Infrarot, USB 53,6 kbit/s Smartphone 2003 SE Media Player, Pocket Outlook, Pocket Internet Explorer, MSN Messenger, MS ActiveSync 1.2M Camera, MM-Player, Keypad 8
Betriebssysteme 2 Betriebssysteme 2.1 Symbian OS Zusammenschluss der wichtigsten Mobiltelefonhersteller - Nokia, Siemens, Sony Ericsson, Samsung Betriebssystem für der beteiligten Unternehmen Aktuelle Version: SymbianOS v9.x Features: präemptives Multitasking, Multithreading, Speicherschutz PIM, Messaging, HTTP-, WAP-Browser Java MIDP 2.0 and CLDC Communication services Connectivity services 9
Betriebssysteme SymbianOS: Nokia Communicator 9500, Verwaltung SymbianOS: Nokia Communicator 9500, Mail Client 10
Betriebssysteme 2.2 Windows CE (Pocket PC, Windows Smartphone) Frühere Versionen: Hardware-Abhängigkeiten (besonders bzgl. CPU-Typen) Seit Pocket PC Version 2002: nur noch ARM-CPUs unterstützt Windows CE.NET(2003): Ausführung von verwalteten Programmen weitgehend systemunabhängig Aktuelle Version: Windows Mobile 5.0 Softwareangebot wächst rapide Unterstützung der Software-Entwicklung durch.net Development Kits und Emulatoren 11
Betriebssysteme Features: Menüführung ähnlich Desktop-Windows leistungsfähigere Handschrifterkennung präemptives Multithreading, Semaphore, priorisierte Interrupts Pocket Office Anwendungen: Word, Excel, Organizer,... 12
Betriebssysteme 2.3 PalmOS Zu PDA Zeiten sehr erfolgreiches Handheld-Betriebssystem im Jahr 2000 waren 70 % aller PDAs PalmOS-basiert derzeit immer mehr durch Windows Mobile verdrängt Features: zahlreiche Organizer-Funktionen und Kommunikationsdienste Kommunikationsschnittstellen: IrDA, Bluetooth, seriell, WLAN Verwaltung von Ressourcen und Energieverwaltung Bedienung per Stift, führt Handschrifterkennung ein Verwalten der Daten im batterie-gepufferten Speicher kooperatives Multithreading, Semaphore, priorisierte Interrupts Multitasking erst in der neusten PalmOS 6 Vielfalt an vorhandener Software(Freeware) für jeden Zweck 13
Betriebssysteme PalmOS 14
Anwendungen 3 Anwendungen Wireless e-mail, Internet, Web browsing, fax Personal information management (PIM) Online banking LAN connectivity Handschrifterkennung Datenübertragung zwischen mobile/static devices Remote control Unified messaging Always-On-Funktionalität: push services für Mails LBS (location based services) Kontextsensitive Dienste 15
Anwendungen Weitere Beispiele: Remote Datenbankzugriff Remote CRM Wbm-learning SmallServ: a simple http server for Symbian OS NewsReader http://www.symbian.com/developer/techlib/staffapps_cpp.html 16
Trends 4 Trends Evolution von Handys zu Leistungsfähigere Hardware Ausstattung Steigende Anzahl von Zusatzfunktionen und Features Evolution von PDAs zu Bereits durch Palm angekündigt Umstieg auf Windows Mobile 17
Konnektivität 5 Konnektivität 5.1 Mobilfunktechnologien alle verfügen über die Möglichkeit Daten über Mobilfunknetze zu übertragen 2G Geräte (Handys): Datenübertragung mittels CSD(Circuit Switching Data) langsam(ca. 9,6 kbps) leitungsvermittelt: teuer sowohl für Netzbetreiber als auch für Kunden 2,5G Geräte: Erweiterung von 2G um schnellere Datenübertragungen mittels HCSD: durch Kanalbündelung 14,4 kbit/s bis zu 57,6 kbit/s GPRS(General Packet Radio Service): paketorientierte Datenübertragungsmethode bis zu 53,6 kbit/s 18
Konnektivität 3G Geräte: hohe Datenraten durch UMTS-Netze Übertragungsrate geschwindigkeitsabhängig: zwischen 144kbps und 2Mbps UMTS ermöglicht auf mobilen Geräten MultimediaAnwendungen, Downloads, Videokonferenzen uvm. gleichzeitige Einbuchung der UMTS-Geräte in mehreren Zellen - zuverlässigere Verbindungen - schnelleres Handover - effizientere Auslastung und Resourcenverwaltung der Zellen 19
Konnektivität 5.2 Gerätespezifische optionale Schnittstellen IrDA: Punkt-zu-Punkt-Übertragung von Daten durch Infrarotlicht zwischen eng zusammenliegenden Geräten Entfernung: ca. 1-2 m (Einfallswinkel unter 30!!!) Übertragungsrate: 115 kbps Umständlich, ineffizient, veraltet Neue Standards in Entwicklung WLAN: noch bei wenigen angeboten Ermöglicht flexible Bildung von ad-hoc und Infrastrukturnetzen 20
Konnektivität Bluetooth: zur drahtlosen Anbindung von Peripherie und mobilen Geräten eingesetzt Synchrone und asynchrone Übertragungsmodi bis zu 751 kbps Reichweite: 1 100m (offiziell) Bluetooth 2.0: EDR (Enhanced Data Rate) Erweiterung: Durchsatz bis zu 2.2Mbps Probleme: bis jetzt verschiedene Schnittstellentechnologien technologieabhängige Softwareentwicklung keine transparente Konnektivität 21
Konnektivität 5.3 Trends Mobilfunk 4G Konvergenz von derzeit getrennten Diensten, Netztypen, Übertragungstechnologien Konvergenz zwischen Mobilfunk und Festnetz, inklusive VoIP hybride Netzwerke nahtloser Wechsel zwischen unterschiedlichen Netztypen Nicht das Netz, sondern die Dienstleistungen stehen im Mittelpunkt hohe Bandbreiten und niedrige Betriebskosten Technologieunabhängige Applikationsplattform Userzentrierte Entwicklung von Anwendungen und Technologien 22
Konnektivität Konvergenz der Kommunikationstechnologien 23
Mobile Security 6 Mobile Security Noch vor wenigen Jahren waren mobile Geräte von Bedrohungen kaum betroffen Aktuell gewinnt die Betrachtung der mobilen Security immer mehr an Bedeutung, wegen - enormer Verbreitung von mobilen Geräten - stark gestiegener Konnektivität der Geräte - sinkender Online-Kosten (erste Flatrates) Erste Bedrohungen und Angriffsmöglichkeiten: - Sicherheitslücken in Schnittstellentechnologien (Bluetooth) - Privacy Problematiken ( Push-Dienste, Lokationsbestimmung) - Viren und Trojaner für 24
Mobile Security 6.1 Beispiele: Viren und Trojaner: Wurm Cabir (SymbianOS): Verbreitet sich über Bluetooth Sucht nach neuen Targets in Bluetooth Umgebung Startet automatisch mit SymbianOS Zerstört keine Daten Trojaner MetalGier (SymbianOS): Fake Version von Spiel Metal Gier Solid Deaktiviert mögliche Antivirenprogramme und installiert Cabir-Wurm Deaktiviert Handset s Menü button 25
Mobile Security Trojaner Skull.D (SymbianOS): gibt sich als neue Version von Flash Player deaktiviert Anwendungen, installiert Cabir und informiert Benutzer über sich überschreibt alle existierenden Anwendungen Trojaner Gavno (SymbianOS): gibt sich als wichtiger patch aus sabotiert Kernfunktionen des : Telefonie, SMS, Mail 6.2 Trends verbesserte Sicherheitsmechanismen der Kommunikationstechnologien erste Antiviren-Software für (F-Secure) Entwicklung der Viren auch für andere BS 26
Web-Site Engineering für 7 Web-Site Engineering für WAP: Initiiert durch WAP-Forum in der Zeit der 2G Kommunikationstechnik für effiziente Übertragung und Darstellung einfacher Inhalte auf leistungsschwachen mobilen (2G) Geräten inzwischen überholt wegen modernerer Technologien (UMTS, 3G-) HTML/xHTML/XML 27
Web-Site Engineering für 7.1 Wireless Application Protocol (WAP) Vorteile: offene Protokoll-Architektur angepasst für mobile Geräte Integration und Erweiterung von vorhandenen Standards Interoperabilität zwischen Endgeräten unterschiedlicher Hersteller und Basisdiensten der verschiedenen Mobilfunkstandards ermöglicht effizienten Zugriff auf WML programmierte Seiten effiziente Datenkodierung reduziert Kommunikationsaufwand Nachteile: Web-Seiten müssen mit WML (Wireless Markup Language) programmiert werden geeignet nur für Darstellung von einfachen Texten und Bildern 28
Web-Site Engineering für WML: basiert auf XML mit speziellen Elementen für die drahtlose Übertragung WML-Seite wird als "Deck" bezeichnet unterteilt in "Cards" (die auf Display angezeigt werden) 29
Web-Site Engineering für 7.2 HTML/xHTML/XML Ziel: Interoperable Darstellung von multimedialen Internetinhalten auf mobilen und stationären Geräten Wurde möglich durch: höhere Übertragungsraten in 2,5G und 3G Kommunikationsnetzen leistungsfähigere Endgeräte hochauflösende Displays Spätestens ab 4G-Kommunikationssystemen wird WAP vollständig vedrängt 30
Web-Site Engineering für Clientseitige Herausforderungen: Mobile xhtml/xml Browser notwendig Wichtigste Aufgabe: Seiteninhalte parsen und auf die verfügbare Displaygrösse angepassen Verantwortlich für die Wahl der passenden Darstellung (Style Sheet) Vorreiter: Opera Browser for Mobile Small-Screen Rendering Technology: verändert Geometrie der Seite Opera Mobile Accelerator: eliminiert unnötige Inhalte vor dem Download Probleme mit der Darstellung von Skripten und Frames 31
Web-Site Engineering für Serverseitige Herausforderungen: In Richtung 4G: Möglichst xml für Web-Site Engineering verwenden Trennung von Inhalt, Struktur und Darstellung Unterschiedliche Darstellungen anbieten Eigenschaften von Client-Geräten berücksichtigen: - JPEG-2000 Bilder: geeignete Version des Bildes anbieten - Animationen durch statische Elemente ersetzen 32
Web-Site Engineering für 7.3 Vorschläge für interoperables WebSite-Engineering (Opera Developer s Corner) 1. Web-Seiten mit mehreren Views: media dependent CSS - View für einen Media-Typ effizient entwerfen - Views für andere Media-Typen ergeben sich durch Anpassung von wenigen Zeilen <!-- This stylesheet will be displayed by all --> <link rel="stylesheet" href="all.css"> <!-- This stylesheet will only be displayed on PC screens --> <link rel="stylesheet" href="desktop.css" media="screen"> <!-- This stylesheet will only be used for printing --> <link rel="stylesheet" href="printout.css" media="print"> <!-- This stylesheet will be used by devices --> <link rel="stylesheet" href="phone.css" media="handheld"> 33
Web-Site Engineering für 2. Document order überlegt wählen: wichtige Elemente am Anfang zusätzliche Elemente(z.B. Navigationssektionen) am Ende - können schnell übersprungen werden - benutzt von Operas Small-Screen Rendering Technologie 3. Kompakten Code begünstigen: Rule Of Thumb: so wenig Markups wie möglich, so viel wie nötig Ersetze alle font tags mit CSS Klassen (Vorteil: Semantic Meaning) <h3>a Headline</h3> statt <p><font size="+2" face="helvetica"><b>a Headline</b></font></p> Links auf externe Dateien statt Einbettung von scripts/stylesheets 34
Web-Site Engineering für 4. Effiziente Graphiken Spezifiziere immer image height und width in source code Verwende alternate text bei Bildern - insbesondere für Navigationstasten, um Funktionalität sicherzustellen <h1><img alt="an Image Headline" /></h1 > Verwende statt white-spaces relative units margin-left: 10% Setze Display: none für unwichtige Elemente #huge_menu{display: none;} 35
Web-Site Engineering für 5. Begrenzte Eingabemöglichkeiten berücksichtigen bei der Wahl von input time-outs keine Maus keine mouseover und mouseout events 6. Darstellungsproblematiken vermeiden max-width und max-height sind sehr empfehlenswert in handheld style sheet Fallbacks für JavaScript, plug-ins, dynamic effects und menus bereitstellen Vermeide frames, pop-ups, context menus Vermeide tief verschachtelte Tabellen Wähle guten Kontrast für Vordergrund und Hintergrund 36
Web-Site Engineering für 7.4 Trends: Media Queries: Erlauben präzisere Beschreibung und Angaben zu Style Sheets Media Query besteht aus media type und expressions (bzgl. media features) <link rel="stylesheet" media="screen and (color)" href="http://www.example.com/color" /> User Agent verantwortlich für die Wahl der passenden Darstellung(Style Sheet) 37
Anwendungs-Engineering für 8 Anwendungs-Engineering für 8.1 Entwicklungsoptionen: grobe Einteilung Spezielle SDKs der Hersteller mobiler Geräte Umfangreiche Möglichkeiten für die Nutzung spezieller Gerätefunktionen Geräte- und Plattformabhängige Anwendungen SDKs und Entwicklungsumgebungen für jeweilige Betriebssysteme Umfangreiche Möglichkeiten für die Nutzung der (low-level) BS-Funktionen BS- (u. U. Version-) abhängige Anwendungen 38
Anwendungs-Engineering für Java 2 Micro Edition (J2ME) Geräte- und Betriebssystemunabhängige Anwendungen nach WORA-Prinzip J2ME-Anwendungen laufen in einer Sandbox kein direkter Zugriff auf BS-Funktionen!!! - aus Gründen der Datensicherheit sehr begrüssenswert - erschwert Implementierung von Anwendungen, die auf BS-Zugriffe angewiesen sind Speicherung der Daten in Record Management System innerhalb der Sandbox 39
Anwendungs-Engineering für 8.2 J2ME 8.2.1 Übersicht 40
Anwendungs-Engineering für Optionale Packete Ergänzende APIs für spezielle Anwendungsbereiche Profile Erweiterte APIs für spezielle Endgerätenklassen Konfiguration angepasste VM Basis-API für Geräte-Klasse 41
Anwendungs-Engineering für CDC (Connected Device Configuration): JVM-Implementierung für leistungsstärkere mobile Geräte (PDAs) Personal Profile: umfangreichster CDC-Profil volle GUI-Kompatibilität mit dem java.awt Paket JAVA-Applets ausführbar 42
Anwendungs-Engineering für CLDC (Connected Limited Device Configuration): Umfasst: Definition der virtuellen Java Maschine KVM für leistungsschwächere mobile Geräte elementare Bibliotheken (java.lang.*, java.util.*) die I/O-Operationen unterstützenden Klassen Netzwerkkommunikation Trennung der Applikation vom Betriebssystem Unicode-Unterstützung Versionen: CLDC 1.0, CLDC 1.1 wichtig: Gleitkomma-Berechnungen erst in CLDC 1.1 unterstützt 43
Anwendungs-Engineering für CLDC Klassen-Bibliotheken 44
Anwendungs-Engineering für MIDP: setzt auf CLDC auf und erweitert deren Klassenbibliothek speziell auf die Fähigkeiten kleiner mobiler Endgeräte ausgelegt J2ME Applikationen sind immer für ein Profile entwickelt MIDP 1.0 (verwendet CLDC 1.0) ermöglicht Aufbau eines GUIs Bearbeitung, der vom Benutzer eingegebenen Daten Darstellung von Grafikdateien Verwendung von Timern Daten in/von interner Datenbank speichern/lesen HTTP-Verbindungen herstellen MIDP 2.0 (verwendet CLCD 1.1) erweitert MIDP 1.0 um sichere HTTP-Verbindungen über SSL digitale Unterschriften OTA (over-the-air) Unterstützung 45
Anwendungs-Engineering für Optionale Pakete Java APIs für Bluetooth Webservices API Location API Wireless Messaging API PDA Optional Packages Mobile Media API SIP API 46
Anwendungs-Engineering für 8.2.2 Einführung in die MIDP-Programmierung Entwicklungsumgebungen: J2ME Wireless Toolkit von Sun Microsystems (im Zusammenspiel mit Eclipse oder Borland JBuilder) - enthält auch viele einfache Beispiele mit Anleitungen Nokia Series60 MIDP Concept SDK Motorola SDK for J2ME Siemens Mobility Toolkit 47
Anwendungs-Engineering für MIDlets Anwendungen für das MIDP heißen MIDlets Klasse MIDlet definiert 3 Hauptmethoden - startapp(), pauseapp() und destroyapp(), die in jedem MIDlet zu implementieren sind - wichtig: startapp() wir sowohl beim ersten Start als auch nach jeder Rückkehr aus Paused aufgerufen MIDlets besitzen wie Applets keine main() Methode und werden unter Kontrolle der AMS (Application Management Software) zur Ausführung gebracht: - herunterladen, installieren und löschen von MIDlets - Kommunikation zwischen der AMS und Web-Servern erfolgt über HTTP 48
Anwendungs-Engineering für MIDlet-Suite Ein oder mehrere MIDlets bilden eine MIDlet-Suite Eine MIDlet-Suite ist die kleinste installierbare Einheit Vorteile der Zuordnung der MIDlets zu einer MIDlet-Suite: gemeinsame Berechtigungspolitik Zugriff auf gemeinsame persistente Datenbestände Kommikation durch static Variablen Applikationsdeskriptor (.jad-datei ) 49
Anwendungs-Engineering für 8.2.3 MIDlets schreiben Quick Guide: Beispiel: Einfaches MIDlet 1. Kontrolle über Device-Display erlangen: Display display = Display.getDisplay(this); 2. Displayable-Elemente auf Display darstellen lassen: display.setcurrent(startscreen = new Form( Welcome )); 3. Gewünschte Items auf Form platzieren: startscreen.append(amount_tf = new TextField ("Money", "10", 256, TextField.NUMERIC)); 4. Commands hinzufügen: startscreen.addcommand(exitcommand = new Command( "Exit", Command.SCREEN, 1)); startscreen.setcommandlistener(this); 5. commandaction implemetieren: if (c == exitcommand) 50
Anwendungs-Engineering für Generic Connection Framework(GCF): MIDP Netzwerkprogrammierung Beispiel: Bilder laden 1. http-verbindung herstellen und (Daten-)Inputstream öffnen httpcon = (HttpConnection) Connector.open(imgURL); httpinput = httpcon.opendatainputstream(); 2. Daten einlesen: int size = 0; // read all image data... while ((size = httpinput.read())!= -1) imagebuffer.write(size); 3. Eingelesene Daten als Bild darstellen: byte byteimage[] = imagebuffer.tobytearray(); Image image = Image.createImage(byteImage, 0, byteimage.length); 51
Anwendungs-Engineering für Weitere Pakete und Klassen: Low-Level API: Kontrolle von Bildschirminhalt (Canvas) und Tasten-Events (Game API) XML Verarbeitung durch JSR 172 Optional Package JAXP Web Services Optional Package JAX-RPC 52
Ausblick 9 Ausblick leistungsfähigere multifunktionale smarte Endgeräte Konvergenz der Technologien sinkende Online-Kosten für mobile Nutzung enorme Verbreitung und Einsatz von alway-on: durchdringende Konnektivität Smartphone als unentbehrlicher Begleiter des Menschen Pervasive Computing: Alles umfassende und durchdringende Kommunikation und Informationsverarbeitung mit smarten Endgeräten zu jedem beliebigen Zeitpunkt und an jedem beliebigen Ort 53
Ende Ende Vielen Dank für die Aufmerksamkeit! Fragen? 54
Quellen Pervasive Computing, Uni Erlangen, Lehrstuhl 7 http://www.niser.org.my/resources/worms_and_trojans_go_modile.pdf Seminar Mobile Computing SS 2003, Uni Osnabrück http://www.martin-dehler.de/download/opl_die_open_programming_language.pdf WORMS AND TROJANS GO MOBILE http://my.opera.com/community/dev/device/ OPL Die Open Programming Language http://www7.informatik.uni-erlangen.de/~dulz/pvc/05/ Opera Developer's corner http://www-lehre.inf.uos.de/mc/ PDA als Datenerfassungsgeräte, Wirtschaftsuniversität Wien http://wwwai.wu-wien.ac.at/~koch/lehre/inf-sem-ss-02/gros/pda.pdf http://www.symbian.com Mobilfunk 4G http://www.web-media.at/374202.htm http://www.w3.org/tr/css3-mediaqueries/ 55