Vs9 1 9 Middleware. vs9 2 Middleware, Verteilte Plattform (auch Verteilungsplattform*) bietet Verteilungsabstraktion für verteilte Anwendungsprogramme,

Slides:



Advertisements
Ähnliche Präsentationen
SOAP, nur ein neuer XML- Dialekt?
Advertisements

C ommon O bject R equest B roker A rchitecture
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
Java: Grundlagen der Sprache
MD 4/02 Hello World from CORBA ein erster Überblick.
Client-Server-Architekturen
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
Kommunikation in verteilten Systemen (Middleware)
7 Verteilungsabstraktion
JAVA RMI.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Modulare Programmierung
Rechnernetze und verteilte Systeme (BSRvS II)
Workshop: Active Directory
Web Services Die Zukunft netzbasierter Applikationen iternum GmbH Alexanderstraße Frankfurt/Main
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Kap. 4 Der Corba-Standard zur verteilten Objektverwaltung
Portabilität Seminar aus Softwareentwicklung: Programmierstil Christine Schiestl WS 02 / 03.
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
Management- und Web Services- Architekturen
7.1.5 Java RMI – Remote Method Invocation
Einführung in Web Services Web Services in der Praxis
Javelin Internet-based parallel computing using Java.
Hauptseminar 2001 „Parallele Programmierung in Java“ - JPVM- Java Parallel Virtual Machine Referent: Sebastian Steininger.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Vs Grundzüge der Fernaufruf-Implementierung = tatsächliche Aufrufbeziehungen Netz Fernaufrufdienst Transportdienst Hardware BS aus Bibl. Vertreter.
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Vortrag - Diplomarbeiten (HS I)
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Schutzvermerk nach DIN 34 beachten Was ist DCOM ?.
ROS – Robot Operating System
7.5.5 Namensdienste (bereits erwähnte Beispiele: Rmiregistry, Portmapper)  dienen der Abbildung von „Namen“ auf Verweise, Nummern,...  sollten ihre Information.
SNMP – Simple Network Management Protocol
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
Vs Verteilte Verzeichnisse können ein verteiltes Betriebssystem unterstützen dienen der Abbildung von „Namen“ auf „Daten“ aller Art sollten ihre.
Vs91 9 Middleware. vs92 Middleware, Verteilte Plattform (auch Verteilungsplattform*) bietet Verteilungsabstraktion für verteilte Anwendungsprogramme,
Vs Objektpufferung (caching) = dynamische, ad-hoc-Replikation einer Primärkopie: Zugriffswilliger beschafft sich temporär eine lokale Kopie cache.
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Welcome to Web Services & Grid Computing Jens Mache
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
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,
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme 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
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Vs3 1 3 Netzdienste im Internet. vs3 2 Netzdienste = über Ports ansprechbare Dienste, die hauptsächlich (aber nicht nur) für die Fernnutzung gedacht sind.
LINUX II Samba Verbindung mit Windows. Samba Übersicht ● Samba dient zur Verbindung von Linux-Clients mit Windows Rechnern ( samba-client ) sowie von.
LINUX II Unit 9 Network File Server NFS. NFS Überblick ● Zugriff von lokalen Rechner über Netzwerk auf Dateien oder Ordnern auf entfernten Servern ● Entwickelt.
Verteilte Systeme Sommersemester 2007 Karsten Otto.
Verteilte Anwendungen: J2EE
9.5 Microsoft .NET Architektur: objektorientiert/Fernaufrufe (8.1.6 )
Camil Bartkowiak Serhat Cinar Leonardo Di Lella Jan Finsel
Hello World! Javakurs 2013 Arne Kappen
Systeme II 6. Die Anwendungsschicht
Datenbanken online sowie offline verfügbar machen
«Delegierter» Methoden Schablone Funktionszeiger
Implementieren von Klassen
Remote Method Invocation
 Präsentation transkript:

vs9 1 9 Middleware

vs9 2 Middleware, Verteilte Plattform (auch Verteilungsplattform*) bietet Verteilungsabstraktion für verteilte Anwendungsprogramme, bietet Standarddienste (Transaktionen, Sicherheit,...), unabhängig von unterliegenden Betriebssystemen und Hardware, oft unabhängig von den verwendeten Programmiersprachen (stattdessen Schnittstellen-Beschreibungssprache, „IDL“) aber orientiert an einem bestimmten Modell für Interaktion, Architektur, Komponenten * ältere Bezeichnung: network operating system (vs. distributed operating system)

vs9 3 Prominente Beispiele: PVM, MPI (4.1  ) Architektur: kommunizierende (schwergewichtige) Prozesse Keine IDL:(weil einfache Standard-Schnittstelle) Dienste:Prozessfernerzeugung Einsatz:Parallelrechnen ONC – SUN Open Network Computing (SUN 1987/88) (  9.1) 9.1 Architektur:Client/Server mit Fernaufrufen IDL:C-ähnlich Dienste:einfacher Namensdienst Einsatz:Erweiterte System-Dienste

vs9 4 COMANDOS - Construction and Management of Distr. Open Systems (EU-Projekt ) (  9.2) 9.2 Architektur:objektorientiert mit Fernaufrufen IDL:C++ -ähnlich Dienste:minimal (Entwicklungs-/Verwaltungs-Werkzeuge) Einsatz:universell (verteiltes Rechnen, Dienste,...) DCE –Distributed Computing Environment (Open Group [OSF] 1992) Architektur:Client/Server mit Fernaufrufen IDL:C-ähnlich Dienste:Directory Service, Security Service,... Distributed File System ( ≈ AFS,  Vert.BS) Einsatz:System- und Anwendungs-Dienste

vs9 5 (COM/OLE  ) DCOM (Microsoft ) (  9.3) 9.3 COM: Binärcode-“Standard“ für Schnittstelle („vtable“)  Interoperabilität zwischen Programmiersprachen OLE:für heterogene Verbunddokumente (z.B. Excel Chart in Word Document) („lokale Fernaufrufe“) DCOMArchitektur:Client/Server mit Fernaufrufen IDL:MIDL, Erweiterung der DCE IDL Dienste:Microsoft-spezifisch Einsatz:Anwendungsdienste (Implementierung: fast nur auf Windows)

vs9 6 CORBA – Common Object Request Broker Architecture (Open Management Group [OMG] ) Management Group ist Standard, nicht Produkt Architektur: objektorientiert/Fernaufrufe + Komponenten IDL:C++ -ähnlich Dienste:sehr reichhaltig Einsatz:Anwendungen, speziell Einbinden von Altsoftware EJB – Enterprise Java Beans (Sun 1998 …) Architektur: objektorientiert/Fernaufrufe (RMI) + Komponenten + Nachrichten IDL:(Java) Dienste:reichhaltig Einsatz:vielseitig, insbesondere Datenbank-Anwendungen

vs9 7.NET (Microsoft 2000 …) Architektur: objektorientiert/Fernaufrufe (8.1.6  ) IDL:(unsichtbare Metadaten, vom Übersetzer erzeugt) Dienste:Basisdienste + weitere in Entwicklung Einsatz:universell Standardisierung durch ECMA und ISO: Implementierung nicht nur auf Windows: MonoMono (Open Source, Linux, Novell/Ximian) „Rotor“ (Shared Source, FreeBSD, Microsoft)Rotor

vs SUN Remote Procedure Call SUN RPC = modulorientierte Fernaufrufe für C-Programme C-Programm-Module haben zwar Schnittstellen, aber C kennt kein Sprachkonzept „Schnittstelle“ !  Schnittstellenbeschreibung („protocol description“) in C-ähnlicher Sprache (RFC 1014/1831) ONC – SUN Open Network Computing (Sun 1987/88) Architektur:Client/Server mit Fernaufrufen: RPC IDL:C-ähnlich Dienste:einfacher Namensdienst Einsatz:erweiterte System-Dienste (NIS, NFS,...)

vs9 9 Terminologie: Service = Bündel von „Programmen“ (≈ Schnittstelle), eventuell in jeweils mehreren Versionen, bestehend aus jeweils mehreren „Prozeduren“ Server =Prozess, der als Träger eines Service fungiert Prozedur 0 Prozedur 1 Version Prozedur 0 Prozedur 1 Version Programm Prozedur 0 Prozedur 1 Version Prozedur 0 Prozedur 1 Version Programm

vs9 10 Beispiel für Schnittstellenbeschreibung (aus W.R.Stevens: UNIX Network Programming) /* date.x Specification of the remote date and time server */ /* Define two procedures * bin_date_1() returns the binary date and time (no args) * str_date_1() takes a binary time and returns a string */ program DATE_PROGRAM { version DATE_VERSION { long BIN_DATE(void) = 1; /* get binary time code */ /* procedure number = 1 */ string STR_DATE(long) = 2; /* convert code to string */ /* procedure number = 2 */ } = 1; /* version number = 1 */ } = 0x ; /* program number */ Erzeugung von Stub Code Standardisiert bzw. eigene zwischen 0x x3fffffff

vs9 11 Stub-Generator rpcgen generiert daraus: date.h Gemeinsame Modul-Definition (header) date_clnt.c Stub für den Klienten date_svc.c Stub für den Anbieter, inklusive main() und optional mit Schalter -Sc bzw. -Ss : date_client.c Beispiel-Datei für Zugriff durch Klienten date_server.c Beispiel-Datei für Implementierung des Anbieters

vs9 12 Modul-Definition: /* file date.h for ANSI C */ #define DATE_PROGRAM ((u_long) 0x ) #define DATE_VERSION ((u_long) 1) #define BIN_DATE ((u_long) 1) extern long *bin_date_1(); #define STR_DATE ((u_long) 2) extern char **str_date_1(); Normalerweise tragen Prozedur und Vertreter den gleichen Namen, haben aber unterschiedliche Signaturen (  9.1.2) ! Maximal ein Parameter/Ergebnis, grundsätzlich als Zeiger !

vs9 13 … leider mit wenig Verteilungsabstraktion. Anbieter- Implementierung: /* file date_server.c */ /* date and time server */ #include "date.h" long *bin_date_1() { static long result;..... result =...; return(&result); } char **str_date_1() {..... } RPC-Programmierung

vs9 14 /* file date_client.c */... und der Klient dazu. #include #include "date.h" int date_program(host) char *host; long *result; CLIENT *s; /* "client handle" */ s = clnt_create(host, /* remote linking */ DATE_PROGRAM, /*  */ DATE_VERSION, "tcp"); /* or: "udp" */ if (s!=NULL) { result = bin_date_1(s); /* call stub routine */ if (result!=NULL) return(*result); else..... /*... failed */ } else..... /* server not found */ clnt_destroy(s); /* release handle */ }

vs RPC-Namensdienst: Portmapper clnt_create(host,...) realisiert Fernbinden, d.h. stellt Verbindung des Klienten mit einem Anbieter her: 1. Auf host existiert (hoffentlich) ein Namensdienst: Portmapper, stets über Port 111 ansprechbar. 2. Fernaufruf (!) an Portmapper übermittelt den „Namen“ (program, version, protocol) und liefert als Antwort die Portnummer des entsprechenden Anbieters. 3. Internetadresse von host sowie gelieferte Portnummer werden im Client Handle eingetragen (und dieses wird beim Fernaufruf als zusätzliches Argument (!) dem Vertreter übergeben)

vs9 16 Installation des Anbieters: Wenn ein Anbieter hochgefahren wird, beinhaltet die vom Server Stub (!) vorgenommene Initialisierung die Erzeugung geeigneter Ports sowie deren Registrierung beim lokalen Portmapper (durch „lokalen Fernaufruf“). Alternative: Ad-hoc-Installation eines Anbieters (on demand): Initialisierung des Internet Daemon (3.2.1  ) beinhaltet Erzeugung und Registrierung der Ports (gemäß der Konfigurationsdatei). Anfrage bei einem Port bewirkt Aktivierung des Anbieters. Eventuell Deaktivierung nach Timeout per Einstellung.

vs RPC-Protokoll verwendet entweder TCP oder UDP, je nach Dienst Fehlersemantik: at-most-once für TCP, at-least-once für UDP Externe Datendarstellung: XDR (RFC 1014) Zugriffsschutz: entweder keiner oder Unix-Autorisierung oder … (Information über Standarddienste: ypcat rpc.bynumber )

vs COMANDOS Construction and Management of Distributed Open Systems Forschungsprojekt der EU ( ) Ziele: Verteilungsabstraktion und persistente Objekte Vorteile gegenüber SUN RPC u.ä.: - hochgradige Verteilungsabstraktion - Interoperabilität verschiedener Programmiersprachen - IDL nur bei Sprachheterogenität erforderlich

vs9 19 C** = C++ mit zusätzlichen Schlüsselwörtern für Persistenz und Verteilung Eiffel** = Eiffel-2, lediglich mit modifiziertem Laufzeitsystem Guide = COMMANDOS eigene Sprache, nichtsequentiell, objektorientiert, unterstützt Eigenschaften der Plattform optimal Sprachen in COMANDOS Beispiel Eiffel**: Alle Eiffel-Objekte sind potentiell persistent: sie überdauern ihren Erzeuger-Prozeß, sofern sie über den COMANDOS Name Service (direkt oder indirekt) erreichbar sind.

vs Verbergen der IDL  Ziel – in COMANDOS nur partiell erreicht:  Automatische Generierung von IDL-Text aus Schnittstelle einer Klasse (Eiffel, C++,...)  noch konsequenter wäre: interne, nicht lesbare „IDL“, ist ausreichend für Stub-Erzeugung!  Ziel erreicht in Projekt HERON (FU Berlin, )  für Eiffel und (objektorientiertes) Turbo-Pascal