Präsentation herunterladen
1
Software Architektur I
Einführung Innere/Äussere Architektur Single-/Multi-Tier Middleware MOM
2
Lernziele Sie können ... den Sinn und Zweck der Architektur erläutern
zwischen innerer und äusserer Architektur unterscheiden Single-/Multitier-Architekturen situationsabhängig vorschlagen verschiedene Arten von Middleware benennen die Prinzipien von Message Oriented Middleware (MOM) erläutern
3
Zweck der Architektur Chaos
4
Architektur „…the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.“ (IEEE Standard Recommended Practice for Architectural Description for Software-Intensive Systems)
5
Komponenten Komponenten sind Strukturelemente einer Softwarearchitektur. Verschiedene Granularitätsstufen Hauptzielsetzungen von Komponenten: Abhängigkeiten zu beherrschen Eigenschaften von Komponenten (im engeren Sinne): Kapselung von Daten und Methoden (Information Hiding) Zugriff nur über definierte Schnittstellen Können einfach oder mehrfach instanziiert werden
6
IT-Architektur - Zusammenhänge
Markt IT-Markt
7
Architektur im Entwicklungsprozess
Äussere Architektur wird als Architekturprojekt festgelegt. Innere Architektur ist Teil des Design-Prozesses.
8
Innere Architektur I System Subsysteme Teil des Entwicklungsprojektes
Konkrete Subsystembildung Applikationscluster Applikation (System) Modul (Subsystem) Komponente Implementierte Klassen System Subsysteme
9
Innere Architektur II
10
Abstraktionsstufen im Architekturentwurf
11
Musterarchitektur Quasar I
Quasar – Qualitäts-Software-Architektur Technologieunabhängige Musterarchitektur für komplexe verteilte betriebliche Informationssysteme: Entwurfskonzepte und –richtlinien Einheitliche Begriffswelt Standardisierte Schnittstellen zu Diensten Wieder verwendbare Dienstkomponenten Beispiel 1:
12
Musterarchitektur Quasar II
Beispiel 2:
13
POSA Pattern Oriented Software Architecture 3 Ebenen von Muster:
Architekturmuster Muster für verteilte Anwendungen Bsp.: MVC Entwurfsmuster Weniger als GoF (Gang of Four) Konzentration auf verteilte Anwendungen Idiome Programmierspezifische Konzepte
14
Architekturmodelle Single-Tier Client-Server-Architekturmodell
Basismodell: Client Consumer Server Provider Peer-to-Peer-Architekturmodell Ausgebautes Service-Modell: Service-Provider Service Consumer Modell des Internet!
15
Schichtenarchitekturen
3 Hauptaufgaben: Präsentation – Interaktivität – Input/Output der Daten Anwendungslogik – Verarbeitung der Daten Datenhaltung – Speicherung der Daten Verteilung der Aufgaben auf einzelne Schichten (Tiers) 2-Tier-Architektur Fat (Rich) Client Thin Client Stored Precedures Anwendungslogik Präsentation
16
3-Tier-Architecture Client-Tier: Middle-Tier Server-Tier Präsentation
Front-End Middle-Tier Anwendungslogig Business-Logic Server-Tier Datenhaltung Back-End Persistenz Datenbanksysteme Manchmal sind dies auch EIS (Enterprise Information System) wie z.B. Legacy Systems («Erbstücke»)
17
n-Tier-Architecture DMZ = Demilitarisierte Zone
18
Verteilte Systeme Heute Millionen von Computersystemen, welche miteinander verbunden sind. Netzwerke bilden Transportebene LAN – WAN Intranet – Extranet – Internet
19
Verteilte Anwendungen
Anwendungskomponenten arbeiten über die verteilten Systeme hinweg miteinander Einfache verteilte Anwendungen z.B. Internetanwendungen über WWW Verteilte Informationssysteme (Mehrschichtige Anwendungen): z.B. Flugreservationssystem Eingebettete verteilte Systeme (Embedded distributed Systems) z.B. Intelligentes Navigationssystem im Auto Mobile verteilte Systeme z.B. -Anwendungen über PDA‘s bzw. Mobiltelefone
20
Middleware Standardisierte Software, welche verteilte Systeme bzw. Anwendungen ermöglicht. Abstraktion von der Netzwerkprogrammierung Kommunikationsorientierte Middleware z.B. RPC, RMI, Web-Service Anwendungsorientierte Middleware z.B. CORBA, J2EE, .NET
21
Kommunikationsmodelle
Interaktionsmuster zwischen einzelnen Komponenten (Kommunikationspartner) Synchron – Gleichzeitigkeit Asynchron – Message Oriented Middleware (MOM)
22
Transparenz Ziel der Middleware:
Verbergen von Verteilungsaspekten vor der Anwendung Zugriffstransparenz Ortstransparenz Nebenläufigkeitstransparenz Fehlertransparenz Replikationstransparenz
23
Vor-/Nachteile der Verteilung
Vorteile Gemeinsame Nutzung von Ressourcen: Hardware Software (Anwendungen, Funktionalität) Daten, Informationen Enabler von neuen Geschäftsmodellen z.B. e-Commerce Nachteile Komplexe Systemumgebung Erhöhtes Sicherheitsrisiko z.B. Viren, Würmer, Datenspionage etc.
24
Klassifikationsschema von Middleware
Anwendungsorientierte Middleware Um Dienste und Laufzeitaspekte erweiterte Middleware zur Unterstützung der Anwendung. Kommunikationsorientierte Middleware Abstraktionsschicht zwischen Anwendung und verteiltem System
25
Kommunikationsorientierte Middleware
Einordnung des Middleware-Protokolles:
26
Kategorisierung Kommunikationsorientierter Middleware
Entfernter Aufruf (synchrone Kommunikation): Prozedural: Remote Procedure Call (RPC) Objektorientiert: Remote Method Invocation (RMI) Web-Services (SOAP) Nachrichtenorientierte Middleware (asynchrone Kommunikation) Java Message Service (JMS) MQSeries von IBM
27
Aufgaben kommunikationsorientierter Middleware
Abstraktion des Transports Marshalling – Unmarshalling Datentransformation zwischen den Plattformen Plattformabhängig (Hardware-/Betriebssystem-/Framework-/Programmiersprachabhängig): EBCDIC (IBM, Extended Binary Coded Decimal Interchange Code) ASCII (American Standard Code for Information Interchange) Plattformunabhängig: CDR (CORBA, Common Data Representation) Unicode / ISO/IEC 10646 Externe Datenformate (mit semantischer Ebene): EDI EDIFACT (Electronic Data Interchange) XML (Extended Markup Language) Fehlerbehandlung/Fehlerbehebung
28
RPC (Remote Procedure Call) I
Entfernter Prozeduraufruf Idee: Aufruf einer entfernten Prozedur wie lokaler Prozeduraufruf (Verteilungs-/Ortstransparenz) Implementierung in unterschiedlichen Umgebungen: Sun RPC Microsoft Windows Herstellerneutral: DCE RPC (Distributed Computing Environment) von Open Group
29
RPC (Remote Procedure Call) II
Ablauf eines entfernten (synchronen) Prozeduraufrufes: Stub: Stumpf, Programmhülle mit Schnittstelle jedoch ohne Implementierungscode
30
RMI (Remote Method Invocation) I
Ablauf eines entfernten (synchronen) Methodenaufrufes: Proxy: Stellvertreter Skeleton: Serverseitige Programmhülle
31
RMI (Remote Method Invocation) II
Java-Source-Code javac Java-Compiler rmic RMI-Compiler Erst bei Aufruf Load auf den Client
32
MOM (Message Oriented Middleware) I
Modell der asynchronen Nachrichtenübermittlung: (Message) MOM (Message-Queue)
33
MOM (Message Oriented Middleware) II
Kein Session-Handling notwendig Grundsätzlich ein Store-and-Forward-Prinzip Zur Zusicherung der garantierten Zustellung: Voraussetzung: persistente Warteschlangen Rückmeldung bei erfolgter Zustellung
34
Request-Reply Model Simulation der synchronen Kommunikation
Transaktion ist beim Sender erst abgeschlossen, wenn entsprechender Reply vorhanden ist. Vorteile gegenüber synchroner Kommunikation: geringere Kommunikationsressourcen mehrere parallele Verbindungen möglich Message-ID und Correlation-ID notwendig
35
Publish-Subscribe Model
Abonnentensystem
36
Message Services Produkte
Java JMS - Java Message Service Microsoft MSMQ – Microsoft Message Queuing IBM WebSphere MQ (früher MQSeries)
37
JNDI – Java Naming and Directoy Interface
JMS – Architektur JNDI – Java Naming and Directoy Interface CF – Connection Factory D - Destination Java-Anwendung MOM-Server
38
JMS - Kommunikationsablauf
Aufbau der Verbindung eines JMS-Client zum JMS-Provider Receiving Message Sending Message synchron asynchron
39
Point-to-Point Schnittstelle
Beispiel von Java-Code auf Seite 106
40
Publish-Subscribe Schnittstelle
Wichtigster Unterschied bildet die Topic-Warteschlange.
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.