Einführung in die Konzepte zur Entwicklung verteilter Anwendungen

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

C ommon O bject R equest B roker A rchitecture
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Web Services und Workflow-Steuerung
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.
Client-Server-Architekturen
Kommunikation in verteilten Systemen (Middleware)
7 Verteilungsabstraktion
XML in Client-Server und GRID Architektur
JAVA RMI.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Remote Methode Invocation (RMI)
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Rechnernetze und verteilte Systeme (BSRvS II)
Björn Schmidt, Hoang Truong Nguyen
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Entwicklung verteilter eingebetteter Systeme - Einführung
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Seminarleiter: Herr Prof. Klement und Herr Prof. Kneisel
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 4 Folie 2 Message Passing mittels Sockets (1) s.a.
Software Architektur III
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Software Architektur I
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Integration heterogener verteilter Systeme mit WS-BPEL – ein Praxisbeispiel Dr. Wolf-Dieter Heinrichs.
Webservice Grundlagen
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Netzwerkprogrammierung
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
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 I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 5 Folie 2 ADO.NET s.a:
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Management- und Web Services- Architekturen
Netzwerke.
Einführung in Web Services Web Services in der Praxis
Dr. Alois Schütte Definition Middlerware
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Middleware in Java vieweg 2005 © Steffen Heinzl, Markus Mathes Kapitel 1: Architektur verteilter Systeme.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
Sicherheitsaspekte in Service Orientierten Architekturen Eike Falkenberg Sommersemester 2006 Anwendungen I.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Biological Information System (BIS) Technologien für wissenschaftlichen Datenaustausch Barbara Kohlroser Ortwin Probst Florian Strasser Peter Strobl.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Workflowsysteme und Datenbanksysteme Gliederung Motivation Basis- funktionalitäten Klassifikations- merkmale Referenz-Modell MQ Workflow Zusammenfassung.
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
1 Lutz Ullrich SOA – serviceorientierte Architektur SOA – Was ist das?
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Vergleich verschiedener Kommunikationsinfrastrukturen in Enterprise Information Systems Ben Mainz Seminar am Lehrstuhl für Software Engineering RWTH Aachen.
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:

Einführung in die Konzepte zur Entwicklung verteilter Anwendungen Entwicklung verteilter Anwendungen I WS 2013/14 Prof. Dr. Herrad Schmidt Kapitel 1 Einführung in die Konzepte zur Entwicklung verteilter Anwendungen

Ziel: Erwerb von Kenntnissen zur Implementierung verteilter Anwendungen mit Microsoft-Techniken. Inhalt: Konzepte zur Entwicklung verteilter Anwendungen Programmierung in C# WPF Sockets/Threads Datenbankprogrammierung (remote) Webanwendungen Technologische Basis: Microsoft .NET Framework Programmierumgebung: Microsoft Visual Studio 2010 MSDN Library: Microsoft msdn

Literatur Geirhos, M. (2011): Professionell entwickeln mit Visual C# 2010. Das Praxisbuch. Galileo Press, Bonn. Mandl, P. (2009): Masterkurs Verteilte betriebliche Informationssysteme: Prinzipen, Architekturen und Technologien. Vieweg+Teubner, Wiesbaden. Schill, A./Springer, T. (2012): Verteilte Systeme. Grundlagen und Basistechnologien. 2. Aufl., Springer, Berlin Heidelberg. Tanenbaum, A.S./van Stehen, M. (2007): Distributed Systems Principles and Paradigms. Pearson, Prentice Hall.

Definitionen: Verteiltes System: System aus eigenständigen, vernetzten Rechnern, die über Nachrichten miteinander kommunizieren, um eine gemeinsame Aufgabe zu erledigen. Verteilte Anwendung: Anwendungsprogramm, das auf einem verteilten System basiert und dessen Komponenten im Netz verteilt sind. Die Komponenten verfügen nicht über einen gemeinsamen Speicher. Sie kommunizieren über Schnittstellen. Der Anwender kommuniziert mit der verteilten Anwendung, ohne dass ihm die Verteilung transparent wird.

Beispiele: Mail-Programme Skype, ICQ,… File-Server Groupware Internetshops Buchungssysteme ERP-Systeme Fertigungssteuerung Sensor-Systeme zur Überwachung Cluster-/Grid-Computersysteme für rechenintensive Aufgaben …

Zielsetzungen: Nachteile: Kommunikationsverbund Datenverbund Lastverbund Leistungsverbund (Aufteilung einer Aufgabe in Teilaufgaben) Mitarbeiterübergreifende Unterstützung von Geschäftsprozessen Gemeinsamer Ressourcenzugriff Ausfallsicherheit Flexibilität Skalierbarkeit (leistungsmäßig, geographisch, administrativ) Wirtschaftlichkeit Nachteile: Komplexität Kommunikationsprobleme Sicherheit

Herausforderungen: Namens- und Verzeichnisdienste zum Auffinden von Kommunikationspartnern Schnittstellen Verteilte Transaktionen Sicherheit Überwindung der Fehleranfälligkeit Überwindung der Heterogenität (Netzwerktechnologie, Betriebssysteme, Programmiersprachen, Datenformate, …) Transparenz (Ortstransparenz, Migrationstransparenz, Skalierungstransparenz, Zugriffstransparenz, …)

Verteilte Architektur: Die physische Architektur repräsentiert die verfügbaren Rechnersysteme. Zur Verteilung müssen logische Subsysteme (layer) gebildet werden. Diese werden auf die physische Architektur verteilt und damit zu tiers. Typische Architekturen (Programmiermodelle) für verteilte Anwendungen: Client/Server-Architektur Web-Architektur Objektorientierte Architektur Komponentenbasierte Architektur Serviceorientierte Architektur u.a., z.B.: Grid-Architektur, Peer-to-Peer-Architektur

Client/Server-Architektur (1): Die Anwendung wird auf einen oder mehrere Server und Clients verteilt. Clients und Server können auf einem oder verschiedenen Rechnern ablaufen. Die Anfrage (request) geht immer vom Client aus. Der Server entscheidet über die Reaktion (Verfahren, Reihenfolge) und schickt eine Rückantwort (reply). Der Server verwaltet pro Client eine Verbindung. Die Clients stehen in keinem Bezug zueinander. Ein Server kann wiederum Anfragen an andere Server richten.

Client/Server-Architektur (2): Die Client/Server-Umgebung ist i.d.R. bekannt und kontrollierbar. Auf den Clients ist ein Teil der Anwendung installiert. Varianten: Fat Client: GUI- und Applikationsschicht Rich Client: GUI- und Teile der Applikationsschicht Thin Client: Nur GUI-Schicht Clients und Server kommunizieren über Remote Procedure Calls (Ein-Weg-Kommunikation, synchron, asynchron, callbacks)

Auf der Basis der Schichten sind verschiedene Verteilungsformen möglich: Präsentation Präsentation Präsentation Präsentation Präsentation Präsentation Steuerung Steuerung Steuerung Steuerung Steuerung Applikation Applikation Applikation Applikation Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Physische Datenzugriffs-schicht Steuerung Applikation Applikation Applikation Applikation Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Logische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Physische Datenzugriffs-schicht Thin Client Thin Client Rich Client Fat Client Fat Client Fat Client

Web-Architektur: Wie bei der Client/Server-Architektur werden layer bzw. Subsystem auf Clients und Server verteilt, aber speziell unter Einsatz von Web-Technologien. Ein Webbrowser ist die Laufzeitumgebung des Web-Clients. Die Anfragen werden von einem Web-Server entgegen genommen. Zur Kommunikation wird das HTTP-Protokoll eingesetzt. Die Web-Clients sind aus Entwicklersicht nicht kontrollierbar. später mehr…

Objektorientierte Architektur: Die Verteilung erfolgt wie bei der Client/Server-Architektur. Die Einheiten der Kommunikation und Verteilung stellen Objekte dar. Die Kommunikation erfolgt über entfernte Methodenaufrufe. Beispiel: CORBA Komponentenbasierte Architektur: Die Anwendung ergibt sich durch die Komposition von Komponenten. Eine Komponente besitzt eine eigenständige Funktionalität, die i.d.R. wiederverwendbar ist. Sie sind an ein und dieselbe Plattform gebunden. Beispiele: Implementierung mit Enterprise JAvaBeans, Android

Serviceorientierte Architektur (SOA): Die Dienste sind technisch voneinander unabhängige Komponenten, die lose gekoppelt sind. Dienste gewährleisten eine Interoperabilität über Plattform- und Unternehmensgrenzen. Die Schnittstelle wird durch Web Service Definition Language (WSDL) beschrieben. Der Zugriff auf die Dienste erfolgt mit dem Kommunikationsprotokoll SOAP. Die klassische Web-Architektur kann als SOA aufgefasst werden. Die Dienste können zu komplexen Unterstützungssystemen für Geschäftsprozesse gekoppelt werden.

Konzepte verteilter Kommunikation (1): Da die Subsysteme in verschiedenen Prozessen laufen, bedarf es einer Interprozesskommunikation in Form des Nachrichtenaustauschs gemäß Kommunikationsprotokollen. synchrone/ansynchrone Kommunikation: synchrone K.: Der Sender wartet blockierend auf die Antwort. zurückgestellte synchrone K.: Der Sender arbeitet nach dem Absenden der Anfrage weiter und prüft periodisch, ob ein Ergebnis vorliegt. asynchrone K.: Der Sender arbeitet nach dem Absenden der Anfrage weiter. Die Erfassung der Antwort muss geregelt werden. meldungsorientierte/auftragsorientierte Kommunikation: meldungsorientiert: Einwegnachricht ohne Antwort auftragsorientiert: Request/Response-Mechanismus

Request Warte auf Reply Reply Arbeite weiter Überprüfe periodisch das Vorliegen des Reply Reply Registriere Callback Rufe registrierte Arbeite weiter Funktion oder Event auf Rückantwort wird nicht benötigt Synchrone Kommunikation Zurückgestellte Synchrone Kommunikation Asynchrone Ein-Weg- One-Way Client Server Client Server Client Server Client Server Interaktionsformen (Quelle: Bengel, G. (2004): Grundkurs Verteilte Systeme. 3. Aufl.)

Konzepte verteilter Kommunikation (2): Zustandsverwaltung: Zustandsbehaftete (stateful) Server: Der Server speichert Informationen zu einer Session über den Request hinaus. Zustandslose (stateless) Server: Der Server speichert keine Informationen über einen Request. Marshalling (Serialisierung)/Unmarshalling (Deserialisierung): Umwandlung der Daten eines Datentyps in ein für die Übertragung geeignetes Format bzw. Rückumwandlung in einen Datentyp Publish-Subcribe-Kommunikation (Ereignismodell): Abonnenten (Subscriber) registrieren sich beim Server (Publisher). Ereignisabhängig veröffentlicht der Publisher Nachrichten und verschickt sie an die eingetragenen Abonnenten. Namensauflösung und Verzeichnisdienste (Naming/Directory-Services): Mechanismus zum Auffinden von Servern (z.B. Domain Name Service (DNS)) Nebenläufigkeit: Mehrere Anfragen können parallel verarbeitet werden.

Implementierung verteilter Kommunikation (1): Socket-Schnittstelle Socket: Kommunikationsendpunkt (IP-Adresse, Port) Datenübergabe als Byte-Strom mittels TCP/IP später mehr… Remote Procedure Call Übergabe des Kontrollflusses von einem Prozess auf einen anderen mit Datenübergabe mittels Aufruf- und Ergebnisparametern Die Schnittstelle des Servers wird mittels der Interface Definition Language (IDL) beschrieben. Der Compiler generiert daraus für beide Seiten Codemodule, auf Client-Seite Stub, auf Server-Seite Skeleton oder auch Stub genannt. Diese kapseln die Funktionalität der Nachrichtenübermittlung. Variante: XML-RPC Die zu übertragenden Daten werden in XML dargestellt.

Netz Client-Rechner Server-Rechner Client Client- Laufzeit- Laufzeit- Server- Server Stub system system Stub lokaler Marshalling sende Aufruf empf. Unmar- Aufruf Aufruf shalling Aus- warten führung lokales Unmar- empf. Sende Marshalling Ergebnis Ergebnis shalling Ergebnis Import ..… Export Ablauf und Architektur eines RPC-Systems (Quelle: Schill, A./Springer, T. (2012): Verteilte Systeme. Grundlagen und Basistechnologien. )

Implementierung verteilter Kommunikation (2): Remote Method Invocation (RMI) Konzept zur Kommunikation zwischen Objekten mittels entfernter Aufrufe von Methoden eine Realisierung: Java-RMI Common Object Request Broker Architecture (CORBA) plattformübergreifende Spezifikation für das Erstellen verteilter Anwendungen, für die es eine Reihe von Implementierungen gibt Web Services sind zur Realisierung von SOA geeignet setzen sich zusammen aus  dem Kommunikationsprotokoll SOAP (ermöglicht die Kommunikation unter Nutzung von HTTP)  der Beschreibungssprache Web Services Description Language (WSDL)  den Verzeichnisdienst Universal Description, Discovery and Integration (UDDI)

Implementierung verteilter Kommunikation (3): Message Oriented Middleware (MOM) Kommunikationsplattform für vor allem asynchrone Kommunikation Nachrichten werden in eine Message Queue eingefügt und vom Client zeitversetzt abgearbeitet Beispiele: IBM Websphere MQ, Java EE Anwendungsserver .NET-Technologien:  Klassen für Sockets, Threads, …  Distributed Component Object Model (DCOM), veraltet  .NET Remoting als Ablösung für DCOM, wird aber nicht mehr unterstützt  ADO.NET  ASP.NET  Windows Communication Foundation (WCF)  Windows Workflow Foundation (WF)

Middleware (1): Spezielle Software zur Unterstützung der Kommunikation Bindeglied zwischen Betriebssystem und Netzwerk sowie der Anwendung Aufgaben: Kommunikation (z.B. RPC) Sicherheit (Authentifizierung, Verschlüsselung, Zugriffskontrolle,…) Verzeichnisdienste Repository Manager Ablaufkontroll-Dienste (Thread-Manager, Transaktionsverarbeitung, …) Datenkonversion etc.

Middleware (2): Beispiele: Objektorientierte Middleware: CORBA (Spezifikation), verschiedene Implementierungen Java Remote Method Invocation (RMI), in JAVA integriert, entwickelt von SUN Message Oriented Middleware: IBM WebSphere MQ Java Message Service (JMS), Spezifikation, Teil der von SUN entwickelten Java Platform, Enterprise Edition (Java EE, früher J2EE) Komponentenbasierte Middleware: EJB-basierte Application Server, Spezifikation MS .NET-Plattform SOA-Middleware: SAP NetWeaver (SAP Dokumentation)

Anwendungsinteraktion Client Server (z.B. Kasse) (z.B. Kontenserver) Middleware Objektinteraktion Middleware (z.B. Java RMI, Cobra, .NET, SOAP) Transportorientierte Transportorientierte Schichten Schichten (z.B. TCP/IP) Phys. Netzwerk Phys. Netzwerk (z.B. Fast Ethernet, ATM) Einordnung von Middleware und Verteilten Systemen (Quelle: Schill, A./Springer, T. (2012): Verteilte Systeme. Grundlagen und Basistechnologien. )