• Keine Ergebnisse gefunden

Lehrstuhl von Prof. Dr. Manfred Broy

N/A
N/A
Protected

Academic year: 2021

Aktie "Lehrstuhl von Prof. Dr. Manfred Broy"

Copied!
56
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

Softwarearchitektur

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

11. Betriebliche Informationssysteme – Teil 3

(2)

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

(3)

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

(4)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.4

Logische Schichtenarchitektur

Die Aspekte der fachlichen und technischen Architektur werden vier Schichten zugeordnet. Die Unterstützungsschicht bietet querschnittliche Funktionalität.

Fachliche Komponenten

Datenlayout zu Objekten Workflows zu

Prozessen

GUIs zu

Aktivitäten

(5)

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

(6)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.6

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

(7)

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

(8)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.8

Geschäftsprozesse und Organisationen

(9)

Services als Anwendungs-Bausteine

(10)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.10

Workflow Management

Prozess

Aktivität Menschlicher Aktor

Aufgerufene Anwendung

Worklist

(11)

Workflow: Verwaltung von Abläufen und Zuständen

Aktivitäts- definition spezifiziert

Rolle

Worklist gehört zu Bearbeiter,

der Rolle

innehat

(12)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.12

Workflow: Kontext- und Ressourcenverwaltung

Select Order

in1: Customer

o: Order c: Customer

out1: Order

Order Merchant

Prozesskontext

ƒ 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

Fritz Kaufmann:

Order

Merchant

(13)

Beispiel: Order-System

(14)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.14

Beispiel: Order-System

(15)

Beispiel: Order-System (1)

Prozess- definitionen

Worklist (Aktivität und

Ablauf)

Arbeits- bereich:

aktive

Aktivitäten

(16)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.16

Beispiel: Order-System (2)

(17)

Beispiel: Order-System (3)

(18)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.18

Beispiel: Order-System (4)

(19)

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

(20)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.20

WfMC Workflow Reference Model

Client- Integration

Server- und Anwendungs-

Integration

(21)

Workflow Client Application (Interface 2)

Workflow

Presentation System-Specific Presentation

System-Specific Application WfE Service

ƒ Workflow Presentation

ƒ GUI-Komponentenbibliothek für Workflow-Anwendungen mit

- Anzeige der Worklist

- Anzeige startbarer Prozesse - Ablaufvisualisierung

ƒ Workflow-Rahmenanwendung als Basis für „Worklets“

ƒ 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

(22)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.22

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

WfE Service

Application Agent Arbitrary Application Workflow-Enabled

Application

Beispiel: WfE ruft

Web Service auf

(23)

Workflow Interoperability (Interface 4)

ƒ Verteilung der Workflow-Steuerung

ƒ Auslagerung und Aufruf von Teilprozessen

ƒ Verteilte Ablaufsteuerung und Statusabfrage

ƒ Transfer der Workflow-Kontextdaten

ƒ Senden von Prozessdefinitionen

ƒ 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

WfE Service WfE Service

(24)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.24

Einbettung in

Application Server

HTTP Server

Worklet

Repository Business

Entities Process

Repository Network Session

Bean Entity

EJB Server Bean

Workflow Engine with Running Processes

Network

(25)

Beispiel: Schematische Architektur eCommerce-System

(26)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.26

Beispiel: Reale Architektur des eCommerce-Systems

(27)

Beispiel: Architektur eines Engineering-Workflow-Systems

Application Interface

Product-

Manager Process-

Manager Session-

Manager Tool- Manager

Storage Interface

Engineering

Desktop Task-

Manager Tools

CORBA

NFS

References

Control

CORBA

(28)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.28

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

(29)

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)

(30)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.30

Rekapitulation: Model-View-Controller-Muster

Model Controller

Event change

get data change

Display

notify

View

1

2

3

4

6 5

(31)

Hierarchisches MVC beim Thin-Client

Presentation Model

Event Display

notify view models

M V

C

M V

C

Components View

Application Layer

1

2

8

3

4

6

5

8 9

9

10

Presentation get data

change 7

Beispiele:

Java Client Erfordert Lauf- zeitumgebung auf Client

Thin-Client

(32)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.32

Anti-Pattern: Spagetthi-Controller

ƒ Presentation Controller und/oder Presentation Model fehlen

ƒ View-Controller ändern gegenseitig Views, Controller und Models

Event Display

M V

C

M V

C

View Components

1

2

Application Layer

3?

5? 4?

Thin-Client

(33)

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

(34)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.34

Generische GUI-Komponenten (2)

ƒ Beispiel: Generische Abfrage-Komponente

ƒ Erlaubt Suche nach allen Attributen eines Objekts

ƒ Kann ggf. konfigurierbar

sein, um Attribute auszu-

schließen etc.

(35)

Präsentationsschicht bei Ultra-Thin-Clients

WEB/Application Server HTTP Request

HTTP Response (HTML Page)

„Ultra thin client“

WWW

(36)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.36

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>");

}}

www.tum.de/SimpleServlet

Simple Servlet Output from SimpleServlet.

SimpleServlet

Basistechnik: Java Servlets

(37)

<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>

www.tum.de/HelloWorld.jsp

Hello World Hello World!

HelloWorld.jsp

Basistechnik: JavaServer Pages

(38)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.38

Basistechnik: Forwarding und Including

Servlet A JSP B

JSP C Request

getValue putValue getSession

Session getValue putValue HTTP

Request

forward(Request)

include(Request)

(39)

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

Model get data

forward Display

notify

View 3 5 4

Servlet(s)

JSPs

(40)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.40

Multi-Channel-Architektur beim Ultra-Thin-Client

Presentation Model

Event change

Display

notify view models

M V

C

M V

C

Components View

1 Presentation

Controller get data

change Portal

Servlet JSP1 JSP2

HTTP Event

2

get active page view

Generisch Web-spezifisch

3

vgl. Folie 32

3

4 5

6

7

(41)

AJAX – Asynchronous JavaScript and XML

ƒ Ansatz für besser bedienbare, reaktive Web-Anwendungen

ƒ Browser als Thin-Client

ƒ JavaScript als Verarbeitungs- sprache (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

(42)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.42

Verarbeitungsmodell bei klassischer Web-Applikation

Synchrone Aufrufe Æ Benutzer muss warten

(43)

Verarbeitungsmodell bei AJAX-Applikation

Asynchrone Aufrufe Æ Benutzer kann weiterarbeiten

Keine echte

Notifikation

über XMLHttp-

Request – ggf.

(44)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.44

Welche Technik wann?

Nativer Client Applets AJAX-Client Web-Client Mächtigkeit

und Features ++

alles möglich +

fast alles möglich

++

JRE nötig o ++

entsprechend nativem Client

o

vieles möglich -

nur seiten- orientierte Anwendungen

Performanz,

Reaktivität ++ + -

Installation,

Deployment -

Installation +

JavaScript nötig ++

Browser nötig

Programmier-

Aufwand ++

viele Tools und Bibliotheken

o

relativ neu, erste Tools

++

viele Tools und

Bibliotheken

(45)

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?

(46)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.46

Benutzerinteraktion und Transaktionen (1)

(47)

Benutzerinteraktion und Transaktionen (2)

(48)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.48

Client-Session und –Transaktionen (3)

Optimistische Transaktion ohne Sperren

(49)

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

(50)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.50

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)

(51)

Beispiel: Basiskomponenten für Fehlermanagement und Logging

(52)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.52

Beispiel: Aufruf von Fehlermanagement und Logging

(53)

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)

(54)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.54

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

(55)

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.

(56)

Softwarearchitektur verteilter Systeme – 11. Betriebliche Informationssysteme - Teil 3 11.56

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.springframe- work.org

ƒ [WfMC] Workflow Management Coalition Homepage ,

http://www.wfmc.org

Referenzen

ÄHNLICHE DOKUMENTE

- EntityManager: verwaltet eine Menge zusammengehöriger transaktionaler Objekte, ist Factory für Queries und bietet Zugriff auf Transaktionen. -

• Klassen nutzen Vererbung für die Definition parametrierter Klassen Polymorphie:. • Klassen nutzen Vererbung zur Realisierung

Grundlage für Erfüllung von Qualitätsanforderungen Kommunikationsmedium für Kunden, Projektleiter,. Entwickler, Tester,

Zur Unterstützung dieser Funktion steht eine Reihe von LP-Ansätzen zur Verfügung, für deren Generierung Informationen benötigt werden, die zwar FRUCHT-spezifisch sind, die aber

Kompressionsverfahren für Multimedia 2.1 Grundlagen der Kompressionsverfahren 2.2 Kompressionsverfahren für Standbilder 2.3 Kompressionsverfahren für Video 2.4

Mit der FLAIR konnten lediglich im subkortika- len Bereich signifikant mehr Läsionen detektiert werden (50 %), während in allen anderen supratentoriellen Bereichen mit der recFLAIR

Die Ergebnisse der vorliegenden Studie, dass bei mit Ropinirol behandel- ten Patienten keine restriktiven Valvulopathien beobachtet wurden, deckt sich ebenfalls mit den

Willi Felix nach Berlin an die Chirurgische Universitätsklinik der Charité umberufen wurde, zögerte Manfred Schädlich nicht, ihm auch dorthin zu folgen, um sich speziell dem Aufbau