Software Architektur I

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Anbindung mobiler Endgeräte über den Terminal Service
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Kapitel 8: Nachrichtenbasierte Kommunikation mit JMS
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
NATURAL Web-Integration 1 / 27/28-Feb-98 TST NATURAL Web-Integration Arbeitskreis NATURAL Süd Theo Straeten SAG Systemhaus GmbH Technologieberater Stuttgart.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Komponentenbasierter Taschenrechner mit CORBA
AP 04/03 Komponentenprogrammierung und Middleware Vorlesung + Projekt 4 SWS mit Praktikum (6 benotete Leistungspunkte) –Studentische Vorträge in der 2-ten.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Architekturen interoperabler Systeme für raumzeitliche Prozesse
Client-Server-Architekturen
Kommunikation in verteilten Systemen (Middleware)
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
XML in Client-Server und GRID Architektur
Java2 Enterprise Edition René Noack Mai 2003
JAVA RMI.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Remote Methode Invocation (RMI)
Rechnernetze und verteilte Systeme (BSRvS II)
Block 2Interoperabilität für Geoinformationen Seminar Interoperabilität für Geoinformationen Grundlegendes zu Software-Architekturen Lars Bernard.
Entwicklung verteilter eingebetteter Systeme - Einführung
Herzlich Willkommen… welcome… soyez la bienvenue….
EDC Entwicklerforum Geoprocessing im Web 18. Juli 2013 Benjamin Proß Ein erweiterbarer WPS Client für ArcMap.
Software Architektur III
IT-Infrastruktur an der FHS
Software Architektur IV
OOD – Object Oriented Design II
Mitglied der Fachhochschule Ostschweiz FHO 1 © FHS St.Gallen Software Engineering OOD – Object Oriented Design III GUI-Design.
OOD – Object Oriented Design I
Software Architektur II
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Einführung in die Konzepte zur Entwicklung verteilter Anwendungen
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
LV-Programm der BBWL „Wirtschaftsinformatik“
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Management- und Web Services- Architekturen
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Einführung in Web Services Web Services in der Praxis
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Dr. Alois Schütte Definition Middlerware
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Vortrag - Diplomarbeiten (HS I)
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
ROS – Robot Operating System
Welcome to Web Services & Grid Computing Jens Mache
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Semi-automatische Komposition von Dienstbenutzerschnittstellen auf mehreren Abstraktionsebenen Christian Jäckel Universität des Saarlandes Bachelor.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Verteilte Anwendungen: J2EE
Remote Method Invocation
 Präsentation transkript:

Software Architektur I Einführung Innere/Äussere Architektur Single-/Multi-Tier Middleware MOM

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

Zweck der Architektur Chaos

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)

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

IT-Architektur - Zusammenhänge Markt IT-Markt

Architektur im Entwicklungsprozess Äussere Architektur wird als Architekturprojekt festgelegt. Innere Architektur ist Teil des Design-Prozesses.

Innere Architektur I System Subsysteme Teil des Entwicklungsprojektes Konkrete Subsystembildung Applikationscluster Applikation (System) Modul (Subsystem) Komponente Implementierte Klassen System Subsysteme

Innere Architektur II

Abstraktionsstufen im Architekturentwurf

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:

Musterarchitektur Quasar II Beispiel 2:

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/

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!

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

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»)

n-Tier-Architecture DMZ = Demilitarisierte Zone

Verteilte Systeme Heute Millionen von Computersystemen, welche miteinander verbunden sind. Netzwerke bilden Transportebene LAN – WAN Intranet – Extranet – Internet

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

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

Kommunikationsmodelle Interaktionsmuster zwischen einzelnen Komponenten (Kommunikationspartner) Synchron – Gleichzeitigkeit Asynchron – Message Oriented Middleware (MOM)

Transparenz Ziel der Middleware:  Verbergen von Verteilungsaspekten vor der Anwendung Zugriffstransparenz Ortstransparenz Nebenläufigkeitstransparenz Fehlertransparenz Replikationstransparenz

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.

Klassifikationsschema von Middleware Anwendungsorientierte Middleware Um Dienste und Laufzeitaspekte erweiterte Middleware zur Unterstützung der Anwendung. Kommunikationsorientierte Middleware Abstraktionsschicht zwischen Anwendung und verteiltem System

Kommunikationsorientierte Middleware Einordnung des Middleware-Protokolles:

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

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

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

RPC (Remote Procedure Call) II Ablauf eines entfernten (synchronen) Prozeduraufrufes: Stub: Stumpf, Programmhülle mit Schnittstelle jedoch ohne Implementierungscode

RMI (Remote Method Invocation) I Ablauf eines entfernten (synchronen) Methodenaufrufes: Proxy: Stellvertreter Skeleton: Serverseitige Programmhülle

RMI (Remote Method Invocation) II Java-Source-Code javac  Java-Compiler rmic  RMI-Compiler Erst bei Aufruf Load auf den Client

MOM (Message Oriented Middleware) I Modell der asynchronen Nachrichtenübermittlung: (Message) MOM (Message-Queue)

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

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

Publish-Subscribe Model Abonnentensystem

Message Services Produkte Java JMS - Java Message Service Microsoft MSMQ – Microsoft Message Queuing IBM WebSphere MQ (früher MQSeries)

JNDI – Java Naming and Directoy Interface JMS – Architektur JNDI – Java Naming and Directoy Interface CF – Connection Factory D - Destination Java-Anwendung MOM-Server

JMS - Kommunikationsablauf Aufbau der Verbindung eines JMS-Client zum JMS-Provider Receiving Message Sending Message synchron asynchron

Point-to-Point Schnittstelle Beispiel von Java-Code auf Seite 106

Publish-Subscribe Schnittstelle Wichtigster Unterschied bildet die Topic-Warteschlange.