Upload
ivon-zeier
View
105
Download
2
Embed Size (px)
Citation preview
Entwurf und Aufbau einer leistungsfähigen AnwendungsarchitekturJörg Jooss Holger SirtlMTC Architect Architect EvangelistMicrosoft GmbH Microsoft 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?
Was ist Software-Architektur?
Plan für den Aufbau, Verhalten und die Erweiterbarkeit eines Softwaresystems
Beschreibung aller Design-Entscheidungen zu einem Softwaresystem
Entscheidungen zuKomponentenAnordnungSchnittstellenBeziehungen
Kontext
Software-Architektur
Organisa-tions-kontext
Design, Implemen-
tierung
Betrieb
Hardware-Architektur
Qualitäts-sicherung
Anfor-derungs-analyse
Projekt-planung
Sichten
Logische Sicht (Module)Laufzeitsicht (Komponenten/-Konnektoren)Infrastruktursicht (Allokation)ImplementierungssichtDatensichtSicherheitssicht
Qualitätsmerkmale von Software
EffizienzZeiteffizienzRessourceneffizienz
FunktionalitätVollständigkeitKorrektheitSicherheitKompatibilitätInteroperabilität
WartbarkeitKorrigierbarkeitErweiterbarkeitTestbarkeit
PortabilitätHardwareunabhängigkeitSoftwareunabhängigkeitInstallierbarkeitWiederverwendbarkeit
VerlässlichkeitAusfallsicherheitFehlertoleranzVerfügbarkeit
UsabilityVerständlichkeitErlernbarkeitBedienbarkeitAussagefähigkeit
IEEE Std. 1061
Architekturpatterns
Startpunkt für den Systementwurf Festlegung des Grundgerüsts des GesamtsystemsIdentifikation von Subsystemen
AufgabenBeziehungen untereinander
Adressierung von Qualitätsmerkmalen
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
Architektur-pattern
• Strukturieren ein System in Subsysteme, deren Eigenschaften und deren Beziehungen untereinander
Design
Pattern
• Strukturieren Subsysteme in Implementierungs-bausteine
Verfeinerung mit Design Patterns
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
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
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
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
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
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
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
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
Software + Services„The Cloud“
Translator
Router
Adapter
Legacy App
Channel1
Channel2Endpoint
Service App
Channel3 Channel4
Channel5Msg Store
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
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
Was haben wir bewusst ausgelassen?
StandardsModellierungssprachenWerkzeugeImplementierungApplication Lifecycle Management (ALM)Projektorganisation
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
© 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.
Ask the ExpertsWir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.