.NET Anwendungsarchitektur

Slides:



Advertisements
Ähnliche Präsentationen
Arbeitsablauf basierte Grid Anwendungen
Advertisements

E-Commerce Shop System
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Was gibt´s neues im Bereich Sicherheit
Designing Software for Ease of Extension and Contraction
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Deklarative Programmierung mit Attributen
Design- und Entwicklungswerkzeuge
Office XP und XML Web Services Dariusz Parys.NET Strategy & Developer Group
Was bedeutet XML in Office-Applikationen für Systemadministratoren? Ruprecht Dröge MCSE MCSD MCT Microsoft Pre Sales Consultant.
Agenda DataAssist e.K. Probleme heutiger Ansätze der Netzwerkdokumentation Management der Netzwerkdokumentation Management von Rechnern Der NetDoc Server.
Inhalt – Technische Grundlagen
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Entwurf und prototypische Realisierung eines homogenen Konfigurationsdatenspeichers Autor:Simeon Ludwig Referent:Prof. Dr. Urs Andelfinger Koreferent:Prof.
On a Buzzword: Hierachical Structure David Parnas.
Microsoft Windows 2000 Terminal Services
DOM (Document Object Model)
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Architektur von Netzwerken
Microsofts XML-Strategie aus Sicht des Endanwenders Klaus Rohe Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Anwendungen. © Prof. T. Kudraß, HTWK Leipzig Historie des WWW Grundlage Internet – Entwickelt Ende der 60er Jahre vom US-Militär (ARPA-Net) – Technische.
Introducing the .NET Framework
Applikationsentwicklung mit dem Microkernel von Andreas Bräsen.NET User Group Karlsruhe 23-Feb-2006.
Überlegungen zur Architektur eines Fachinformations-Netzwerkes am Beispiel des CeGIM Mehrwert ist es nicht nur, Daten von ihren Quellen zu den Nutzern.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Applikationsschichten
ODBC (Open Database Connectivity)
Sicherer Zugang zu internen Terminalservern von öffentlichen PCs
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Microsoft Internet Information Services (IIS)
Best Practices in der Datenbank-programmierung
SQL Server 2005 CLR-Integration
Mit 3 Schichte zum Erfolg
Präsentation von Sonja Pathe
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH Christian Weyer Solutions Architect thinktecture.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 5 Folie 2 Windows Communication Foundation (WCF) s.a.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 6 Folie 2 WCF Data Services (1) s.a.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 ASP.NET Zustandsverwaltung
Sesame Florian Mayrhuber
… und was man damit machen kann.
Microsoft Student Partners
Ausgabe vom Seite 1, XML Eine Einführung XML - Eine Einführung.
Management- und Web Services- Architekturen
SPODAT - Blick nach vorn
Liske Informationsmanagementsysteme 2005 Informationen managen Strategisches Kalkül und technische Wirksamkeit.
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Vision. 2 Vision der Software Offene, modulare, integrierte, redundanzfreie, skalierbare, primär webbasierte Business-Applikation bestehend aus eigenen.
Datenanbindung in Webapplikationen
Datenbankanbindung in Web-Applikationen
Projekt Pokémon (CSL) Evaluation Technologien / Entwicklungsumgebungen Schlusspräsentation, Philip Iezzi, BDLI 2.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 ASP.NET Datenbindung
Ethernet-Applikationsschichten
Partner Präsentation Interaktives Planen in der Fertigung.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Das Internet Ein Netzwerk, das viele Rechner miteinander verbindet
Datenbanken Produkte Dienstleistungen Referenzen.
Datenbanken Produkte Dienstleistungen Referenzen.
 Präsentation transkript:

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

Bekannte Architekturmodelle heute

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…

OSI Schichten

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

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

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

Software Zelle = Applikation

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

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

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

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

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

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

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

Applikationsarten IV Stark verteilte Lösung

Verteilte Anwendungen…

…Anwendungen verteilen

Service Oriented Architecture

Alternative, flexiblere Darstellung

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

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

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

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

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

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

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

Fast wieder OSI

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

Interzelluäre Membran

Intrazelluläre Membranen

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

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

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

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

Beispielarchitektur

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

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

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

Ü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: ralfw@ralfw.de www.thinktecture.com

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