Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

.NET Anwendungsarchitektur

Ähnliche Präsentationen


Präsentation zum Thema: ".NET Anwendungsarchitektur"—  Präsentation transkript:

1 .NET Anwendungsarchitektur
Von Schichten zu Verbänden Ralf Westphal, Freier Autor, Berater, Entwickler und Associate of thinktecture

2 Bekannte Architekturmodelle heute

3 Schicht für Schicht Architekturen bauen Anwendungen in logischen Schichten (engl. layer) auf Logische Schichten können zu physikalischen werden (engl. tier) sog. „Verteilte Anwendungen“ Das scheint inzwischen allen plausibel und erinnert an…

4 OSI Schichten

5 Probleme mit heutigen Architekturmodellen
Software layers sind etwas anderes als network protocol layers Im Netzwerk bleibt die grundsätzliche Funktionalität je Layer gleich, aber das Abstraktionsniveau steigt Bei Software ändert sich die Funktion bei u.U. gleicher Abstraktion Es fehlen Aussagen zu physikalischen Einheiten (z.B. Komponente, Host) Schwammige Terminologie Was ist eine Applikation? Was bedeutet „verteilte Anwendung“? Mangelnde Skalierbarkeit Die Beschreibung von Softwaresystemen wird schnell unhandlich

6 Wir brauchen… …ein neues Architekturmodell, dass…
leicht verständlich ist die bisher abgedeckten Fälle enthält besser skaliert klare Vorgaben macht eine klare Terminologie definiert zu einfacheren Darstellungen größerer Systeme führt existierendenen Technologie einen Platz zuweist breit anwendbar ist

7 United Software Cell Structure /
Software Zelle United Software Cell Structure / Software Zellverband

8 Software Zelle = Applikation

9 Eigenschaften einer Software Zelle I
Eine Zelle wird gebildet durch Hülle und Kern Hülle = Host: Container, in dem Logik ausgeführt wird Eine EXE-Assembly App.Config Kern = Core: Zentrale Logik der Anwendung, für den Zweck der Applikation unabdingbar Besteht aus einer oder mehrer DLL-Assemblies

10 Die einfachste Applikation
Host: Console-EXE Core: eine DLL, die autom. gestartet wird und ohne Ein/Ausgabe arbeitet Eine Applikation besteht immer nur aus genau 1 EXE und 1..n DLLs Verteilte Anwendungen bestehen daher aus min. 2 Applikationen Ein SOA Service ist immer auch eine Applikation

11 Eigenschaften einer Software Zelle II
Adapter und Portale dienen der Kommunikation mit der Außenwelt Resource Adapter: Zugriff auf Datenbanken, Dateisysten, Netzwerkverbindungen Applikation greift nach außen Hat einen großen Hub, Impedance Mismatch zwischen Applikation und Ressource ist groß Application Adapter: Zugriff auf eine andere Applikation Hat einen kleinen Hub, aufgerufene Applikation stellt eine Schnittstelle bereit, die sehr nah am Informationsmodell der aufrufenden ist Application Portal: Erlaubt den Zugriff auf die Applikation von außen Auf Applikation wird zugegriffen Stellt anden Applikationen eine Schnittstelle zur Verfügung User Portal: Erlaubt den Zugriff auf die Applikation durch einen Benutzer

12 Hosts Hosts stellen dem Core Infrastruktur zur Verfügung
Im einfachsten Fall laden sie den Core nur und starten seine Ausführung Existierende Host Technologien Console EXE Winforms EXE NT Service EXE IE MS Office Anwendungen: Word, Excel, Outlook etc. IIS/ASP.NET COM+ SQL Server 2005 BizTalk

13 Applikationsarten I Einfache Desktop Applikation,
Desktop Applikation mit Dateisystemzugriff, z.B. Notepad, Photoshop Einfache Desktop Applikation, z.B. Taschenrechner, Solitair Desktop Applikation DB-Zugriff, z.B. Lexware Buchhalter RDBMS dateibasiert bzw. Server ohne SPs

14 Applikationsarten II Host: Winforms EXE Host: SQL Server Desktop Applikation, die auf ein serverbasiertes RDBMS zugreift, in dem SPs laufen.

15 Applikationsarten III
Host: IIS/ASP.NET Geschäftsprozess-Anwendung Host: BizTalk Entfernte Anwendung, z.B. Web Service

16 Applikationsarten IV Stark verteilte Lösung

17 Verteilte Anwendungen…

18 …Anwendungen verteilen

19 Service Oriented Architecture

20 Alternative, flexiblere Darstellung

21 Zellräume Intrazelluärer Raum Extrazelluärer Raum
enthält Kern, Adapter, Portale wird bestimmt durch Host Host stellt Infrastruktur, z.B. Logging/Tracing Aktivierung Transaktionen Extrazelluärer Raum Raum zwischen Applikationen Verantwortlich für den Nachrichtenaustausch zwischen Applikationen TCP/UDP HTTP MSMQ

22 Zellstrukturen - Kern Kern kann und soll aus mehreren Komponenten bestehen Kern-Komponenten (zunächst) ohne Gewichtung und Reihenfolge

23 Zellstrukturen – Resource Adapter (RA)
Macht Ressource zugänglich Liefert Daten auf Abstraktionsniveau des Kerns aus Ressource an High Level RA Layer Baut auf einem low level API auf Enthält ggf. eine vereinheitlichende Schicht zur Ansteuerung verschiedener APIs Low Level RA Layer

24 Zellstrukturen – Application Adapter (AA)
Macht andere Applikationen zugänglich Daten werden auf hohem Abstraktionsniveau erwartet High Level AA Layer Kapselt ggf. Proxy der anderen Applikation Verbirgt Details des Applikationszugriffs

25 Zellstrukturen – Application Portal
Macht Applikation für Zugriff von außen zugänglich Abstraktionsniveau abhängig von Anwendungsart und Kommunikationsmedium Strukturierung von Abstraktionsniveau und Anwendungsart abhängig

26 Zellstrukturen – User Portal
Birektionale Kommunikation mit einem Anwender Präsentation des Kern-Zustands Erfassung von Daten zur Steuerung des Kerns Typischerweise Organisiert nach dem MVC Pattern

27 Nichts Neues unter der Sonne
Bei Software geht es immer noch um EVA und I/O Eingabe/Input: Adapter/Portal Ausgabe/Output: Adapter/Portal Verarbeitung/Processing: Core

28 Fast wieder OSI

29 Membranen Strukturen erhalten Unabhängigkeit durch Umhüllung mit einer Membran Membranen isolieren „Innereien“ (Implementation) voneinander Entkopplung Interfaces definieren die „Durchlässigkeit“ von Membranen Exozytose: Information fließt aus einer Applikation aus Endozytose: Information fließt in eine Applikation ein Membranen schließen wiederverwendbare Strukturen ein

30 Interzelluäre Membran

31 Intrazelluläre Membranen

32 Intranukleare Membranen
Kerne haben Strukturen Komponenten Strukturen im Kern sollten wiederum durch Membranen voneinander getrennt sein

33 Contract First Design Membranen sind vor und unabhängig von der Implementation von Strukturen zu planen Komponenten referenzieren keine Komponenten zur Designzeit, sondern Interfaces Interfaces definieren… Operationen Daten(strukturen) Komponenten implementieren Interfaces

34 Implikationen Komponentennutzung Projektorganisation
Komponenten (bzw. Klassen aus Komponenten) können nicht mehr direkt instanziert werden Lösung: Microkernel lokalisiert und instanziert Komponenten Projektorganisation Projekte referenzieren (nur noch) Interface-Assemblies Komponenten werden in separaten Projektmappen entwickelt Verhindert die Umgehung von Interfaces

35 Beispielanwendung Ermittlung einer Zahlenreihe
Benutzer wählt aus einer Liste von Algorithmen zur Zahlenreihenbestimmung aus Benutzer gibt einen Maximalwert vor Benutzer startet Zahlenreihenberechnung Anzeige der Ermittelten Zahlen Benutzer kann die Zahlenreihe speichern

36 Beispielarchitektur

37 The Big Picture 10n – Eine Reise durch das Software-Universum

38 Fazit Existierende Architekturmodelle haben Nachteile
Unvollständige Beschreibungen Umständliche Beschreibungen Unpräzise Beschreibungen Software Cells bieten einen frischen Blick auf Softwarearchitektur Enthalten bisherige Konzepte Schichtenmodell Onion Mehrschichtige Anwendungen SOA Machen klare Aussagen und geben Empfehlungen Sind einfach zu verstehen und lernen Können große und kleine Systeme ohne Notationswechsel darstellen

39 Referenzen Ralf Westphal, Software Cells – An Introduction, Microsoft, Application Architecture for .NET, Clemens Vasters, Ralf discovers the onion and resource access and I say „Duplex“, Microkernel Ansätze Castle Project, Spring.NET, Picocontainer, StructureMap,

40 Über den Referenten Ralf Westphal (www.ralfw.de) ist freier Softwaretechnologievermittler. Er arbeitet als Fachautor, Coach/Berater, Softwareentwickler und Sprecher auf Entwickler-Events im In- und Ausland wie dem Microsoft Technical Summit, Microsoft DevDays, ADC, BASTA!, COMDEX oder SD West. Der Schwerpunkt seiner Arbeit liegt bei der Vermittlung und Anwendung moderner Softwaretechnologien und -konzepte im Zusammenhang mit dem .NET Framework. Darüber hinaus ist Ralf Westphal einer der unabhängigen deutschen Microsoft Regional Directors, Produzent von .NET TV (www.dotnettv.de), Associate der ersten Stunde bei thinktecture (www.thinktecture.com) und zusammen mit Christian Weyer einer der .NET Twins (www.dotnettwins.de).

41 Publikationen Bücher In Fachzeitschriften Video
.NET kompakt, Spektrum Akademischer Verlag 2002, ISBN ADO.NET Datenbankprogrammierung, Addison-Wesley 2002, ISBN Jetzt lerne ich ADO.NET, Markt+Technik, 2003, ISBN (zusammen mit Christian Weyer) Video tv.dotnetpro.de


Herunterladen ppt ".NET Anwendungsarchitektur"

Ähnliche Präsentationen


Google-Anzeigen