tu-freiberg.deara.informatik.tu-freiberg.de/Vorlesungen/2001/CommServ2.doc · Web view- Element...

101
Kommunikations-Dienste 2 Priv.-Doz. Dr. Konrad Froitzheim ([email protected]) Konrad Froitzheim: Kommunikations-Dienste 2 1

Transcript of tu-freiberg.deara.informatik.tu-freiberg.de/Vorlesungen/2001/CommServ2.doc · Web view- Element...

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

Email

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

;

}