32
Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse Architekturen interoperabler Systeme für raumzeitliche Prozesse Einige Grundlagen 28.10. 2002 Bernard

Architekturen interoperabler Systeme für raumzeitliche Prozesse

  • Upload
    ofira

  • View
    31

  • Download
    0

Embed Size (px)

DESCRIPTION

Architekturen interoperabler Systeme für raumzeitliche Prozesse. Einige Grundlagen 28.10. 2002 Bernard. Grundlegendes zu Software-Architekturen. Struktur Motivation Ursprung und Begriffsdefinition Design und Architekturen Systemarchitekturen – Beispiel Schichtenmodell - PowerPoint PPT Presentation

Citation preview

Page 1: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

Architekturen interoperabler Systeme für raumzeitliche Prozesse

Einige Grundlagen 28.10. 2002

Bernard

Page 2: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlegendes zu Software-Architekturen

Struktur

1. Motivation

2. Ursprung und Begriffsdefinition

3. Design und Architekturen

4. Systemarchitekturen – Beispiel Schichtenmodell

5. Patterns – Beispiele

6. Frameworks

Fazit

Page 3: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

1. Motivation – Wozu Architekturen ?

hierzu, nicht unbedingt....

Page 4: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

1. Motivation – Wozu Architekturen ?

hierzu bestimmt !

Page 5: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

1. Motivation – Wozu Architekturen ?

Überblick:

– Strukturierung komplexer Systeme ( Baupläne)– Kommunikation komplexer Systeme– Koordination– Kostenschätzung...

Kostenreduzierung, z.B. durch

– Wiederverwendung ( Standard-Fenster)– Gute Entwürfe recyclen ( Grundrisse)...

Der Architekt weiß, wie es geht !

....

Page 6: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

2. Software-Architektur – Ursprung:

In programming, the term architecture was first used to mean a description of a computer system that applied equally to more than one actual system. In 1969, Fred Brooks and Ken Iverson called architecture the "conceptual structure of a computer...as seen by the programmer"...."Where architecture tells what happens, implementation tells how it is made to happen."

(Paul Clements, Software Engineering Institute;http://www.sei.cmu.edu/architecture/essays.html)

Page 7: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

2. Software-Architektur – Definitionen.

There is no standard, universally-accepted definition of the term, for software architecture is a field in its infancy, although its roots run deep in software engineering.

(Software Engineering Institute / Carnegie Mellon University; http://www.sei.cmu.edu/architecture/definitions.html)

Page 8: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

2. Software-Architektur – Definitionen:

An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization - these elements and their interfaces, their collaborations, and their composition.

(Booch, Rumbaugh, Jacobson (1999): The UML Modeling Language User Guide, Addison-Wesley).

Page 9: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

2. Software-Architektur – Definitionen:

The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them

(Bass, Clements, Kazman (1997): Software Architecture in Practice, Addison-Wesley).

Page 10: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

3. Design und Architekturen:

Der Schritt der Systemanalyse (z.B. domain analysis,...Literatur: z.B. Booch et al. (1999); Östereich (97-01)) mit dem elementaren Ziel: Systemanforderungen ermitteln und dazu passende Systemform findenwird hier überschritten...

Ein weiteres grundlegendes Ziel des Software-Engineer ist die Wiederverwendung bestehender Konzepte/Komponenten bzw. Wiederverwendbarkeit der zu entwickelnden Komponenten

Page 11: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

3. Design und Architekturen:

Techniken zur Wiederverwendung bzw. zum Teilen (sharing) eines Ansatzes über mehrere Projekte (nach Szyperski 1999):

– Konsistenz teilen: Programmiersprachen– Lösungsfragmente teilen: Programm-Bibliotheken– Absprachen teilen: Schnittstellen– Interaktions-Architekturen teilen: Pattern– Teilarchitekturen teilen: Frameworks– Gesamtstruktur teilen: Systemarchitektur

Page 12: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen - Schichtenmodelle

Beispiel Java:

JavaPlatform}

Java Program

Java API

Java V irtual Machine

SolarisW indows

NTO S n ...

Page 13: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen - Schichtenmodelle

Beispiel 2-tier; client/server (seit den 80‘ern):

Client:User Interface + Prozessmanagement

Server: DBMS + Prozessmanagement

Page 14: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen - Schichtenmodelle

Beispiel 3-tier; client/application-server/data-server(seit den 90‘ern):

Client:User Interface

Data Server: DBMS

Application Server: Prozessmanagement(Prozesslogik)

Page 15: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen - Schichtenmodelle

Beispiel ISO/OSI Referenzmodell für Netzwerkanwendungen:

Page 16: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen – Service based architecture

Dynamische Systemintegration

– program to program communictaion– Zusammenfügen von Anwendungskomponenten zur

Laufzeit (z.B. freie Wahl bei der Inanspruchnahme kostpflichtiger Angebote im WWW)

Page 17: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen – Service based architecture

Service

– Implementierung eines (standardisierten) Interfaces, das eine Menge von Operationen über ein Netzwerk verfügbar macht.

– Das Interface „versteckt“ Implementierungsdetails, so dass es unabhängig von der verwendeten Hard- und Softwareplattform genutzt werden kann (cross technology implementation).

– Wird durch eine service description beschrieben, welche alle Informationen enthält, die zur Interaktion mit dem Service erforderlich sind.

Page 18: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Systemarchitekturen – Service based architecture (find-bind-publish)

Basiert auf den Interaktionen dreier Rollen:

1. Service provider

2. Service registry

3. Service requestor

Page 19: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Schichtenmodelle – Eigenschaften:

Ziel Abstraktion einzelner Schichten um diese austauschbar zu machen ( Interoperabilät):

Beschreibung von Schnittstellen

stricly layered versus non-strictly layered

Grundlegendes Prinzip der heute verwendeten Middleware-Ansätze

Page 20: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

4. Architekturelemente (mehrschichtigen Systemen)

Mehrschichtige Systeme sind aus einer Vielzahl von Komponenten aufgebaut.

Daraus ergeben sich unterschiedliche, immer wiederkehrende Anforderungen:

– Transparenz, plattformneutrale Kommunikation– Auffinden und Aktivierung von Komponenten– Performance, Skalierbarkeit, Quality of Service

Für viele dieser Probleme gibt es daher Lösungsmuster (patterns) die sich in vielen Systemen/Middlewares wiederfinden.

Page 21: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Kommunikationsmuster

Sowohl die einzelnen Schichten als auch Komponenten innerhalb einer Schicht müssen durch Kommunikationsmechanismen verbunden werden

Arten der Kommunikation:

1. Lokaler Server (native procedure call)

2. Synchroner RPC (Remote Procedure Call)

3. Asynchroner RPC

4. Message-basiert (Publish-Subscribe)

Page 22: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Synchrone Kommunikation (S-RPC)

Alle Komponenten sollten gleich angesprochen werden können, egal ob sie lokal oder verteilt sind

Proxy-Pattern

+service()

AbstractService

+service()

Service

+service()-marshal()-unmarshal()

Proxy

Client

1 1

Page 23: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Dynamischer Ablauf S-RPC

c : Client p1 : Proxy s : Service

service()

marshal()

service()

unmarshal()

Page 24: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Broker

Wie lokalisiert man Komponenten?

Wie initiiert man die Kommunikation?

Client

+locate_service()+register_service()

Broker

+service()-marshal()-unmarshal()

Proxy

*

1

calls

* 1

message exchange

+service()-marshal()-unmarshal()

Proxy*1message exchange

+service()

Service

*

1

calls

Page 25: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Dynamischer Ablauf Brokerc : Client client : Proxy b : Broker server : Proxy s : Service

service()

service()

marshal()

locate_service()

register_service()

unmarshal()

service()

marshal()

unmarshal()

Page 26: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Asynchrone, zeitunabhängige Kommunikation A-RCP

Probleme bei der synchronen Kommunikation:

– Clients müssen warten, bis das Ergebnis geliefert wird

– Clients müssen immer online und in Verbindung mit dem Server bleiben

Page 27: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Publisher-Subscriber A-RCP

+produce()

Publisher

+consume()

Subscriber

+attachSubscriber()+attachPublisher()+pushEvent()

EventQueue

Event

*

*

*

*

* 1

*1

Page 28: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

5. Patterns – Dynamischer Ablauf A-RCP

Mehr patterns - Folien von M. Stal:Effective Architectures for Distributed Object Computing

: Publisher : EventQueue : Subscriber

: Event

attachSubscriber()

create()

pushEvent()

consume()

Page 29: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

6. Frameworks - Eigenschaften

Frameworks:

– fassen Patterns zu logischen Einheiten zusammen– sind nicht nur abstrakte Konzepte sondern sind durch

Implementierungen realisiert – zielen meist auf einen speziellen Anwendungsbereich– Bspe: Klassenbibliotheken, GUI-Toolkits, ...– Systemarchitekturen bedienen sich eines oder

mehrere frameworks

Page 30: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

6. Frameworks - Eigenschaften

white box framework

– Strukturierte Sammlung von Quelltexten– Interoperabilität zur Kompilierzeit– Implementierung transparent

black box framework

– Strukturierte Sammlung von binären Entitäten (components)

– plug-and-play zur Laufzeit– Implementierung unbekannt

Page 31: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

Fazit

Architekturen dienen:

– der Strukturierung, – der Kommunikation von Designentscheidungen, – des Systementwurfes, – der Beschreibung der Interaktionen und

Schnittstellen.

Auf unterschiedlichen Granularitätsebenen finden sich mit höher werdender Granularität: Systemarchitekturen, Frameworks und Patterns

Page 32: Architekturen interoperabler Systeme für raumzeitliche Prozesse

Grundlagen 28.10.2002 Architekturen interoperabler Systeme für raumzeitliche Prozesse

Fazit

In Architekturen finden sich wiederkehrende Muster (patterns)

Frameworks erlauben die dynamische Konfiguration eines aus patterns aufgebauten Anwendungsgerüsts (toolbox)

Systemearchitekturen beschreiben das Gesamtsystem, weit verbreitet sind multi-tier Architekturen Abstraktion durch Schichten Interoperabilität durch definierte Schnittstellen

und Protokolle