Web-Anwendungen.

Slides:



Advertisements
Ähnliche Präsentationen
Semesterarbeit von Dieter Lorenz, Sebastian Galenski, Stephan Bury
Advertisements

Java-Servlets Gliederung: Allgemeine Informationen zu Servlets
Webinterface für eingebettete Systeme in Dual-Server-Architektur
Software Engineering Praktikum SS 2003
Software Engineering Praktikum WS 2002/03
DI Christian Donner cd (at) donners.com
Inhalt – Technische Grundlagen
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Basis-Architekturen für Web-Anwendungen
Internet-Datenbanken
Datenbankzugriff im WWW (Kommerzielle Systeme)
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Tomcat Web-Server installieren
Internetzugriff mit Strings und Streams
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Java 2 Enterprise Edition (J2EE)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Dynamische Webseiten mit PHP Oder: LAMP - The open way.
Dynamische Webseiten mit PHP
Dynamische Webseiten Java servlets.
Web-Anwendungen.
Information und Technik Nordrhein-Westfalen Das personalisierte Portal Düsseldorf, Das personalisierte Portal.
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
JAVA RMI.
Introducing the .NET Framework
Seminar Internet Technologien
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Björn Schmidt, Hoang Truong Nguyen
Einführung Servlets/JSPs
Jahre WorldWideWeb 13 Jahre Web-Anwendungen mit allegro.
Einführung in die Programmiersprache Java
Applets Java für’s Web.
Seminar Internet - Technologie
PPS-Design einer eigenen WWW-Homepage SS 2003 Applets.
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Webservice Grundlagen
EJB-Applikationsserver
HTML-Editoren Eine Präsentation von Erik Kulisch.
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
CGI (Common Gateway Interface)
Java Server Pages Sergej Keterling
Management- und Web Services- Architekturen
Oliver Spritzendorfer Thomas Fekete
Datenanbindung in Webapplikationen
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Einführung in Web Services Web Services in der Praxis
Online GIS Online GIS – Der Nutzer Matthias Hofschen, ESRI Germany ESRI EUROPEAN USER CONFERENCE.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
->Prinzip ->Systeme ->Peer – to – Peer
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
Webserver, Apache und XAMPP
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
WINLearn Technische Umsetzung. Basistechnologie Oberfläche in HTML JSP (JavaServerPages) zur Datenauswertung Datenhaltung: Datenbank oder Filesystem JDBC.
Java 2 Enterprise Edition (J2EE) Sascha Baumeister Software Architect Specification Lead JSR086 IBM Deutschland Entwicklung GmbH
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Oracle ADF FacesSeite 1 Oracle ADF Faces OPITZ CONSULTING Oracles Implementierung der JavaServer Faces Spezifikation.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Web-Interface for Multi-FPGA Board Pamette
 Präsentation transkript:

Web-Anwendungen

Web-DB-Kopplung, © Till Hänisch 2003,2005 Überblick Dynamische Webseiten Architekturen Middleware Überblick Technologien Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Host „dumme“ Terminals stellen Ausgaben dar und nehmen Eingaben an Mainframe enthält vollständige Anwendung Typ. COBOL, C Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Mainframe contd. Nachteile Mainframe ist teuer (Millionen !) (damals) keine grafische Oberfläche Kaum Integrationsmöglichkeiten (anderer Systeme) Proprietäre Systeme (OS, DB, Anwendung,...) Vorteile Nur ein System (das ausfallen kann, gewartet werden muss,...) Clients (Terminals) benötigen keine Konfiguration, Installation,... Entwicklung PCs sind billig und leistungsfähig Zentral nur noch Datenbank, der Rest (Anwendung,...) läuft auf Client --> Mainframe wird entlastet (überflüssig ?) Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Client Server Server hält Daten zentral (und damit konsistent). Nur Datenbank --> auch mit wenig leistungsfähiger HW können viele Clients bedient werden Anwendung läuft auf Clients (PC) Typ. C++ Programm (Visual Studio) Beispiel: SAP R3, WWW ? Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Client Server contd. Vorteile HW (auf Clients) wird optimal ausgenutzt Grafische Oberfläche Client kann auf mehrere Server zugreifen Kleiner Server --> billig, flexibel (verschiedene Hersteller, Unix-Plattform) Nachteile Client erfordert Konfiguration/Installation --> hoher Installations-/ Support-Aufwand Unter Umständen hohe Anforderungen an Client-HW, Netzwerk Entwicklung Thin Clients: Client ist nur für Ausgabe/Eingabe zuständig Aber wie ? Browser ! (und ggf. Applet,...) Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Thin Client, 3 tier Typ. ASP, JSP, Servlet, PHP usw. Anwendung läuft im Webserver und greift auf Datenbank zu Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Thin Client contd. Vorteile Wie bei Mainframe + „modern“ Nachteile Bei hohem Interaktionsgrad Anwendungsentwicklung komplex und aufwendig Probleme Enge Kopplung zwischen Webserver und Datenbank Skalierung, Flexibilität ! Anwendungsprogramm enthält Geschäftslogik Lösung Trennung durch Applikationsserver, Middleware Web-DB-Kopplung, © Till Hänisch 2003,2005

Einschub: Architekturen Von „Client/Server“ zu EAI Überblick, technische Details komplex Szenario: Unternehmen verwendet SAP als ERP-System wickelt Versand über Dienstleister, hier UPS ab UPS bietet Verfolgung der Lieferung über Web-Schnittstelle Daten im ERP (z.B. Auftrag) und beim Dienstleister müssen abgeglichen werden Verschiedene Lösungswege Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Separate Clients SAP SAP GUI Browser UPS Spezieller Client für jede Anwendung Abgleich erfolgt manuell (copy-paste,...) Probleme: Effizienz, Konsistenz usw. Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Spezieller Client SAP UPS Client Spezieller Client für diese Anwendung integriert die Daten Probleme: Aufwand ! Für jede mögliche Anwendung muss neuer Client entwickelt werden (und installiert, Gewartet,...) Client Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Integration SAP SAP-GUI UPS Kopplung zwischen den (Server-) Systemen SAP greift auf Daten aus Fremdsystem zu Problem: Programmierung (auf Server) nötig Wie kommunizieren die verschiedenen Systeme ? Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Middleware Techniken zur Kopplung von Systemen Selbst gebastelt (TCP/IP sockets) RPC (Remote Procedure Call) CORBA (Common Object Request Broker Architecture) COM+ (Common Object Model, .NET) RMI (Remote Method Invocation) XML-RPC SOAP (Simple Object Access Protocol) Web Services usw. Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Schnittstellen SAP UPS System 2 System 3 System 1 Bei N Systemen N*(N-1)/2 Schnittstellen ! Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 EAI Keine Punkt zu Punkt Schnittstellen sondern gemeinsame Architektur mit (mehr oder weniger) zentraler Vermittlung Bus Hub Sieht einfach aus, ist es aber nicht Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Portal SAP Client Webserver Browser Portal UPS Verlagerung der Komplexität an eine Stelle (Portal) Konsequenz für Informationsanbieter ? Wie kommt das Portal an die Daten ? z.B. Web Services Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Anbieterseite z.B. DB Browser Webserver z.B. PHP klassisch z.B. DB Browser Webserver z.B. PHP jetzt Web- service Applikation muss mehrfach entwickelt werden !! DB Browser Web- server deshalb Web- service Applikations- server Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 4 tier Architektur Darstellung Logik Daten Verschiedene Middleware Technologien, etwa CORBA, .NET, J2EE, Webservices usw. zur Kommunikation (insb.) zwischen Webserver und Applikationsserver Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Midleware Vorteile „modern“, flexibel,.... SW-technisch optimal: Trennung in einzelne Funktionalitäten: Präsentation, Anwendung, Geschäftslogik, Datenhaltung Stand der Technik Probleme Komplexität, Administration,.... Unübersichtliche Technologie-Vielfalt: Ebene 1 und 4 meist klar, aber 2 und 3 bieten Vielzahl an Technologien Entwurf der Middleware-Schnittstelle nicht einfach: Auf welcher Ebene soll hier abstrahiert werden (Daten, Funktionen, Prozesse,....) Performance teilweise schlecht Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Schicht 1: HTML Auszeichnungssprache Tags stellen Semantik des Dokuments dar Präsentation durch Browser heute auch Präsentation durch HTML Formatierung <FONT>, ... Logik JavaScript, DHTML,... Trennung Inhalt/Layout durch CSS (teilweise) Statische (Text-) Inhalte Dynamische teilweise durch JavaScript (Navigation,...) Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Schicht 1: XML XML ist standardisiert XML ist eine Methode strukturierte Information zu speichern XML ist HTML ähnlich (aber sehr anders) XML ist Text, der nicht zum Lesen gedacht ist XML ist eine Familie von Technologien (XSLT...) XML ist neu! (oder doch nicht?) XML ist lizenzfrei, Plattform unabhängig, unterstützt standardisierte XML-Programmierschnittstellen (SAX, DOM) XML-Applikationen sind nicht standardisiert! Wichtigste Anwendung: Datenaustausch zwischen Systemen Aber auch im Browser: IE unterstützt XML-Darstellung mit CSS Verstärkt auch zwischen den anderen Schichten Web-DB-Kopplung, © Till Hänisch 2003,2005

Schicht1: Java-Applets Was tun, wenn Anwendung interaktiv sein muss ? Beispiele Aktien-Ticker Spiele Komplexere Navigation Programm, das im Browser abläuft Portabel (versch. Hardware, Betriebssystem,...) Sicher (Content aus dem Web) Alternative: Microsoft ActiveX (COM,....) Windows-Komponenten, die vom IE ausgeführt werden Sicherheit !! (ActiveX-Komponenten sind beliebige Windows-Programme) Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 JVM Bytecode Verifier Java Source Class Loader Java Compiler Internet Interpreter JIT Compiler JVM Byte- code Hardware Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Schicht 2 Verschiedene Techniken, hier: Auswahl CGI (Common Gateway Interface) PHP (bekannt) Java-Servlets/Java Server Pages (JSP) Viele andere, wichtig insb. Microsoft ASP (.NET) Kommunikation zwischen Schicht 1 und 2 HTTP Immer bei statischen Anwendungen Applets/ActiveX können beliebige Protokolle verwenden WAP/WML Optimiert für mobile Endgeräte Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 CGI Browser Webserver TCP/IP Prozeß Webserver erzeugt neuen Prozeß, übergibt notwendige Parameter (im Environment) Prozeß erzeugt HTTP-Header und Inhalt (meistens HTML, aber nicht zwingend) Liefert dies über stdout an Webserver, wird zum Client durchgereicht Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Beispiele Hello world: #!/bin/sh echo Content-type: text/plain echo echo Hallo In C (die restlichen 4711 Sprachen sparen wir uns): #include <stdio.h> int main(int argc, char **argv) { printf("Content-type: text/plain\n\n"); printf("Ich bin ein C-Programm\n"); return 0; } Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Beispiele contd. Aktuelles Datum: #!/bin/sh echo Content-type: text/plain echo echo `date` Counter #!/bin/sh echo Content-type: text/plain echo read val < val.dat echo $val val=`expr $val + 1 ` echo $val > val.dat Problem: mehrere gleichzeitig ? --> Transaktionen Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Warum CGI cool ist #von http://www.macosxhints.com/article.php?story=20030207070436563 echo Content-type: text/plain echo curl -s http://www.thinkgeek.com/fortune.shtml | \ sed -n '/(refresh for another)/,/table\>/p' | \ sed -n '/<p>/,/<\/p>/{/[.]/p; }' | \ sed '{/^<[/]*p>/d; s/<[BbRr]*>//g; s/<\;/</g; s/>\;/>/g; }' Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige Programmiersprache,...) einfach portabel Nein Performance, Sessions,... Ablauf Webserver erkennt, daß Programm aufgerufen werden soll erzeugt neuen Prozeß (ggf. mit Skript Interpreter) dieser läuft ab und terminiert Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Performance Index.html actual (msec): 79 long term 258 /cgi-bin/hello actual (msec): 396 long term 528 /cgi-bin/chello actual (msec): 241 long term 413 /examples/servlet/HelloWorld actual (msec): 135 long term 261 Achtung: Messungen wurden unter vollständig willkürlichen und nicht reproduzierbaren Bedingungen (iBook, OS X 10.2.4 mit Apache Webserver bzw. tomcat 4.1.18, JDK 1.4.1, Java Client, 10 Threads, jeweils 100 msec Wartezeit zwischen Anfragen, Mittel über ca. 2 min...) Messungen von Webserver-Performance sind schwierig !! (Machen Sie‘s besser - und geben mir die Ergebnisse) Web-DB-Kopplung, © Till Hänisch 2003,2005

Alternativen (technisch) 1) Programme als Module in Webserver gelinkt Apache modules, nsapi, IIS dll Performance sehr gut Portabilität/Flexibilität weg Aufwendige Programmierung (APIs,...) 2) Webserver mit eingebautem Skript-Interpreter z.B. Perl, PHP, ASP, OWAS (?), ... Portabilität/Flexibilität eingeschränkt Performance gut einfache Programmierung 3) Servlets/JSP im Prinzip wie 1) kombiniert Vorteile von beiden Web-DB-Kopplung, © Till Hänisch 2003,2005

Architektur Servlet- Engine Browser Webserver Servlet Browser Servlet- Engine mit eingebautem Webserver Servlet Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Servlet Engines Java Webserver (SUN) Referenzimplementierung Websphere (IBM) Application Server komplex Load Balancing .... Jserv (Apache) Apache module + Servlet Engine Tomcat (Apache) standalone oder Apache module einfach und schnell und viele andere Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Hello World mit GET import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException // Was liefern wir zurueck ? // Hier: ASCII Text, kein HTML response.setContentType("text/plain"); // Output liefern wir ueber "normale" Java IO PrintWriter pw = response.getWriter(); pw.println("Hello World"); pw.close(); } Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Java Server Pages Warum ? Servlets sind Programme Werden von Programmierern erstellt Wer schreibt HTML ? unterschiedliche Kenntnisse/Personen ! Viel Logik/viel Design Wie ? Java Code wird in HTML-Seiten eingebettet Oder besser: ausgelagert (Beans,...) Trennung zwischen Layout und Funktionalität Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Hello.jsp <HTML> <HEAD><TITLE>Hallo</TITLE></HEAD> <BODY> Hallo </BODY> </HTML> Jede (gültige) HTML-Seite ist eine JSP ! Engine erzeugt ein servlet (pagecompile) public class Hello_jsp extends HttpJspBase { ... public void _jspService(HttpServletRequest request, ... { out = pageContext.getOut(); out.write("<HTML>\n"); out.write("<HEAD>"); out.write("<TITLE>Viel Hallo"); out.write("</TITLE>"); Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 MuchHello.jsp <HTML> <HEAD><TITLE>Viel Hallo</TITLE></HEAD> <BODY> <% for (int i=0;i<10;i++) out.print(„Hallo“); %> </BODY> </HTML> Eher Programm, besser (?) Trennung: <% for (int i=0;i<10;i++) { Hallo } Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Parameter <HTML> <HEAD><TITLE>Viel Hallo</TITLE></HEAD> <BODY> Hallo <% if (request.getParameter("Name") != null) { %> lieber <%=request.getParameter("Name")%> } </BODY> </HTML> (zu) viel Code in JSP reduziert Übersichtlichkeit !! Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Beans <html> <%@ page session="false"%> <body bgcolor="white"> <jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar" /> <font size=4> <ul> <li> Year: is <jsp:getProperty name="clock" property="year"/> <li> Month: is <jsp:getProperty name="clock" property="month"/> <li> Time: is <jsp:getProperty name="clock" property="time"/> <li> Date: is <jsp:getProperty name="clock" property="date"/> </ul> ... Logik/Code steckt in Bean, in JSP nur Darstellung --> JSP für Ebene 2, Bean in Ebene 3 Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Dates/JspCalendar.java package dates; ... public class JspCalendar { Calendar calendar = null; public JspCalendar() { calendar = Calendar.getInstance(); public int getYear() { return calendar.get(Calendar.YEAR); } public String getMonth() { int m = getMonthInt(); String[] months = new String [] { "January", "February", "March","April", "May", "June", "July", "August", "September", "October", "November", "December" }; if (m > 12) return "Unknown to Man"; return months[m - 1]; Web-DB-Kopplung, © Till Hänisch 2003,2005

Web-DB-Kopplung, © Till Hänisch 2003,2005 Schicht 3 Hier noch unübersichtlicher, wichtigste Techniken: J2EE .NET CORBA Kommunikation zwischen Schicht 2 und 3 je nach verwendeter Technologie, Ausnahme: Web-Services J2EE .NET CORBA Webservice Sprachen Java C#, C++, VB,.. Fast alle alle Plattform MS Performance gut Sehr gut mittel schlecht Verbreitung hoch niedrig Web-DB-Kopplung, © Till Hänisch 2003,2005