Hypermedia Klausur by sanmelody

VIEWS: 9 PAGES: 9

									                         Hypermedia Zusammenfassung:
NICHT:
   - MPEG4
   - METACARD
   - Apllication Server
   - JavaScript
   - JavaBeans
   - XML
   - CMS
   - ASP
   - Bei Perl keine Regular Expressions
   - PHP kein Code

Grobes Grundlagen-Wissen :

Markup-Sprachen (Was ist das?)
Markup bedeutet deklarieren und auszeichnen. Dieses wird verwendet um z.b. bestimmte
Dinge hervorzuheben oder anderweitige Sonderfunktionen (z.b. hyperlinks, Anker)
einzufügen.
HTML ist der defakto Standard des WWW und ermöglicht es plattformunabhängig
Informationen zu veröffentlichen. Probleme von HTML sind die teilweise speziellen und
nicht standardisierten Erweiterungen der Browserhersteller und die Vermengung von
Inhalt und Layout.
XHTML ist die Umsetzung von HTML4 in XML. Der Vorteil ist die Trennung von Inhalt und
Layout.
XHTMl Basic = eine abgespeckte Version für den Einsatz auf mobilen Endgeräten.
CHTML (Compact HTML) = HTML für i-mode
WML dient der Darstellung von WAP-Inhalten.
HDML (Handheld Device Markup Language) = Basis von WML, ähnlich HTML


Hytime (nur einfache Sachen, verstehen um was es geht)
 Sprache zur Kodierung der Struktur von Hypermediadokumenten
 SGML Instanz bzw. SGML Erweiterung (benutzt SGML Syntax)

 wie HTML bietet HyTime grundlegende Konzepte zur Repräsentation von
   Hyper- text/media sowie MM Dokumenten.

Schwerpunkt :       Darstellung von abstrakten räumlichen und zeitlichen Beziehungen
                    zwischen den verbundenen Dokumenten.

spezifiziert wie ...
 ... Informationsobjekte innerhalb des Dokumentes mit Hyperlinks assoziiert werden.
 ... Objekte räumlich und zeitlich plaziert/positioniert werden
 ... Objekte miteinander verknüpft werden können.

 Inhaltsinformationen =          Objekte
                           Objekte = 1. Teil des Dokuments
                                      2. sind unbeschränkt ( un- / formatierte
                                  klassische
                                         Dokumente jeglicher Art.
 freies Exportieren von Objekten
Module:
HyTime besteht aus 6 Module:
Base Module                             Stellt den anderen Modulen Basisfunktionen zur
                                        Verfügung
Location Address Module                 bietet 3 Möglichkeiten zur Adressierung von
                                        Objekten an.
Finite Coordinate Space (FSC) Module    regelt Ablaufsteuerung der Darstellung von
                                        Objekten
Hyperlinks Module
Event Protection Module
Object Modification
       Bild 5+6 fehlt noch

MHEG (Wozu und wie läuft das?)
Das Ziel von MHEG (multimedia and Hypermedia Expert Group (Teil von ISO)) ist die
Verknüpfung von TV und Internet um einerseits eine hinreichende Interaktivität erreichen
zu können und andereseits eine große Bandbreite ausnutzen zu können.
MHEG ist eine API oder Art Beschreibungssprache die definiert wie multimediale Inhalte
und die Benutzerinteraktion formuliert werden können. Ein Beispiel ist VoD (Video on
Demand) wo man mit MHEG festlegen kann, welcher Film zu welcher Zeit wo dargestellt
werden soll.
Eine multimediale Präsentation wird in diesem Zusammenhang eine MHEG-Applikation
bzw. MHEG-Szene genannnt. Eine MHEG-Applikation besteht aus mehreren MHEG-
Szenen.
Eine MHEG-Szene besteht aus drei Gruppen: interaktiven Objekten (Button, Slidern),
Verbindungs-Objekten (Links die Actions anstoßen), Präsentationsobjekten (werden über
die Links gesteuert)
Man kann die logischen Strukturen einer Szene in Form von Skripten beschreiben.
MPEG und JPG können z.b. Objekte sein die in MHEG verwendet werden. Für die
Strukturinformationen gibt es keinen einheitlichen Standard, was auch die Ausbreitung
von MHEg stark behindert.
MHEG beschäftigt sich nicht mit statischen Informationsobjekten, sondern mit deren
zeitlichen und räumlichen Beziehungen zueinander.
Die Ziele von MHEG sind: Austausch, Präsentation und Minimaler Ressourcenaufwand.
Potentiale Anwendungsgebiete sind Abfragedienste (Hypertext und Hypermediakonzepte)
und Verteilkonzepte (unidirektional - ohne Rückkanal)
MHEG-Engine
oder auch MHEG-Interpreter Software-Komponente beim Client Dekodierung und
Abspielen von MHEG-Applikationen sowie Handling von Benutzerinteraktionen bei Digital-
TV wäre die MHEG-Engine in der Set-Top-Box oder im digitalen TV-Empfänger integriert
sein

Vergleich MHEG       HTML
MHEG und HTML haben recht viel gemeinsam. Sie sind deklarative Sprachen, aber haben
doch entscheidende Unterschiede. Der wesentliche Unterschied ist die
Synchronisierbarkeit der Präsentationseinheiten. In HTML sind die Verknüpfungen von
beliebigen Aktionen und Events sehr aufwendig. In MHEG ist diese Synchronisierbarkeit
ein wesentliches Merkmal und ein Vorteil.
Darüber hinaus wird in HTML das tatsächliche Layout vom Browser des Endbenutzers
festgelegt. Dies bedeutet, dass beispielsweise bestimmte Werbeinhalte nicht an festen
Koordinaten präsentiert werden, womöglich sogar außerhalb des Darstellungsrahmens,
den der Endkunde sieht. In MHEG hingegen wird jedem sichtbaren Objekt ("Visible") von
vorne herein ein bestimmter Bereich im Darstellungsrahmen zugewiesen.
   Synchronität und spatiale Definiertheit !

MHEG bietet aber trotzdem die Möglichkeit der Verwendung von HTML-Inhalten über die
Darstellungsklasse "HyperText" (als MHEG Klasse), d.h. einen Rahmen in dem eine
HTML-Präsentation eingebaut werden kann. Somit lässt sich mit der MHEG-Engine ein
ganzer HTML-Browser aufbauen. Eine andere Möglichkeit wäre die Einbindung eines
handelsüblichen Web-Browsers, dem innerhalb des MHEG-Szenenrahmens ein
bestimmter Bereich zugewiesen wird.
D.h. im Falle der Verfügbarkeit einer solchen MHEG-Engine, verliert man bei der
Entscheidung für MHEG nicht die Kompatibilität für HTML-Inhalte. Wenn also auf einer
SetTopBox eine solche MHEGEngine läuft kann man auf dem normalen Fernseher auf
dem Internet surfen (Das einzige verbleibende Problem wären Eingabgeräte wie Tastatur
und Maus). Somit ist das eingangs erwähnte Problem der Verbindung von TV und
Computer durch MHEG gelöst.

Vergleich MHEG        JAVA
Der grundlegendste Unterschied zwischen JAVA und MHEG ist, daß JAVA eine prozedurale
Sprache ist, während MHEG eine deklarative Sprache ist.
Dies wirkt sich direkt auf die zu erwartende Komplexität der Applikationen sowie auf die
notwendigen Fähigkeiten der Präsentations-Hard/Software aus.
Im Allgemeinen benötigt eine deklarative Sprache weniger Ressourcen als eine
prozedurale Sprache.
Die Zielplattform von MHEG ist eigentlich die SetTopBox - hier ist normalerweise von sehr
knappen Ressourcen auszugehen. Dies macht eine Darstellungs-Umgebung mit möglichst
kleinem Umfang nötig.

Autorensysteme (Wozu? Paradigmen? Klassifikation?)
Wozu?
Ziel von Autorensystemen ist es, den Entwicklungsprozeß interaktiver multimedialer
Anwendungen durch graphisch-interaktiver Hilfsmittel (WYSIWIG-Prinzip: „What You See
Is What You Get“) zu unterstützen und einem Autor den Umgang mit den neuen
Möglichkeiten der elektronischen Publikation (Audio, Videi, Interaktionen,...) zu
erleichtern.

Paradigmen:
Das „Authoring paradigm“, auch bekannt als „Authoring Metapher“, ist die Methode mit
der Autorensysteme ihre Aufgaben erfüllen.
Dabei existieren folgende Paradigmen:
Scripting Paradigm . . . . . . . . . . . . . .mit Scripting-Sprachen
Iconic/Flow Control Paradigm . . . . .           Icon-Palette mit möglichen Funktionen und
                                         Flußlinie, schlechteste Laufzeit
Frame Paradigm . . . . . . . . . . . . . . .     auch mit Icon-Palette aber sehr schnell
Card/Scripting Paradigm . . . . . . . .          integrierte Scriptsprache, gut für Spiele
                                         (Toolbook)
Cast/Score/Scripting Paradigm . . . .            Musikbox als prim. Methapher, paralelle
                                         Elemente werden gleichzeitig (Flash)
Hierarchical Objekt Paradigm . . . . . benutz das Objekt als Methapher, wie
                                         Objekt Orientierte Programmiersprachen, mit Icon
                                         visualisiert
Hypermedia Linkage Paradigm . . . .              Links zwischen den Elementen werden
                                         Konzeptionell angezeigt, wie Frame
                                         paradigm
Klassifikationen:
Am bedeutendsten ist die zeitliche Beziehung zwischen Medienobjekten. Sie definieren
den Präsentationsablauf. In diesem Zusammenhang können Autorensysteme in deri
Klassen aufgeteilt werden:

Bildschirm-basiertes Autorensystem (frame Based) – Die zu repräsentierenden
Objekte werden auf Flächen (oder auch Karten, Seiten) gelegt und repräsentieren dabei
einen Bildschirm, den der Benutzer für einen bestimmten Zeitraum zu sehen bekommt.
(GAIN, Hypercard, Toolbook)

Zeitachsen-basiertes Autoernsystem (time-based) – Anstelle von Flächen wird mit
Film-Metapher gearbeitet, jede Anwendung stellt einen ganzen Film dar. Der Film besteht
aus mehreren Bildern, die aif einer Zeitachse angeordnet sind. Sie werden von Links nach
Rechts durchlaufen. Die einzelnen Bilder werden nach und nach auf dem Bildschirm
präsentiert. Der Bnutzer kann anhand von Navigationsinteraktionen die Bildreihenfolge
bestimmen bzw. einen Sprung auf de Zeitachse auslösen. (Director, Maestro, Quicktime)

Flußdiagramm-basiertes Autorensystem (flowchart-based) – Hier wird mit
einfachen Diagrammen visuell programmiert. Darstellung der Medianobjekte durch
Minaturen (Icons);
Diagramme; Verknüpfungen durch Kanten, die mögliche zeitliche Abläufe repräsentieren;
anhand Verzweigungs-stellen stehen Bedingungen (Interaktions-Events). Von Objekten
können mehrere zeitliche Beziehungen ausgehen, so dass kein fester Präsentationsablauf
besteht. Benutzer bestimmt den Ablauf der Anwendung durch Auswahl der
Navigationskanten.
Es gibt strukturierte und unstrukturierte Flussdiagramme.
Strukturiert – bestimmte logisch bzw. funktional zusammenhängende Teile könne
zusammengefasst werden und in externe Diagramme ausgelagert.(Authorware)
       Unstrtukturiert – steht nichts zu
       (Apple Media Tool, Authorware, Director, Course Builder, IconAuthor)

Wichtige Themen:
PERL
Übungen Module!
Was sind Module?
Module verringern den programmiertechnischen Aufwand
indem sie einfach handzuhabende Unterroutinen zu einem
Anwendungsgebiet (z.B. Netzwerkprogrammierung) zur
Verfügung stellen.

Wo befinden sich Module?
PERL Module haben die Dateiendung .pm und befinden sich im
lib Verzeichnis der PERL-Installation.
Wie und wo werden Module eingebunden? USE Package Name
Um auf die Funktionen eines Moduls zuzugreifen, muss das
Modul am Anfang des Skriptes mittels des use-Befehls
eingebunden werden.
Existieren mehrere Module zu einem Anwendungsgebiet, werden diese als
Paket in einem Verzeichnis zusammengefasst, um ein Modul aus einem
Paket einzubinden setzt man den Paketnamen mit 2 Doppelpunkten getrennt
vor den Modulnamen.
use Modul; bindet das Modul "Modul.pm" ein
use Paket::Modul; bindet das Modul "Modul.pm" aus dem Paket "Paket" ein
z.B. Net::SMTP
use LKW; bindet das objektorientierte Modul LKW in das PERL-Skript ein

Benutzung in einem Skript:
use Net::SMTP;
$smtp = Net::SMTP->new($mailServer); #Ein neues SMTP Objekt wird erzeugt.
z.B.
$smtp->mail($absender);


$transporter=LKW->new(100);
Erzeugt ein konkretes LKW-Objekt namens $transporter und initialisiert es mit einer
Anfangsgeschwindigkeit von 100 km/h.
$transporter->Geschwindigkeit(150);
Der LKW wird mittels der Methode Geschwindigkeit auf 150 km/h beschleunigt.
$transporter->Geschwindigkeit(0);
Der LKW wird mittels der Methode Geschwindigkeit zum Stehen gebracht.
Der Pfeiloperator -> trennt Klassennamen vom Methodennamen.

Wie erstelle ich Module?
Package und Moduldeklaration:
package Net::SMTP;
require 5.001;
$VERSION = "2.24"; # $Id: //depot/libnet/Net/SMTP.pm#25 $
@ISA = qw(Net::Cmd IO::Socket::INET);

sub mail
{
}

"perl Makefile.pl"
"make test"
"make" und
"make install" aus, um das gewünschte Modul in die eigene Installation zu integrieren.
Diese Schwierigkeiten wurden von Activestate erkannt und dafür ein Tool für die
Modulinstallation entwickelt. Der PERL Package Manager oder kurz ppm benötigt
hierzu vorbereitete Pakete, die Activestate anbietet.

Im einfachsten Fall ruft man ppm von der Kommandozeile mit install option
und dem Paketnamen auf:
ppm install neuesmodul
Wie deploye(verteile) ich Module?
- Get und Post Umgebungsvariablen abfragen, wie kommt man an die Daten?
GET-Methode:
Daten aus der Umgebungsvariable Query-String

      $data = $ENV{`Query_String`};

POST-Methode:
      Länge der Übergebenen Daten stehen im CONTENT_LENGTH
      Daten stehen im STDIN

Read (STDIN, $data, $ENV{`CONTENT_LENGTH`});
               Feldname und Feldinhalte der Formulars

@eintrag = split (/=/, $daten);
Array             Teilt den String $daten in 2 Arrayfeldern

╚► Beispiel:        user=eren&pswd=geheim

1. Array
                         @eintrag=split(/&/, $daten)
1. Arrayfeld          @eintrag[0];    2. Arrayfeld               @eintrag[1];
User=eren                             Pswd=geheim


2. Array
                          @user = split(/=/, @eintrag[0])
1. Arrayfeld              @user[0]      2. Arrayfeld               @user[1]
User                                    eren

3. Array
                         @password = split (/=/,@eintrag[1])
1. Arrayfeld         @password[0]    2. Arrayfeld        @password[1]
Paswd                                geheim


Was ist CPAN?
CPAN (Comprehensive PERL Archive) bietet eine umfassende Auswahl von Modulen zum
Download an




IPP (Internet Printing Protocol)

   -   Wie funktioniert http allgemein?
   -   Mechanismus zum Drucken über http
   -   Encapsulated http
   -   http Header angucken
   -   Austausch Header
   -   Header Content type


Problemlösung durch IPP
• Der reale Standort des Druckers spielt keine Rolle
• Drucken über LAN- und WAN-Grenzen hinweg möglich. Ein Druckjob kann über die
Kontinente hinweg übertragen werden …
• Plattform-unabhängiges Verschicken von Druckdaten durch Client/Server-Architektur
Was ist mit IPP alles möglich
• Es definiert die Interaktion zwischen IPP-Client und Server
• Druckjobs an den ausgewählten Drucker schicken
• einen zuvor geschickten Job wieder annullieren
• Statusabfragen sowie den Abbruch von Aufträgen
• den Fortgang eines Jobs von überall her überwachen
• moderne PDL´s (Postscript, PCL, ...) verarbeiten (PDL = Page Description Language)
• auf Anforderung PDL -Anweisungen überschreiben
• (unbekannte) Drucker im Netz finden
• Liste der besonderen Fähigkeiten eines Druckers abrufen
• Informationen über Treiber (Installation, Konfiguration, Auffinde-Ort) verfügbar
machen
• IPP-Drucker oder Server anweisen, das zu druckende Dokument selbst abzuholen
• Drucker und Druckserver konfigurieren
• Der Server ist dabei eine abstrahierte Form eines Ausgabegerätes (kann auch ein Fax
sein)
Adressierung über URI´s
• Der IPP-Dienst wird über die Portnummer 631 angesprochen
• Ansprechen über einen Standard-Webbrowser http://drucker.org:631/
• Bei zukünftigen Browsern ohne die Portnummer ipp://drucker.org/
IPP ist eine Erweiterung vom HTTP/1.1
(Hypertext-Transfer-Protocol)

Die Umsetzung des Protokolls
• IPP setzt auf dem HTTP/1.1-POST-Mechanismus auf
• Die Kommunikation zwischen Client und Server erfolgt über herkömmliche Anfragen
(Requests) und Antworten
• Die Kommandos werden als ASCII-Code übermittelt
• Der IPP-Service wird durch die “Multimedia Internet Mail Extension” (MIME) bekannt
gegeben: (application/ipp)
Sicherheit und IPP
Keine eigenen Sicherheitsmechanismen, aber möglich über …
• TLS (“Transport Layer Security”), welches auf SSL (“Secure Sockets Layer ”) basiert
• IPSec (“Internet Protocol Security”)
JSP
    - Aufgabe 4 nachvollziehen / Code verstehen
    - Was ist eine JSP-Datei? HTML-Datei mit Scriplets
    - Was sind Servlets?
    - Warum sind JSPs und Servlets invers zueinander?
    - Seite 16 Bild,31,ab 50 rosa
    - Servlet Lebenszyklus
    - Was läuft in Servlet-Engine?
    - Was sind JSP-Aktionen, Direktiven, Ausdrücke...?
    - Kann ich bzw. wie frage ich Sessions ab? Implizite Sessionvariablen
    - Was machen Scopes? Definieren den Gültigkeitsbereich,
    - Beispiele für Sessions: (session, page, request, applicaction)
    - Wo würden Sie was einsetzten z.B. Request bei Warenkorb???
    - JavaBeans mit useBean anbinden
    - Methoden der JavaBeans ansprechen

PHP (Hypertext Preprocessor)
Übungen ansehen.
   - Serverseitige Scriptschprache
   - in der Regel in HTML eigebettet
   - ähnlich C, nicht so komplex
   -
   - SSI – PHP?

SSI (Serverside Include)
   - 2 Tier, 3 Tier-Architectur
   - Folie 65

Es gibt zwei Arten von SSI Programmierung. Die zustandslose sowie die
zustandsbehaftete. Bei der zustandsbehafteten gibt es mehrer Möglichkeiten den Zustand
zu ermitteln.
    - Statusinformation werden in jedem weiteren CGI-Link als versteckte Parameter
        mit übergeben. Dieses Verfahren nennt man URL-Rewriting
    - Mit den von Netscape enwickelten Cookies werden bei Client abgespeichert und
        werden bei weiteren Anfragen an den Server mitgeschickt.
Könnte man sich angucken, muss man aber nicht:
MySQL (einmal durchlesen)

								
To top