tu-freiberg.deara.informatik.tu-freiberg.de/vorlesungen/2001/commserv2.doc · web view- element...
TRANSCRIPT
Kommunikations-Dienste 2
Priv.-Doz. Dr. Konrad Froitzheim ([email protected])
Vorlesungsunterlagen: http://jay.informatik.tu-freiberg.de
• Kommunikationsdienste im Überblick
- Taxonomie aus Kommunikationsdienste 1
• Übung: praktische Arbeit am Webserver
• WebMedia
- Erweiterung von WebServern
- Datenquellen in Hilfsprogrammen
- Empfangsmodule im Klienten
- Video und Audio
• 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, …)
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, …
• 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
identifiziert Datei: /usr/local/www/htdocs/test/Beispiel1.txt auf frodo
• Erweiterung des Servers
- Starten von Programmen
- Datenserver übergibt Daten an http-Server zum Übertragen
- Datenserver öffnet Direktverbindung
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
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
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, …)
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
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
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
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
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
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
'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
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, …
Beispiel: http://rr-vs.informatik.uni.-ulm.de
abstrakte Geräteschnittstelle
Rückkanäle
Feedback
Meßwerte
1.2.2 Ausflug: JPEG-Optimierung
• JPEG-DCT
- 8*8 Punktematrix
- Pro 'Farbebene' (RGB, CMYK, YUV)
- Wert links/oben wird als Gleichstrom-Koeffizient bezeichnet
- Andere Werte 'Wechselstromkoeffizienten'
• Umquantisierung -> Kompression, Verlust an Genauigkeit
- Normalisierung
- Quantisierungschritt nimmt mit hohem Index zu
• Quantisierungsmatrizen:
Luminanz (Y)
Chrominanz (U,V)
• Linearisierung
79;0-2-1-1-100-1Blockende
• Statistische Betrachtungen
• Hohe Kompression Viele Elemente = 0
News 1
News 2
Office
Movie
Text
Y
7.8 %
9.7 %
8.0 %
12.6 %
22.4 %
U/V
2.2 %
2.3 %
2.4 %
2.1 %
1.5 %
• Elemente ≠ 0 in der linken oberen Ecke
Luminanz (Y)
Chrominanz (U, V)
• Leere Zeilen und Spalten
• Beispiele
Bit/Pixel
Y
U/V
Telekonferenz
0,14
8
2
Video
0,23
10
3
Standbild
0,5
15
4
• Asymmetrien
• IDCT algorithm:
- 1D (Chen)
- Multiplikationen ~ Additionen
• Erste Optimierung: IDCT nur in nichtleeren Spalten/Zeilen
• Zweite Optimierung : 1D IDCT mit beschränkter Länge
- Grad r einer Transformation: Index des letzten Elementes ≠ 0
• Dritte Optimierungsstufe: Matrix dünnbesiedelt halten
P = QTCQ = (QTC)Q = QT(CQ)
• 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
• 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
• 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;
• Beschleunigung der IDCT
• 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
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
• Einsparpotential
- FDCT (siehe IDCT)
- Quantisierung: ca. 50%
- Zig-Zag und Huffman geringfügig
• Experimentelle Ergebnisse
- Beschleunigung der gesamten Kompression (inkl. RGB -> YUV)
Mittel
Min
Max
Graustufen/Video
45%
28%
Graustufen/Konferenz
52%
77%
RGB/Video
27%
22%
RGB/Konferenz
30%
35%
- erzeugtes Rauschen < 2dB
• Blockstruktur
- Blockstruktur kann sich ändern
- Block zu klein => Bild verfälscht
- Block zu groß => Rechenzeit vergeudet
- Überwachung einbetten in Entropiekodierphase
• Ü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?
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
• Verfeinerbare Medienströme
- ähnlich scalable media streams
- filtern und verschieben
• Eigenschaften verfeinerbarer Medienströme
- kompletter Strom bekannt
- Informations-'Atome'
• Segmentierung
- statisch oder dynamisch
- vertikale Segmentierung (Zeit)
- horizontale Segmentierung (Genauigkeit)
- 2-Phasen: VF oder HF
• 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
• Ungesicherter Übertragungsdienst
- UDP
- Empfängerberichte (Fehler, Bandbreite)
- Integration der Wiederübertragung in die Iteration
• Resultate
Al Bundy
Wallace & Gromit
Music Video
Beginn der Präsentation
< 3 sec
< 5 sec
< 2 sec
Dauer der ersten Iteration
30.4 sec
16.2 sec
60.8 sec
Anzahl Frames in der ersten Iteration
10
5
30
Anzahl Iterationen
16
22
20
Übertragungszeitrelativ zu MPEG/ftp
125%
135%
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
• 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?
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
- Adressen
• Enthält DDS und VMR
2.1.2 Modellierung
• Modellierung: Dokumentengraph
• Knoten: Seiten
- HTML-Dokumente
- enthaltene Medien (Files, Bilder, Video, Audio)
• Kanten: HyperLinks
- Hyperlink
=> … Hyperlink …
- URL = DNSname+Pfad+Dateiname
- Kanten können Gewicht haben
• Einbettung von Konferenzräumen
- offen
- geschlossen: links besonders markieren
• 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
• 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'
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
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
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]
2.2.3 Komponenten: Klienten
• Treffpunkt
- zeigt Nachbarn
- startet Kommunikationsdienste
- http://www.jeanswelt.de/
• User Interfaces
- Java Applet
- dynamische html-Seite
- VRML-Szene
• Konferenz mit WebMedia
• WebVideo
- Live-Media WWW-Server
- viele Klienten
- individuelle VideoStröme
- JPEG, GIF, MPEG, H.261
• WebAudio
- GSM, ADPCM
- Java-Decoder
• 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
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
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
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
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
• HTML und http sind geschwätzig
- ASCII, Telnet-bedienbar, Grafiken, …
• Wireless Application Einvirnment (WAE)
- netzwerkunabhängig
- Internet-Programmiermodel
- WML und WML-Script
- Wireless Telephony Architecture
- Inhaltsformate
- Push-Service
- User Agent Profile
• Web-Gateway
- Zugriff auf bestehende Inhalte bzw. Inhaltselemente
- Hyperlinkstruktur
- Forms auf Mobiltelefon abbilden
• WAP Applikationen
- Zahlen an der Kasse
- Formulare ausfüllen
- Datenbankabfrage
- Telnet, …
• Im Schichtenmodell
• WAP über GSM-Daten-Verbindung
• WML: Wireless Markup Language
- XML-basiert
- Deck und Cards
- Menus, Texteingabe, …
• Deck
- entspricht ungefähr einer Seite
- enthält mehrere Cards
- Navigation zwischen Karten
- enthält XML und document type declaration
- Element
• Besonderheiten
- Navigation im Deck ähnlich Anchor im Document
- Variablen
- Besondere Maßnahmen für Handy-UI
• Task
- Verarbeitung
- Antwort auf einen Event
- Timer, Card betreten, …
- GO, PREV, REFRESH, NOOP
• 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)
• 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
• Input Felder
- Text- oder Zahleingabe
- Format zur Eingabekontrolle
- Bsp.: *N: beliebig viele Ziffern
• WML-Script
- ähnlich Javascript
- Byte-Codes für stack-orientierte virtuelle Maschine
- Übersetzung im Netz (Server)
- kann in ROM gebrannt werden
� EMBED Word.Picture.8 ���
� EMBED Word.Picture.8 ���
� EMBED Word.Picture.8 ���
� EMBED Word.Picture.8 ���
� EMBED Word.Picture.8 ���
� EMBED Word.Picture.8 ���
Konrad Froitzheim: Kommunikations-Dienste 2
9
_1024310702.doc
method="post" postdata="
userid
=$
ssn
"/>
Soc
Security:
Soc
. Security:
287-33- _
____________
NUM
Soc
. Security:
287-33-
7629
____________
OK
_1024310780.doc
Forecast
Berlin
Rome
New City
Forecast
1 Berlin
2 Rome
3>New City
____________
Find
_1024310820.doc
Acme Inc.
Directory
Services
Phone
Fax
Acme Inc.
Directory
_____________
Next
Services
1>Email
2 Phone
3 Fax FaFax____________
OK
_1024309845.doc
<?
xml
version="1.0"?>
/p>
"http://www.
wapforum
.org/DTD/
wml
.
xml
">
...
_1024310013.doc
_1023103058.doc
Funktion
Statements
Variable
function
currencyConvertor
(currency,
exchRate
) {
return currency*
exchangeRate
;
}
function
myDay
(
sunShines
) {
var myDay
;
if (
sunShines
) {
myDay
= “Good”;
} else {
myDay
= “even better”;
};
return
myDay
;
}