Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entwurf und Aufbau einer leistungsfähigen Anwendungsarchitektur

Ähnliche Präsentationen


Präsentation zum Thema: "Entwurf und Aufbau einer leistungsfähigen Anwendungsarchitektur"—  Präsentation transkript:

1 Entwurf und Aufbau einer leistungsfähigen Anwendungsarchitektur
3/28/2017 6:35 PM Entwurf und Aufbau einer leistungsfähigen Anwendungsarchitektur Jörg Jooss Holger Sirtl MTC Architect Architect Evangelist Microsoft GmbH Microsoft GmbH © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 Agenda Software-Architektur – wozu?
Welcher Zusammenhang besteht zwischen Anforderungen an ein System und dessen Software-Architektur? Wie entwirft man Software-Architekturen? Wie unterstützt Microsoft Software-Architekten?

3 Was ist Software-Architektur?
Plan für den Aufbau, Verhalten und die Erweiterbarkeit eines Softwaresystems Beschreibung aller Design-Entscheidungen zu einem Softwaresystem Entscheidungen zu Komponenten Anordnung Schnittstellen Beziehungen

4 Andere Architektur-Begriffe
Hardware-Architektur Wenige Design-Elemente Skalierung durch Replikation Netzwerk-Architektur Knoten und Verbindungen Wenige Topologien Klassische Architektur Verschiedene Sichten Architekturstile Ingenieurskunst Material

5 Kontext Software-Architektur Organisa-tions-kontext
Design, Implemen-tierung Betrieb Hardware-Architektur Qualitäts-sicherung Anfor-derungs-analyse Projekt-planung

6 Sichten Logische Sicht (Module)
Laufzeitsicht (Komponenten/-Konnektoren) Infrastruktursicht (Allokation) Implementierungssicht Datensicht Sicherheitssicht

7 Trends Verschiebung der Balance zwischen „Build-versus-Buy“
Steigende Bedeutung von Integration Kompatibilität und Standards Network-Centric Computing Orchestrierung verteilte Systeme und Dienste Verteilte Verantwortlichkeiten vertraglich geregelt Pervasive Computing Verschiedene Endgeräte (PC, SmartPhone etc.) Dynamische Rekonfigurationen bei Änderungen von Geräten Software + Services Anwendungen, die aus lokalen und entfernten Komponenten zusammengesetzt sind Anwendungskomposition durch Benutzer

8 Herausforderungen Wiederverwendung Lebenszyklus Vorgehen U.v.m.
Opportunistisch vs. Systematisch Lebenszyklus Evolution vs. Erosion Vorgehen Agil vs. Formal U.v.m.

9 Qualitätsmerkmale von Software
IEEE Std. 1061 Effizienz Zeiteffizienz Ressourceneffizienz Funktionalität Vollständigkeit Korrektheit Sicherheit Kompatibilität Interoperabilität Wartbarkeit Korrigierbarkeit Erweiterbarkeit Testbarkeit Portabilität Hardwareunabhängigkeit Softwareunabhängigkeit Installierbarkeit Wiederverwendbarkeit Verlässlichkeit Ausfallsicherheit Fehlertoleranz Verfügbarkeit Usability Verständlichkeit Erlernbarkeit Bedienbarkeit Aussagefähigkeit

10 Architekturpatterns Startpunkt für den Systementwurf
Festlegung des Grundgerüsts des Gesamtsystems Identifikation von Subsystemen Aufgaben Beziehungen untereinander Adressierung von Qualitätsmerkmalen

11 Populäre Architekturpattern
Schichtung (Unterteilung in Schichten) Layers Indirection Layers Datenfluss (Verarbeitung von Datenströmen) Batch Sequential Pipes-and-Filters Datenspeicher (gemeinsamer, zentraler Datenspeicher) Shared Repository Active Repository Blackboard Adaption (Möglichkeiten der Anpassung) Microkernel Reflection Interceptor Komponenteninteraktion (Aufrufbeziehungen) Explicit Invocation Implicit Invocation Client-Server Peer to Peer Publish-Subscribe

12 Verfeinerung mit Design Patterns
Architektur-pattern Strukturieren ein System in Subsysteme, deren Eigenschaften und deren Beziehungen untereinander Design Pattern Strukturieren Subsysteme in Implementierungs-bausteine

13 Layers Pattern Strukturierung der Anwendung in unabhängige Schichten mit steigendem Abstraktionsgrad Schnittstellen Sicht: Module Qualitätsmerkmale: Wartbarkeit, Portabilität „Strikt“ oder „Relaxed“ Layer N Abstraktion Layer 3 Layer 2 Layer 1

14 Drei-Schichten-Modell
Präsentationsschicht Interaktion zwischen Anwender und System Verschiedene Endgeräte/-formate Anwendungsschicht Kern des Anwendungssystems Höchster Anspruch an Wiederverwendbarkeit Datenschicht Interaktion zwischen System und Datenquellen Anwender Präsentation Anwendung Daten Daten-quelle Dienst

15 Exkurs: MVC vs. MVP Model-View-Controller Model-View-Presenter
Benutzerinteraktion manipuliert informiert delegiert an View Presenter Model Benutzerinteraktion manipuliert informiert delegiert an aktualisiert Model-View-Controller Model-View-Presenter

16 Design Patterns der Präsentationsschicht
Model-View-Controller (MVC) als dominantes Design-Pattern Varianten: Model-View-Presenter (⇒ Smart Client Software Factory) Document-View (⇒ Microsoft Foundation Classes) MVC mit Page Controller (⇒ ASP.NET Web Forms) MVC mit Front Controller (⇒ ASP.NET MVC) Anwender Präsentationsschicht Datenschicht Datenquelle Dienst Anwendungsschicht

17 Design Patterns der Anwendungsschicht
Transaction Script Use Case-zentrierte Sicht des Anwendungsbereichs Code, Sequenzielle Workflows Table Module Datenmodell-zentrierte Sicht des Anwendungsbereichs Typed DataSets mit Anwendungslogik Domain Model Objektmodell des Anwendungsbereichs, das Verhalten und Daten umfasst Implementierung i.d.R. in Verbindung mit O/R-Mappern wie Entity Framework Anwender Präsentationsschicht Datenschicht Datenquelle Dienst Anwendungsschicht

18 Design Patterns der Datenschicht
Table Data Gateway Kapselt Zugriff auf eine Tabelle in der Datenbank Data Adapter, Table Adapter Mapper Bildet Objekte auf Tabellen und Relationen ab Entity Framework, LINQ To SQL Service Gateway Kapselt Zugriff auf Dienste (Web Services, EAI-Konnektoren etc.) WCF-Clients, ASMX-Clients, proprietäre Komponenten Anwender Präsentationsschicht Datenschicht Datenquelle Dienst Anwendungsschicht

19 Pipes and Filters Pattern
Sicht: Komponenten und Konnektoren Qualitätsmerkmale: Effizienz, Erweiterbarkeit Verarbeitung von Datenströmen durch aktive oder passive Filter Datenstrom wird mittels Pipes über Filtern geleitet Daten können durch Pull oder Push zwischen Filtern propagiert werden Filter Pipe Direktzugriff Datenquelle/-senke

20 Evolution von Pipes and Filters zu Messaging
Node1 Chan-nel1 Node2 Node3 Chan-nel2 Datenstrom ⇒ Nachrichten Header (Adresse, Inhaltsangabe, Security, …) Body (Nutzlast) Filter ⇒ Kommunikationsknoten Lesen, schreiben und verändern Nachrichten (Header, Body) Pipes ⇒ Kommunikationskanäle Definieren Kommunikationsstrecken, -richtungen und Inhalte

21 Messaging Design Patterns
Node1 Chan-nel1 Node2 Node3 Chan-nel2 Pipe-Patterns (Attach) Adapter Endpoint Filter-Patterns Router Translator Store Splitter/Aggregator (Content) Filter Pipe-Patterns (Flow) One-Way Request/Response Point-to-Point Publish-Subscribe Message-Patterns Document Command Event

22 Software + Services „The Cloud“ Translator Router Adapter Legacy App
Channel1 Channel2 Endpoint Service App Channel3 Channel4 Channel5 Msg Store

23 Hilfestellungen durch Microsoft
Enterprise Library, Unity Composite Application Block, Composite WPF Software Factories (Smart Client, Web Client, Web Service) Guides Software + Services Blueprints Manager Outlook+Services Blueprint ARCast, ARCast.TV

24 Zusammenfassung Software hat immer eine Architektur – ist sie entworfen oder nur entstanden? Software-Architekturen besitzen Qualitätsmerkmale – entsprechen diese den Anforderungen an das System? Der Entwurf ist ein iterativer Prozess – welche Architektur- und Design-Patterns sind anwendbar und sinnvoll?  Architektur ist eine Kunst

25 Was haben wir bewusst ausgelassen?
Standards Modellierungssprachen Werkzeuge Implementierung Application Lifecycle Management (ALM) Projektorganisation

26 Quellen L. Bass et al., „Software Architecture in Practice“, Addison-Wesley 2003 F. Buschmann et al., Pattern-Oriented Software Architecture, Wiley 1996 G. Hohpe und B. Woolf, „Enterprise Integration Patterns“, Addison Wesley 2003 M. Fowler, „Patterns of Enterprise Application Architecture“, Addison-Wesley 2002 Microsoft Corp., „Enterprise Solution Patterns Using Microsoft .NET“, Microsoft Press 2003 G. Starke, „Effektice Software-Architekturen“, Hanser 2002 J. Reekie und R. McAdam, „A Software Architecture Primer“, Angophora Press 2006

27 3/28/2017 6:35 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

28 Ask the Experts Wir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.


Herunterladen ppt "Entwurf und Aufbau einer leistungsfähigen Anwendungsarchitektur"

Ähnliche Präsentationen


Google-Anzeigen