Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

22
Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger

Transcript of Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Page 1: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Interaktion mit Externen Diensten

Carsten Schmidt/Andreas Schlesinger

Page 2: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Index

Interaktionsbegriff in der InformatikWas ist eine Web-Anwendung? Definition Thin Web Client/ Thick Web Client

Warum reicht HTML nicht aus?Was man eigentlich will…Möglichkeiten zur Interaktion…JavaScriptPluginsJava AppletsAjaxServletsPHPSSI (Server Side Includes)ASP (Active Server Pages)HTTPD APIsCGI(Common Gateway Interface)Skripte

Page 3: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Interaktionsbegriff in der Informatik

In der Informatik ist der Begriff Interaktion gleichbedeutend mit Kommunikation befasst sich damit, wie einzelne Komponenten eines Systems sich gegenseitig beeinflussen

Page 4: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Was ist eine Web-Anwendung?

Page 5: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Definitionsversuch

G. Kappel et. Al. (TU Wien): Eine Web-Anwendung ist ein Softwaresystem, das auf

Spezifikationen des World Wide Web Consortium (W3C) beruht und Web-spezifische Ressourcen wie Inhalte und Dienste bereitstellt, die über eine Benutzerschnittstelle, den Web-Browser, verwendet werden.

W3C = World Wide Web Consortium DAS Gremium zur Standardisierung im Web HTML, HTTP, XML, ….

Page 6: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Web-Anwendung

Thin Web Client: (möglichst) nur Darstellung auf dem Client Hauptsächlich HTML, etwas JavaScript Vorteil: Standard-Browser Funktionalität

Thick Web Client: Auch Anwendungslogik auf dem Client Typisch: JavaApplet, Java Anwendung mit WebStart Vorteil: Windows-like Benutzerführung möglich

Thin Client Thick Client

HTTP

Page 7: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Warum reicht HTML nicht aus?

Einsatz interessant bei sich selten ändernden Daten und vielen ZugriffenIm Vergleich zu Datenbanksystemen begrenzte Suchfunktionalitätgeringe Anwendungsfunktionalität Aktualisierungs- und Konsistenzproblem(Seite muss nach Anfragen immer neu geladen und gerendert werden)HTML bietet “nur“ statische Seiten

Page 8: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Was man eigentlich will…

Interaktion zwischen Benutzer und Anwendung Suche – Ergebnis Eingabe – Speicherung Upload von Dateien – Speicherung Bestellung – Lieferung Profil Angabe – Personalisierung …

Web-Anwendung: Anwendung die Benutzer-System-Interaktion auch über das

Web ermöglicht was früher mit Papier-Formularen erledigt wurde, soll

ebenfalls über das Intranet abgewickelt werden, z. B. Urlaubsanträge, Bestellungen, Reiseanträge,

Page 9: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Möglichkeiten zur Interaktion…

Browserseitige Erweiterungen (JavaScript; Plugins ; Java Applets)

Serverseitige Erweiterungen (CGI Common Gateway Interface; servlets; HTTPD APIs; PHP )

Page 10: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

JavaScript

von der Firma Netscape entwickelt, um statische HTML-Seiten dynamisch zu gestaltenUnter den clientseitigen Scriptsprachen hat JavaScript die weiteste Verbreitung gefunden Syntax der Sprache ähnelt der der Programmiersprache C/Java und auch einige Schlüsselwörter beider Sprachen sind identisch systemunabhängigDas könnte dann so aussehen!

Page 11: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Plugins

sind Ergänzungs- oder ZusatzmoduleBezeichnung für ein Softwareprogramm, das in ein anderes Softwareprodukt "eingeklinkt" wird ein Plugin erweitert die Funktionalität eines Softwareprodukts

Darstellung von CAD-Daten, Telefonieren, Shockwave-Spielchen oder Audio-Live-Übertragungen werden durch sie ermöglicht Beispiele:

- Macromedia Flash Player oder das AcrobatReader-Plugin

- Real/Quicktime Player

Page 12: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Java Applets(1)

Kleines “fast“ Java Programm, dass in einem Webbrowser ausgeführt werden kann und aus einer grafischen Zeichenfläche bestehtApplet bedeutet soviel wie "Anwendungs-Schnipsel" und setzt sich aus Application und snippet zusammen GUI sehr gut darstellbarDas gesamte Interface muss programmiert werdenUm sie ausführen zu können, muss der jeweilige Webbrowser über eine entsprechende Java-VM(Virtuelle Maschine) verfügen

Page 13: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Java Applets(2)

Sicherheit: Da Applets auf dem Client ausgeführte Programme sind

stellen sie auch ein Sicherheitsproblem dar Da die Applets in einer abgeschotteten

Laufzeitumgebung (Sandbox) laufen, ist dieses Risiko jedoch gut kontrollierbar

Sicherheitsrisiko besteht nur dann, wenn die Sandbox fehlerhaft ist

Sandbox: Software wird vom Rest des Systems abgeschirmt,

quasi in den Sandkasten gesetzt Somit kann die Software einerseits keinen Schaden

anrichten und andererseits die Wirkung der Software aufzeichnen

Page 14: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Java Applets(3)

Jedes Applet muss von der Klasse java.applet.Applet abgeleitet werdenBenötigt keine main()-MethodeVerfügt über einige Methoden: init() wird genau einmal aufgerufen, wenn das Applet erstmals

in den Browser geladen wird start() - wird jedesmal aufgerufen, wenn das Applet sichtbar

wird stop() - wird jedesmal aufgerufen, wenn das Applet verdeckt

wird, z.B. weil das Browser-Fenster von einem anderen Fenster überdeckt wird.

destroy() - wird aufgerufen, wenn das Applet aus dem Hauptspeicher entladen wird

Beispiel Applet so bindet man das HTML ein und so sieht das dann aus?

Page 15: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Ajax ein Zwischending

Browser tauscht bei kleinen Änderungen nur die benötigten Daten mit dem Server aus dies geschieht asynchron, d.h. der Benutzer kann mit der Anwendung weiterarbeitenAbürzung für „Asynchronous JavaScript+XML“Kombination verbreiteter, standartisierter Techniken XHTML und CSS zur Darstellung Document Objekt Model für Benutzerineraktion und

dynamische Ausgaben XML und XSLT für den Datenaustausch zwischen Client und

Server JavaScript als Bindeglied für alle Komponenten

wesentlich weniger Daten zwischen Webbrowser und Webserver ausgetauscht Beispiel ist Flickr traditionell gesehen müsste der Server die komplette Seite bei Textänderungen neu generieren hier wird jedoch nur der Text gespeichert

Page 16: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Servlets

als Servlets bezeichnet man Java-Klassen, deren Instanzen innerhalb eines Webservers Anfragen von Clients entgegennehmen Inhalt der Antworten kann dabei dynamisch, also im Moment der Anfrage, erstellt werden Servlets stellen somit das Java-Pendant zu CGI-Skripten oder anderen Konzepten, mit denen dynamisch Web-Inhalte erstellt werden können (PHP etc.), dar

Page 17: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

PHP

„PHP: Hypertext Preprozessor“, ursprünglich „Personal Home Page Tools“ Eine serverseitig interpretierte Skriptsprache mit einer an C bzw. Perl angelehnten Syntax, die hauptsächlich zur Erstellung dynamischer Webseiten verwendet wird

Page 18: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

SSI (Server Side Includes)

Serverseitige Scriptsprache die fast nur im WWW verwendet wirdwird hauptsächlich dazu genutzt, den Inhalt einer Datei oder die dynamische Ausgabe eines CGI-Programmes in eine Webseite einzufügenNutzung von SSI ist für den Besucher der Seite nicht erkennbar

Page 19: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

ASP (Active Server Pages)

von Microsoft entwickelte SSI-NachfolgetechnologieErzeugt mit Hilfe einer Skriptsprache WebsitesWurde ursprünglich nur vom IIS interpretiertNachfolgetechnologie ist ASP.NET

Page 20: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

HTTPD APIs

application programming interface Ein API ist die Schnittstelle, die ein Betriebssystem oder auch ein anderes Softwaresystem anderen Programmen zur Verfügung stelltAPI definiert nur die Verwendung der Schnittstellen, nicht aber deren RealisierungAPI stellt Routinen, Protokolle und Dienstprogramme für das Erstellen von Software darBeispiele: DirectX, OpenGLEbay, Amazon und Google bieten Dritten beispielsweise eine API zur Katalogabfrage

Page 21: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

CGI(Common Gateway Interface)

Das Common Gateway Interface beschreibt, wie vom Anwender am Web-Browser eingegebene Daten an den Web-Server gesendet und dort an ein CGI-Programm weitergereicht werden Muss von Webserver-Software unterstützt werden. Software muss 3 Finge zur Verfügung stellen Umgebungsvariablen Weiterleitung von Ausgaben Einholen von Formulareingaben oder

AufrufparameternCGI-Programme können also in allen möglichen Programmiersprachen geschrieben seinNachteil: CGI-Ausführung ist langsamer als andere Möglichkeiten (z.B. Servlets)

Page 22: Interaktion mit Externen Diensten Carsten Schmidt/Andreas Schlesinger.

Skripte

client HTTP-Server

DatenbankJava Servlet

Aufruf des Skriptesmit ParameternInitialisierung bei jedem Aufruf

Skript übermittelt HTML und beendetsich

Anfrage

Fahrplananforderung bei www.diebahn.de Bestätigen mit dem Suchen Button

Verbindungsaufbau

Aufbau der DB Verbindung bei jedem Aufruf

Skript generiert HTML

Antwort

HTTP Server Antwortet

SQL Anfrage

Skript stellt Anfrage an DB

Ergebnis

PHP

CGI-Skript