ADO.NET Ralf Westphal Freier Fachautor & Berater MSDN Regional Director [email protected].
.NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, [email protected] Freier Autor,...
-
Upload
rosamund-morenz -
Category
Documents
-
view
114 -
download
7
Transcript of .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, [email protected] Freier Autor,...
![Page 1: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/1.jpg)
.NET AnwendungsarchitekturVon Schichten zu Verbänden
Ralf Westphal, [email protected]
Freier Autor, Berater, Entwickler und Associate of thinktecture
![Page 2: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/2.jpg)
Bekannte Architekturmodelle heute
![Page 3: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/3.jpg)
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…
![Page 4: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/4.jpg)
OSI Schichten
![Page 5: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/5.jpg)
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
![Page 6: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/6.jpg)
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
![Page 7: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/7.jpg)
Software Cells
Software Cell /Software Zelle
United Software Cell Structure /
Software Zellverband
![Page 8: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/8.jpg)
Software Zelle = Applikation
![Page 9: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/9.jpg)
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
![Page 10: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/10.jpg)
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
![Page 11: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/11.jpg)
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• Applikation greift nach außen• 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• Auf Applikation wird zugegriffen
![Page 12: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/12.jpg)
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
![Page 13: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/13.jpg)
Applikationsarten I
Einfache Desktop Applikation,z.B. Taschenrechner, Solitair
Desktop Applikation mit Dateisystemzugriff,z.B. Notepad, Photoshop
Desktop Applikation DB-Zugriff, z.B.Lexware Buchhalter
RDBMS dateibasiert bzw. Server ohne SPs
![Page 14: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/14.jpg)
Applikationsarten II
Desktop Applikation, die auf ein serverbasiertes RDBMS zugreift, in dem SPs laufen.
Hos
t: W
info
rms
EXE
Hos
t: S
QL
Serv
er
![Page 15: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/15.jpg)
Applikationsarten III
Entfernte Anwendung, z.B. Web Service
Hos
t: II
S/ASP
.NET
Geschäftsprozess-Anwendung
Hos
t: B
izTa
lk
![Page 16: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/16.jpg)
Applikationsarten IV
Stark verteilte Lösung
![Page 17: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/17.jpg)
Verteilte Anwendungen…
![Page 18: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/18.jpg)
…Anwendungen verteilen
![Page 19: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/19.jpg)
Service Oriented Architecture
![Page 20: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/20.jpg)
Alternative, flexiblere Darstellung
![Page 21: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/21.jpg)
Zellräume• Intrazelluä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
![Page 22: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/22.jpg)
Zellstrukturen - Kern
• Kern kann und soll aus mehreren Komponenten bestehen
• Kern-Komponenten (zunächst) ohne Gewichtung und Reihenfolge
![Page 23: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/23.jpg)
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
![Page 24: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/24.jpg)
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
![Page 25: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/25.jpg)
Zellstrukturen – Application Portal• Macht Applikation für Zugriff von außen
zugänglich– Abstraktionsniveau abhängig von
Anwendungsart und Kommunikationsmedium
• Strukturierung vonAbstraktionsniveau undAnwendungsartabhängig
![Page 26: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/26.jpg)
Zellstrukturen – User Portal• Birektionale Kommunikation mit einem
Anwender– Präsentation des Kern-Zustands– Erfassung von Daten zur Steuerung des
Kerns
• Typischerweise Organisiertnach dem MVC Pattern
![Page 27: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/27.jpg)
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
![Page 28: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/28.jpg)
Fast wieder OSI
![Page 29: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/29.jpg)
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
![Page 30: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/30.jpg)
Interzelluäre Membran
![Page 31: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/31.jpg)
Intrazelluläre Membranen
![Page 32: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/32.jpg)
Intranukleare Membranen• Kerne haben Strukturen
– Komponenten
• Strukturen im Kern sollten wiederum durch Membranen voneinander getrennt sein
![Page 33: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/33.jpg)
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
![Page 34: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/34.jpg)
Implikationen• Komponentennutzung
– 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
![Page 35: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/35.jpg)
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
![Page 36: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/36.jpg)
Beispielarchitektur
![Page 37: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/37.jpg)
The Big Picture• 10n – Eine Reise durch das
Software-Universum
![Page 38: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/38.jpg)
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
![Page 39: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/39.jpg)
Referenzen• Ralf Westphal, Software Cells – An Introduction,
http://weblogs.asp.net/ralfw/category/9899.aspx • Microsoft, Application Architecture for .NET,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/distapp.asp
• Clemens Vasters, Ralf discovers the onion and resource access and I say „Duplex“, http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=2892db4d-e9d7-4fd0-ac62-5dc1b68e24f5
• Microkernel Ansätze– Castle Project, http://www.castleproject.org/castle/show/HomePage– Spring.NET, http://www.springframework.net/– Picocontainer, http://www.picocontainer.org– StructureMap, http://sourceforge.net/projects/structuremap
![Page 40: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/40.jpg)
Ü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).
•Email: [email protected]
www.thinktecture.com
![Page 41: .NET Anwendungsarchitektur Von Schichten zu Verbänden Ralf Westphal, ralfw@ralfw.de Freier Autor, Berater, Entwickler und Associate of thinktecture.](https://reader034.fdokument.com/reader034/viewer/2022052522/55204d6249795902118b7330/html5/thumbnails/41.jpg)
Publikationen
.NET kompakt, Spektrum Akademischer Verlag 2002, ISBN 3827411858
Bücher
ADO.NET Datenbankprogrammierung, Addison-Wesley 2002, ISBN 3827319978
Jetzt lerne ich ADO.NET, Markt+Technik, 2003, ISBN 3827262291(zusammen mit Christian Weyer)
In Fachzeitschriften
Video
www.dotnettv.de tv.dotnetpro.de