Informationsmanagement Vorlesung 8: Webarchitekturen
Univ.-Prof. Dr.-Ing. Wolfgang Maass Lehrstuhl für Betriebswirtschaftslehre, insb. Wirtschaftsinformatik im Dienstleistungsbereich (Information and Service Systems ISS) Universität des Saarlandes, Saarbrücken SS 2012 Donnerstags, 10:00 – 12:00 Uhr (s.t.) Audimax, B4 1
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 2
Vorlesungsagenda Übersicht
1. Einleitung Managementsicht des Informationsmanagement
2. Grundlagen des Informationsmanagement 3. Aufgaben des Informationsmanagement – Management der Informationswirtschaft (2-stündig!) 4. Aufgaben des Informationsmanagement – Management der Informationssysteme und
Führungsaufgaben (2-stündig!) 5. Aufgaben des Informationsmanagement – IT-Controlling
Unternehmensarchitekturen 6. Grundlagen der Unternehmensarchitekturen – Gastvortrag Dr. Steffen Roehn (2-stündig!)
Systemarchitekturen 7. Architekturen von Informationssystemen 8. Webarchitekturen (2-stündig!) 9. Mobile & Cloud Computing
Datenmodellierung 10. Grundlagen der Datenmodellierung (2-stündig!) 11. Semantische Datenrepräsentationen (2-stündig!)
Prozessmodellierung 12. Grundlagen der Prozessmodellierung
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 3
Agenda „Webarchitekturen“
(1) Grundlagen
(4) Architekturen
(2) Client-Technologien
(3) LAMP Stack und Server-Technologien
(5) Anwendungsbeispiele
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 4
Grundlagen – (1) World Wide Web
• Web entstand 1989 als Projekt an Forschungseinrichtung CERN - Tim Berners-Lee baute ein Hypertext-System auf, welches es ermöglichen sollte, Forschungsergebnisse auf einfache Art und Weise mit Kollegen auszutauschen („Verflechten“ von wissenschaftlichen Artikeln)
„Das World Wide Web ist eine großräumige Hypermedia-Initiative zur Informationsbeschaffung mit dem Ziel, den allgemeinen Zugang zu einer großen Sammlung von Dokumenten zu erlauben.“ (Tim Berners-Lee, 1989)
• Grundidee: offene Architektur, die beliebige lokale Netze auf beliebigen Rechner-Plattformen (z.B. Windows, Mac OS) miteinander verknüpft
• Berners-Lee entwickelte zudem einen ersten Editor mit dem Ziel das „Web“ in einen Kreativraum zu verwandeln -- man kann Informationen editieren und mit anderen teilen
(Münz & Gull, 2010)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 5
Grundlagen – (2) Client und Server
• Internet-Dienste arbeiten nach dem Client/Server-Prinzip à 2-Schichten-Architektur
• Web-Browser = Client; Aufgabe: Informationen vom Web-Server empfangen, präsentieren und umwandeln
• Web-Server = Server; Aufgabe: Informationen an Clients liefern
• Client nimmt Kontakt zu Web-Server auf, um Dokument zu laden à beauftragt den Web-Server mit der Lieferung des Dokuments
• Web-Server wartet rund um die Uhr auf Anfragen von Clients
• Kommunikation wird grundsätzlich vom Client initiiert; er generiert Anfrage und wartet auf die Lieferung des gewünschten Dokumentes
Clients Server
z.B. Firefox z.B. Apache Webserver
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 6
Grundlagen – (3) Wie finden sich Client und Server im Web?
• Internet-Infrastruktur basiert auf TCP/IP Protokollfamilie
• IP = Internet Protocol à Vermittlungsschicht - IP stellt sicher, dass Daten an den richtigen
Empfänger im richtigen Netz weitergeleitet werden
- Jeder Rechner im Internet muss deswegen über eindeutige IP-Adresse verfügen
- IP teilt die Daten für den Versand in kleine Pakete auf
• TCP = Transmission Control Protokoll à Übertragungsschicht - TCP sorgt für das korrekte
Zusammensetzen der Pakete beim Empfänger
IP Adresse = 149.204.34.22
IP Adresse = 194.97.17.25 TCP
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 7
Grundlagen – (4) Wie kommunizieren Web-Client und Web-Server miteinander?
• Hypertext Transfer Protocol = HTTP • Gemeinsame Sprache von Client und Server • Eignet sich für Austausch von Daten beliebiger
Formate • Request/Response-Paradigma à Web-Server
liefert nur Dokument, wenn Web-Client dies auch vorher angefragt hat
• Client “zieht” aktiv die Inhalte, die er wünscht (Pull-Medium)
Ablauf: ① Web-Client baut eine TCP-Verbindung zum Server
auf ② Web-Client sendet HTTP-Request (Anfrage bzgl.
Dokument) an Server ③ Server schickt eine HTTP-Response (Dokument)
zum Web-Client ④ Server baut Verbindung wieder ab • Kommunikation zwischen anderen Formen von
Clients und Servern im Internet über eigene Protokolle, z.B. E-Mail àIMAP
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 8
Grundlagen – (5) Inhalte im Web
• Typisierung der Daten / Dokumente, die zwischen Client und Server ausgetauscht werden auf Basis von MIME-System
• MIME = Multimedia Internet Message Extension • MIME-Typ stellt Label dar, das zusammen mit Daten übertragen wird
Warum ist das nötig? • Unterschiedliche Dateinamensweiterungen eines bestimmten Dateityps bei
verschiedenen Betriebssystemen (Windows, MacOS)
Typen (Auszug): • text - für Textdateien, z.B. text/html, text/rtf • image - für Grafikdateien, z.B. image/gif, image/jpeg • video - für Videodateien, z.B. video/mpeg • audio - für Sounddateien, z.B. audio/x-wav, audio/x-aiff • application - für Dateien, die an ein bestimmtes Programm gebunden sind, z.B.
application/pdf, application/x-shockwave-flash
• Browser kann nur wenige Dateitypen darstellen – er ist auf zusätzliche Programme angewiesen
a. Externe Viewer = eigenständige Programme, die sich zusätzlich öffnen, z.B. Microsoft Word Viewer
b. Plugins = Programm-Komponenten, die das Dokument im Browser darstellen, z.B. Acrobat Reader, Adobe Flash Plugin
(http://trailers.apple.com/trailers/)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 9
Grundlagen – (6) Wie werden Inhalte gefunden?
• Adressierung von Inhalten (z.B. Dateien, News Artikel, Programme) im Internet durch URL
• URL = Uniform Resource Locator • URL zeigt auf einen bestimmten Inhalt
an einem bestimmten Ort
protokoll://host/pfad/zu/inhalt!!!
http://iss.uni-saarland.de/workspace/documents/ifm-5_it-controlling.pdf!!
http://iss.uni-saarland.de/workspace/documents/ifm-5_it-controlling.pdf!!
PDF!!
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 10
Agenda „Webarchitekturen“
(1) Grundlagen
(4) Architekturen
(2) Client-Technologien
(3) LAMP Stack und Server-Technologien
(5) Anwendungsbeispiele
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 11
Client Technologien – HTML als Sprache des Web
• Websites bestehen aus untereinander verlinkten HTML-Dokumenten • HTML (Hypertext Markup Language) = Auszeichnungssprache, aber keine
Programmiersprache
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Erstes HTML-Dokument</title> </head> <body> <h1>Hallo!</h1> <p>Dies ist mein erstes HTML- Dokument</p> <footer><address>Jens Mustermann, [email protected]</address> </footer> </body> </html>
mySite.html • HTML5 = aktueller Standard für Websites • HTML-Dokumente können...
a) von Benutzer per Hand oder mittels Hilfssoftware erstellt werden und auf Server zum Abruf bereit liegen
b) beim Aufruf durch den Benutzer dynamisch auf dem Webserver erzeugt werden
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 12
Client Technologien – Grundstruktur von HTML
• HTML beschreibt nur den Inhalt und die Struktur eines Dokuments à Struktur wird vom Browser verarbeitet und dargestellt
• HTML-Dokumente bestehen aus umklammernden HTML-Tags zur Auszeichnung des Inhalts
• Tags können Attribute haben, welche den Tag um weitere Informationen erweitern
• HTML-Tags werden zur Strukturierung verschachtelt • Der Tag „DOCTYPE“ ist in der ersten Zeile bei HTML5
zwingend • Das komplette Dokument ist in den Tag „html“
eingeschlossen • Innerhalb des Tags „head“ sind Meta-Informationen
zum Dokument abgelegt • Innerhalb des Tags „body“ ist die komplette Struktur
und der Inhalt des Dokumentes abgelegt
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Erstes HTML-Dokument</title> </head> <body> <h1 class=“red“>Hallo!</h1> <p>Dies ist mein erstes HTML-Dokument</p> <footer><address>Jens Mustermann, [email protected]</address> </footer> </body> </html>
mySite.html
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 13
Client Technologien – Cascading Style Sheets (CSS)
• HTML beschreibt nur den Inhalt und die Struktur eines Dokuments, das Erscheinungsbild wird mittels CSS beschrieben
• Cascading Stylesheets (CSS) ermöglichen die Anpassung des optischen Erscheinungsbildes von HTML-Dokumenten im Browser à aktuell CSS3
body { font-family: sans-serif; } h1 { color: red; font-size: 22px; } p { font-size: 16px; }
myStyles1.css
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="myStyles1.css"/> <meta charset="utf-8"> <title>Erstes HTML-Dokument</title> </head> <body> <h1>Hallo!</h1><p>Dies ist mein erstes HTML-Dokument<//p> <footer><address>Jens Mustermann, [email protected] </address></footer> </body></html>
mySite9.html
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 14
Client Technologien - XML
• XML = eXtensible Markup Language • Auszeichnungssprache zum Austausch von
Informationen, z.B. zwischen Server und Client • Einfach zu lesen durch Menschen; leicht zu
verarbeiten und zu generieren • Standardisiert, d.h. weitreichend akzeptiertes
Format; lizenzfrei und plattformunabhängig • Wie bei HTML ist das Dokument strukturiert durch
verschachtelte Elemente mit Attributen
• Durch Namensräume können Bedeutungsräume geschaffen und Namenskonflikte gelöst werden
• Alle Zeichen im Zeichensatz außer den Steuerungszeichen (z.B. &, <, >) sind erlaubt, selbige müssen codiert werden
<?xml version="1.0" encoding="UTF-8"?> <rezept xmlns:lm="http://lebensmittel.org"> <zutaten anzahl="3"> <lm:zutat>Ei</lm:zutat> <lm:zutat>Mehl</lm:zutat> <lm:zutat>Salz</lm:zutat> </zutaten> <anleitung> Alles zusammenrühren und backen. </anleitung> <foto><![CDATA[BELIEBIGE DATEN]]> </foto> </rezept>
Ei Mehl Salz Alles zusammen-
rühren und backen.
rezept
zutaten anleitung
{ anzahl="3" }
zutat zutat zutat
(Harold & Means, 2005)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 15
Betriebs-‐
system
Brow
ser
Client-Technologien - JavaScript
• JavaScript ≠ Java (Namensgebung Netscape & Sun Microsystems)
• JavaScript = Skriptsprache à Programmiersprache zur Steuerung von ein oder mehreren bestehenden Anwendungen (hier: Browser)
• Sandbox-Prinzip: Im Allg. nur Zugriff auf Elemente des Browsers, nicht auf das Betriebssystem
• JavaScript kann durch unterschiedliche Browser verschieden interpretiert werden
• JavaScript ermöglicht es, Website-Inhalte client-seitig zu generieren, verändern, validieren und nachzuladen ① Weniger Datentransfer zwischen Server und Client ② schnellere Reaktionszeiten ③ asynchrone Kommunikation mit dem Server
JavaScript
Steuerung
Anwendungsbeispiele:
(Crockford, 2008; Wenz, 2002)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 16
Client
Server
Client-Technologien - JavaScript
(h0p://web2.0calc.com/widgets/minimal/)
BA
SV
BA
SV
BA
SV
BA
SV
BA CV SV
BenutzerakCvität Client-‐seiCge Verarbeitung Server-‐seiCge Verarbeitung Datenübertragung Ein-‐/Ausgabe
Client
Server
BA
CV
BA
CV
BA
CV
BA
SV
BA
Client-seitige Programmlogik
(JavaScript)
Server-seitige Programmlogik
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 17
Client
Server
Client-Technologien – JavaScript (AJAX)
• Bis jetzt: alle benötigten Inhalte werden mit dem Aufruf der Website übertragen
• Stehen zu diesem Zeitpunkt nicht alle Inhalte bei diesem Aufruf zur Verfügung (z.B. wg. Aktualität), muss eine neue Website angefragt werden
BA
CV
BA
CV
BA
CV
BA
SV
BA
BA CV SV
BenutzerakCvität Client-‐seiCge Verarbeitung Server-‐seiCge Verarbeitung Datenübertragung Ein-‐/Ausgabe
Client-seitige Programmlogik (JavaScript)
Client
Server
BA
CV
BA
CV
BA
CV
BA
SV
BA
SV SV
CV CV
Client-seitige Programmlogik (AJAX)
• Asynchronous JavaScript and XML (AJAX) verfolgt den Ansatz nachträglich weitere Inhalte hinzuzuladen
• Request-Response-Prinzip bleibt verborgen è Webanwendung verhält sich wie eine Desktopanwendung
(Wenz, 2007)
HTTP-Anfrage ohne komplettes Neuladen der Website
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 18
Client-Technologien - AJAX Anwendungsbeispiele
(facebook.com; google.de; maps.google.de)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 19
Agenda „Webarchitekturen“
(1) Grundlagen
(4) Architekturen
(2) Client-Technologien
(3) LAMP Stack und Server-Technologien
(5) Anwendungsbeispiele
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 20
Vorteile serverseitiger Skripte
• Quellcode/Geschäftslogik und Daten für den Website-Besucher nicht oder nur teilweise einsehbar, nicht kopierbar und nicht manipulierbar (= Sicherheit)
• Persistente Speicherung der Nutzerdaten auf dem Server • Direkte und indirekte Kommunikation zwischen verschiedenen
Besuchern der Website durch kontrollierten Zugriff auf gemeinsame Datenbasis (z.B. Chats, Foren)
• Realisierung komplexer Anwendungen mit umfangreicher Geschäftslogik (z.B. Online Shop, soziale Plattform)
• z.B. PHP, Python, Ruby on Rails, JavaServer Faces (JSF), Active Server Pages (ASP.NET), Perl
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 21
LAMP Stack
• Der Linux, Apache, MySQL, PHP Stack (= LAMP) = Sammlung von Standardsoftware zur Realisierung serverseitiger dynamischer Websites
• LAMP Stack besteht aus Open Source Software
Browser
Clie
nt
Browser mit Website und clientseitigen Skripten
Linux
Apache MySQL
PHP , (Python, Perl)
Ser
ver
Betriebssystem
Webserver und Datenbank
Serverseitige Skripte
• Open Source à Idee der gemeinsamen Entwicklung einer Software zur Vorteil aller Beteiligten
• Vorteile: kostenlos; frei zugänglicher Quellcode; plattformunabhängig; kulturelle und einsatztechnische Offenheit
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 22
PHP
• PHP = „Hypertext Preprocessor“; PHP 5.3.8 ist die aktuellste Version • PHP wie JavaScript eine Skriptsprache, mit Objektorientierung,
Datenbankzugriff und verschiedenen Zusatzbibliotheken zum Mailversand, Grafikmanipulation etc.
• Ist die Dateiendung eines HTML-Dokument .php oder .php5 (konfigurierbar), dann wird selbige nicht direkt vom Webserver an den Browser geschickt, sondern zuvor an PHP (à Preprocessor)
firstScript.php
<html> <head> <title>PHP Beispiel</title> </head> <body> <?php echo 'Hallo Welt! Es ist gerade '.date('H:i').' Uhr.'; ?> </body> </html>
<html> <head> <title>PHP Beispiel</title> </head> <body> Hallo Welt! Es ist gerade 18:05 Uhr. </body> </html>
Aufruf der URL im Browser
Webserver lädt PHP-Dokument und
leitet es an PHP weiter
(Ler
dorf
et a
l., 2
006)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 23
PHP-Beispiel: Formulare
<html> <body> <?php if (!isset($_GET['firstname'])) { ?> <form method="GET"> <input type="text" name="firstname"> <input type="text" name="lastname"> <input type="submit"> </form> <?php } else { $firstname = $_GET['firstname']; $lastname= $_GET['lastname']; echo "Hello $firstname $lastname!"; } ?> </body> </html>
form.php • PHP-Quellcode kann gemeinsam mit HTML in einem
Dokument gespeichert werden • PHP Quellcode wird immer innerhalb des Tags „?php“
geschrieben • Befehlszeilen werden mit einem Strichpunkt beendet
(Lerdorf et al., 2006)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 24
ASP.NET
• ASP.NET (Active Server Pages .NET) = serverseitige Technologie von Microsoft zum Erstellen dynamischer Webseiten, Webanwendungen und Webservices auf Basis des Microsoft-.NET-Frameworks
• Entwicklung von Webanwendungen in von .NET unterstützten, im Allg. objektorientierten Sprachen, z.B. C#
• Keine Programmiersprache, sondern Bündelung von Techniken
• ASP.NET-Webseiten = Web Forms; Dateiendung “.aspx" à enthalten HTML sowie u.a. sogenannte Web Controls, die auf Webserver verarbeitet und als dynamisches HTML ausgegeben werden, z.B. Gridview (Tabellenansicht von Daten), Kalender-Control
• Einbettung von dynamischen Code-Inhalten a) .aspx-Datei durch <% -- dynamic code -- %> (vgl. PHP)
(Achtung: Überprüfung erst durch Webserver)
<html> <body bgcolor="yellow"> <center> <h2>Hello W3Schools!</h2> <p><%Response.Write(now())%></p> </center> </body> </html>
CurrentTime.aspx
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 25
ASP.NET
• Einbettung von dynamischen Code-Inhalten
b) in separaten Code-Behind-Dateien (Überprüfung durch Compiler)
<%@ Page Language="C#" CodeFile=„MyGrid.aspx.cs" Inherits="MyNamespace.MyGrid" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>GridView example</title> </head> <body> <form id="form1" runat="server"> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </form> </body> </html>
MyGrid.aspx
using System; using System.Web.UI; using System.Web.UI.WebControls; namespace MyNamespace { public partial class MyGrid : Page { protected void Page_Load(object sender, EventArgs e) { DataTable dtGridData = this.SomeDataService.GetGridData(); this.GridView1.DataSource = dtGridData; this.GridView1.DataBind(); } } }
MyGrid.aspx.cs
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 26
Agenda „Webarchitekturen“
(1) Grundlagen
(4) Architekturen
(2) Client-Technologien
(3) LAMP Stack und Server-Technologien
(5) Anwendungsbeispiele
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 27
Basis Web-Architektur
• 2-Schichten-Architektur • Web Browser fragt Inhalt an und stellt ihn dar à Client • Web Server wartet auf Anfragen und sendet Inhalt an Client
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 28
Datenbankbasierte Web-Architektur
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 29
Service-Oriented Architecture (SOA)
SOA ist… • eine Softwarearchitektur, die Dienste modularisiert • ein flexibler und modularer Ansatz zur Entwicklung von gemeinsam genutzten
Services (shared service) • Das Ergebnis einer logischen Evolution von Softwaremodularisierungstechniken
SOA ermöglicht … • Neukombinationen von Diensten in verschiedenen Formen, um neue oder
verbesserte betriebliche Prozesse zu implementieren • Die bedarfsgerechte Verbindung betrieblicher und rechnergestützer Ressourcen (on
demand) • Flexibilität in der Auswahl von (1) Technologien zur Softwareimplementierung, und
(2) der Standorte von Dienstleistern und Konsumenten
(OCG, 2011; Valipour et al., 2009)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 30
Service-Oriented Architecture (SOA)
① SOA != web services – Web-Services sind eine Implementierung von SOA, aber sie implementieren nicht alle Aspekte z.B., keine Spezifikation der Service Levels
② Trennt das “was” (Interface) von dem “wie” (Implementierung)
③ Dynamische Einbindung von modularen Komponenten – lockere Verbindung
④ Plattform- und sprachenübergreifende Funktionalitäten
(Valipour et al., 2009)
SAP Enterprise Service Oriented Architecture (Enterprise SOA) SAP Lösungen die derzeit Enterprise SOA benutzen : mySAP CRM, mySAP ERP, mySAP SRM
IBM WebSphere software for SOA environments Anwendungsinfrastruktur, Anwendungsintegration, Betriebsprozessmanagement etc.
Exemplarische Implementierungen der SOA-Idee:
SOA Konzepte, z.B.: • RPC protocol = Remote Procedure Call –
Aufruf von Programmfunktionen, die in einem anderen Adressbereich (z.B. shared network) durchgeführt werden, z.B., SOAP
• Jini Framework zur Entwicklung von verteilten Computersystemen
• REST Programmier-Architektur für Webanwendungen
• WSDL = Web Services Description Language – wird genutzt, um die Funktionalität, die durch einen Web-Service bereitgestellt wird, zu beschreiben
(http://www.sap.com/germany/solutions/business-suite/index.epx; http://www-01.ibm.com/software/solutions/soa/offerings.html)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 31
Frameworks – Kampf um den Middleware-Markt
• Java Platform, Enterprise Edition = Java EE (V6.0) = Spezifikation einer Softwarearchitektur für transaktionsbasierte Ausführung von in Java programmierten Anwendungen, insb. Web-Anwendungen
• Definition von modularen Softwarekomponenten und Diensten zur Entwicklung von verteilten Anwendungen
• Klar definierte Schnittstellenà Interoperabilität zw. Softwarekomponenten unterschiedlicher Hersteller
• Must have: Laufzeitumgebung à Java EE Application Server, z.B. JBoss Application Server
(http://www.oracle.com/technetwork/java/javaee/overview/index.html)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 32
Frameworks – Kampf um den Middleware-Markt
• .NET = Software-Plattform zur Entwicklung und Ausführung von Anwendungsprogrammen von Microsoft
• Besteht aus (1) Laufzeitumgebung, in der die Programme ausgeführt werden, (2) Sammlung von Klassenbibliotheken, Schnittstellen und Diensten
• .NET ist im vollen Umfang nur für Windows verfügbar
• Unterstützt Vielzahl von Programmiersprachen sowie gemischtsprachige Programmierung
(http://www.microsoft.com/de-de/download/details.aspx?id=17718#overview)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 33
Agenda „Webarchitekturen“
(1) Grundlagen
(4) Architekturen
(2) Client-Technologien
(3) LAMP Stack und Server-Technologien
(5) Anwendungsbeispiele
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 34
Anwendungsbeispiele: Rich Internet Applications
• Rich Internet Application (RIA) = reichhaltige Internet-Anwendung • Keine eindeutige Definition oder Standardisierung à Konzept, aber keine Technologie • Vielfalt von Interaktionsmöglichkeiten durch Benutzeroberfläche, Verbindung mit Internet • RIAs im Webbrowser ähneln eher dynamischen Desktopanwendungen als klassischen
Webseiten, z. B. “Drag and Drop”, 3D-Effekte, Animationen, Unterstützung diverser Videoformate
Plug-in-basiert, z.B.: JavaFX (Oracle/SUN), Flash (Adobe), OpenLaszlo, Microsoft Silverlight HTML/JavaScript-basiert, z.B.: Apache Wicket, Google Web Toolkit, jQuery oder ähnliche JavaScript-Frameworks
Technologien
(https://maps.google.de/)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 35
Anwendungsbeispiele: Rich Internet Applications
+ Benutzerfreundlicher + Schnellere Reaktion auf Benutzereingaben + Reduzierte Server- und Netzwerklast durch
lokale Berechnungen + Zugriff auf lokales Dateisystem und Peripherie
möglich + Einfache Entwicklung durch RIA-Frameworks + Plug-ins à mehr Performanz als bei reinen
HTML/JavaScript-Varianten
- Evtl. lange Download- und Ladezeiten - Höhere Ressourcenbelastung des
Clientrechners möglich - Manchmal Installation eines Plug-ins notwendig - Evtl. Sicherheitslücken durch installierte Plug-ins
Pro
Contra
(http://www.aldifotos.de/)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 36
Anwendungsbeispiele: Rich Internet Applications
• Trend à RIA = nächste Generation von Software-Anwendungen
• Vorteile z.B. im Intranet-Bereich: neue Software-Versionen müssen nicht mehr verteilt/installiert werden
• RIA Geschäftsmodelle, z.B. Software as a Service oder Application Service Provider (Anwendungsdienstleister bietet Anwendung über öffentliches oder privates Netz an)
• Großer Bedarf nach reichhaltigen Benutzerschnittstellen, Standardisierung und Herunterladbarkeit (ohne Installation) bei Mobile Devices (z.B. Smart Phones) und Embedded Devices (z.B. Navigationssystemen)
(http://konfigurator.audi.de/)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 37
Anwendungsbeispiele: Mashups
• Mashup (to mash = vermischen) = Erstellung neuer Medieninhalte durch Kombination bestehender Inhalte, z.B. Inhalte des Webs, wie Text, Daten, Bilder, Audio, Videos à Collagen
• Nutzung von offenen Programmierschnittstellen (APIs), die andere Webanwendungen zur Verfügung stellen, z.B. o Google Maps API – Einbindung von Landkarten
und Satellitenfotos auf der eigenen Webseite o Flickr API zur Einbindung von Fotos o Amazon API zur Darstellung von
Produktangeboten bzw. Verwertung von Produktdaten
Kommunikation zwischen Client und Server, z.B.: REST, SOAP Umgebung, z.B.: JavaScript, AJAX, Adobe Flash, JavaFX, Microsoft Silverlight
Technologien
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 38
Anwendungsbeispiele: Mashups
Mashup AirTraffic (Züricher Hochschule für Angewandte Wissenschaften) • Programmierumgebung:
Java 6, .NET 2.0 • Webserver: Apache Tomcat • Kommunikationsprotokoll:
SOAP • Datenbank: mySQL • Interaktion im Client: AJAX • Kartenmaterial: Google
Maps • Flugdaten: ADS-B-
Telegramme mit Flugdaten ca. alle 250ms und kommerzielle Webservices
• Daten zu Flugzeug: Extraktion aus HTML-basierten Webseiten (http://radar.zhaw.ch/)
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 39
Literatur
Bücher: • Crockford, D. (2008), JavaScript: The Good Parts, Yahoo Press. • Harold, E. R. & Means, W. S. (2005), XML in a Nutshell, Third Edition, O'Reilly Media. • Lerdorf, R. & Tatroe, K. (2006), Programming PHP, O'Reilly Media. • Münz, S. & Gull, C. (2010), HTML 5 Handbuch - Die neuen Features von HTML5, Franzis Verlag GmbH. • of Government Commerce (OGC), O. (2011), ITIL Service Strategy, The Stationery Office (TSO), London. • Wenz, C. (2007), JavaScript und AJAX, Galileo Computing. • Wenz, C. (2002), JavaScript, Galileo Computing.
Paper: • Berners-Lee, T. (1991), 'WorldWideWeb - Executive Summary’. • Valipour, M. H.; Amirzafari, B.; Maleki, K. N. & Daneshpour, N. (2009), A brief survey of software architecture concepts and service oriented architecture,
in '2nd IEEE International Conference on Computer Science and Information Technology, 2009', pp. 34--38.
Web: • http://trailers.apple.com/trailers/ • http://web2.0calc.com/widgets/minimal/ • facebook.com • google.de • maps.google.de • http://www.sap.com/germany/solutions/business-suite/index.epx • http://www-01.ibm.com/software/solutions/soa/offerings.html • http://www.oracle.com/technetwork/java/javaee/overview/index.html • http://www.microsoft.com/de-de/download/details.aspx?id=17718#overview • http://www.aldifotos.de • http://konfigurator.audi.de/ • http://radar.zhaw.ch/
Univ.-Prof. Dr.-Ing. Wolfgang Maass
21.06.12 Slide 40
Vorlesungsagenda Übersicht
1. Einleitung Managementsicht des Informationsmanagement
2. Grundlagen des Informationsmanagement 3. Aufgaben des Informationsmanagement – Management der Informationswirtschaft (2-stündig!) 4. Aufgaben des Informationsmanagement – Management der Informationssysteme und
Führungsaufgaben (2-stündig!) 5. Aufgaben des Informationsmanagement – IT-Controlling
Unternehmensarchitekturen 6. Grundlagen der Unternehmensarchitekturen – Gastvortrag Dr. Steffen Roehn (2-stündig!)
Systemarchitekturen 7. Architekturen von Informationssystemen 8. Webarchitekturen (2-stündig!) 9. Mobile & Cloud Computing
Datenmodellierung 10. Grundlagen der Datenmodellierung (2-stündig!) 11. Semantische Datenrepräsentationen (2-stündig!)
Prozessmodellierung 12. Grundlagen der Prozessmodellierung
Univ.-Prof. Dr.-Ing. Wolfgang Maass
Univ.-Prof. Dr.-Ing. Wolfgang Maass Lehrstuhl für Betriebswirtschaftslehre, insb. Wirtschaftsinformatik im Dienstleistungsbereich (Information and Service Systems ISS) Universität des Saarlandes, Saarbrücken