180 likes | 284 Views
Vergleichender Überblick über gängige Technologien für typische Internetanwendungen im Unternehmen Prof. Dr. Stefan Böttcher Universität Paderborn/Informatik http://www.uni-paderborn.de/cs/boettcher. Universität Paderborn/Informatik einige Kunden der letzten 12 Monate:.
E N D
Vergleichender Überblick über gängige Technologien für typische Internetanwendungen im UnternehmenProf. Dr. Stefan Böttcher Universität Paderborn/Informatikhttp://www.uni-paderborn.de/cs/boettcher
Universität Paderborn/Informatik einige Kunden der letzten 12 Monate: Bosch Telecom (Backnang), Cards (Köln), Casenterprises (Hamburg), DaimlerChrysler (Esslingen), DAAD (Bonn), DFG (Bonn), Fujitsu-Siemens (Walldorf), GiSmbH (Lippstadt), HNI (Paderborn), Logas (Hamburg), Managementcircle (Eschborn), MSWWF (Düsseldorf), myview (Paderborn), Ordix (Paderborn), ORGA (Paderborn), Otto Versand (Hamburg), Plenum Systeme (Wiesbaden), Poet (Hamburg), s&n (Paderborn), sd&m (München), SDRC (Neu Isenburg), SI&O (Köln), Siemens IDN (Paderborn), smDelta (Kaarst), Stadt Paderborn, Star Office (Hamburg), Unity (Paderborn), XCC (Karlsruhe), ... • je ca. 25% : <25 , 25-100 , 100-500 , >500 MA • <30% in PB und OWL , >70% außerhalb
Typische Internetanwendungen 1. Zuerst: email, ftp, telnet, http, ..., Datenbanken 2. Informationsangebote über Produkte, ...3. Produkt-, Rechnungs-, ... -datenaustausch4. Verteilte Entwicklung, Planung, Konstruktion, ...5. Bestellservice für Waren, Dienste, Information6. Agenten für Ein-/Verkauf, Planung, Information 7. persönlicheDienste: “myNewsimHierundJetzt“8. ... beliebige Dienste / beliebige Server
Technologien zur Realisierung von Diensten im Web (HTTP, ...) • führende Client-Technologien: Web-Browser (und Mail,...) auf PC und Handy leicht bedienbar , Massenmarkt • führende Server-Technologien: Kombinationen von Web-/Anwendungs-/Datenbank-Server leistungsfähig , zuverlässig , sicher , aktuell , Mehrwert, persönlich , kompetent, ... • führendes Protokoll: HTTP-Protokoll
Produktdaten & ... ins Internet: 2-Tier-Architektur mit Java-Applets Eingabe HTML-Seite Browser mit Java-Applet Java-fähiges Programm Produkt-datenbank Client Server + Session-Konzept erlaubt zwischenzeitliche Interaktion + Last zwischen Client und Server relativ frei verteilbar +/- in der Regel geringere Serverlast +/- Client muß Java-fähige Browser nutzen - Server muß Java-fähige Schnittstelle bieten (Java/Corba) - etwas langsamer
3-Tier-Architektur (mit Applets/RMI) HTML-Seite Produkt-datenbank Eingabe Browser Applet Business- Logik (Java) DB-Zugr. Programm RMI RMI Client Application-Server DB-Server + Session-Konzept erlaubt zwischenzeitliche Interaktion + Last zwischen Client und Applicationserver frei verteilbar + in der Regel geringere Serverlast (verteilt auf 2 Server) +/- Client muß Java-fähige Browser nutzen - Server müssen Java-fähige Schnittstelle bieten (Java/Corba)
2-Tier-Architektur mit Servlets/CGI Eingabe ruft HTML-Seite Browser Servlet oder CGI-Programm Produkt-datenbank generierteSeite Client Server + minimale Anforderung an den Client + Server: CGI-Programm in beliebiger Sprache oder Servlet in Java + Robust - Session-lose Kopplung: keine zwischenzeitliche Interaktion - hohe Serverlast - Sicherheitsrisiken (bei CGI)
Common Gateway Interface (CGI) Eingabe ruft HTML-Seite Browser CGI- Programm generierteSeite Client Server Auf dem Server: CGI-Verzeichnis für Programme (Sprache beliebig) • Aufruf von CGI-Programmen ist in HTML-Seite eingebaut • Browser-Click ruft CGI-Programm statt gewöhnliche HTML-Seite • Dateneingabe im Browser mit Forms möglich, Übergabe an das CGI-Programm über Umgebungsvariablen (get) oder Datei (post) • CGI-Programm muß Eingabedaten decodieren • CGI-Programm generiert als Ergebnis HTML-Seite • Client-Browser zeigt generierte HTML-Seite
Servlet-Programmierung Servlet = ein Java-Programm auf dem ServerHttpServlet , GenericServlet für ftp, mail, ... init(), service(), doGet(), doPost(), destroy() Servlets im Vergleich zu CGI: - CGI-Programme laufen in eigenem Prozeß+Servlets genügt ein eigener Thread, -> mehrere Clients teilen sich DB-Anbindung -> Performance-VorteilServlets sind portabel und sicher (wie Java)
4-Tier-Architektur Anwendungs-Server Anwendungs- Programm Produkt-datenbank Eingabe ruft HTML-Seite Browser Servlet, SSI oder CGI- Programm DB-Zugr. Programm generierteSeite Client WWW-Server DB-Server + minimale Anforderung an den Client + Server: CGI-Programm und DB-Zugriff in beliebigen Sprachen + Robust + geringere Serverlast - Session-lose Kopplung: keine zwischenzeitliche Interaktion - höhere Netzlast - Sicherheitsrisiken (bei CGI)
Benutzereingaben auf dem Clientmit Java Applets / HTML-Forms + Applets: reagieren auf beliebige Ereignisse - HTML-Forms: explizit abschicken (Submit) • Textfelder (sichtbare Eingabe) • Passwort (unsichtbare Eingabe ****) • Radiobutton, Checkbox , ... • Hidden (Session-Konzept bei HTML-Forms)
HTML-Forms-Beispiel (CGI/Servlets)Client-Seite <FORM method="post" action="http://www.myserver.de/cgi-bin/j4.bat"><!-- oder: action="http://www.myserver.de/servlet/s1" --> <TEXTAREA name=“KundenAnfrage" rows="10" cols="80"> </TEXTAREA> <INPUT type=“text“ name=“username“ size="30" > <INPUT type=“password" name=“passwort“ size="30" > <INPUT type="submit" value="Anfrage abschicken"> <INPUT type="reset" value="Löschen"> </FORM>
HTML-Forms-Beispiel (CGI/Servlets)Serverseite Das auf dem Webserver aufgerufene CGI-Programm j4.bat • liest Umgebungsvariable CONTENTLENGTH • liest die mit POST geschickten Daten von der Standardeingabe • greift z.B. auf Datenbank zu oder ruft andere Programme auf • schreibt in die Standardausgabe Das auf dem Webserver aufgerufene HttpServlet • implementiert z.B. die Methode doPost(...) (in Java) • erhält die Eingabe über einen Parameter vom Typ HttpRequest • schickt die Ausgabe an einen Parameter vom Typ HttpResponse Der Web-Server • schickt diese Ausgabe an den Browser auf dem Client.
JavaScript - Programmierung für die Client-Seite • JavaScript-Code in HTML-Seiten eingebettet • vom Browser interpretiert • Event-Handling, z.B. Bild laden, Maus bewegt, ... <IMG SRC=“bild.gif“ onLoad=“doit( )“> function doit( ) { ... } • Funktionen, Variablen, Schleifen, Objekte, aber schwach typisiert, keine Vererbung
Datenaustausch mit XML • Trennung von Nutzdaten (XML) und Layout (z.B. XSL oder CSS) • inhaltliche Markups --> Daten austauschbar, restrukturierbar (XSL(T)/DOM), Queries (XQL) • aus Nutzdaten (XML) und Layout (XSL) werdenHTML-Seiten (DB-Einträge, ...) generiert • einheitliche Markup-Sprachen für Branchen und Produkte (z.B. CML für Chemie, ...)
Datenaustausch zum Handy - WML • Wireless Application Environment (WAE) Handy <--> Gateway <--> Server Funk (kompakt) Festnetz • Wireless Application Protocol (WAP) • WML: wie HTML/XML, jedoch Einschränkungen • Deck/Card-Konzept: - mehrere Cards gleichzeitig laden - darstellbare Informationsmengen
Wege zur Kooperation (1) Kooperationsmodell: (Internet-)Projekte • Industriepartner vergibt Auftrag/Aufgabe • Informatik liefert Technologie-KnowHow (Realisierungskonzepte, Beratung, ...) Typisch: Kontaktgespräch -> Bedarfsermittlung -> Projektdefinition -> ... -> Problemlösung
Wege zur Kooperation (2) • Schulung/Vorträge für Mitarbeiter und Kunden • Auftragsarbeit für gemeinsame Kunden(Drittmittel / Fördermittel) • Förderverein PB Bildungsnetz (z.Z.ca.20Firmen) Ergänzende Maßnahmen: • Industrie-Praktika • Studien- und Diplomarbeiten