C ommon O bject R equest B roker A rchitecture

Slides:



Advertisements
Ähnliche Präsentationen
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Advertisements

Datenbanken Einführung.
Objektorientierte Datenbanken
WWW World Wide Web.
DI Christian Donner cd (at) donners.com
Basis-Architekturen für Web-Anwendungen
2. Komponentenbasierte Software Entwicklung
Ontologien- Query 1 Teil2
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.
FH-Hof Einbindung von JavaScript Anweisungen
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
ATHOS Benutzertreffen 12. November Auswerteserver Glashütten, 12. November 2008 HighQSoft GmbH, Andreas Hofmann
Komponentenbasierter Taschenrechner mit CORBA
MD 4/02 Hello World from CORBA ein erster Überblick.
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Architektur von Netzwerken
Komplexpraktikum Laufzeitumgebung für Komponenten mit QoS - Anforderungen Brit Engel.
JAVA RMI.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Access 2000 Datenbanken.
Remote Methode Invocation (RMI)
DVG Klassen und Objekte
Wizards & Builders GmbH Schichtenarchitektur Multi-Tier-Applikationen mit Microsoft Visual FoxPro.
Rechnernetze und verteilte Systeme (BSRvS II)
Common Object Request Broker anhand eines Beispiels Aufgabestellung ( Ein Konto wird von einem Server verwaltet. Der Stand des Kontos wird.
Diplomarbeit Thema: Untersuchungen zur Spezifikation und Realisierung von Interoperabilitätskonzepten (hauptsächlich) CORBA-basierter Multiagentensysteme.
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Monitoring von Geräten und Diensten Projektgruppe Location-based Services for Wireless Devices WS 2004/05 Tobias Beisel AG Kao Betriebssysteme und Verteilte.
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
Xenario IES Information Enterprise Server. Xenario Information Enterprise Server (IES) Die neue Architektur des Sitepark Information Enterprise Servers.
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Mit 3 Schichte zum Erfolg
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
08/ HerrschingAG Verteilte Simulation Forschungsziele & Arbeitsschwerpunkte Mitglieder: TP Bletzinger TP Bungartz / Rank TP Krafczyk – Tölke.
Kap. 4 Der Corba-Standard zur verteilten Objektverwaltung
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.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Stellen Sie nochmals statischen und dynamischen Methodenaufruf gegenüber.
CGI (Common Gateway Interface)
Die Architektur von Jini Präsentation von Thomas Heinis & Michea Wankerl Seminar Information & Kommunikation WS 2000/01.
Einführung in CORBA Fachseminar Informations- und Kommunikationssysteme SS99 MartinVogt, IIIC, 8. Semester.
Netzwerke.
Quellen: Internet INTRANET Ausarbeitung von Sven Strasser und Sascha Aufderheide im Modul Netzwerktechnik, Klasse INBS Mai 2003.
iMAS Schnittstellen - Übersicht
Untersuchungen zur Erstellung eines
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
IPv6 Von Judith Weerda Diese Vorlage kann als Ausgangspunkt für die Präsentation von Schulungsmaterialien in einer Gruppensitzung dienen. Abschnitte.
Dr. Alois Schütte Definition Middlerware
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
->Prinzip ->Systeme ->Peer – to – Peer
Web-Applikations-Server
Vortrag - Diplomarbeiten (HS I)
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Motivation Motivation für objektorientierte DBMS (ODBMS): –„Impedance Mismatch“ zwischen relationalem Datenmodell und Programmiersprachen-Datenmodell erfordert.
Datenbanken im Web 1.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
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,
Realisierung verteilter Anwendungen: Teil 3 zBeim vorigen Mal: Sockets, RMI zInhalt heute yCommon Object Request Broker Architecture (CORBA) zLernziele:
Kornelia Bakowsk a ‌ WG13 ‌‌‌ Köln, Protokollfamilie Welche Protokolle benötige ich um eine Seite im Internet zu öffnen?
Aufbau Integrierter Informationssysteme Verteilte Objektsysteme am Beispiel von CORBA Falk Ritschel, Stefan Springer, Falko Steponat Martin-Luther-Universität.
1 Lutz Ullrich SOA – serviceorientierte Architektur SOA – Was ist das?
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
 Präsentation transkript:

C ommon O bject R equest B roker A rchitecture

Einleitung 1989 Gründung der Object Management Group (OMG) Ziel: „...gemeinsames architekturbezogenes Gerüst für objektorientierte Anwendungen zur Verfügung zu stellen, das auf weit verbreiteten Schnittstellenspezifikationen basiert“ Ergebnis: Object Management Architecture (OMA) Funktion von CORBA: Implementierung der ORB-Funktionen Liefert Standard des architektonischen Grundgerüsts anhand dessen Anwendungen entwickelt werden OMG: Ursprünglich 8 Mitglieder darunter HP, Sun Mikrosystems und American Airlines Heute mehr als 780 Mitglieder OMA: ORB Objektdienste (CORBAservices) Gemeinsame Einrichtungen (CORBAfacilities) Domänenschnittstellen (Domaininterfaces) Anwendungsobjekte (Application Interfaces)

Object Management Architecture Abstrakte Beschreibung der Objektwelt Bestandteile: Object Request Broker (ORB) CORBAservices CORBAfacilities Domain Interfaces Application Objects ORB: Zur Verfügungstellung einer Infrastruktur für transparenten Informationsaustausch Unabhängig von Plattformen und Techniken der Implementierung Serverobjekte können auch Clients weiterer Objekte sein CORBAservices: Fundamentale Schnittstellen zur Realisierung von CORBA-Anwendungen Flexible Kombination miteinander möglich Zur Erleichterung und Vereinfachung der Anwendungsentwicklung Beipiele: Naming Service Event Service Transaction Service Life-Cycle-Service CORBAfacilities: Schnittstellen auf höherer Anwendungsebene als die der CORBAservices Endnutzerorientiert Horizontale Einrichtungen (branchenunabhängig) Benutzeroberflächen Systemverwaltungseinrichtungen Vertikale Einrichtungen (branchenabhängig) Hauptbuch- und Amortisierungsfunktionalität beim Buchhaltungswesen Automatische Werkstattsteuerung bei der Fertigungstechnik Domain Interfaces: Auf ähnlicher Ebene wie CORBAfacilities Branchenspezifische Schnittstellen Application Objects: Von Anwendung angebotene Schnittstellen

CORBA 1.x und 2.x Versionen: Dezember 1990: CORBA 1.0 Anfang 1991: CORBA 1.1 Später: CORBA 1.2 1. Schritt zur Objektinteroperabilität Möglichkeit zur Kommunikation zwischen Rechnern mit unterschiedlichen Architekturen und Sprachen Dezember 1994: CORBA 2.0 September 1997: CORBA 2.1 Kommunikation zwischen ORB´s verschiedener Anbieter durch GIOP Zielsetzung der OMG: selbst keine Realisierung von CORBA-Plattformen – stellen nur Standard zur Verfügung CORBA 1.1: Definition von IDL Definition von API für Anwendungen zur Kommunikation mit einem ORB CORBA 2.0: Definition eines Standardprotokolls zur Kommunikation von verschiedenen ORBs miteinender General-Inter-ORB-Protocol (GIOP) Herstellung echter Interoperabilität zwischen Produkten verschiedener Anbieter Basierend auf TCP/IP auch als Internet-Inter-ORB-Protocol (IIOP) Käufliche Plattformen: Distributed Smalltalk von ParcPlace Digitalk Orbix (C++, Smalltalk) und OrbixWeb (Java) von IONA DSOM (C++) von IBM Freie Plattformen: JacORB ILU DOME

Object Request Broker (1) Grundlegender Bestandteil von CORBA (SW-Komponente zur Erleichterung der Kommunikation) Hauptaufgabe: Bereitstellung von Diensten einer Komponente, die von einer anderen Komponente genutzt werden sollen Ablauf: Erlangen der vom Dienst zur Verfügung gestellten Objektreferenz durch den ORB Aufruf von Methoden der Komponente bzw. Zugriff auf deren Dienste Auflösung der Anfragen von Objektreferenzen Herstellung der Konnektivität der Komponenten Leistungsmerkmale: Auffinden von Remote-Objekten bei vorhandener Objektreferenz Übertragung des Formats von Parametern und Rückgabewerten, die bei Remote-Methodenaufrufen gesendet bzw. empfangen werden

Object Request Broker (2) Formatübertragung: Umsetzung der Parameter in ein über das Netzwerk übertragbares Format (Marshaling) Rückumsetzung des Übertragungsformat (Unmarshaling) Vorteile des ORB: Plattformunab-hängigkeit Übertragungs-format ist plattformunab-hängig Umwandlung des Übertragungs-formats beim (Un)Marshaling in plattform-spezifische Formate Formatübertragung: Bei Methodenaufruf: Übergabe von Eingangsparametern Rückgabe von Ausgangsparametern

Interface Definition Language Teil der Standard CORBA-Spezifikation Zur Definition der von CORBA-Objekten verwendeten Schnittstellen zwischen einzelnen Komponenten Sammlung der in IDL spezifizierten Schnittstellen im Interface Repository Programmiersprachenunab-hängigkeit durch Sprachabbildung Standard-Sprachabbildungen für C, C++, Cobol, Java und Smalltalk Wahl der für die Anwendung besten Sprache möglich Definition von Schnittstellen: Nicht zur Implementierung Nur zur Beschreibung Sprachabbildung: Language Mapping IR: Durch IR ist Erkennung der Schnittstellensignatur möglich Für Marshaling unerlässlich

Entfernte Objekte (Remote Objects) Definition: Objekte außerhalb eines räum-lich streng abgegrenzten Bereichs Auf jedem Rechner auffindbar, zu dem eine Verbindung existiert (Verständigung über CORBA) Eigenschaften: Zugriff nur über Kommuni-kationsprotokolle Keine direkte Manipulation möglich Verfügen über Attribute und Methoden Zugriff: Entfernter Zugriff ist transparent (wirkt wie naher Zugriff) Verwendung naher Proxy-Objekte mit der gleichen Signatur wie das entsprechende entfernte Objekt Zugriff: Weiterleitung der Aufrufe an entfernte Objekte Rückgabe der Antworten der entfernten Objekte

Objektzugriff (1) Übergabe durch Referenz Interoperable ObjektReferenz Objekt bleibt an Ort und Stelle Methodenaufrufe nur über Referenz Kein direkter Zugriff Interoperable ObjektReferenz Ziel: weltweit eindeutige Referenzierung eines Objekts Aufbau: Allgemeiner Teil Unabhängig von Netzwerkverbindungsart Beschreibung durch GIOP Netzwerkspezifischer Teil Beschreibung durch spezifisches Inter-ORB-Protocoll Zugriffsarten: Übergabe durch Referenz Übergabe durch Werte Übergabe durch Referenz: Weitergabe einer IOR von Prozess A an Prozess B Bei Aufruf einer Methode dieses Objekts durch Prozess B: Ausführung dieser Methode durch Prozess A Prozess A ist Eigentümer vom Objekt Prozess B hat nur Sicht auf das Objekt und kann Methoden von Prozess A ausführen lassen

Objektzugriff (2) Übergabe durch Werte Kopieren des Objektstatus zum Zielprozess Anlegen einer neuen Instanz des Objekts Methodenausführung auf Objektkopie Keine Änderung des Originals Übergabe durch Werte: Tatsächliche Weitergabe des Objektstatus In der Regel durch Serialisierung Bei Methodenaufruf durch Prozess B: Ausführung der Methode auf Prozess B Keine Statusänderung des ursprünglichen Objekts Nur Änderung der Kopie auf Prozess B

Objektadapter Objektadapter: Funktionsbereiche des BOA: Schnittstelle zwischen Objektimplementierung und zugehörigem ORB Arten: Basic Objectadapter (BOA) Library Objectadapter Object-Oriented Database Adapter Funktionsbereiche des BOA: Registrierung von Objektimplementierungen Server-Aktivierung und -Deaktivierung Erzeugung von Objektreferenzen für Implementierungen Authentifizierung und Zugriffskontrolle Arten: Grundlegender Objektadapter Bibliotheksobjektadapter Objektorientierter Datenbankadapter Zum Zugriff auf Objekte im dauerhaften Speicher BOA: Zurverfügungstellung einer allgemeinen Gruppe von Methoden für den Zugriff auf ORB-Funktionen Strategien zur Serveraktivierung: Gemeinsame Nutzung eines Servers von mehreren Objekten Pro Server ein Objekt Automatisches Starten eines Servers bei Aufruf einer Objektmethode + automatischen Beenden dieses Servers beim Zurückgeben dieser Methode Manuelles Starten des Servers zB. Verwendung eins Servers von allen Clients zB. Starten einer eigenen Server-Instanz pro Client Strategien zur Serveraktivierung: Strategie der gemeinsam verwendeten Server Strategie der nicht gemeinsam verwendeten Server Strategie der Server-pro-Methode Strategie der permanenten Server

General Inter-ORB-Protocoll (1) GIOP als allgemeines Protokoll für die Kommunikation zwischen ORBs ab CORBA 2.0 Zusätzliche Protokolle zur Nutzung spezieller Transportprotokolle nötig: TCP/IP mit IIOP DCE mit DCE-CIOP Kompatibilität zwischen CORBA-Produkten verschiedener Hersteller Netzwerkmodell: Keine direkte Verwendung des GIOP Nur Standard Verwendung der daraus abgeleiteten Protokolle CORBA-Anwendung Inter-ORB-Protokoll IIOP DCE-CIOP Transportschicht TCP/IP DCE Physikalische Schicht

General Inter-ORB-Protocoll (2) Die Architektur einer verteilten CORBA-Anwendung: CORBA-Anwendung kann mehrere Inter-ORB-Protokolle verwenden Bridge zwischen TCP/IP und DCE möglich Keine Verdrängung von Netzwerkprotokollen

Clients und Server in CORBA (1) Server: Eine Komponente ist Server, wenn deren CORBA-Objekte Dienste enthalten, die anderen Objekten zur Verfügung stehen Clients: Eine Komponente ist Client, wenn sie auf Dienste eines anderen Objekts zugreift Komponente kann gleichzeitig Client und Server sein Stellt selbst Dienste zur Verfügung Nutzt auch Dienste anderer Objekte Server: Alle Komponenten, die Implementierungen für ein Objekt zur Verfügung stellen Wenn Komponente Objekt erstellt und Sicht auf dieses Objekt ermöglicht Wenn Komponente Vergabe von Objektreferenzen auf dieses Objekt ermöglicht Wenn Anfragen an dieses Objekt von Komponenten verarbeitet werden Client: Für sie werden Methoden durch Server-Komponenten ausgeführt

Clients und Server in CORBA (2) Bezeichnung: Komponente wird entweder Client oder Server genannt Client ist Komponente, die die meiste Zeit Dienste nutzt Server ist Komponente, die die meiste Zeit Dienste zur Verfügung stellt Client-Callback-Methode: Methodenrückruf Vom Client implementierte Methode, die vom Server aufgerufen wird Client ist kurzfristig beschränkter Server Client = Server: Komponente A erhält Objektreferenz für Objekt von Komponente B Komponente A ruft Methode für das Objekt auf A=Client und B=Server Weitergabe einer Objektreferenz von Komponente A als Parameter für den Methodenaufruf Komponente B ruft Methode für Objekt von Komponente A auf A=Server und B=Client Rollentausch ohne Wechsel der Anwendung Bezeichnung: Komponente A ist Client Komponente B ist Server

Stubs und Skeletons (1) Statische Schnittstelle: Client-Stub: Client-Stub bietet exakt die Operationen, die durch eine IDL-Spezifikation vorgegeben sind Static Invocation Interface (SII) Client-Stub: Kleiner Quelltextteil zur Ermöglichung des Zugriffs eines Clients auf eine Server-Komponente Stellt Client eine CORBA-Server-Schnittstelle zur Verfügung Kompilierung zusammen mit Client-Teil der Anwendung Server-Skeleton: Quelltextteile, die beim Implementieren eines Servers „ausgefüllt“ werden Client-Stub: Zur Verfügungstellung einer Pseudoimplementierung für jede Methode einer bestimmten Schnittstelle Kommunikation der Methoden mit dem ORB zur Durchführung einer Formatübertragung der benötigten Parameter Server-Skeleton: Gerüst auf dem der Server erzeugt wird Für jede Methode einer bestimmten Schnittstelle Generierung einer leeren Methode durch den IDL-Compiler Implementierung durch den Entwickler

Stubs und Skeletons (2) Nicht von Hand geschrieben Generierung bei der Kompilierung von IDL-Schnittstellendefinition Verbindung der sprachunabhängigen IDL-Spezifikation mit sprachspezifischem Implementierungsquelltext

DII und DSI Dynamische Schnittstelle: Client-Seite: (DII) Unterstützung der vollen Funktionalität zur dynamischen Konstruktion und Ausführung von Anfragen Dynamic Invocation Interface (DII) Client-Seite: (DII) Anbieten von Methoden zur Auswertung eines entfernten Operationsaufrufs durch Instanzen der Pseudo-Schnittstelle CORBA::Request Übertragung der notwendigen Informationen durch Anfrage selbst Ausführung der Anfrage über geeignete Methode zum Versenden eines Aufrufs an den ORB Server-Seite: (Dynamic Skeleton Interface (DSI)) Bearbeitung von Anfragen durch Server, die nicht statisch (durch IDL spezifiziert) implementiert sind Server erhält alle Informationen, die die Anfrage vom Client enthält Client: DII stellt diese Funktionalität zur Verfügung Server: Bearbeitung eingehender Anfragen durch Anwendung mittles DSI möglich Informationen: Zielobjekt in Form einer IOR Operationsname Parameter Wahrheitswert, ob Antwort erwartet wird

Zusammenfassung Geschichte Objektmodell Eckpfeiler Kommunikation OMG OMA CORBA-Versionen Eckpfeiler ORB IDL Objektmodell Entfernte Objekte Objektzugriff Objektadapter Kommunikation GIOP Clients und Server in CORBA Stubs und Skeletons DII und DSI