740 likes | 846 Views
Mobile Access Initiative und Device Independence Initiative. Führicht Robert Parzer Stefan Schartner Eva. Einleitung zu Device Independence. Die Gesellschaft im Wandel Mobilität Zeitknappheit Internet in Beruf und Freizeit Internet umfangreiche Informationsplattform
E N D
Mobile Access Initiative und Device Independence Initiative Führicht Robert Parzer Stefan Schartner Eva
Einleitung zu Device Independence • Die Gesellschaft im Wandel • Mobilität • Zeitknappheit • Internet in Beruf und Freizeit • Internet umfangreiche Informationsplattform • Zielmedium von Applikationen muss sich ändern • Weg vom Browser auf dem Desktop • Hin zu verschiedenen Endgeräten (Desktop, Handy, PDA, …)
Was ist Device Independence • Erweiterung von bestehenden und künftigen Web-Applikationen um verschiedenste Endgeräte bedienen zu können • Benutzer- und Gerätespezifische Antworten • Abhängig unter anderem von • Hardware (Bildschirmgröße, Auflösung, Speicher, …) • Ausgabemodalitäten (visuell, audio, taktil, …) • Software (verschiedene Plattformen)
Die Standards • Unterschiede bei den Endgeräten • Display • Auflösung, Farbtiefe, Größe, Ausrichtung • Eingabemöglichkeiten • Desktop-Tastatur, Notebook-Tastatur, Funktionstasten (PDA), Stift, Maus, … • Übertragungsgeschwindigkeiten • Breitband, ISDN, Modem, … • Ausgabemöglichkeiten • Display, Sprachausgabe, LCD, Drucker, Force Feedback, … • Weitere Fähigkeiten der Hardware • Filme, Sound, Animationen wiedergeben, Akkuleistung, …
Was ist eine Web-Applikation (Webseite)? Definition des W3C einer Web-Applikation (Webseite): „Anwendung die aus Inhalt, Präsentation, Navigation, Interaktion und Business Logic besteht. Die Bandbreit reicht von einer einfachen, nicht interaktiven Anwendung (Informationsseiten) bis zur komplexen, sehr funktionellen Anwendung (E-Commerce.
Elemente einer Webseite - Stil • Stil • Aussehen von Textelementen (Textausrichtung, Einrückungen) • Von Bildern, Graphiken, Video, Audio • Veränderung des Stils betrifft Darstellung des Inhalts nicht aber den Inhalt selbst • Techniken • Autor im Vorhinein Stil der Darstellung auswählt, über Bedingungen ausgewählt (CSS Media Queries) • clientseitige Scripts: für jedes Gerät einzeln nötig, nach Ansicht des W3C nicht für Device-Independece geeignet • serverseitige Scripts: Grundlage für Standards wie CC/PP
Elemente einer Webseite - Layout • Layout • Physische Anordnung der Textelemente, Bilder, … • Designer müssen Rücksicht Hardware nehmen • Kein Display -> Sprachausgabe des Textes • Reihenfolge muss festgelegt werden • Techniken für Anpassung des Layouts • Hardwaremerkmale müssen bekannt sein • Inhalt von Layout getrennt • Oft Layout in Zonen aufgeteilt, Text wird durch ID zugeordnet • -> SMIL
Elemente einer Webseite - Layout • Beispiel für SMIL <smil xmlns=„http://www.w3c.org/2001/SMIL20/“> <head> <layout> <root-layout width=„320“ height=„480“/> <region id=„a“ top=„5“ bottom=„100“/> <region id=„b“ top=„200“ bottom=„200“/> </layout> </head> <body> <text region=„a“ src=„text.html“/> …
Elemente einer Webseite -Inhalt • Inhalt • Text, Graphik, Bilder, Audio, Video, … • Statischer Inhalt • Meist aus Text und fix platzierten Medien • Kein Server zum Zusammensetzen einer Seite nötig • Einfachheit der Erstellung muss sich auf Device Independence übertragen lassen
Elemente einer Webseite - Inhalt • Dynamische generierte Anwendungsdaten • Aus Datenbanken oder Webservices • Reine Information, keine Präsentationsdaten • z.B. Preise, Produktnummern, … • Formatierung muss im Nachhinein hinzugefügt werden • Mögliches Problem • Menge der Daten im Vorhinein nicht bekannt • Kann Endgerät überfordern • Forderung: Möglichkeit zur Anpassung der Menge
Elemente einer Webseite - Inhalt • Dynamisch generierte Daten mit Formatierungsinformationen • Pressemeldungen, Produktkatalog, Suchergebnisse, … • Haben z.B. Formatierung für ihre Überschrift • Meist in HTML • Forderung • Auch für andere Anwendungen, Geräte • Entsprechende Transformationstechniken
Elemente einer Webseite - Inhalt • Designer • Erstellung direkt von Endgeräten beeinflusst • Oft mehrere Versionen des gleichen Inhalts • Techniken • Metainformationen über Inhalt (XML, SMIL, CSS Media Queries)
Elemente einer Webseite - Struktur • Grundlage für Beziehung zwischen Seiten • Wesentlicher Einfluss auf Navigation • Einige Typen: • Linear • Hierarchisch • Netz
Elemente einer Webseite - Struktur • Techniken • Aggregation • Zusammenbringen verschiedener Quellen • Eigene Struktur • In Erstellungsphase, während Adaption, am Client • Durch unterschiedliche Phasen verschiedene Techniken • XInclude • SSI • JSP Include
Elemente einer Webseite - Struktur • Techniken • Dekomposition • Zerlegen von Inhalt in kleinere Einheiten • Ursprüngliche Struktur geht verloren • bei beschränken Fähigkeiten des Clients • Mögliche Ergebnisse bei linearem Inhalt • Paper Pages (Drucker) • Tabbed Pages (Karteikarten) • Wizards (oft für Formulare)
Elemente einer Webseite - Struktur • Techniken Dekomposition Fortsetzung… • Oft ist Nummerierung notwendig • Seitennummer im vorhinein nicht gekannt • Möglichkeit zur Definition von Referenzen • Werden je nach Struktur „übersetzt“ • z.B. siehe Seite 5, für weiter hier klicken
Elemente einer Webseite - Navigation • Zwischen und innerhalb einzelner Seiten • Designer legen Weg fest den Benutzer nehmen können/sollen • Hauptsächlich durch Hyperlinks • Problem der Darstellung • Meist mit langer Textbeschreibung • „Um weitere Hilfe zu erhalten klicken sie hier“ • Auf kleinem Display besser: • „Hilfe“
Elemente einer Webseite - Navigation • Menü • Hierarchisch strukturiert • außerhalb des eigentlichen Inhalts • direkter zugriff • Tastatur-Shortcuts • Direkte Auswahl durch Tastenkürzel • Problem bei verkleinerter oder gar keiner Tastatur
Verschiedene Designtechniken • „Multiple Authoring“ • Für jedes Gerät (-Klasse) • Eigene Version des Inhalts • Keine Unterstützung für nicht berücksichtigte Geräte • Brauchbar für Multimediainhalten (Filme, Audio, Bilder, …) • Muss Weg geben um Inhalt nach den Eigenschaften auszuwählen • Server (URL Redirection, Proxy, Client)
Verschiedene Designtechniken • „Single Authoring“ • Nur eine Version des Inhalte • Eine Adaptionstechnik muss für Übersetzung und Anpassung sorgen • Zusätzliche Metainformationen zur Unterstützung • Markup, Attribute, Kommentare • CSS Media Queries • Regeln von Autor erstellt • „Flexible Authoring • Mischung der Techniken
Adaption des Inhalts • Von Hand durch den Autor • Wünschenswert automatisch ohne Zutun des Autors • Auswählen, Entfernen (Selection/Remove) • Von nicht gewünschtem Inhalt • Augrund von Entscheidungsmechanismen • URL-Redirektion • Server nimmt URL entgegen, leitet Client weiter • Problem: zurückgelieferte URL nicht „Merkbar“, Bookmarks nicht geräteunabhängig
Adaption des Inhalts • In-Document Decision • Durch Auswertung von Entscheidungstags im Content • Einzeln (Conditional Selection) • Wenn „true“ wird Inhalt angezeigt • Als Liste (Switch Selection) • Solange durchsucht bis ein Tag „true“ oder Defaultelement • Praktische Anwendung: SMIL • Problem: zuerst muss gesamtes Dokument übertragen werden
Adaption des Inhalts • Adaption durch Abkürzung • Lange Textpassagen für kleine Endgeräte abgekürzt • Weiterer Text am Dokumentende oder als eigene Seite • Problem wenn der Sinn verändert wird • „President eats astronaut foot during visit to launch site“ • „President eats astronaut …“
Adaption des Inhalts • Transformation • Format, Beschreibungssprache in eine andere umgeformt • Techniken • XSLT (HTML->WML, XML->SVG) • DOM (für markup) • Image Filter/Converter • Enthaltene Medien (z.B. Bilder) können dabei beibehalten werden oder ebenfalls Transformiert werden
Adaption Processors • Können Inhalte einer bestimmten Form in ein anderes Format umwandeln • Auf einfacher Ebene (HTML für verschiedene Browser) • komplex: „übersetzen“ zwischen verschiedenen Medien • Graphisch -> Audio • Serverseitige Adaption • Entsprechende Informationen vorausgesetzt • Bandbreite optimal ausnutzen (RTP, RTSP)
Adaption Processors • Fortsetzung serverseitige Adaption… • Variant Selection • Server hat Auswahl an Varianten des Inhalts • Wählt passenden für Client aus • Media Adaption • Für Bilder, Audio, Video • Auflösung, Farbtiefe, Format (.jpg -> .wbmp) geändert
Adaption Processors • clientseitige Adaption • Image Resizing • Skalierung auf dem Endgerät • z.B. Landkarte • Unterschiedliche Skalierung Text und Graphik, damit Text noch lesbar bleibt • Textteile weglassen
Adaption Processors • Form Resizing • Größenänderung eines Eingabeformulares • Formularelemente verkleinern • Position der Elemente verändern • Elemente in kleinere adäquate Form umwandeln
Adaption Processors • Adaption auf einem Proxy • Proxy leitet Anfrage an Server weiter • passt dessen Antwort an die Bedürfnisse des Clients an
Kritische Würdigung der Standards • Momentaner W3C-Status: „Group Notes“ • Recht früh, wenig konkret, Denkansätze • Einzig CC/PP Standard („Recommendation“) wirkt einigermaßen ausgereift • Übergeordneter Zusammenhalt zwischen den Standards fehlt uns. • Umfangreicher Glossar vorhanden • Keine brauchbare Referenz/Richtlinien zur Entwicklung konkreter ubiquitärer Webapplikationen.
CC/PP - Überblick • Composite Capabilities / Preference Profiles • Recommendation des W3C [W3C04_01] • XML basierte Sprache zur Beschreibung der Eigenschaften eines Endgerätes z.B.: • Max. Auflösung • Javaunterstützung • zur Verfügung stehender Speicher • usw.
CC/PP • W3C Standard umfasst kein Übertragungsprotokoll für CC/PP • CC/PPEx und W-HTTP • CC/PP ist ohne UAProf in der Praxis nicht anwendbar, weil Spezifikation von konkreten Attributen fehlt. • Framework • Datentypen für Attribute • Mechanismus für Standardwerte
CC/PP - Aufbau • Ein CC/PP Profil ist immer aus Komponenten und Attributen aufgebaut • Komponenten: • Hauptkomponente des spezifizierten Endgerätes (z.B.: Hardware, Software) • Attribute: • Aspekt der Hauptkomponente und seine Ausprägung (z.B.: Speichergröße: 128KB)
CC/PP - Datentypen • einfache Typen • String • Integer • Rational • zusammengesetzte Typen • rdf:Bag (Menge von Werten ohne bestimmte Reihenfolge) • rdf:Seq (Reihenfolge der Werte hat eine Bedeutung)
CC/PP - Defaultwerte • Bequeme Art zwei annähernd gleiche Geräte mit dem selben Profil anzusprechen <ccpp:component> <ex:HardwarePlatform rdf:about="http://www.example.com/ profile#TerminalHardware"> <ccpp:defaults rdf:resource="http://www.example.com/ schema#HWDefault" /> <ex:memoryMb>32</ex:memoryMb> </ex:HardwarePlatform> </ccpp:component>
CC/PP - UAProf • User Agent Profiles • Spezifiziert von der Open Mobile Alliance (OMA) 1999 • Konkrete Attribute für Endgeräte werden spezifiziert • Vokabular für CC/PP • Wird in der Praxis eingesetzt
CC/PPEx – Übertragung des Profils zum Server Repository Holt Profil aus der Repository URL zum Profil in der Repository und etwaige Änderungen Server Client An des Endgerät angepasste Seite
CC/PP – W-HTTP • Alternative zu CC/PPEx • Kompatibel zu HTTP 1.1 • CC/PPEx ist Anwendung des HTTP Extension Frameworks • bedingt kompatibel zu HTTP 1.1 • von der OMA in der UAProf Spezifikation [OMA03]
CC/PP - Implementierungen • DELI entwickelt in den HPLabs von Dr. Mark H. Butler Framework zur Verwendung von Profildaten in Java Servlets • DICE JavaServlet für Tomcat • X-Smiles Java basierter Browser, der CC/PP an den • Jigsaw Java basierter Webserver des W3C
Kriterien für Webapplikationen • Unabhängigkeit vom Endgerät • Vorlieben des Benutzers • gerätespezifische Response auf ein Request • Dazu zwei Prinzipien beachten • Information über den Kontext • Adaptierung gemäß der Kontextparameter
Kriterien für Webapplikationen Kontext Properties spezifizieren Information die man für spezifische Adaptierung benötigt. • Ort • Zeit • Netzwerk • Endgerät • Applikation • Benutzer 1. Welche dieser Properties werden unterstützt? 2. Können eigene Properties definiert werden?
Kriterien für Webapplikationen Eigenschaften von Kontext Properties 3. Werte von Properties verfolgen • Properties die sich mit Zeit ändern • Chronologie 4. Validierung 5. Persistente Speicherung • Art der Speicherung: Datenbank oder Profile • Wiederverwendbarkeit 6. Unterscheidung zwischen physischer und logischer Kontextinformation • Abstraktionsgrad • Physisch: User ID • Logisch: Profilinformationen des Benutzers
Kriterien für Webapplikationen 7. Statische oder Dynamische Properties? • Statisch: am Anfang festgelegt, ändern sich nicht mehr, z. B. Entscheidung für Sprache • Dynamisch: Wert ändert sich während der Dauer der Applikation, z. B. verschiedene Endgeräteparameter • Erst durch Dynamische wird Device Independence Realität 8. Dynamische Properties – wie wird veränderter Wert bemerkt? • Periodische Abfrage • Event-Listener-Modell • Als Parameter im Request bei jeder Anfrage neu ermittelt
Kriterien für Webapplikationen Adaptierung: maßgeschneiderter Inhalt für Endgeräte 9. Darstellung des Inhalts der Applikation • Datenbank – Semantik! • HTML-Seiten – statisch! 10. Architektur – wo findet Adaptierung statt? • End-to-End Kommunikation • Server • Client • Intermediary Anstatz • Proxy Beides hat Vor- und Nachteile
Kriterien für Webapplikationen 11. Granularität der Adaptierung • Jedes Endgerät als individuelle Einheit • Endgeräte als Klassen gesehen, Adaptierung nur klassenspezifisch 12. Zwischenergebnisse von Adaptierungen wieder verwendet? 13. Unterstützte Modalitäten bei Adaptierung • Gängig: visuell, audio • Sprachen 14. Adaptierung auf verschiedenen Qualitätsstufen • Bild in mehreren Auflösungen • Gegensatz: Originalelement oder Entfernung
Kriterien für Webapplikationen Operationen für Adaptierung 15. Sind Adaptierungsoperationen schon vorhanden? 16. Können selbst Operationen definiert werden? • Zukunft: neues Endgerät kann kommen 17. Verwendete Transcoding Techniken • Bildgröße: Subsampling oder Skalieren • Diverse Kompressionsverfahren: JPEG, GIF • Reduzieren der Auflösung • Reduzieren der Farbtiefe 18. Sequentielle Ausführung von Transcoding Techniken?
Kriterien für Webapplikationen Operationen für Adaptierung 19. Adaptierung automatisch oder manuell • Automatisch: voreingestellte Operationen • Manuell: Benutzer kann in Transcoding eingreifen 20. Prozess der Adaptierung: statisch oder dynamisch • Statisch: zur Designzeit steht fest, welche Transcoder verwendet werden • Dynamisch: zu Laufzeit wird durch Properties der geeignete Transcoder ausgewählt
Kriterien für Webapplikationen Ergebnis von Adaptierung 21. Welche Transformationen werden von der Applikation unterstützt? • XSLT • Transcoder 22. In welche Datenformate kann der Inhalt der Applikation übergeführt werden? • HTML, HDML, VoiceXML, WML, 23. Stellt die Applikation ein Verfahren zur Verfügung, um das Ergebnis der Transformation optimaler zu übertragen?
Evaluierung verschiedener Ansätze • IBM Transcoding Publisher • Morphis • DICE • Motorola Museum
IBM Transcoding Publisher • Kommerzielles Produkt von IBM • Läuft auf mehreren Plattformen • Server-basierte Software • Übersetzt dynamisch Webinhalte in diverse Mark-up Sprachen • Optimale Übertragung zu mobilen Endgeräten • Evaluierung gemäß den vorigen Kriterien