2. Komponentenbasierte Software Entwicklung

Slides:



Advertisements
Ähnliche Präsentationen
C ommon O bject R equest B roker A rchitecture
Advertisements

DI Christian Donner cd (at) donners.com
Aktuelle Java-Trends, Norbert Schuler1 Jini Java im Netz.
Basis-Architekturen für Web-Anwendungen
Ü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)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
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.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 5 V-Modell-AnwendungenFolie 1 V-Modell für große Projekte.
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
DOM (Document Object Model)
ATHOS Benutzertreffen 12. November Auswerteserver Glashütten, 12. November 2008 HighQSoft GmbH, Andreas Hofmann
ATHOS Benutzertreffen 27.September Report of the Lab Glashütten, 27.September 2007 HighQSoft GmbH, Karst Schaap
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.
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.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
Remote Methode Invocation (RMI)
Wizards & Builders GmbH Schichtenarchitektur Multi-Tier-Applikationen mit Microsoft Visual FoxPro.
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)
UML Begleitdokumentation des Projekts
Common Object Request Broker anhand eines Beispiels Aufgabestellung ( Ein Konto wird von einem Server verwaltet. Der Stand des Kontos wird.
... und alles was dazugehört
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Nestor Workshop im Rahmen der GES 2007 Digitale Langzeitarchivierung und Grid: Gemeinsam sind wir stärker? Anforderungen von eScience und Grid-Technologie.
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)
Webservice Grundlagen
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Architekturen und Techniken für computergestützte Engineering Workbenches.
08/ HerrschingAG Verteilte Simulation Forschungsziele & Arbeitsschwerpunkte Mitglieder: TP Bletzinger TP Bungartz / Rank TP Krafczyk – Tölke.
Sesame Florian Mayrhuber
Hauptseminar Web Engineering – Semantic Web Dominik Pretzsch.
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.
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.
UML-Kurzüberblick Peter Brusten.
Management- und Web Services- Architekturen
Oliver Spritzendorfer Thomas Fekete
Arbeitsbereich „Rechnernetze und verteilte Systeme“
Untersuchungen zur Erstellung eines
Objektorientierte Modellierung mit UML
ATLAS2000 Modellintegration in digitalen Atlanten Konzepte und Lösungsvorschläge am Beispiel ATLAS2000.
© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.
Vortrag - Diplomarbeiten (HS I)
Datenbanken im Web 1.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
MDA – Model Driven Architecture
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Architekturen und Techniken
Workflowsysteme und Datenbanksysteme Gliederung Motivation Basis- funktionalitäten Klassifikations- merkmale Referenz-Modell MQ Workflow Zusammenfassung.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Entwurf Dr. Wolfgang Wörndl
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Aufbau Integrierter Informationssysteme Verteilte Objektsysteme am Beispiel von CORBA Falk Ritschel, Stefan Springer, Falko Steponat Martin-Luther-Universität.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
Verteilte Anwendungen: J2EE
Von Wietlisbach, Lenzin und Winter
 Präsentation transkript:

2. Komponentenbasierte Software Entwicklung CORBA Common Object Request Architecture der Object Management Group (OMG) Forderungen: Verteilte und offene Strukturen Flexible Software durch Trennung von Anforderung Anforderungsdefinition Realisierung Middleware zur Sicherstellung von Kommunikation und Interoperabilität Bessere Integration von Internet / Intranet und einer verteilten Unternehmens-IV Server-Komponenten

(Application Objects) Object Request Broker (ORB) 2. Komponentenbasierte Software Entwicklung OMG - Referenzarchitektur Anwendungsobjekte (Application Objects) Basisdienste (Common Facilities) Standardisiert Object Request Broker (ORB) Standardisiert Objektdienste (Object Services) Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA – Services Abstraktion für Systemprogrammierungsfunktionalität Naming Event Service Transactions Security Lifecycle Time Licensing Trading Properties Relationships Query Persistent Object Concurrency Control Externalisation Server-Komponenten

2. Komponentenbasierte Software Entwicklung Common ORB Architecture Standard für ORB Ziele: Objektorientierung Verteilungstransparenz Effizienz Hardware- / Betriebssystem- / Sprachunabhängigkeit Offenheit Bestandteile: Konkretisierung des abstrakten OMG-Modells → Definition von CORBA-Objekten Object Request Broker (ORB) Server-Komponenten

2. Komponentenbasierte Software Entwicklung ORB Infrastruktur für Interoperabilität der heterogenen Objekte Abbildungen von Objektnamen der aufrufenden und aufgerufenen Objekte Auswahl der aufzurufenden Operationen Kodierung / Dekodierung von Parametern Vermittlung von Operationsaufrufen an geeignete Zielobjekte (eins-zu-eins) Übermittlung von Operationsergebnissen Aktivierung Ausnahmebehandlung Sicherheitsmechanismen baut auf Objektdiensten auf Server-Komponenten

2. Komponentenbasierte Software Entwicklung Kommunikationstransparenz Logische Schnittstelle Aufruf Client/Objekt Server/Objekt Antwort 1 8 4 5 Stub (Rumpf) Skeleton (Rahmen) 2 7 3 6 Netzwerkcode Netzwerkcode Nachrichtenaustausch (IIOP) Server-Komponenten

2. Komponentenbasierte Software Entwicklung OpenDoc von CI Labs (Component Integration Laboratories) Open Scripting Architecture Basiert auf AppleEvents Applikations, -übergreifende Scriptsprache Netzwerkfähigkeit durch SOM/DSOM-Basis Inkrementelle Speicherung mit Bento (nur Deltas zw. Drafts) Compound Document Management Koordination gemeinsamer Ressourcen Darstellung auch nichtrechteckiger Container Part-Sammlung Structured Storage (Bento) Compound Document Management (parts) Automation & Scripting (OSA) SOM/ DSOM Oder CORBA-konformer ORB Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – OMG und CORBA OMG (Object Management Group) Entwickelt Standards und Spezifikationen für eine Infrastruktur, die für verteilte, objektorientierte Anwendungen erforderlich ist Setzt den de facto-Standard für die Software-Industrie Deckt heute einen großen Teil der objektorientierten Software-Entwicklung ab, z.B. ist die UML OMG-Standard CORBA CORBA ist eine Spezifikation und kein Produkt Es gibt jedoch eine Reihe von kommerziellen und frei verfügbaren Plattformen, die der CORBA-Spezifikation entsprechen. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – OMA (1) Basis für die Standardisierung bildet die Object Management Architecture Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – OMA (2) Hauptkomponenten von OMA Anwendungsobjekte (application objects) Können Client- als auch Server-Objekte sein Object Request Broker (ORB) Vermittelt die Kommunikation zwischen den Objekten Spezielle Objektdienste (object services) Benötigt der ORB zur Erfüllung seiner Aufgaben Beispiel: Dienste für die Namensgebung, zum Kopieren und Löschen von Objekten Allgemeine Objektdienste (common facilities) Beispiel: Hilfe-, Druck-und Sicherheitsdienste. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – ORB Schlüsselkomponente der Architektur Kommunikationszentrale Übermittlung von Operationsaufrufen und Ergebnissen zwischen Anwender und Anbieter Der ORB wurde als erste Komponente unter dem Namen CORBA (Common Object Request Broker Architecture) standardisiert Der ORB benutzt die Schnittstellen der Client- und Server-Objekte, um Anforderungen weiterzuleiten Als Schnittstellen-Definitionssprache wird CORBA-IDL (interface definition language) verwendet. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – CORBA und Komponenten Auf CORBA-Objekte kann von außen nur über ihre Schnittstelle zugegriffen werden Sie stellen jedoch keine Komponenten dar CORBA ist bis zur Version 2 kein Komponenten-Modell Da CORBA die Implementierung nicht berücksichtigt, werden z.B. keine Aussagen darüber gemacht, wie CORBA-Objekte auf binärer Ebene aussehen, wie sie zu installieren oder zu verteilen sind. CORBA components (CCM, corba components model) Haben von der Architektur her große Ähnlichkeit mit Enterprise JavaBeans Ziel war es, vorhandene EJBs als CORBA-Komponenten nutzen zu können Von diesem Standpunkt aus können CORBA-Komponenten als sprachunabhängige Obermenge von EJBs betrachtet werden.  CORBA vs. COM Die Spezifikation sieht eine Abbildung vor, die das Zusammenarbeiten zwischen COM und CORBA-Objekten grundsätzlich ermöglicht. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Quality of Services CORBA-Einsatz in speziellen Umgebungen: Minimum-CORBA Variante, die für Systeme mit begrenzten Hardware-Ressourcen (Rechenleistung, Hauptspeicher) entwickelt wurde Zielplattformen sind z.B. Handys oder PDAs Echtzeit-CORBA Definiert, wie Echtzeitanforderungen zu handhaben sind Fehlertolerantes CORBA Aussagen zu fehlertoleranten Systemen. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Architektur (1) ORB-Kern: Transportschicht Server Operationen müssen in einer Schnittstelle, hier IDL, beschrieben werden Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Architektur (2) Aus einer IDL-Beschreibung werden generiert: IDL-Stummel (stub) : Wird vom Client benutzt, um Dienstleistungen des Servers anzufordern Interface Repository: Speichert Informationen über die Schnittstelle, die zur Laufzeit von den Clients abgefragt werden. Dazu wird das DII (dynamic invocation interface) benutzt IDL-Skelett (skeleton): Code-Rahmen. Wird vom Programmierer mit der Implementierung der Operationen gefüllt Implementation Repository: Informationen, um Server zu lokalisieren. Clients Interagieren mit dem ORB über IDL-Stummel und DII jeweils in der eigenen Programmiersprache Können auf 2 Arten Dienstleistungen anfordern: Ist die Schnittstelle in IDL definiert und kennt der Client die Typ- bzw. Klassendefinition des Servers, dann kann eine statische Anforderung erfolgen Ist die Schnittstelle des Servers nicht bekannt, dann kann die DII verwendet werden. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Architektur (3) Aus der IDL abgeleiteten Informationen Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Architektur (4) Server Der Server weiß nicht, ob eine Anforderung statisch oder dynamisch erstellt wurde Anforderungen passieren den IDL-Stummel, um zum Server zu gelangen Ein IDL-Skelett hängt i.d.R. vom Objekt-Adapter ab Es kann mehrere Skelette für dieselbe Schnittstelle und dieselbe Programmiersprache mit unterschiedlichen Objekt-Adaptern geben Ein Objekt-Adapter stellt eine Schnittstelle zu den ORB-Dienstleistungen zur Verfügung, die die Server nutzen können. ORB-Interface Andere Dienstleistungen, die von den Servern benutzt werden, werden direkt von der Komponente ORB-Interface zur Verfügung gestellt Diese Schnittstelle ist für alle ORB-Implementierungen identisch und hängt nicht vom Objekt-Adapter ab Das ORB-Interface wird auch von Clients genutzt. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Architektur (5) Interface Repository (IR) Verwaltet die IDL-Definitionen Diese sind zur Laufzeit verfügbar Die DII benutzt diese Informationen, um Clients Anforderungen an Server zu erlauben, deren Schnittstelle zur Übersetzungszeit des Clients noch unbekannt war Die IR-Dienstleistung wird auch vom ORB selbst benutzt, um Anforderungen weiterzuleiten Implementation Repository Verwaltet Informationen, die der ORB benötigt, um die Server zu lokalisieren und zu starten Es ist spezifisch für eine Betriebssystem-Umgebung. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – IDL IDL Dient zur Beschreibung der Schnittstellen von Klassen, die als Server Dienstleistungen anbieten Nur Spezifikationen beschreibbar, kein Code Die Spezifikationen werden verwendet, um vom Client aus Operationen des Servers aufzurufen. Aufruf in der Client-Programmiersprache Die Implementierung der Operationen auf der Server-Seite in der Server-Programmiersprache IDL-Precompiler transformieren die IDL-Spezifikationen in die jeweiligen Zielsprachen. Syntax ist an C++ angelehnt. Grammatik ist Teilmenge der C++-Grammatik mit Erweiterungen für verteilte Aufrufe. Vergleich IDL vs. ODL ODL wurde auf der Grundlage von IDL entwickelt IDL = ODL ohne extents, keys und relationships CORBA und Java Es gibt Spezifikation für Abb. von IDL auf Java Java-Schnittstellen (Schlüsselwort: interface) werden direkt genutzt Die CORBA-Spezifikation sieht eine Umkehrabbildung (reverse mapping) vor Damit lässt sich aus Java-Schnittstellen IDL-Code generieren Somit ist es leicht möglich, über CORBA EJBs von Clients anzusprechen, die in anderen Programmiersprachen entwickelt wurden. Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Standardisierte Dienste (1) Standardisierte Objektdienste Namensdienst (name service) : Kreierung von Namensräumen und die Abbildung von benutzerdefinierten Objektnamen auf CORBA-Objektreferenzen Lebenszyklusdienst (lifecycle service) : Verwaltung von Objekten (Erzeugen, Kopieren, Löschen, Abfragen auf Äquivalenz) Ereignismeldedienst (event notification) : Erkennen von Ereignissen und Benachrichtigung von Objekten über Ereignisse Persistenzdienst (persistence service) : Dauerhaftes Speichern und Laden von Objekten auf / von (externen) Speichern. Nebenläufiger Dienst (concurrency service) : Synchronisierung konkurrierender Zugriffe auf Objekte Auslagerungsdienst (externalization service) : Datenexport von Objekten in Dateien außerhalb des Objektsystems Beziehungsdienst (relationship service) : Erzeugen, Löschen und Verwalten von Beziehungen zwischen Objekten, Navigation über Beziehungen Transaktionsdienst (transaction service) : Techniken zur Durchführung transaktionsgesteuerter Abläufe mit einem zweistufigen commit. Zeitdienst (time service) : Synchronisierung der Uhren von Komponenten-systemen in verteilter Umgebung Server-Komponenten

2. Komponentenbasierte Software Entwicklung CORBA (Balzert) – Standardisierte Dienste (2) Sicherheitsdienst (security service) : Autorisierungs- und Überwachungs-funktionen auf Objektebene Lizenzdienst (licensing service) : Verwaltung von Objektlizenzen, Abrechnung von Gebrauchsgebühren für Objekte Eigenschaftsdienst (properties service) : Dynamisches Erzeugen, Löschen und Verwenden von Attributen Anfragedienst (query service) : SQL-artige Anfrageoperationen für Objekte Allgemeine Objektdienste (common facilities) Vertikale Marktdienste : Basisfunktionalität für unterschiedliche Marktsegmente Horizontale allgemeine Dienste : Dienste über mehrere Anwendungsbereiche user interface definiert den Zugriff auf ein grafisch orientiertes Informationssystem information management legt Modellierung, Definition, Speicherung, Wiedergewinnung, Verwaltung und Austausch von Informationen fest systems management unterstützt die Verwaltung komplexer Informationssysteme task management erlaubt die Automatisierung von Aufgaben. Server-Komponenten