Design: Referenzarchitektur betriebliche
Transcrição
Design: Referenzarchitektur betriebliche
6. Design-Phase: Referenzarchitektur betriebliche Informationssysteme Softwaretechnik (CNAM) Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Einordnung in den gesamten Kurs 1. Einführung 2. Analyse: Anforderungen und Anwendungsfälle 3. Analyse: Datenmodell 4. Analyse: Dialoge 5. Design: Architektur-Grundlagen 6. Design: Referenzarchitektur betriebliche Informationssysteme 7. Design: Querschnittsthemen und Muster 8. Programmierung 9. Test, Einführung, Qualitätsmanagement 10. Projektmanagement 11. Vorgehensmodelle 2 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Motivation Referenzarchitektur Anwendungskern Persistenz und Transaktion Authentifizierung und Autorisierung Client-Architektur Literatur und Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel für den Nutzen von Referenzarchitekturen: Migration einer Portalplattform Services der Laufzeit … weitere ... Portal Laufzeit Management EntwicklungszeitServices Benutzerschnittstelle Entwicklung Querschnittliche Portaldienste ATG Portal … weitere ... Portal Portal (ATG Portal) Inhaltspflege Content Management Personalisierung (ATG Portal) Oracle Inhaltssteuerung Documentum (CMS) Personalisierung Transformation Komposition CMS (Documentum (1)) Kommunikation und Sicherheit Dokumentenmanagement Oracle Documentum (2) … weitere ... Portalnahe AL-Komponenten Backend AL-Komponenten Dokumenten-management Ist-Plattform 4 … weitere ... Soll-Plattform Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Referenzarchitektur Referenzarchitektur Anwendungskern Persistenz und Transaktion Authentifizierung und Autorisierung Client-Architektur Literatur und Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Schichtenarchitektur für betriebliche Informationssysteme: Quasar (Qualitäts-Software-Architektur) cd Quasar Architecture «Abstract T Component» «A Component» Client Management Dialog Trennung von A- und T-Software auf der Komponenten-ebene Präsentation Identifikation der wesentlichen technischen Komponenten «Abstract T Component» Application Kernel Facade Alternatives Anwendungslogik Datenzugriff 6 «Abstract T Component» Application Component Authorization Festlegung der Abhängigkeiten Alternatives «Abstract T Component» 6 «A Component» Transaction «Abstract T Component» Persistence Quelle: Capgemini sd&m Research Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Referenzarchitektur Anwendungskern Anwendungskern Persistenz und Transaktion Authentifizierung und Autorisierung Client-Architektur Literatur und Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Referenzarchitektur für betriebliche Informationssysteme Quasar (Qualitäts-Software-Architektur) cd Quasar Architecture «Abstract T Component» «A Component» Client Management Dialog Präsentation «Abstract T Component» Anwendungslogik Application Kernel Facade Alternatives «A Component» «Abstract T Component» Application Component Authorization Datenzugriff Alternatives «Abstract T Component» Transaction 8 «Abstract T Component» Persistence Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Referenzarchitektur Anwendungskern Client Anwendungskern A-Fall 1.1 A-Fall 1.2 A-Fall 1.3 A-Komponente 1 A-Komponente A-Fall A-Fall 2.1 A-Fall 2.2 A-Fall 3.1 A-Fall 3.2 A-Fall 3.3 A-Fall 2.3 A-Verwalter + A-Entitätstypen A-Komponente 2 9 A-Verwalter + A-Entitätstypen AEntitätsverwalter A-Entität A-Verwalter + A-Entitätstypen A-Datentyp A-Verwalter + A-Entitätstypen A-Komponente 3 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 edassaF-K WA -sgnudnewnA nrek 3.1 llaF-A 2.1 llaF-A 1.1 llaF-A 1 etnenopmoK-A 3.3 llaF-A 2.3 llaF-A 1.3 llaF-A 2.2 llaF-A 1.2 llaF-A 3.2 llaF-A A-Entitäten Idee retlawreV-A + nepytstätitnE-A Außensicht Innensicht • Stellen Objekte der realen Welt dar, z. B. Konto, Kunde, Auftrag • Lesender / schreibender Zugriff auf Attribute • Attribute, typisiert als ADatentypen • Entsprechen dem Datenmodell: wesentliche Objekte des Informationssystems • Einfache Geschäftslogik, z.B. Konsistenzprüfung, Statusverwaltung, Externalisierung • Implementierung von Konsistenzprüfung, Statusverwaltung, Externalisierung etc. • Sind autonom; haben einen Schlüssel (Id) 10 retlawreV-A + nepytstätitnE-A retlawreV-A + nepytstätitnE-A 3 etnenopmoK-A • Sind persistent 10 retlawreV-A + nepytstätitnE-A • Unterscheidung zwischen Typen (Klassen) und Objekten (Instanzen) Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 2 etnenopmoK-A Beispiel für A-Entitätstyp: Invoice A-Entitätsklasse public class Invoice { private int id; private Account account; private int amount; private Date invoiceDate; private Date dueDate; private InvoiceStatus status; private String subject; Invoice() {} Attribute Konstruktoren Einfache Geschäftslogik, z.B. Statusverwaltung public boolean isOverdue() {...} ... } 11 11 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Implementierung von Assoziationen (1/3) Customer 1 * Order Alternativen: 1. Customer kennt nichts von Orders und umgekehrt (zumindest nicht über direkte Referenz). Order enthält eindeutige CustomerId. Der Nutzer interpretiert die CustomerID 2. Order referenziert einen Customer 3. Customer referenziert eine Collection von Orders 4. (2) und (3): Bidirektionale Referenzen 12 12 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Implementierung von Assoziationen (2/3) Alternative #1: class Customer { String customerID; class Order { … private String customerId; // not aware of orders public String getCustomerId(){ return customerId; } … } } Nutzer greift auf die CustomerId mittels get-Methode zu Anschließend kann er über einen Verwalter mittels der Id auf das Customer Objekt zugreifen 13 13 Stellt fachlichen Fremdschlüssel dar Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Implementierung von Assoziationen (3/3) Alternative #4: class Customer { private List<Order> orders; … public List getOrders() { return orders.clone(); } } class Order { private Customer customer; … public Customer getCustomer() { return customer; } } Alternativen #2 - #4 koppeln eng 10 eng gekoppelte Klassen sind in Ordnung – 100 eng gekoppelte Klassen sind eine Katastrophe! Keine enge Kopplung zwischen Komponenten 14 14 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 edassaF-K WA -sgnudnewnA nrek 3.1 llaF-A 2.1 llaF-A 1.1 llaF-A 1 etnenopmoK-A 3.3 llaF-A 2.3 llaF-A 1.3 llaF-A 2.2 llaF-A 1.2 llaF-A 3.2 llaF-A A-Datentypen Idee retlawreV-A + nepytstätitnE-A Außensicht • A-Datentypen: Instanziierung und Zugriff auf Wert (meist immutable) • Spezifiziert durch Wertebereich incl. Validitätsprüfung • T-Datentypen durch Programmiersprache bereitgestellt, z.B. Integer Innensicht Typen: • Skalar, z.B. ISBN Klasse mit Prüfmethoden • Zusammengesetzt, z.B. Adresse Klasse mit Attributen • Aufzählung, z.B. CustomerType enum • Beispiele: Date, Address, Money 15 15 retlawreV-A + nepytstätitnE-A retlawreV-A + nepytstätitnE-A 3 etnenopmoK-A • Kleinste Informationseinheiten des Informationssystems • Nur Werte; kein Schlüssel (Id) retlawreV-A + nepytstätitnE-A Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 2 etnenopmoK-A Beispiel A-Datentyp: InvoiceStatus public enum InvoiceStatus { OPEN, CLOSED } 16 16 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 edassaF-K WA -sgnudnewnA nrek 3.1 llaF-A 2.1 llaF-A 1.1 llaF-A 1 etnenopmoK-A 3.3 llaF-A 2.3 llaF-A 1.3 llaF-A 2.2 llaF-A 1.2 llaF-A 3.2 llaF-A A-Entitätsverwalter Idee • Entitätsübergreifende Zugriffs-Logik für einen oder mehrere zusammengehörige A-Entitätstypen retlawreV-A + nepytstätitnE-A retlawreV-A + nepytstätitnE-A 3 etnenopmoK-A Außensicht Innensicht • Create…() • Meist zustandslos • Find…By…() • Verbindet mit der Datenbank • delete…() • Implementiert Queries • Implementieren Lebenszyklus: anlegen, suchen, ändern, löschen (CRUD) • Beispiele: CustomerManager, OrderManager 17 17 retlawreV-A + nepytstätitnE-A Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 retlawreV-A + nepytstätitnE-A 2 etnenopmoK-A Beispiel A-Entitätsverwalter: CustomerManager Entitätsverwalter-Klasse public class CustomerManager { Anlegen public Customer newCustomer() {...} public Customer newCustomer(String name, String address) {...} public Customer findCustomerById(int id) {...} public Collection<Customer> findCustomerByName(String name) {...} public Collection<Customer> findCustomerByAddress(String address) {...} } 18 18 Suchen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 edassaF-K WA -sgnudnewnA nrek 3.1 llaF-A 2.1 llaF-A 1.1 llaF-A 1 etnenopmoK-A 3.3 llaF-A 2.3 llaF-A 1.3 llaF-A 2.2 llaF-A 1.2 llaF-A 3.2 llaF-A A-Service und Transfer-Objekte Idee • Exportierte KomponentenSchnittstellen und ihre Implementierung • Stellen Geschäftsfunktionalität bereit • Orientieriert an den Anwendungsfällen der Spezifikation • Beispiel: sendInvoice Außensicht • Lose gekoppelt: • Parameter und Rückgabe ausschließlich Datentypen oder Transfer-Objekte – i.d.R. keine Referenzen auf Entitäten retlawreV-A + nepytstätitnE-A retlawreV-A + nepytstätitnE-A 3 etnenopmoK-A Innensicht • Erhält A-Entitäten und von den AEntitätsverwaltern • Arbeitet auf A-Entitäten und transformiert in Transfer-Objekte • Transfer-Objekte sind Kopien der Werte von Entitäten 19 19 retlawreV-A + nepytstätitnE-A Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 retlawreV-A + nepytstätitnE-A 2 etnenopmoK-A Beispiel A-Service Interface: Accounting A-Service Interface public interface Accounting { public InvoiceRecord sendInvoice( int accountId, String subject, int amount); } Geschäftsmethoden 20 20 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel Transfer-Objekt: InvoiceRecord Transfer-Objekt Klasse public class InvoiceRecord { Keine Referenzen auf Entities private int id; private int accountId; private int amount; private Date invoiceDate; A- und T-Datentypen private Date dueDate; private String invoiceStatus; private String subject; } 21 21 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 edassaF-K WA -sgnudnewnA nrek 3.1 llaF-A 2.1 llaF-A 1.1 llaF-A 1 etnenopmoK-A 3.3 llaF-A 2.3 llaF-A 1.3 llaF-A 2.2 llaF-A 1.2 llaF-A 3.2 llaF-A A-Komponenten Idee • Wesentliche Einheit des Entwurfs, der Planung und der Implementierung • Bündeln fachlich zusammengehörende Geschäftslogik retlawreV-A + nepytstätitnE-A retlawreV-A + nepytstätitnE-A 3 etnenopmoK-A Außensicht • Schnittstellen der AServices • Factories zum Erzeugen der Komponenten Innensicht • In Java meist implementiert als Packages • Implementierung der AServices, A-Entitätsverwalter, AEntitäten und A-Datentypen 22 22 retlawreV-A + nepytstätitnE-A Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 retlawreV-A + nepytstätitnE-A 2 etnenopmoK-A Beispiel: Online-Shop Sales Stock CustomerManagement Accounting ProductManagement 23 23 dependency Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel Package-Struktur Anwendung Komponente A-Entitäten A-Datentypen com.xyz.shop.accounting.entity com.xyz.shop.accounting.type com.xyz.shop.accounting.manager com.xyz.shop.accounting.manager.impl com.xyz.shop.accounting.service com.xyz.shop.accounting.service.impl Schnittstellen AEntitätsverwalter Implementierung AEntitätsverwalter Schnittstellen A-Services Implementierung A-Services 24 24 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel: Komponenten der A-Architektur einer Bibliothek Ausleihe Bestandsführung Kundenverwaltung Gebühren Titelkatalog kennt 25 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Referenzarchitektur für betriebliche Informationssysteme Quasar (Qualitäts-Software-Architektur) cd Quasar Architecture «Abstract T Component» «A Component» Client Management Dialog «Abstract T Component» Application Kernel Facade Alternatives «A Component» «Abstract T Component» Application Component Authorization Alternatives «Abstract T Component» Transaction 26 «Abstract T Component» Persistence Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Anwendungskern-Fassade im Detail cmp Application Kernel Facade Mehrwert-Dienste: «A Component» Dialog NameService Entfernter Zugriff SitzungsVerwaltung (Parallelität) A_UseCase_1' A_UseCase_n' Administration Transaktionen «Abstract T Component» Application Kernel Facade TechnicalConfiguration SystemsManagement Autorisierung Fehlerbehandlung ExceptionHandler … A_UseCase_1 A_UseCase_n TransactionManager «Abstract T Compo... Transaction 27 «A Component» Application Component Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Anwendungskern-Fassade Idee hält den AWK frei von Technik Außensicht exportiert steuert die Transaktionen (ASteuerung) Schnittstellen für Dialoge und Nachbarsysteme (z. B. mit RMI, Web-Services) möglicherweise: importiert authentifiziert die Aufrufer rein fachliche Schnittstellen autorisiert die Zugriffe operative Berechtigungs-Sst: „darf der das?“ komponiert den Anwendungskern Schnittstelle zur Steuerung einer T-Transaktion 28 Innensicht transformiert zwischen Schnittstellen „nach oben“ und Schnittstellen „nach unten“ viel R-Code möglichst wenig A-Code durch Delegation an den AWK prüft Berechtigungen öffnet und schließt Transaktionen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel: Aufruf eines A-Falls mit Transaktion sd inv oke use case w ith transaction Client Application Kernel Facade Transaction Application «interface» «interface» «interface» «interface» NameService A_UseCase_1' TransactionManager A_UseCase_1 Client findUseCase(useCaseName) :UseCase someMethod(arguments) beginTransaction() :Transaction someMethod(arguments) commitTransaction(transaction) 29 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Referenzarchitektur Anwendungskern Persistenz Transaktion Persistenz undund Transaktion Authentifizierung und Autorisierung Client-Architektur Literatur und Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Referenzarchitektur für betriebliche Informationssysteme Quasar (Qualitäts-Software-Architektur) cd Quasar Architecture «Abstract T Component» «A Component» Client Management Dialog Präsentation «Abstract T Component» Application Kernel Facade Alternatives Anwendungslogik Datenzugriff «Abstract T Component» Application Component Authorization Alternatives «Abstract T Component» Transaction 31 «A Component» «Abstract T Component» Persistence Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Persistenz und Transaktion im Detail class Persistence, Transaction «A Component» Application Component TransactionalPool TransactionManager QueryAdministration «Abstract T Compo... Transaction «Abstract T Compo... Persistence TechnicalConfiguration ModelAdministration TransactionResource SystemsManagement TechnicalConfiguration SystemsManagement 32 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Persistenzmanagement Idee Außensicht Innensicht persistiert Objekte exportiert sehr kompliziert versteckt die relationale Welt (und SQL) vor dem AWK TransaktionsRessource (meist XAfähig) daher nur selber bauen, wenn kein Produkt verfügbar versteckt die DBZugriffstechnik (z. B. JDBC) vor dem AWK O/R-Mapper stellt die ObjektIdentität sicher importiert DB-Zugriff (z. B. JDBC) Optimierungen - Caching - Connection-Pool 33 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Abbildung von Klassen auf Tabellen Klasse Tabelle Objekt Zeile Attribut Spalte Datentypen der Programmiersprache DB-Datentypen Klasse Customer Attribute: name: String firstName: String address: String ... Tabelle CUSTOMER NAME FIRSTNAME ADDRESS Methoden: getName() setName() ... 34 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Abbildung von 1:n Beziehungen: Assoziation Fremdschlüssel-Beziehung Bestellung * bestellDatum gesamtPreis BestellPosition menge Bestellung OID bestellDatum gesamtPreis Pizza name preis BestellPosition OID bestellungOID pizzaOID menge Fremdschlüssel 35 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Abbildung von Vererbung: 3 Varianten 1. Typisierte Partitionierung Person OID name gehalt startDatum umsatz objTyp 2. Horizontale Partitionierung Person Kunde {abstract} OID name umsatz name Angestellter OID Angestellter gehalt startDatum name gehalt startDatum Kunde umsatz 3. Vertikale Partitionierung Person OID name objTyp Kunde OID (FS) 36 umsatz Angestellter OID (FS) Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 gehalt startDatum Transaktionsmanagement Idee ermöglicht Transaktionen über mehrere Ressourcen Außensicht Innensicht exportiert sehr kompliziert Schnittstelle zur Steuerung einer TTransaktion (begin, commit, rollback) daher nur selber bauen, wenn kein Produkt verfügbar importiert beliebig viele TransaktionsRessourcen (meist XAfähig: begin, prepare, commit, rollback) XA-fähiges Transaktionsmanagement nie selber bauen! beliebig viele Transaktionsbeteiligte (beforeCompletion, afterCompletion) 37 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Transaktionen: Alles oder Nichts Commit Transaktion Transaktion Crash Rollback 38 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Transaktionen: ACID Beispiel: Konzertkartenverkauf: 1) Karte für Sitzplatz im Konzert drucken 2) Betrag vom Konto abbuchen Atomarität: Entweder werden die Karte gedruckt und der Betrag abgebucht oder nichts von beidem (Alle Änderungen = Einheit) Consistenz: Der Datenbestand ist vor und nach dem Verkauf konsistent (z.B. Sitzplatz belegt, Geld abgebucht) Isolation: Zwei parallel arbeitende Ticketverkäufer beeinflussen sich nicht während des Verkaufs – die Daten sind isoliert Dauerhaftigkeit: Am Ende der Transaktion sind die vorgenommenen Änderungen gespeichert (sie überleben einen Systemabsturz) 39 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Fachliche und technische Transaktionen Fachliche Transaktion Fachlicher Ablauf mit mehreren zusammengefassten Aktionen, der z.B. mit OK bestätigt und mit ABBRECHEN verworfen wird Kurz (Sekunden) oder sehr lang (Minuten, Stunden, Tage) Beispiel: Konzertkartenverkauf Technische Transaktion Transaktion auf der Datenbank Meist sehr kurz (je nach Zugriffsstrategie) Lesen oder alle Änderungen schreiben Start: Karte Verkaufen OK Fachliche Transaktion Technische Transaktionen 40 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Abbildung fachlich technisch Pessimistische Transaktionsstrategie Anwendung lädt Datensatz aus DB Kunde 4711 Datensatz ist gesperrt Client 1 Client 2 Andere Clients blockieren, wenn sie lesen/schreiben wollen Konflikte können nicht auftreten Deadlocks sind möglich KundenTabelle ID Nachname Vorn. 4711 Mustermann Marta 41 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Abbildung fachlich technisch Optimistische Transaktionsstrategie Kunde 4711 2 Kunde 4711 1 Client 1 Client 2 Jedes Geschäftsobjekt bekommt einen Versionszähler oder Zeitstempel Datensatz ist nicht gesperrt Andere Clients können lesen und schreiben Konflikt Konflikte werden über Versionsvergleich erkannt KundenTabelle ID Nachname Vorn. Vers. 4711 Mustermann Marta 42 2 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel: Einfügen einer Entität mit Transaktion sd insert Application Transaction Persistence «interface» «interface» «interface» TransactionManager TransactionalPool :TransactionResource Application beginTransaction() :Transaction new «interface» A_Entity insert(object) :UID commitTransaction(transaction) commitTransaction(transaction) 43 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Referenzarchitektur Anwendungskern Persistenz und Transaktion Authentifizierung und Autorisierung Authentifizierung und Autorisierung Client-Architektur Literatur und Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Referenzarchitektur für betriebliche Informationssysteme Quasar (Qualitäts-Software-Architektur) cd Quasar Architecture «Abstract T Component» «A Component» Client Management Dialog Präsentation «Abstract T Component» Anwendungslogik Datenzugriff Alternatives «A Component» «Abstract T Component» Application Component Authorization Alternatives «Abstract T Component» Transaction 45 Application Kernel Facade «Abstract T Component» Persistence Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Worum geht es? Hallo! Kennen wir uns? Authentication Was möchtest Du tun? Darfst Du das überhaupt? Authorization 46 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Aufgaben der Authentifizierung und Autorisierung Verwaltung von … – Benutzerdaten: – “Gerd Müller arbeitet in der Buchhaltung.” User Administration – Berechtigungsdaten: – “Buchhalter dürfen Kontendaten lesen.” Authorization Administration Nutzen der … – Authentifizierung: – “Ist das wirklich Gerd Müller, der gerade versucht sich anzumelden?” Authentication – Autorisierung: – „Darf Gerd Müller Sepp Mayers Kontendaten lesen?” 47 Authorization Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Authentifizierung und Autorisierung im Detail cmp Authorization ResourceDefinition «A Component» Application Component «Abstract T Compo... Authorization UserAdministration Authentication AuthorizationAdministration Authorization TechnicalConfiguration SystemsManagement 48 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel: Authentifizierung und Autorisierung sd authenticate and authorize Application Authorization «interface» «interface» «interface» ResourceDefinition Authentication Authorization Application User:= authenticate(username,password) boolean:= mayPerform(resource,operation,user) String:= getResourceName(resource) 49 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Referenzarchitektur Anwendungskern Persistenz und Transaktion Authentifizierung und Autorisierung Client-Architektur Client-Architektur Literatur und Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Referenzarchitektur für betriebliche Informationssysteme Quasar (Qualitäts-Software-Architektur) cd Quasar Architecture «Abstract T Component» «A Component» Client Management Dialog Präsentation «Abstract T Component» Anwendungslogik Datenzugriff Alternatives «A Component» «Abstract T Component» Application Component Authorization Alternatives «Abstract T Component» Transaction 51 Application Kernel Facade «Abstract T Component» Persistence Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Client: alle Arten von Benutzerschnittstellen Graphische Benutzerschnittstellen (GUI) und textuelle Benutzerschnittstellen (TUI) Web-basiert (Internet-Portal) und nativ (z.B. Java Swing) Verteilt (Client / Server) und lokal (Fat Client) 52 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Statische Aspekte eines Client Window Menu Edit field Subdialog Label Text field Button Panel Scroll bar 53 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Dynamische Aspekte eines Client Dialogsteuerung, Workflow Datendarstellung Internationalisierung Validierung von Nutzereingaben Aktionen ausführen Zustandsverwaltung 54 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Client Technologien Clients Hohe Komplexität mit hoher Komplexität Clients mit geringer Niedrige Komplexität WebDynPro-Client .NET client ActiveX Web client (ohne Scripting) RCP client Flash client Web 2.0 client Win32 client Java Swing client 55 Java Applet Terminal client Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Dialog Ein Dialog ist eine aus Nutzersicht sinnvolle Einheit von UI-Elementen und ihrer Funktionalität Ein Dialog unterstützt einen oder mehrere Anwendungsfälle Ein Dialog kann Unterdialoge haben Zwei Fenster, ein Dialog Ein Fenster, mehrere Dialoge 56 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 cmp Client «TI Component» GUI Library «A Component» Dialog «A Component» DialogFrame «A Component» Presentation Administration Referenzarchitektur Client im Detail Presentation DialogManager TechnicalConfiguration EventManager Dialog DataManager «A Component» DialogKernel SystemsManagement DialogKernel NameService A_UseCase_1' A_UseCase_n' «Abstract T Component» Application Kernel Facade 57 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Beispiel: Ausführung eines A-Falls sd perform application use case User GUI Library «interface» Presentation ActionListener VisualRepresentation Dialog Kernel Application Kernel Facade «interface» «interface» «interface» «interface» Presentation Ev entManager DataManager A_UseCase_1' User press button fireActionEvent() trigger(event) some A use case method UID := Pool.insert(value) update() Object := fetch(key) update() 58 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Agenda Motivation Referenzarchitektur Anwendungskern Persistenz und Transaktion Authentifizierung und Autorisierung Client-Architektur Literatur Kontrollfragen Literatur undund Kontrollfragen Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Literatur Johannes Siedersleben: Moderne Softwarearchitektur. dpunkt-Verlag 2004 Johannes Siederlseben et. al: Quasar: Die sd&m Standardarchitektur (Download von meiner Home Page) Martin Haft, Bernhard Humm, Johannes Siedersleben: The Architect’s Dilemma – Will Reference Architectures Help? (Download von meiner Home Page) Martin Haft, Bernd Olleck: Komponentenbasierte ClientArchitektur. Informatik Spektrum 30-3-2007, S. 143-158, Springer-Verlag 2007 (Download von SpringerOnline – kostenfrei vom h_da Campus aus) 60 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Kontrollfragen Was sind Referenzarchitekturen? Wozu dienen sie? Skizzieren Sie die wesentlichen Elemente der Referenzarchitektur für betriebliche Informationssysteme Wie sollte der Anwendungskern aufgebaut sein? Wozu ist die Anwendungskern-Fassade gut? Wozu dient die Persistenz? Wie wird sie verwendet? Wie werden Klassen auf Tabellen abgebildet? Wozu dienen Transaktionen? Wie werden sie verwendet? Welche Arten von Transaktionen existieren? Welche Transaktionsstrategien existieren? Wozu dient Authentifizierung und Autorisierung? Wie wird sie verwendet? Was sind Clients? Wie sollten sie aufgebaut sein? 61 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012