24
Entwurf und Aufbau einer leistungsfähigen Anwendungsarchitektu r Jörg Jooss Holger Sirtl MTC Architect Architect Evangelist Microsoft GmbH Microsoft GmbH

Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Embed Size (px)

Citation preview

Page 1: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Entwurf und Aufbau einer leistungsfähigen AnwendungsarchitekturJörg Jooss Holger SirtlMTC Architect Architect EvangelistMicrosoft GmbH Microsoft GmbH

Page 2: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

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?

Page 3: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Was ist Software-Architektur?

Plan für den Aufbau, Verhalten und die Erweiterbarkeit eines Softwaresystems

Beschreibung aller Design-Entscheidungen zu einem Softwaresystem

Entscheidungen zuKomponentenAnordnungSchnittstellenBeziehungen

Page 4: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Kontext

Software-Architektur

Organisa-tions-kontext

Design, Implemen-

tierung

Betrieb

Hardware-Architektur

Qualitäts-sicherung

Anfor-derungs-analyse

Projekt-planung

Page 5: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Sichten

Logische Sicht (Module)Laufzeitsicht (Komponenten/-Konnektoren)Infrastruktursicht (Allokation)ImplementierungssichtDatensichtSicherheitssicht

Page 6: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Qualitätsmerkmale von Software

EffizienzZeiteffizienzRessourceneffizienz

FunktionalitätVollständigkeitKorrektheitSicherheitKompatibilitätInteroperabilität

WartbarkeitKorrigierbarkeitErweiterbarkeitTestbarkeit

PortabilitätHardwareunabhängigkeitSoftwareunabhängigkeitInstallierbarkeitWiederverwendbarkeit

VerlässlichkeitAusfallsicherheitFehlertoleranzVerfügbarkeit

UsabilityVerständlichkeitErlernbarkeitBedienbarkeitAussagefähigkeit

IEEE Std. 1061

Page 7: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Architekturpatterns

Startpunkt für den Systementwurf Festlegung des Grundgerüsts des GesamtsystemsIdentifikation von Subsystemen

AufgabenBeziehungen untereinander

Adressierung von Qualitätsmerkmalen

Page 8: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Populäre Architekturpattern

• Layers• Indirection Layers

Schichtung(Unterteilung in

Schichten)

• Batch Sequential• Pipes-and-Filters

Datenfluss(Verarbeitung von

Datenströmen)

• Shared Repository• Active Repository• Blackboard

Datenspeicher (gemeinsamer, zentraler

Datenspeicher)

• Microkernel• Reflection• Interceptor

Adaption(Möglichkeiten der

Anpassung)

• Explicit Invocation• Implicit Invocation• Client-Server

Komponenteninteraktion

(Aufrufbeziehungen)

• Peer to Peer• Publish-Subscribe

Page 9: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Architektur-pattern

• Strukturieren ein System in Subsysteme, deren Eigenschaften und deren Beziehungen untereinander

Design

Pattern

• Strukturieren Subsysteme in Implementierungs-bausteine

Verfeinerung mit Design Patterns

Page 10: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Layers Pattern

Strukturierung der Anwendung in unabhängige Schichten mit

steigendem AbstraktionsgradSchnittstellen

Sicht: ModuleQualitätsmerkmale: Wartbarkeit, Portabilität„Strikt“ oder „Relaxed“

Layer 2

Layer 3

Layer N

Layer 1

Abst

rakt

ion

Page 11: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Drei-Schichten-ModellPräsentationsschicht

Interaktion zwischen Anwender und SystemVerschiedene Endgeräte/-formate

AnwendungsschichtKern des AnwendungssystemsHöchster Anspruch an Wiederverwendbarkeit

DatenschichtInteraktion zwischen System und Datenquellen

Anwender

Präsentation

Daten

Daten-quelle

Dienst

Anwendung

Page 12: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

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

Page 13: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Design Patterns der Anwendungsschicht

Transaction ScriptUse Case-zentrierte Sicht des AnwendungsbereichsCode, Sequenzielle Workflows

Table ModuleDatenmodell-zentrierte Sicht des AnwendungsbereichsTyped DataSets mit Anwendungslogik

Domain ModelObjektmodell des Anwendungsbereichs, das Verhalten und Daten umfasstImplementierung i.d.R. in Verbindung mit O/R-Mappern wie Entity Framework

Anwender

Präsentationsschicht

Datenschicht

Datenquelle

Dienst

Anwendungsschicht

Page 14: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Design Patterns der Datenschicht

Table Data GatewayKapselt Zugriff auf eine Tabelle in der DatenbankData Adapter, Table Adapter

MapperBildet Objekte auf Tabellen und Relationen abEntity Framework, LINQ To SQL

Service GatewayKapselt Zugriff auf Dienste (Web Services, EAI-Konnektoren etc.)WCF-Clients, ASMX-Clients, proprietäre Komponenten

Anwender

Präsentationsschicht

Datenschicht

Datenquelle

Dienst

Anwendungsschicht

Page 15: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Pipes and Filters Pattern

Filter

Pipe

Direktzugriff

Datenquelle/-senke

Sicht: Komponenten und KonnektorenQualitätsmerkmale: Effizienz, ErweiterbarkeitVerarbeitung von Datenströmen durch aktive oder passive FilterDatenstrom wird mittels Pipes über Filtern geleitetDaten können durch Pull oder Push zwischen Filtern propagiert werden

S F1 P1 F2 F3 SP2

Page 16: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

S Node1Chan-nel1

Node2 Node3 SChan-nel2

S F1 P1 F2 F3 SP2

Datenstrom ⇒ NachrichtenHeader (Adresse, Inhaltsangabe, Security, …)Body (Nutzlast)

Filter ⇒ KommunikationsknotenLesen, schreiben und verändern Nachrichten (Header, Body)

Pipes ⇒ KommunikationskanäleDefinieren Kommunikationsstrecken, -richtungen und Inhalte

Evolution von Pipes and Filters zu Messaging

Page 17: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Pipe-Patterns (Attach)

AdapterEndpoint

Filter-PatternsRouterTranslatorStoreSplitter/Aggregator(Content) Filter

Messaging Design PatternsS Node1

Chan-

nel1

Node2 Node3 SChan-

nel2

Pipe-Patterns (Flow)

One-WayRequest/ResponsePoint-to-PointPublish-Subscribe

Message-PatternsDocumentCommandEvent

Page 18: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Software + Services„The Cloud“

Translator

Router

Adapter

Legacy App

Channel1

Channel2Endpoint

Service App

Channel3 Channel4

Channel5Msg Store

Page 19: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Hilfestellungen durch Microsoft

Enterprise Library, UnityComposite Application Block, Composite WPF Software Factories (Smart Client, Web Client, Web Service)Guides

Software + Services Blueprints Manager Outlook+Services Blueprint

ARCast, ARCast.TV

Page 20: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

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

Page 21: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

Was haben wir bewusst ausgelassen?

StandardsModellierungssprachenWerkzeugeImplementierungApplication Lifecycle Management (ALM)Projektorganisation

Page 22: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

QuellenL. Bass et al., „Software Architecture in Practice“, Addison-Wesley 2003F. Buschmann et al., Pattern-Oriented Software Architecture, Wiley 1996G. Hohpe und B. Woolf, „Enterprise Integration Patterns“, Addison Wesley 2003M. Fowler, „Patterns of Enterprise Application Architecture“, Addison-Wesley 2002 Microsoft Corp., „Enterprise Solution

Patterns Using Microsoft .NET“, Microsoft Press 2003G. Starke, „Effektice Software-Architekturen“, Hanser 2002J. Reekie und R. McAdam, „A Software Architecture Primer“, Angophora Press 2006

Page 23: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft 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.

Page 24: Jörg JoossHolger Sirtl MTC ArchitectArchitect EvangelistMicrosoft GmbH

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