Kommunikations-Dienste 2 Priv.-Doz. Dr. Konrad Froitzheim ([email protected]) Vorlesungsunterlagen: http://jay.informatik.tu-freiberg.de Konrad Froitzheim: Kommunikations-Dienste 2 1 • Kommunikationsdienste im Überblick - Taxonomie aus Kommunikationsdienste 1 Kommunikationsdienste Übertragungsdienste Anwendungsdienste … Konsumtive Dienste Kooperative Dienste Steuerungsdienste … Anwendungselemente Verzeichnisdienste • Übung: praktische Arbeit am Webserver • WebMedia - Erweiterung von WebServern - Datenquellen in Hilfsprogrammen - Empfangsmodule im Klienten - Video und Audio Konrad Froitzheim: Kommunikations-Dienste 2 2 • Virtual Presence - Nachbarschaft im Web - synchrone Kommunikation mit den Nachbarn - Metriken - Serverarchitektur - verteilte Server: virtual presence protocol vpp • Video on Demand - Individuelles PayTV - Semantik des On-Demand - =>Verteilprobleme in Kommunikationsdienste 1 - Optimierung der Verteilung - Serveraufbau (RAID, Interfaces, …) Konrad Froitzheim: Kommunikations-Dienste 2 3 1. WebMedia 1.1 Erweiterung des Webservers • Normales Klient-Server-Modell - Server implementiert einfaches Dateisystem - Klient zeigt an - integrierte Viewer für html, mime, GIF, JPEG, … HTML/MIME HTTP Client HTTP Server URL Filesystem Helper Konrad Froitzheim: Kommunikations-Dienste 2 Filesystem Authoring Applikation 4 • Separate Erstellung der Webseiten - Editor und html - GoLive, Frontpage, Pagemill, … - Photoshop, … • Kennzeichnung mit MIME-Typen - text/html, image/gif, image/jpeg - video/quicktime, video/mpeg - application/rtf - Server-seitig konfiguriert bzw. abgeleitet - Unix, Windows: nach Namenserweiterung (.htm, .gif) - MacOS: Dateityp + Creator - auch Heuristiken im Klienten: Namenserweiterung, Inhaltsanalyse • Weitere Server-Funktionen - Zugriffe aufzeichnen - Zugriffsrechte überwachen - mapping von Pfad- und Dateinamen http://frodo.informatik.uni-ulm.de:80/test/Beispiel1.txt Konrad Froitzheim: Kommunikations-Dienste 2 5 identifiziert Datei: /usr/local/www/htdocs/test/Beispiel1.txt auf frodo Konrad Froitzheim: Kommunikations-Dienste 2 6 • Erweiterung des Servers - Starten von Programmen HTTP request HTTP server Filesystem HTTP response HTTP request HTTP response HTTP server CGI Data server - Datenserver übergibt Daten an http-Server zum Übertragen - Datenserver öffnet Direktverbindung Konrad Froitzheim: Kommunikations-Dienste 2 7 1.2.1 WebVideo und CESC • WebMedia: Problem Heterogene Dienstegüte LAN, T1/E1, ISDN, Modem Durchsatz, Verzögerung QoS veränderlich in der Zeit Individuelle Ströme WebMedia: 1. Versuch Individuelle Medienstromsteuerung Konrad Froitzheim: Kommunikations-Dienste 2 8 ein Format mehrere Ströme verschiedene QoS Netscape ohne Zusätze -> HTTP ->TCP Stand der Technik WebVideo [Frz, Wolf 1995] Live-Media WWW-Server individuelle Datenstrom-Steuerung Konrad Froitzheim: Kommunikations-Dienste 2 9 JPEG-Server-Push, Differenz-GIF; H.261, MPEG WebAudio GSM, ADPCM Java-Decoder • RealNetworks RealAudio [1996], RealVideo [1997] spezielle Server und Klienten • WebCams [Axis 1996; Rearden 1996] Zoom, Drehkopf • WebMedia: Verallgemeinerung Component Encoding Stream Construction CESC: Neue Stromerzeuger Durchsatzschätzung Fehlerkorrektur Neue Transportdienste Dienstegüte (RSVP, ATM, …) Konrad Froitzheim: Kommunikations-Dienste 2 10 Multicast (IPv6, RTP, …) Neue Stromformate MPEG-2, MPEG-4 MPEG-7 CESC: Kompression optimieren JPEG-Strukturinformation Dekompression [KF, Wolf; 1995] DCT-Koeffizienten oft Null M-JPEG: Kompression [KF, Boenisch; 1998] Berechnungen vermeiden Differenzerkennung Komponenten wiederverwenden D-JPEG [Wolf, KF, 1997] conditional replenishment Einbettung in JPEG Konrad Froitzheim: Kommunikations-Dienste 2 11 Java-Applet compression-toolkit Stand der Implementierung Component Encoder RGB, YUV, DCT Differenzkarte LZW, Huffman, RLE Stromformate GIF M-JPEG , D-JPEG (PlugIn) H.261, MPEG-1 (streaming Decoder) triviale Bewegungsvektoren Leistung Macintosh PPC 604e, 120 MHz 10 Klienten, 7 Mbit/s Konrad Froitzheim: Kommunikations-Dienste 2 12 Anwendung: WebCam WebCams Bay-Bridge, Hardenbergplatz OfficeCams Kommunikationsseiten parallel zum Telefonat einfacher Anrufbeantworter Video-Telefon Anwendung: Virtuelle Präsenz Nachbarschaft im WWW selbe Seite, nahe Seite, … Treffpunkt Komunikationsseiten Video-Icons EU-Projekt CoBrow Konrad Froitzheim: Kommunikations-Dienste 2 13 35 "Arbeits-Jahre" - 2,8 MEuro Ulm, ETHZ, ULanc, Märklin, … Anwendungen E-Commerce Teleteaching Experimente in Übungen WebMedia - schon fertig? Component Encoding Stream Construction CESC: Neue Kompressionsverfahren Verarbeitungskomponenten Filter Transformation Redundanzunterdrückung Differenzerkennung Bewegungsvektoren Konrad Froitzheim: Kommunikations-Dienste 2 14 Schnittstelle? Abstraktion QuickTime zu grob? Beispiele Wavelets Arithmetische Kodierung Basis für neue Ideen Live-Icon Präsenzdienste mobile Videokonferenz Icon-Strom mit WebMedia Action-Tracking Differenzerkennung Bildausschnitt um Änderungen Zoom, Schwenk Konrad Froitzheim: Kommunikations-Dienste 2 15 Skalierung auf 32*32 Experimentalversion Kameraführung optimieren Ausschnittswahl Ladbare Module Klientengesteuerte Stromkonstruktion Auflösung, … Dienstegüte Stromformat CompressLets [Bönisch,1998] im Server ausgeführt vom Klienten geladen Java Kompressions-Toolbox Konrad Froitzheim: Kommunikations-Dienste 2 16 'hotspots' 'native' Methoden Ergebnisse und Ausblick PersonalWebMedia Video (JPEG, D-GIF, D-JPEG, H.261, MPEG) Audio (GSM, ADPCM) http://www-vs.informatik.uni-ulm.de/soft/wv/ Macintosh, Windows, Linux CESC reduzierter Kompressionsaufwand viele Stromformate abstrakte Schnittstelle für Stream Constructor Weitere Arbeiten Beschleunigung: MMX, AltiVec, … abstrakte Schnittstelle für Component Encoder Konrad Froitzheim: Kommunikations-Dienste 2 17 CompressLets Echtzeit-Medien im Internet Datendurchsatz im Internet Anschlußtechnik (Ethernet, T1, ISDN, Modem) Beispiel: Interaktive Modellbahn http://rr-vs.informatik.uni-ulm.de/rr Fernsteuerung und Live-Video 1.200.000 Besucher seit April 1995 TeleExperiment Virtuelles Labor (UNESCO, …) Person-to-Person (chat, MBone, virtuelle Präsenz) Metamachines Person-Experiment Fernsteuerung Motoren, Schalter, Blende, … Konrad Froitzheim: Kommunikations-Dienste 2 18 Beispiel: http://rr-vs.informatik.uni.-ulm.de abstrakte Geräteschnittstelle Rückkanäle Feedback Meßwerte Konrad Froitzheim: Kommunikations-Dienste 2 19 1.2.2 Ausflug: JPEG-Optimierung Color Space Converter FDCT Quantizer Zigz ag Order and Zero Supp ression Huffman Coder Compressed image data Huffman Decoder DeZigzag: Matrix Reconstr. DeQuantizer IDCT Color Space Converter • JPEG-DCT - 8*8 Punktematrix - Pro 'Farbebene' (RGB, CMYK, YUV) - Wert links/oben wird als Gleichstrom-Koeffizient bezeichnet - Andere Werte 'Wechselstromkoeffizienten' Konrad Froitzheim: Kommunikations-Dienste 2 20 Konrad Froitzheim: Kommunikations-Dienste 2 21 • Umquantisierung -> Kompression, Verlust an Genauigkeit - Normalisierung - Quantisierungschritt nimmt mit hohem Index zu • Quantisierungsmatrizen: Luminanz (Y) Konrad Froitzheim: Kommunikations-Dienste 2 Chrominanz (U,V) 22 • Linearisierung 79; 0 -2 -1 -1 -1 0 0 -1 Blockende • Statistische Betrachtungen • Hohe Kompression Viele Elemente = 0 Konrad Froitzheim: Kommunikations-Dienste 2 23 Y U/V Konrad Froitzheim: Kommunikations-Dienste 2 News 1 News 2 Office Movie Text 7.8 % 9.7 % 8.0 % 12.6 % 22.4 % 2.2 % 2.3 % 2.4 % 2.1 % 1.5 % 24 • Elemente ≠ 0 in der linken oberen Ecke Luminanz (Y) Konrad Froitzheim: Kommunikations-Dienste 2 Chrominanz (U, V) 25 • Leere Zeilen und Spalten • Beispiele Bit/Pixel Telekonferenz 0,14 Video 0,23 Standbild 0,5 Konrad Froitzheim: Kommunikations-Dienste 2 Y 8 10 15 U/V 2 3 4 26 • Asymmetrien Konrad Froitzheim: Kommunikations-Dienste 2 27 • IDCT algorithm: - 1D (Chen) - Multiplikationen ~ Additionen • Erste Optimierung: IDCT nur in nichtleeren Spalten/Zeilen Konrad Froitzheim: Kommunikations-Dienste 2 28 • Zweite Optimierung : 1D IDCT mit beschränkter Länge - Grad r einer Transformation: Index des letzten Elementes ≠ 0 Konrad Froitzheim: Kommunikations-Dienste 2 29 • Dritte Optimierungsstufe: Matrix dünnbesiedelt halten P = QTCQ = (QTC)Q = QT(CQ) Konrad Froitzheim: Kommunikations-Dienste 2 30 • Wie erhält man die Struktur-Information? - Nullen in der Matrix zählen ist teuer - Compare kostet genauso wie Compute - Konstanter Overhead • Effizient: Huffman decode / matrix reconstruction - Zeilen- und Spalten-Bitsets - Overhead skaliert mit Kompression 1 1 1 0 1 0 0 0 1 1 1 1 0 1 0 0 Konrad Froitzheim: Kommunikations-Dienste 2 31 • revidierter Prozeß • MC68040 und DSP AT&T 3210, heute: PPC 601 - JPEG Strombearbeitung in Pascal auf dem Hauptprozessor, - Huffman, Matrix Rekonstruktion, und - IDCT in 3210 Assembler auf 66 MHz AT&T 3210, - YUV -> RGB in 68040 Assembler Konrad Froitzheim: Kommunikations-Dienste 2 32 • DConly: 64 ops um vollständige Matrix zu erzeugen • 1D IDCT auf leeren Spalten einsparen • 1D IDCT mit Grad r implementieren Grad 1 2 3 4 5 6 7 8 3210-Ops 12 27 33 37 42 44 46 48 PPC-Ops 17 28 33 38 40 43 46 49 • Information ist während der Matrix Rekonstruktion vorhanden: C[i,j] := coefficient; Set(rows[i]); Set(cols[j]); - skaliert mit Kompressionsfaktor • Erste Richtung wählen IF rows < cols THEN BEGIN rowtransform; coltransform END ELSE BEGIN coltransform; rowtransform END; Konrad Froitzheim: Kommunikations-Dienste 2 33 • Beschleunigung der IDCT msecs 110 100 90 80 70 60 Text Movie 50 Office 40 News anchor basic basic algorithm News woman +DConly occupied columns + reduced IDCT best row/ column best row/column + DConly Konrad Froitzheim: Kommunikations-Dienste 2 34 • Gesamtbeschleunigung Framerate [frames/s] News 1 News 2 Office Movie Text Basis Algorithmus 7.6 7.3 7.5 7.0 6.1 Basis + DConly 9.9 9.0 10.8 8.9 7.9 Nur besetzte Spalten 9.7 9.2 9.6 8.6 7.0 Nur besetzte Spalten + reduziert IDCT 11.8 10.9 12.0 9.9 8.0 Auswahl Zeile/Spalte 12.6 11.5 12.6 10.6 8.1 Auswahl Zeile/Spalte + DConly 14.1 (86%) 12.5 (70%) 14.5 (92%) 11.5 (65%) 8.8 (45%) • Auf 80 MHz PowerPC > 18 fps Konrad Froitzheim: Kommunikations-Dienste 2 35 2.Schritt: Heuristische Beschleunigung der FDCT • Reduzierte IDCT wird aus Entropiedekoderung abgeleitet - Bitmap beschreibt Blockstruktur - Blockstruktur als Ergebnis der FDCT • Woher bekommt man Blockstrukturinformation bei der FDCT? - garnicht bei der Einzelbildkodierung - bei M-JPEG vom vorhergehenden Bild - nicht immer zuverlässig Konrad Froitzheim: Kommunikations-Dienste 2 36 • Einsparpotential - FDCT (siehe IDCT) - Quantisierung: ca. 50% - Zig-Zag und Huffman geringfügig • Experimentelle Ergebnisse - Beschleunigung der gesamten Kompression (inkl. RGB -> YUV) Mittel 45% 52% 27% 30% Graustufen/Video Graustufen/Konferenz RGB/Video RGB/Konferenz - erzeugtes Rauschen < 2dB • Blockstruktur - Blockstruktur kann sich ändern - Block zu klein => Bild verfälscht - Block zu groß => Rechenzeit vergeudet Konrad Froitzheim: Kommunikations-Dienste 2 Min 28% Max 77% 22% 35% 37 - Überwachung einbetten in Entropiekodierphase Konrad Froitzheim: Kommunikations-Dienste 2 38 • Überwachung mit Pufferzone: ein oder zwei Zeilen bzw. Spalten - Block erweitern falls Pufferzone Zi, Si nicht leer - Block schrumpfen, falls Zi-1, Si-1 leer - Singuläre Koeffizienten? Konrad Froitzheim: Kommunikations-Dienste 2 39 Konrad Froitzheim: Kommunikations-Dienste 2 40 Konrad Froitzheim: Kommunikations-Dienste 2 41 1.3 WebMovie • Idee: iterierte Übertragung - 'kurze' Clips, lange Übertragung - mehrfache Präsentation begleitet Übertragung • Mehrschicht-Übertragung - Auflösung (räumlich, zeitlich) aufteilen - Iterierte Übertragung - Empfänger setzt Film zusammen - Echtzeit-Präsentation in steigender Qualität Konrad Froitzheim: Kommunikations-Dienste 2 42 Konrad Froitzheim: Kommunikations-Dienste 2 43 • Verfeinerbare Medienströme - ähnlich scalable media streams - filtern und verschieben Konrad Froitzheim: Kommunikations-Dienste 2 44 • Eigenschaften verfeinerbarer Medienströme - kompletter Strom bekannt - Informations-'Atome' • Segmentierung - statisch oder dynamisch - vertikale Segmentierung (Zeit) - horizontale Segmentierung (Genauigkeit) - 2-Phasen: VF oder HF Konrad Froitzheim: Kommunikations-Dienste 2 45 • Video - Subsampling in der Zeit - einfach - Subsampling im Bild • Audio - mp3-Bänder (allocation-bitmap) - Band-Auflösung (scale-factors) - GSM-Gitter • Empfänger: kein gewöhnlicher Browser - Netscape-Plugin oder Java-Applet - meldet empfangene Pakete an WebMovie-Server - mit Zeitinformation Konrad Froitzheim: Kommunikations-Dienste 2 46 • Ungesicherter Übertragungsdienst - UDP - Empfängerberichte (Fehler, Bandbreite) - Integration der Wiederübertragung in die Iteration Konrad Froitzheim: Kommunikations-Dienste 2 47 • Resultate Al Bundy Wallace & Gromit Music Video Beginn der Präsentation < 3 sec < 5 sec < 2 sec 30.4 sec 16.2 sec 60.8 sec 10 5 30 16 22 20 Dauer der ersten Iteration Anzahl Frames in der ersten Iteration Anzahl Iterationen Übertragungszeit relativ zu MPEG/ftp Konrad Froitzheim: Kommunikations-Dienste 2 125% 135% 48 2. Virtuelle Präsenz 2.1 Nachbarschaft • Dokumentenraum - Seiten mit Information - 'Links' verknüpfen Seiten - Benutzer sehen niemanden • Virtuelle Nachbarschaft - Nachbarn sehen - Nachbarn treffen • Nachbarn zur Kommunikation einladen - Telefon, Videokonferenz - gemeinsame Arbeit • Hilfe bei der Informationssuche - orthogonal zu Suchmaschinen - eventuell mit Suchmaschineninformation Konrad Froitzheim: Kommunikations-Dienste 2 49 • Wann ist ein Benutzer auf einer Seite? - Seite wird am Arbeitsplatz angezeigt - aber: WebServer "zustandslos" • Was ist Nachbarschaft? - selbe Seite, n-Links entfernt - ähnlicher Inhalt - Zeit - Stärke der Präsenz • Umgebung visualisieren? - WWW-Topologie - Benutzerattribute: Symbol, Name , Kommunikationadressen • Kommunikation starten? Präsenz Präsenz messen messen Treffpunkt Treffpunkt Konrad Froitzheim: Kommunikations-Dienste 2 chat, chat,50Telefon Telefon 2.1.1 Nachbarschaftsmodelle • Dynamische Verzeichnisdienste (DDS) - z.B. AOL Buddylist Meldung bei Änderungen Text-Chat mit Freunden und Bekannten • Virtueller Konferenzraum (VMR) - Kommerzielle Dienste (chatrooms) - statische Nachbarschaft - einige WWW-Seiten • Dynamische Nachbarschaft - individuell - temporär - positionsabhängig • Eigenschaften des Benutzers - Interessen, besuchte Dokumente - Präferenzen - Sprache, Kommunikationsmittel Konrad Froitzheim: Kommunikations-Dienste 2 51 - Adressen • Enthält DDS und VMR Konrad Froitzheim: Kommunikations-Dienste 2 52 2.1.2 Modellierung • Modellierung: Dokumentengraph • Knoten: Seiten - HTML-Dokumente - enthaltene Medien (Files, Bilder, Video, Audio) • Kanten: HyperLinks - <A HREF="Beispiel1.txt"> Hyperlink </A> => … Hyperlink … - URL = DNSname+Pfad+Dateiname - Kanten können Gewicht haben • Einbettung von Konferenzräumen - offen - geschlossen: links besonders markieren Konrad Froitzheim: Kommunikations-Dienste 2 53 • Modellierung: Personen • Personen im WWW - offen für Kommunikation - verweilen auf Knoten (Seiten) - folgen Hyperlinks - Attribute: Sprache, Interessen, … • Präsenzfunktion - Zeit auf dem Knoten - Topologie • Sichtbarkeit - Präsenz in Umgebung des Ortes - Stärke der Präsenz BenutzerInteressen Zeit Intervall Zeitpunkt automatisch manuell ? same page different page different server Konrad Froitzheim: Kommunikations-Dienste 2 space gewichtete Links Inhaltsdifferent page analyse same server 54 Inhalt • URL-basierte Metriken - Schluß vom Aufenthaltsort des Benutzers auf Interessen des Benutzers - space: Linkdistanz < r - Inhaltsbezug: Gewichtete Links: ∑wi < r*; Contentmatching: |Ci-Ck| < r' - Auswertung mit Karte des WWW • Benutzerbasierte Metriken - Benutzerinteressen im CoBrow-Server registrieren - manuell eingeben oder/und automatisch ermitteln (Browserfilter) - Profile 'matchen' Konrad Froitzheim: Kommunikations-Dienste 2 55 Konrad Froitzheim: Kommunikations-Dienste 2 56 2.2 Architektur • Präsenz messen - ortsbezogene Verbindung • Nachbarschaft berechnen - neben WWW-Server • Treffpunkte - Benutzungsschnittstelle - Visualisierung • Konferenzen - Management - CAL: Interface zu Tools - Merci (MBone), WebMedia, … - Web-Telepointer Konrad Froitzheim: Kommunikations-Dienste 2 57 2.2.1 Komponenten: Server • User Tracking - Java-Applet meldet Position - html-Verbindung • Vicinity-Server - Linkdatenbank - Benutzerdatenbank - berechnet Sichtbarkeitsfunktion - O(n2) Probleme • Verteiltes System - serverübergreifende Links - keine Lastverteilung Konrad Froitzheim: Kommunikations-Dienste 2 58 2.2.2 Virtual Presence Protocol • CoBrow Komponenten verbinden - http kompatibel - in http-get, http-post gekapselt • Objekte und Operationen - Benutzer, Dokument, ... - get, put für Attribute der Objekte - enter und leave - link und unlink • Asynchroner Mechanismus - subscription - Änderungssignal - subscribe - notification - get • IETF-Draft [Wolf 98] Konrad Froitzheim: Kommunikations-Dienste 2 http cbScout vpp user interface cbScout cbScout VICI COMAS user interface cbScout CAL 59 2.2.3 Komponenten: Klienten • Treffpunkt - zeigt Nachbarn - startet Kommunikationsdienste - http://www.jeanswelt.de/ • User Interfaces - Java Applet - dynamische html-Seite - VRML-Szene Konrad Froitzheim: Kommunikations-Dienste 2 60 • Konferenz mit WebMedia • WebVideo - Live-Media WWW-Server - viele Klienten - individuelle VideoStröme - JPEG, GIF, MPEG, H.261 • WebAudio - GSM, ADPCM - Java-Decoder Heiner Andreas Konrad Froitzheim: Kommunikations-Dienste 2 Internet 61 • Anwendungen • Studium - Übungen und Lernen - Präsenz auf Skript - ad-hoc Arbeitsgruppen • Virtuelles Labor - große Forschergruppen - lose Zusammenarbeit - Tele-Experiment • E-Commerce - Beratung und Verkauf im CyberStore - direct marketing Projekt ShopAware Konrad Froitzheim: Kommunikations-Dienste 2 62 2.2.4 Meetlets • Nachbarschaft personalisieren - Rollen - Suche nach besonderen Partnern - Ausschluß bestimmter Personen/Rollen - Stimmung, … • Mobile Agenten vertreten Benutzer - werden in VP-Server geladen - kommunizieren mit Klient - filtern die Nachbarschaft - Prototyp in Java - Meetlet Wizard nötig Meetlet Server Agent1 Agent2 Agent3 Internet User1 Konrad Froitzheim: Kommunikations-Dienste 2 User3 User2 63 2.2.5 Skalierbarkeit • Vielbesuchte Seiten - CNN, … - Warenhäuser • Meetlets • Semantische Vicinity - Dokumenteninhalt - zusätzliche Metrik - hohe Such-Komplexität • Gute Algorithmen • Skala der Parallelität zentral VP-Zentrale VP-Zentrale Vici Vici MLS MLS Vici Vici MLS MLS Vici Vici MLS MLS Vici Vici MLS MLS Pres Pres DB DB Pres Pres DB DB Pres Pres DB DB Pres Pres DB DB parallel Konrad Froitzheim: Kommunikations-Dienste 2 64 2.3 Ergebnisse • Virtuelle Präsenz - Navigationshilfe, Zusammenarbeit, neue Freunde, … - das Web als soziales Erlebnis • Modellierung - Orte, Personen und Kommunikation - Präsenzfunktion • Implementierung - Klienten und (verteilte) Server - Protkoll • Meetlets • Dynamische Seiten und Skalierbarkeit • http://www.cobrow.com • Start-Ups - Cyland AG, Karlsruhe - TeamUp AG, Zürich Konrad Froitzheim: Kommunikations-Dienste 2 65 3. WAP - Wireless Application Protocol • Datendienste im Mobiltelefon - einfache Applikationen: bestellen, bezahlen, … - Datentransportdienst - Internet-Zugang: Telnet, E-mail, WWW? • Besondere Randbedingungen - kleines Display, DSP beschäftigt, wenig RAM - Dienstegüte schlecht (Durchsatz, Fehler, Verbindung) - verbindungsorientiert • Basistechnologie - GSM, GPRS, … - XML, TCP, IP • Protokolle und Inhalt 'optimieren' • Links zum Thema http://www.wapforum.org http://www.lrz-muenchen.de/~findling/wap/ http://www.wapweb.de, http://www.wapsites.de Konrad Froitzheim: Kommunikations-Dienste 2 66 Konrad Froitzheim: Kommunikations-Dienste 2 67 • HTML und http sind geschwätzig - ASCII, Telnet-bedienbar, Grafiken, … Internet HT TP/HTML <HTML> <HEAD> <TITLE>NNN Interactive</TITLE> <META HTTP-EQUIV="Refresh" CONTENT="1800, URL=/index. html "> </HEAD> <BODY BGCOLOR="#FFFFFF" BACKGROUND="/images/9607/bgbar5. gif " LINK="#0A3990" ALINK="#FF0000" VLINK="#FF0000" TEXT="000000" ONLOAD="if(parent.frames.length!=0)top.location= 'ht tp :// nnn. com' ;"> <A NAME="#top"></A> <TABLE WIDTH=599 BORDER="0"> <TR ALIGN=LEFT> <TD WIDTH=117 VALIGN=TOP ALIGN=LEFT> <HTML> <HEAD> <TITLE >NNN Intera ctive< /TITLE > <META HTTPEQUIV= "Refre sh" CONTEN T="180 0, URL=/i ndex. h tml "> Konrad Froitzheim: Kommunikations-Dienste 2 Wireless network <WML> <CARD> <DO TYPE="ACCEPT"> <GO URL="/submit?Name=$N"/> </DO> Enter name: <INPUT TYPE="TEXT" KEY="N"/> </CARD> </WML> WAP Content encoding 010011 010011 110110 010011 011011 011101 010010 011010 68 • Wireless Application Einvirnment (WAE) - netzwerkunabhängig - Internet-Programmiermodel - WML und WML-Script - Wireless Telephony Architecture - Inhaltsformate - Push-Service - User Agent Profile WSP/HTTP Request {URL} Client Gateway Network Application WSP/HTTP Reply {Content} Konrad Froitzheim: Kommunikations-Dienste 2 69 • Web-Gateway - Zugriff auf bestehende Inhalte bzw. Inhaltselemente - Hyperlinkstruktur - Forms auf Mobiltelefon abbilden Web Server WAP Gateway WML WML Encoder WMLScript WSP/WTP WMLScript Compiler HTTP WML Decks with WML-Script Client CGI Scripts etc. WTAI Protocol Adapters Content Etc. Konrad Froitzheim: Kommunikations-Dienste 2 70 Konrad Froitzheim: Kommunikations-Dienste 2 71 • WAP Applikationen - Zahlen an der Kasse - Formulare ausfüllen - Datenbankabfrage - Telnet, … Client WML WMLScript WTAI WML Encoder WSP/WTP WMLScript Compiler Protocol Adapters Application Logic Content WML Decks with WML-Script WAP Application Server Etc. Konrad Froitzheim: Kommunikations-Dienste 2 72 • Im Schichtenmodell Wireless Application Protocol Internet HTML JavaScript Wireless Application Environment (WAE) Other Services and Applications Session Layer (WSP) HTTP Transaction Layer (WTP) Security Layer (WTLS) TLS - SSL Transport Layer (WDP) TCP/IP UDP/IP Bearers: SMS Konrad Froitzheim: Kommunikations-Dienste 2 USSD CSD IS-136 CDMA CDPD PDC-P 73 Etc.. • WAP über GSM-Daten-Verbindung WAP Proxy/Server Mobile WAE WAE WSP IWF ISP/RAS Apps on Other Servers WSP WTP WTP UDP UDP IP PPP CSD-RF IP IP PSTN Subnetwork Circuit Subnetwork PPP CSDRF PSTN Circuit RAS - Remote Access Server IWF - InterWorking Function Konrad Froitzheim: Kommunikations-Dienste 2 74 • WML: Wireless Markup Language - XML-basiert - Deck und Cards - Menus, Texteingabe, … <wml> <card> <do type="accept" label="Next"> <go href="#card2"/> </do> Acme Inc.<BR/>Directory </card> <card id="card2"> <do type="accept"> <go href="?send=$type"/> </do> Services <select name="type"> <option value="em">Email</option> <option value="ph">Phone</option> <option value="fx">Fax</option> </select> </card> </wml> Konrad Froitzheim: Kommunikations-Dienste 2 Acme Inc. Directory _____________ Next Services 1>Email 2 Phone 3 Fax FaFax_______ OK _____ 75 • Deck - entspricht ungefähr einer Seite - enthält mehrere Cards - Navigation zwischen Karten - enthält XML und document type declaration - <WML> Element <?xml version="1.0"?> <!doctype wml public "-//WAPFORUM//DTD WML 1.0//EN" "http://www.wapforum.org/DTD/wml.xml"> <wml> ... </wml> • Besonderheiten - Navigation im Deck ähnlich Anchor im Document - Variablen - Besondere Maßnahmen für Handy-UI Konrad Froitzheim: Kommunikations-Dienste 2 76 • Task - Verarbeitung - Antwort auf einen Event - Timer, Card betreten, … - GO, PREV, REFRESH, NOOP <do type="ACCEPT" label="Next"> <go href="http://www.mysite.com/myapp.wml"/> </do> • DO bindet einen Task an UI-event - Aktionen: ACCEPT, OPTIONS, HELP, PREV, DELETE, RESET - Label: Text string oderr image (optional) -Ziel: URL - METHOD=POST => Formular Posten - Präsentation bestimmt durch User-Agent (Telefon) Konrad Froitzheim: Kommunikations-Dienste 2 77 • User Input - Select: Auswahl aus einer Liste - Input: Eintippen • Variablen - Gesetzt durch SELECT und INPUT - Übergabe von Eingaben an andere Karten bzw. Post-Message •Select lists - Auswahl aus Liste <card> <do type="accept" label="View"> <go href=" getcity.cgi?location=$city"/> </do> Forecast <select name="city"> <option value=" ber">Berlin</option > <option value=" rom">Rome</option> <option value="Find" onclick="find. cgi">New </select> </card> Konrad Froitzheim: Kommunikations-Dienste 2 Forecast 1 Berlin 2 Rome 3>New City ____________ Find City</option> 78 • Input Felder - Text- oder Zahleingabe - Format zur Eingabekontrolle Soc. Security: <card> <do type="accept"> <go href="?get=person" method="post" postdata=" userid=$ssn"/> </do> Soc Security: <input name=" ssn" format="NNN\-NN\-NNNN"/> </card> 287-33- _ ____________ NUM Soc. Security: 287-33- 7629 ____________ OK - Bsp.: *N: beliebig viele Ziffern Konrad Froitzheim: Kommunikations-Dienste 2 79 • WML-Script - ähnlich Javascript - Byte-Codes für stack-orientierte virtuelle Maschine - Übersetzung im Netz (Server) - kann in ROM gebrannt werden Funktion Variable Statements Konrad Froitzheim: Kommunikations-Dienste 2 function currencyConvertor (currency, exchRate ) { return currency* exchangeRate ; } function myDay (sunShines ) { var myDay ; if ( sunShines ) { myDay = ŅGoodÓ; } else { myDay = Ņeven betterÓ; }; return myDay ; } 80