Softwarearchitektur (Architektur: αρχή = Anfang, Ursprung + tectum = Haus, Dach)

Ähnliche Dokumente
Softwarearchitektur (Architektur: αρχή = Anfang, Ursprung + tectum = Haus, Dach)

Softwarearchitektur (Architektur: αρχή = Anfang, Ursprung + tectum = Haus, Dach)

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Application Frameworks

Workflow, Business Process Management, 4.Teil

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Web 2.0 Software-Architekturen

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

JSP und Servlet Programmierung

MCRServlet Table of contents

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

WEBAPPLIKATIONEN MIT PHP. Wo gibt es Hilfe? Wie fang ich an?

Java und XML 2. Java und XML

Softwareentwicklung mit Enterprise JAVA Beans

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS Universität zu Lübeck

Monitore. Klicken bearbeiten

Web- Applikationen. in Java-Web

Jürgen Schwab, debis Systemhaus

WebSphere Application Server Installation

Übungen zur Softwaretechnik

Java Enterprise Architekturen Willkommen in der Realität

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Wiederholung: Beginn

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Identity Propagation in Fusion Middleware

Enterprise Application Integration Erfahrungen aus der Praxis

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Datenbanksysteme SS 2007

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Programmierung von Java- Webanwendungen. paluno

Sicherheit in Rich Internet Applications

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Java - Webapplikationen

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Ein mobiler Electronic Program Guide

Übungen zu Softwaretechnik

gallestro BPM - weit mehr als malen...

Berufsakademie Stuttgart, Außenstelle Horb, MI2002

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

ObjectBridge Java Edition

Die österreiche Bürgerkarte Technik aus Sicht der Applikation

Übungen zu Softwaretechnik

Java Webentwicklung (mit JSP)

Der lokale und verteilte Fall

12.4 Sicherheitsarchitektur

Wie funktioniert das WWW? Sicher im WWW

Arbeiten mit Workflows Installationsleitfaden Zur Installation des d3 Workflows

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Remedy-Day Innovative ITSM Lösungen von NTT Data. Machen wir es uns besser, schöner und leichter. Thomas Rupp Alexander Lyer Lukas Máté

Server-centric vs. Client-centric Web Applications. BITKOM Software Summit 2014, Frankfurt

Inhaltsverzeichnis. Zusammenfassung Wydler

IBM Software Demos Rational Software Delivery Platform - Änderungen an Design und Architektur einer Anwendung

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich furtwangen.de furtwangen.

Datenbank-basierte Webserver

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

SE2-10-Entwurfsmuster-2 15

Java zur Realisierung von Internetanwendungen

SAP NetWeaver Gateway. 2013

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Fragen Arthur Zaczek. Apr 2015

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

Netzwerktechnologie 2 Sommersemester 2004

Struts 2 Das Imperium schlägt zurück?

Eine Anwendung mit InstantRails 1.7

Einführung in die Programmierung

Online-Publishing mit HTML und CSS für Einsteigerinnen

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

Internetanbindung von Datenbanken

Spring Dynamic Modules for OSGi Service Platforms

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Java 2, Enterprise Edition Einführung und Überblick

B E N U T Z E R D O K U M E N TA T I O N ( A L E P H I N O

Datenbanksysteme SS 2007

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

Step by Step Softwareverteilung unter Novell. von Christian Bartl

ORACLE Business Components for Java (BC4J) Marco Grawunder

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Webbasierte Leittechnik vom Gerät zum System Dr. Michael Unkelbach, Energy Sector, PG LDE1

windream für Microsoft Office SharePoint Server

Installation des edu- sharing Plug- Ins für Moodle

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Arbeiten mit UMLed und Delphi

Inhalt. Vorbemerkungen... 1

Design Patterns 2. Model-View-Controller in der Praxis

Architektur des agimatec-validation Frameworks

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit Grid Systeme 1

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Transkript:

Softwarearchitektur (Architektur: αρχή = Anfang, Ursprung + tectum = Haus, Dach) 11. Betriebliche Informationssysteme Teil 3 Vorlesung Wintersemester 2005 / 06 Technische Universität München Institut für Informatik Lehrstuhl von Prof. Dr. Manfred Broy Dr. Klaus Bergner, Prof. Dr. Manfred Broy, Dr. Marc Sihling

Inhalt Rekapitulation Teil 1 und 2 Steuerungsschicht Aufgaben und Charakteristika Dienste und Middleware Präsentationsschicht Aufgaben und Charakteristika Model-View-Controller-Architekturen Unterstützungsschicht Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.2

Inhalt Rekapitulation Teil 1 und 2 Steuerungsschicht Aufgaben und Charakteristika Dienste und Middleware Präsentationsschicht Aufgaben und Charakteristika Model-View-Controller-Architekturen Unterstützungsschicht Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.3

Logische Schichtenarchitektur Die Aspekte der fachlichen und technischen Architektur werden vier Schichten zugeordnet. Die Unterstützungsschicht bietet querschnittliche Funktionalität. GUIs zu Aktivitäten Workflows zu Prozessen Fachliche Komponenten Datenlayout zu Objekten Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.4

Beispiele für weitere CORBA Services Life Cycle Service stellt Operationen zur Erzeugung, zum Kopieren, Verschieben und Löschen von Objekten bereit. Collection Service ermöglicht es, Objekte in Gruppen zu manipulieren. (Arrays, Bäume, Stacks,...) Relationship Service ermöglicht die Definition von Beziehungen zwischen Objekten. Property Service erlaubt es, einem Objekt dynamisch eine Eigenschaft zuzuweisen (z. B. einen Titel oder ein Datum). Concurrency Control Service ermöglicht Objekten den Zugriff auf gemeinschaftlich genutzte Ressourcen mit Hilfe von Sperren (Locks). Security Service stellt Sicherheitsmechanismen bereit. Er unterstützt z. B. Authentifizierung und Zugriffskontrolle. Time Service stellt z. B. Interfaces zur Verfügung, um sich in einer verteilten Umgebung miteinander zu synchronisieren oder zeitabhängige Ereignisse zu definieren. Licensing Service erlaubt es, die Nutzungsdauer von Komponenten zu messen und entsprechend abzurechnen. Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.5

Inhalt Rekapitulation Teil 1 und 2 Steuerungsschicht Aufgaben und Charakteristika Dienste und Middleware Präsentationsschicht Aufgaben und Charakteristika Model-View-Controller-Architekturen Unterstützungsschicht Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.6

Aufgabe der Steuerungsschicht Ziele einer expliziten Steuerungsschicht Agile Unternehmen, Anpassung durch rekonfigurierbare Prozesse Neue Geschäftsprozesse aus vorhandenen Aktivitäten/Services bauen Einfache Kommunikation mit Partnern und Kunden Einfaches Outsourcing von Teilprozessen Funktionen der Steuerungsschicht Bietet Ablaufumgebung für die spezifizierten Geschäftsprozesse Steuert den Ablauf der Aktivitäten - Aufruf fachlicher Funktionalität - Anzeige der Dialoge der Präsentationsschicht Verwaltet Prozesskontext: Daten und Ressourcen In vielen Systemen mit Anwendungsschicht zusammengefasst Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.7

Geschäftsprozesse und Organisationen Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.8

Services als Anwendungs-Bausteine Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.9

Workflow Management Menschlicher Aktor Worklist Prozess Aktivität Aufgerufene Anwendung Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.10

Workflow: Verwaltung von Abläufen und Zuständen Worklist gehört zu Bearbeiter, der Rolle innehat Aktivitätsdefinition spezifiziert Rolle Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.11

Workflow: Kontext- und Ressourcenverwaltung Aktivitäten sind möglichst kontextlos spezifizieren lediglich Ein-/Ausgabeschnittstelle damit einsetzbar im Kontext beliebiger Prozesse Workflow-Engine stellt Kontext zur Verfügung Versorgt Ein-/Ausgabeschnittstelle mit aktuellen Kontext-Daten - Per Value: Skalare Daten, Value-Objekte, Dokumente, Dateien - Per Reference: IDs von Geschäftsobjekten, URLs von Dokumenten Ordnet Bearbeiter als Ressourcen gemäß Rollenspezifikation zu Max Kunde: Customer o4711: Order Prozesskontext c: Customer o: Order in1: Customer Select Order out1: Order Order Merchant Fritz Kaufmann: Order Merchant Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.12

Beispiel: Order-System Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.13

Beispiel: Order-System Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.14

Beispiel: Order-System (1) Worklist (Aktivität und Ablauf) Prozessdefinitionen Arbeitsbereich: aktive Aktivitäten Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.15

Beispiel: Order-System (2) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.16

Beispiel: Order-System (3) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.17

Beispiel: Order-System (4) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.18

Middleware zum Workflow Management Realisierung der Steuerungsschicht Abläufe als Programmcode ± Nur bei kleinen Systemen tragfähig Verwaltung der Prozesse durch Workflow Engine + Nutzung von mächtigen Mechanismen (s. nächste Folien) + Konfiguration und Modellierung statt Programmierung - Ggf. Integration mit System zu leisten ± Open-Source-Systeme bisher mäßig erfolgreich (Bsp. jbpm/jboss) Sehr heterogener Markt, Standards nur in Teilbereichen WfMC Workflow Management Coalition Traditionelle Schnittstellen OMG Workflow Facility Prozesse und Aktivitäten als CORBA-Objekte BPEL als Standardisierungsansatz im Umfeld Web Services Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.19

WfMC Workflow Reference Model Client- Integration Server- und Anwendungs- Integration Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.20

Workflow Client Application (Interface 2) Workflow Presentation GUI-Komponentenbibliothek für Workflow-Anwendungen mit - Anzeige der Worklist - Anzeige startbarer Prozesse - Ablaufvisualisierung Workflow-Rahmenanwendung als Basis für Worklets Workflow Presentation System-Specific Presentation Workflow Client Application Interface Sitzungsmanagement Prozess- und Aktivitätskontrolle - Starten/Abbrechen von Prozessen - Durchführen von Aktivitäten Worklist-Manipulation - Anzeige der Worklist - Annehmen von Aktivitäten Status-Abfrage von Prozessen WfE Service System-Specific Application Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.21

Invoked Application (Interface 3) Aufruf von Anwendungen umfasst Start, Parameterversorgung, Überwachung, ggf. Re-Start Zuordnung zu Bearbeiter und ggf. dessen Client-Rechner Workflow-Ready Application Workflow-Enabled Application Arbitrary Application Beispiel: WfE ruft Web Service auf Application Agent WfE Service Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.22

Workflow Interoperability (Interface 4) Verteilung der Workflow-Steuerung Auslagerung und Aufruf von Teilprozessen Verteilte Ablaufsteuerung und Statusabfrage Transfer der Workflow-Kontextdaten Senden von Prozessdefinitionen WfE Service WfE Service Standardisierter Ansatz: BPEL, Business Process Execution Language Kommunikation über Web-Services in XML-Form - Aufgerufene Anwendungen stellen Web-Services bereit - Aufruf von Prozessen erfolgt über Web-Services Primitive zum Senden, Empfangen, Antworten auf Nachrichten Ablaufsteuerungsfunktionen: Schleifen, Bedingungen Rückgängigmachen bereits durchgeführter Aktivitäten durch Kompensation Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.23

Einbettung in Application Server Network Workflow Engine with Running Processes HTTP Server Session Bean EJB Server Entity Bean Network Worklet Repository Process Repository Business Entities Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.24

Beispiel: Schematische Architektur ecommerce-system Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.25

Beispiel: Reale Architektur des ecommerce-systems Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.26

Beispiel: Architektur eines Engineering-Workflow-Systems Engineering Desktop Task- Manager Control Tools CORBA CORBA Application Interface Product- Manager Process- Manager Session- Manager Tool- Manager NFS Storage Interface Model Data Model Repository References File System Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.27

Inhalt Rekapitulation Teil 1 und 2 Steuerungsschicht Aufgaben und Charakteristika Dienste und Middleware Präsentationsschicht Aufgaben und Charakteristika Model-View-Controller-Architekturen Unterstützungsschicht Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.28

Aufgabe der Präsentationsschicht Zeigt Anwendungsdaten an Greift lesend auf die Anwendungsschicht zu Aktualisiert die Anzeige Steuert die Interaktion mit dem Benutzer Zeigt graphische Elemente der Bedienoberfläche an Erkennt Benutzeraktionen auf unterschiedlichen Kanälen Verwaltet den Kommunikationszustand Ruft Anwendungsfunktionalität auf Führt selbständig einfache Prüfungen durch Prüfung auf richtiges Eingabeformat (z.b. Eingabe einer Zahl) Prüfung auf Eingabebereiche (z.b. Eingabe einer Zahl kleiner 10) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.29

Rekapitulation: Model-View-Controller-Muster notify 4 Display 6 View 5 get data change 2 Model Event 1 Controller change 3 Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.30

Hierarchisches MVC beim Thin-Client View Components notify view models Thin-Client Display 10 V C 9 M 8 7 get data 6 Presentation Model Application Layer Event 1 V 2 C 9 3 M 8 4 change Presentation Controller 5 change Erfordert Laufzeitumgebung auf Client Beispiele: Java Client Java-Applet Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.31

Anti-Pattern: Spagetthi-Controller Presentation Controller und/oder Presentation Model fehlen View-Controller ändern gegenseitig Views, Controller und Models Thin-Client View Components V Display C 5? M 4? Application Layer V Event 1 2 C M 3? Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.32

Generische GUI-Komponenten (1) Bindung an beliebige Model-Objekte GUI-Komponenten stellen über Reflection die Attribute und Operationen der Model-Objekte fest und zeigen diese dynamisch an Beispiel: Entity Editor / Viewer Editiere / zeige Attribute und aggregierte Objekte eines Geschäftsobjekts internationalisiert an Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.33

Generische GUI-Komponenten (2) Beispiel: Generische Abfrage-Komponente Erlaubt Suche nach allen Attributen eines Objekts Kann ggf. konfigurierbar sein, um Attribute auszuschließen etc. Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.34

Präsentationsschicht bei Ultra-Thin-Clients HTTP Response (HTML Page) WWW Ultra thin client HTTP Request WEB/Application Server Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.35

Basistechnik: Java Servlets SimpleServlet Simple Servlet Output from SimpleServlet. www.tum.de/simpleservlet public class SimpleServlet extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) { PrintWriter out; String title = "Simple Servlet Output"; response.setcontenttype("text/html"); out = response.getwriter(); out.println("<html><head><title>"); out.println(title); out.println("</title></head><body>"); out.println("<h1>" + title + "</H1>"); out.println("<p>output from SimpleServlet."); out.println("</body></html>"); }} Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.36

Basistechnik: JavaServer Pages HelloWorld.jsp Hello World Hello World! www.tum.de/helloworld.jsp <html> <head> <title>hello World</title> </head> <body bgcolor=#ffffff> <font face="helvetica"> <h2><font color=#db1260>hello World</font> </h2> <%out.print("<p><b>hello World!</b>"); %> <hr> </font> </body> </html> Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.37

Basistechnik: Forwarding und Including Servlet A forward(request) JSP B HTTP Request Request getvalue putvalue getsession Session getvalue putvalue JSP C include(request) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.38

MVC bei Ultra-Thin Clients Direkte Umsetzung von MVC scheitert, weil HTML/HTTP ist seitenorientiert und zustandslos Kommunikation über HTTP-Requests statt Events Kommunikation wird immer vom Browser initiiert Mögliche Lösung: MVC-2 Architecture notify Display 5 JSPs View 4 get data forward 3 Model Event 1 Servlet(s) Controller change 2 Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.39

Multi-Channel-Architektur beim Ultra-Thin-Client Display Event 7 Web-spezifisch 5 JSP2 JSP1 6 4 View Components V C V C M M notify view models get data change 3 2 1 HTTP Portal Servlet Event Presentation Controller Presentation Model change Generisch vgl. Folie 32 3 get active page view Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.40

AJAX Asynchronous JavaScript and XML Ansatz für besser bedienbare, reaktive Web-Anwendungen Browser als Thin-Client JavaScript als Verarbeitungssprache (muss aktiviert sein!) XHTML + CSS + DOM als GUI-Framework Datenrepräsentation und Manipulation mit XML + XSLT Datenaustausch über Format XMLHttpRequest Technisch teilweise schwierig Zurück-Button und direkte URLs nur mit Tricks behandelbar Erste Frameworks existieren Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.41

Verarbeitungsmodell bei klassischer Web-Applikation Synchrone Aufrufe Benutzer muss warten Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.42

Verarbeitungsmodell bei AJAX-Applikation Asynchrone Aufrufe Benutzer kann weiterarbeiten Keine echte Notifikation über XMLHttp- Request ggf. über Tricks erreichbar Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.43

Welche Technik wann? Nativer Client Applets AJAX-Client Web-Client Mächtigkeit und Features Performanz, Reaktivität Installation, Deployment Programmier- Aufwand ++ alles möglich + fast alles möglich ++ ++ + - - Installation ++ viele Tools und Bibliotheken o JRE nötig ++ entsprechend nativem Client o vieles möglich + JavaScript nötig o relativ neu, erste Tools - nur seitenorientierte Anwendungen ++ Browser nötig ++ viele Tools und Bibliotheken Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.44

Transaktionen bei Web-Anwendungen Typisches Muster bei Web-Anwendung Anwendung zeigt Formulardaten an (forward zu JSP) Anwender liest Formulardaten Anwender füllt Formular aus Anwender schickt Antwort ab (Aufruf service-methode bei Servlet) Was ist bei der weiteren Bearbeitung zu beachten? Lesen und Schreiben von Daten muss transaktional erfolgen Zwischen Formular-Anzeige und Abschicken der Antwort dürfen sich die Daten, auf denen das Formular beruht, nicht ändern! Frage: Wie Transaktionen schneiden? Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.45

Benutzerinteraktion und Transaktionen (1) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.46

Benutzerinteraktion und Transaktionen (2) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.47

Client-Session und Transaktionen (3) Optimistische Transaktion ohne Sperren Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.48

Inhalt Rekapitulation Teil 1 und 2 Steuerungsschicht Aufgaben und Charakteristika Dienste und Middleware Präsentationsschicht Aufgaben und Charakteristika Model-View-Controller-Architekturen Unterstützungsschicht Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.49

Unterstützungsschicht Die Unterstützungsschicht bietet Querschnittsmechanismen, die in allen restlichen Schichten relevant sind. Dazu gehören insbesondere: Fehlermanagement Verwaltung von Konfigurationsinformationen Authentifizierung und Autorisierung Internationalisierung Die Architektur basiert typischerweise auf Basiskomponenten für gemeinsame Funktionalität Standard-Aufrufe im restlichen Code (oft gut über Aspects realisierbar) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.50

Beispiel: Basiskomponenten für Fehlermanagement und Logging Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.51

Beispiel: Aufruf von Fehlermanagement und Logging Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.52

Beispiel: Authentifizierung und Autorisierung (JAAS) Anreicherung von Geschäftsobjekten (PersistentObject) um eine Access Control List (Liste von Permission-Objekten) Mitführen des Benutzers (Principal) in einem Security Context (Session-Objekt) Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.53

Inhalt Rekapitulation Teil 1 und 2 Steuerungsschicht Aufgaben und Charakteristika Dienste und Middleware Präsentationsschicht Aufgaben und Charakteristika Model-View-Controller-Architekturen Unterstützungsschicht Zusammenfassung Literaturhinweise Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.54

Zusammenfassung Die Steuerungsschicht verwaltet Abläufe und Zustände sowie Kontext und Ressourcen von Geschäftsprozessen. Sie setzt typischerweise auf den Services der Anwendungsschicht auf. Als Middleware kommen Workflow Engines zum Einsatz. Die Präsentationsschicht steuert die Interaktion mit dem Benutzer und zeigt GUI-Elemente sowie Anwendungsdaten an. Als Architektur kommt typischerweise eine Variante des Model-View- Controller-Architekturmusters zum Einsatz. Grundlegend lassen sich Thin-Clients (Verarbeitungslogik läuft in Laufzeitumgebung auf dem Client) und Ultra-Thin-Clients (Verarbeitungslogik läuft auf dem Server) unterscheiden. Die Unterstützungsschicht bietet querschnittliche Mechanismen, beispielsweise für Fehlermanagement, Logging, Internationalisierung etc. Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.55

Literaturhinweise [Bi02] Adam Bien: J2EE Patterns, Addison-Wesley, 2002. [BMR+] Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal: Pattern-Oriented Software Architecture, Wiley, 1996. [EJB3] Sun Microsystems: J2EE Website. http://java.sun.com/j2ee, 2005. [jbpm] jbpm WfE Homepage, http://www.jboss.com/products/jbpm [Sie02] J. Siegel, An Overview Of CORBA 3.0, Object Management Group, 2002. [Spr05] Rob Harrop, Jan Machacek: Pro Spring, apress, 2005. [Spring] Spring Framework Homepage, http://www.springframework.org [WfMC] Workflow Management Coalition Homepage, http://www.wfmc.org Softwarearchitektur verteilter Systeme 11. Betriebliche Informationssysteme - Teil 3 11.56