Clientseitige Technologien Web Site Engineering, Vorlesung Nr. 2 Überblick • • • • • Allgemeine Funktionsweise Programmierung am Client Existierende Clients Konformität zu Standards Konfiguration und Anwendungen © Martin Klarner, Informatik 8 VORL 2/Folie 2 Client: Funktionale Sicht 1. Absetzen einer Anfrage des Benutzers – URL einlesen • • – – Server- und Dateinamen extrahieren IP-Adresse des Servers bestimmen TCP-Verbindung zum Server aufbauen HTTP-Anfrage erstellen und schicken 2. Warten auf HTTP-Antwort des Servers 3. Empfangen der HTTP-Antwort des Servers © Martin Klarner, Informatik 8 VORL 2/Folie 3 Client: Funktionale Sicht (2) 4. Interpretieren der HTTP-Antwort 1. HTTP- und HTML-Parsing durchführen 2. Ergebnisse des Parsings verarbeiten • • • • Darstellen (Rendering/Browsing) Speichern (Internes) Programm/Skript ausführen (Externe) Applikation ausführen © Martin Klarner, Informatik 8 VORL 2/Folie 4 Client-Typologie • Browser sind spezielle Web-Clients! • Browsergenerationen [cf. Klassifikations-VORL] – 1. Generation: Linear, plain HTML, inlined images – 2. Generation: Hierarchisch, Frames – 3. Generation: Web-basierte Applikationen – 4. Generation: Wo stehen wir heute? – ... [NB: NS 7.0, MSIE 6.0 sind die aktuellen Versionen!] © Martin Klarner, Informatik 8 VORL 2/Folie 5 Überblick • • • • • Allgemeine Funktionsweise Programmierung am Client Existierende Clients Konformität zu Standards Konfiguration und Anwendungen © Martin Klarner, Informatik 8 VORL 2/Folie 6 Integrierte Dienste • Idee: Integrierte Arbeitsumgebung • HTTP – HTML: Struktur vs. Layout, oder nur Container? – CSS – Neuerdings XML, XSL(T) • Grafisches Interface zu älteren Diensten – FTP, Archie – WAIS/Gopher • Chat: IRC • Suchmaschine (Google wird Standard!) © Martin Klarner, Informatik 8 VORL 2/Folie 7 Integrierte Dienste (2) • „Helpers“ – Plug-ins: Browser-spezifisch, voll integriert – Externe Viewer: Browser-unabhängig, nicht integriert – ActiveX-Controls: Sicherheitsproblematik • Mail – Senden: SMTP – Empfangen: POP, IMAP – Dezidierte Web-Clients • News – NNTP – Dezidierte Web-Clients © Martin Klarner, Informatik 8 VORL 2/Folie 8 Integrierte Dienste (3) • Scripting: JavaScript, VBScript ⇒ ECMAScript • Java Virtual Machine – – – – Applets vs. Applications Sicherheit: „Sandbox“ Geschwindigkeit: JIT-Compiler Modularisierung, Wiederverwendung: JavaBeans • DHTML: Integration und client-seitige Modifikation • Verteilte Programmierung – RMI: Java´s RPC – CORBA: Stub (Client) und Skeleton (Server) – DCOM: ActiveX-Erweiterung analog CORBA © Martin Klarner, Informatik 8 VORL 2/Folie 9 ActiveX © Martin Klarner, Informatik 8 VORL 2/Folie 10 DHTML Beispiel: Standard-HTML-Dokument <HTML> <HEAD><TITLE>Weltfirma</TITLE></HEAD> <BODY BGCOLOR=”WHITE”> <H1 ALIGN=”CENTER”>Weltfirma</H1> <HR> <P ID=”paral”>Dies ist ein Textabsatz</P> <UL> <LI><A HREF=“about.htm“>Wir über uns</A> <LI><A HREF=“products.htm“>Produkte</A> </UL> </BODY> </HTML> © Martin Klarner, Informatik 8 VORL 2/Folie 11 DHTML (2) Dokumentenmodell dieses Beispiel-Dokuments HTM L H EAD BO D Y bgcolor="white" TITLE H1 align="center" W eltfirm a W eltfirm a HR UL P Dies ist ein Textabschnitt. LI LI A href="about.htm " A href="products.htm " W ir über uns Produkte © Martin Klarner, Informatik 8 VORL 2/Folie 12 DHTML (3) Funktionsweise des Scripting innerhalb des Dokuments: Zugriff auf die Elemente … • … direkt durch Script-Code <A HREF=“products.htm” onMouseover=“this.style.color=red” onMouseout=“this.style.color=blue”>Products Section</A> • • oder … durch Referenz über Namen und Aufzählungen para1.style.color=green Events wie onclick oder onMouseover zur Bindung von Script-Code an Benutzer-Aktionen © Martin Klarner, Informatik 8 VORL 2/Folie 13 JavaScript: Allgemeines • • • • Interpretierte Sprache in verschiedenen Versionen (1.0, 1.1, 1.2) Objektbasiert Speicherung direkt in HTML-Datei oder in separater Datei Benutzung in … – <script>-Elementen oder – direkt in HTML-Tags; Bsp.: <input type=button value=“6 hoch 2" onClick="Quadrat(6)"> • • • Unterschiedliche Interpretation von Objekteigenschaften in Internet Explorer und Netscape Basis: ECMA-262-Standard Sicherheitslücken (z.B. cross side scripting mit 1-Pixel-Fenster) © Martin Klarner, Informatik 8 VORL 2/Folie 14 JavaScript: Sprachelemente • Keine strenge Typisierung (Unterscheidung: Numerische Variablen, Zeichenketten) • Funktionen, Operatoren, Kontrollstrukturen • Event-Handler • Vordefinierte Objekte mit Eigenschaften, Methoden und Unterobjekten; Beispiel: document object – – – – Inhalt eines Browser-Fensters Eigenschaften: URL, bgColor, ... Methoden: captureEvents(), close() Unterobjekte: images, links, forms, ... © Martin Klarner, Informatik 8 VORL 2/Folie 15 JavaScript: Verwendung • Adaption – Dynamische Generierung von Inhalt – Steuerung • Dynamisierung der Seite – Benutzung von events am Client – „Progrämmchen“ • Informationsaustausch zwischen – Frames – Client und Server © Martin Klarner, Informatik 8 VORL 2/Folie 16 JavaScript: Anwendungsbeispiele • „Nette Kleinigkeiten“ – Zähler – Informationen zur Umgebung – Zeitprotokollierung • Demo-Anwendungen wie Spiele oder Taschenrechner • Aktionen – – – – Öffnen neuer Fenster Kopplung von Frames Veränderung von Objekten Validierung von Formeingaben © Martin Klarner, Informatik 8 VORL 2/Folie 17 Javascript: Debugging • Problem – Keine Programmierumgebung ⇒ fehlende Debugging-Möglichkeiten • Keine Breakpoints • Kein Herausschreiben von Variablenwerten – Browser-Absturz • Fehlertypen – Load time errors (Bsp: Syntaxfehler) – Runtime errors (Bsp: nicht deklarierte Variablen) – Logic errors © Martin Klarner, Informatik 8 VORL 2/Folie 18 Javascript: Debugging (2) Mögliche Lösungen • Watchpoints mit alertbox • Testen einzelner Codezeilen im Browser Bsp.: javascript:alert("this is a test") • Errichten einer Testumgebung mit Formularen • Bau eines Object Inspectors • ... (siehe z.B.: http://www.javaworld.com/javaworld/jw-07-1996/jw-07-javascript_p.html ) © Martin Klarner, Informatik 8 VORL 2/Folie 19 Java: Eigenschaften „Java is a simple, object-oriented, distributed, robust, multithreaded, portable, platformindependent, secure programming environment.“ (Sun Microsystems) • Java am – Client (applet) – Server (servlet) © Martin Klarner, Informatik 8 VORL 2/Folie 20 Java am Client • Java Applets • Übersetzung des Java-Quellcodes in Byte-Code ⇒ Java Class Files • Client – Laden der Java Class Files – Ausgeführt z.B. in Java Virtual Machine (JVM) • JVMs für viele Betriebssysteme oder Browser • Ableitung aller Applets von der Klasse applet © Martin Klarner, Informatik 8 VORL 2/Folie 21 Java: Verwendung • Einbettung der Class-Files in HTML-Container; Bsp.: <APPLET CODE=„abc.class“ Width= …> <PARAM NAME="endImage" VALUE=10> … </APPLET> • Aufruf vordefinierter Methoden durch den Browser Bsp.: init(), destroy(), start(), stop(), paint() • Dynamisches Nachladen von Klassen zur Laufzeit © Martin Klarner, Informatik 8 VORL 2/Folie 22 Java Sandbox • Kein Zugriff auf lokale Dateisysteme • Keine Netzwerkverbindungen (Ausnahme: Origin Host) • Bedingter Zugriff auf Systemfunktionen (z.B. Verbot von System.exit(), Runtime.exec()) • Bedingter Zugriff auf Systemeigenschaften • Neues Konzept: Signiertes Applet • ... © Martin Klarner, Informatik 8 VORL 2/Folie 23 Programmierung: Tipps • Programmieren vs. Suchen und Anpassen – – • Bestehende Archive Vorhandene Javascript-Seiten Fehler 1. Eigenen Code debuggen 2. Browser-Fehler in Betracht ziehen 3. Recherchieren im WWW © Martin Klarner, Informatik 8 VORL 2/Folie 24 Überblick • • • • • Allgemeine Funktionsweise Programmierung am Client Existierende Clients Konformität zu Standards Konfiguration und Anwendungen © Martin Klarner, Informatik 8 VORL 2/Folie 25 Browser-Marktanteile 3,3% 0,6% 0,1% Intern et Explorer Netscape Mozilla Son stig e 96 ,0% ⇒ Der „Browserkrieg“ ist entschieden! © Martin Klarner, Informatik 8 VORL 2/Folie 26 Die „großen Zwei“ • Trends – Zunehmende Angleichung bei den Features – Zunehmende Respektierung von Standards • Vorteile des MSIE – Integration mit MS Office/Windows – Stabilität – Geschwindigkeit • Vorteile des Netscape Communicator – Verfügbarkeit auf vielen Plattformen – Verfügbarkeit des Sourcecodes © Martin Klarner, Informatik 8 VORL 2/Folie 27 Sonstige • • • • • • • Amaya: Die W3C-Referenz Opera: Lean, Sourcecode verfügbar Konqueror: KDE-intern, Integration mit Filemanager Mozilla: Netscape‘s Quellcode als OpenSource W3 (im Emacs enthalten) Plattformspezifische Nischenlösungen: Amiga, Mac, C 64 (!) Textbasierte Browser – – – – Lynx W3M: Linux-Textbrowser mit Frames WAP-Browser auf Handy/Palmtop/PDA „Blinden“-Browser (Text-to-Speech, Braille) © Martin Klarner, Informatik 8 VORL 2/Folie 28 Überblick • • • • • Allgemeine Funktionsweise Programmierung am Client Existierende Clients Konformität zu Standards Konfiguration und Anwendungen © Martin Klarner, Informatik 8 VORL 2/Folie 29 Konformität zu Standards • HTML 4.0 allgemein Bsp.: HTML 4.0-Tabellen • CSS-Support • DOM-Support • Javascript • Umgang mit Konformitätsproblemen © Martin Klarner, Informatik 8 VORL 2/Folie 30 HTML 4.0 • Proprietäre Elemente in Browsern • Nicht umgesetzte Elemente des HTMLStandards • Andere Attributnamen • Verschiedene Darstellungen • ... (vgl. z.B. http://www.ncdesign.org/html/list.htm ) © Martin Klarner, Informatik 8 VORL 2/Folie 31 Beispiel: Tabellen • Netscape unterstützt z.B. bis Version 4.X weder <COL>-noch <COLGROUP>-Element • Microsoft IE unterstützt bis Version 5.5 z.B. CHAR-, DIR- und HEADERS-Attribute nicht • Unterstützung von Attributen zur expliziten Spezifikation der Ausdehnung (z.B. HEIGHT) oder Farbe (z.B. BORDERCOLORLIGHT) © Martin Klarner, Informatik 8 VORL 2/Folie 32 CSS- und DOM-Support • CSS-Support – Netscape 4.X: rudimentäre Unterstützung – IE 5.5: partielle und fehlerhafte Unterstützung • DOM-Support – Fehlende Objekte und Funktionen des DOM Core Standards in IE 5.X – Keine Unterstützung von bestimmten Attributen, fehlende Methoden – Netscape 4.X: Dokumentierte Abweichungen (vgl. http://www.builder.com/Reviews/031899/ss05.html) © Martin Klarner, Informatik 8 VORL 2/Folie 33 Javascript • Netscape 3 und 4, Internet Explorer 3 und 4 – Fehlende Javascript-Features – Fehlerhafte Implementierung – Partielle Ignorierung des ECMAStandards (vgl. z.B. http://www.projectit.com/articles/yamf/) © Martin Klarner, Informatik 8 VORL 2/Folie 34 Netscape 6 und 7 • Netscape 6/7 implementiert – – – – – HTML 4 XML 1.0, CSS-1 DOM Level 1 ECMAScript Key components von CSS-2 (vgl. http://cws.internet.com/reviews/netscapenetscape6-8.html) © Martin Klarner, Informatik 8 VORL 2/Folie 35 Überblick • • • • • Allgemeine Funktionsweise Programmierung am Client Existierende Clients Konformität zu Standards Konfiguration und Anwendungen © Martin Klarner, Informatik 8 VORL 2/Folie 36 Konfigurationsmöglichkeiten • Installationsoptionen (Netzwerkinstallation) • Preferences – Grafische Einstellung – Konfigurationsdateien – Mischformen • Plug-ins • MIME-Types • Integration von Mail- und News-Clients © Martin Klarner, Informatik 8 VORL 2/Folie 37 Effizienz • Client-seitiges Caching – Lokaler Zwischenspeicher (RAM oder HD) – Externe Verbindung nur bei cache miss/update (?) ⇒ Verringerte Netzlast • Multi-Threading – Gleichzeitiges Laden und Rendern – Simultanes Öffnen mehrerer TCP-Verbindungen ⇒ Verbesserte Auslastung des Netzes und der lokalen Ressourcen © Martin Klarner, Informatik 8 VORL 2/Folie 38 Effizienz (2): Prefetching • Transparent für Benutzer • Reduziert mit Heuristik-basierten Agenten … – … entweder Latenz auf Benutzerseite • Agent lädt Seiten entspr. Benutzerprofil im voraus • Zusätzliche Netzwerklast – … oder Netzwerklast • Verringert „burstiness“, nivelliert Datenrate • Höhere Datenmenge © Martin Klarner, Informatik 8 VORL 2/Folie 39 Anwendungen • Ziel: Integrierte Arbeits- und „Freizeit“-Umgebung • WWW-basierte Office-Software – – – – – – Textverarbeitung, Tabellenkalkulation (MS Office) Schnittstelle zu WWW-Datenbanken Telefonie (http://www.e-online.de/sites/kom/0307041.htm) Adressbuch, Kalender (OWA) Fax, Mail, News, Filespace (http://office.freenet.de/) Suchmaschinen © Martin Klarner, Informatik 8 VORL 2/Folie 40 Anwendungen (2) • Einkaufszentrale: E-commerce • Multimedia-Maschine – MP3 – Video on demand – Multi-User-Internet-Spiele • Mobile Kommunikationszentrale – WAP, UMTS – Handy, Palmtop, PDA ⇒ Universelle Informationsquelle © Martin Klarner, Informatik 8 VORL 2/Folie 41 Welche Client-Technologien? • Präsentation und Layout: CSS • Zusätzliche Funktionalität: Plug-Ins, ActiveX, Java • Struktur und Inhalte dynamisch verändern: Client-seitiges Scripting, DHTML • Traditioneller Fokus des WWW-Designers © Martin Klarner, Informatik 8 VORL 2/Folie 42 Zusammenfassung • Client-seitige Technologien sind … – … vielfältig und schwer überschaubar – … nicht direkt im Zugriffsbereich des Web Site Designers – … eine Möglichkeit, den Server zu entlasten – … notwendig für WWW -Applikationen • Programmierung am Client und Server nötig ⇒ Nächste Vorlesung! © Martin Klarner, Informatik 8 VORL 2/Folie 43 Literatur • Hall, M. Core Web Programming, Prentice Hall PTR • Powell, Thomas A. Web Site Engineering. Prentice Hall 1998 • Siegel, D. Killer Web Sites. München 1999 • Wilde, E. Wilde´s WWW. Springer, Berlin, 1999 • Greenspun, P. Philip and Alex's Guide to Web Publishing. http://www.arsdigita.com/books/panda/ © Martin Klarner, Informatik 8 VORL 2/Folie 44 Links • • • • • • • • • • • http://www.oasis-open.org/cover/ http://www.w3.org/DOM/ http://www.teco.edu/lehre/webe http://www.webdeveloper.com/library/reference.html http://browserwatch.internet.com/news/story/news-200012092.html http://www.easyjavascript.com/javascript.html http://xmlhack.com/read.php?item=409 http://www.teco.edu/lehre/webe http://www.e-online.de/sites/kom/0307041.htm XML Cover Pages: http://www.oasis-open.org/cover/ XML allgemein: http://www.xml.com/ © Martin Klarner, Informatik 8 VORL 2/Folie 45