interaktion mit externen diensten carsten schmidt/andreas schlesinger
Post on 05-Apr-2015
113 Views
Preview:
TRANSCRIPT
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
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
Was ist eine Web-Anwendung?
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, ….
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
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
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,
Möglichkeiten zur Interaktion…
Browserseitige Erweiterungen (JavaScript; Plugins ; Java Applets)
Serverseitige Erweiterungen (CGI Common Gateway Interface; servlets; HTTPD APIs; PHP )
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!
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
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
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
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?
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
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
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
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
ASP (Active Server Pages)
von Microsoft entwickelte SSI-NachfolgetechnologieErzeugt mit Hilfe einer Skriptsprache WebsitesWurde ursprünglich nur vom IIS interpretiertNachfolgetechnologie ist ASP.NET
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
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)
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
top related