Upload
heinz-leichliter
View
109
Download
0
Embed Size (px)
Citation preview
Mitglied der Fachhochschule Ostschweiz FHO 1www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
S
oft
war
e E
ng
inee
rin
g
Software Architektur I
Einführung
Innere/Äussere Architektur
Single-/Multi-Tier
Middleware
MOM
Mitglied der Fachhochschule Ostschweiz FHO 2www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 3www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Zweck der Architektur
Mitglied der Fachhochschule Ostschweiz FHO 4www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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 1471-2000 Recommended Practice for Architectural Description for Software-Intensive Systems)
Mitglied der Fachhochschule Ostschweiz FHO 5www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 6www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
IT-Architektur - Zusammenhänge
Middleware, Transaktions-Monitore, Verteilte Applikationen,WEB-Technologie, Datenbanken
Applikationsarchitektur
Prozess ProzessProzess
Systemarchitektur
Netzwerkarchitektur
Technologie
Geschäftstreiber
Technologietreiber
funktionale und nichtfunktionaleAnforderungen
TCP/IP, HTML, XMLVPN, etc.
Java, Visual Studio,VisualAge,UML-
Modellierungstools, ...
Entwicklungsumgebung
Geschäfts-Strategie
IT-Strategie
Markt
IT-Markt
Mitglied der Fachhochschule Ostschweiz FHO 7www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Architektur im Entwicklungsprozess
Äussere Architektur wird als Architekturprojekt festgelegt.
Innere Architektur ist Teil des Design-Prozesses.
Mitglied der Fachhochschule Ostschweiz FHO 8www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Innere Architektur I
Teil des Entwicklungsprojektes• Konkrete Subsystembildung
System
Subsysteme
• Applikationscluster• Applikation (System)• Modul (Subsystem)• Komponente• Implementierte Klassen
Mitglied der Fachhochschule Ostschweiz FHO 9www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Innere Architektur II
Mitglied der Fachhochschule Ostschweiz FHO 10www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Abstraktionsstufen im Architekturentwurf
Mitglied der Fachhochschule Ostschweiz FHO 11www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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:
Mitglied der Fachhochschule Ostschweiz FHO 12www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Musterarchitektur Quasar II
Beispiel 2:
Mitglied der Fachhochschule Ostschweiz FHO 13www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
http://www.posa3.org/
Mitglied der Fachhochschule Ostschweiz FHO 14www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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!
Mitglied der Fachhochschule Ostschweiz FHO 15www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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-ArchitekturThin ClientFat (Rich)
Client
Stored PreceduresAnwendungslogikPräsentation
Mitglied der Fachhochschule Ostschweiz FHO 16www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
3-Tier-Architecture
Client-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»)
Mitglied der Fachhochschule Ostschweiz FHO 17www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
n-Tier-Architecture
DMZ = Demilitarisierte Zone
Mitglied der Fachhochschule Ostschweiz FHO 18www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Verteilte Systeme
Heute Millionen von Computersystemen, welche miteinander verbunden sind.– Netzwerke bilden Transportebene– LAN – WAN– Intranet – Extranet – Internet
Mitglied der Fachhochschule Ostschweiz FHO 19www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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. E-Mail-Anwendungen über PDA‘s bzw. Mobiltelefone
Mitglied der Fachhochschule Ostschweiz FHO 20www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 21www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Kommunikationsmodelle
Interaktionsmuster zwischen einzelnen Komponenten (Kommunikationspartner)– Synchron – Gleichzeitigkeit– Asynchron – Message Oriented Middleware (MOM)
Mitglied der Fachhochschule Ostschweiz FHO 22www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Transparenz
Ziel der Middleware:
Verbergen von Verteilungsaspekten vor der Anwendung– Zugriffstransparenz– Ortstransparenz– Nebenläufigkeitstransparenz– Fehlertransparenz– Replikationstransparenz
Mitglied der Fachhochschule Ostschweiz FHO 23www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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.
Mitglied der Fachhochschule Ostschweiz FHO 24www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Klassifikationsschema von Middleware
Anwendungsorientierte Middleware– Um Dienste und Laufzeitaspekte erweiterte Middleware
zur Unterstützung der Anwendung.
Kommunikationsorientierte Middleware– Abstraktionsschicht zwischen Anwendung und verteiltem System
Mitglied der Fachhochschule Ostschweiz FHO 25www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Kommunikationsorientierte Middleware
Einordnung des Middleware-Protokolles:
Mitglied der Fachhochschule Ostschweiz FHO 26www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 27www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 28www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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• www.opengroup.org/dce
Mitglied der Fachhochschule Ostschweiz FHO 29www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
RPC (Remote Procedure Call) II
Ablauf eines entfernten (synchronen) Prozeduraufrufes:
Stub: Stumpf, Programmhülle mit Schnittstelle jedoch ohne Implementierungscode
Mitglied der Fachhochschule Ostschweiz FHO 30www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
RMI (Remote Method Invocation) I
Ablauf eines entfernten (synchronen) Methodenaufrufes:
Proxy: Stellvertreter
Skeleton: Serverseitige Programmhülle
Mitglied der Fachhochschule Ostschweiz FHO 31www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
RMI (Remote Method Invocation) II
Java-Source-Code
javac Java-Compiler
rmic RMI-Compiler Erst bei AufrufLoad auf den Client
Mitglied der Fachhochschule Ostschweiz FHO 32www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
MOM (Message Oriented Middleware) I
Modell der asynchronen Nachrichtenübermittlung:
MOM (Message)
(Message-Queue)
Mitglied der Fachhochschule Ostschweiz FHO 33www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 34www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
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
Mitglied der Fachhochschule Ostschweiz FHO 35www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Publish-Subscribe Model
Abonnentensystem
Mitglied der Fachhochschule Ostschweiz FHO 36www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Message Services Produkte
Java– JMS - Java Message Service
Microsoft– MSMQ – Microsoft Message Queuing
IBM– WebSphere MQ (früher MQSeries)
Mitglied der Fachhochschule Ostschweiz FHO 37www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
JMS – Architektur
Java-Anwendung
MOM-Server
CF – Connection FactoryD - Destination
JNDI – Java Naming and Directoy Interface
Mitglied der Fachhochschule Ostschweiz FHO 38www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
JMS - Kommunikationsablauf
Aufbau der Verbindung eines JMS-Client zum JMS-Provider
SendingMessage
ReceivingMessage
asynchronsynchron
Mitglied der Fachhochschule Ostschweiz FHO 39www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Point-to-Point Schnittstelle
Beispiel von Java-Code auf Seite 106
Mitglied der Fachhochschule Ostschweiz FHO 40www.fhsg.ch © FHS St.Gallen
So
ftw
are
En
gin
eeri
ng
Publish-Subscribe Schnittstelle
Wichtigster Unterschied bildet die Topic-Warteschlange.