www.wikidata.de-de.nina.az
Die Common Object Request Broker Architecture CORBA englisch fur Allgemeine Architektur fur Vermittler von Objekt Nachrichten ist eine Spezifikation fur eine objektorientierte Middleware deren Kern ein sog Object Request Broker der ORB bildet und die plattformubergreifende Protokolle und Dienste definiert Sie wird von der Object Management Group OMG entwickelt CORBA konforme Implementierungen vereinfachen das Erstellen verteilter Anwendungen in heterogenen Umgebungen Beteilige dich an der Diskussion Dieser Artikel wurde wegen inhaltlicher Mangel auf der Qualitatssicherungsseite der Redaktion Informatik eingetragen Dies geschieht um die Qualitat der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen Hilf mit die inhaltlichen Mangel dieses Artikels zu beseitigen und beteilige dich an der Diskussion Begrundung Ist das noch alles aktuell Z B der Abschnitt Performance konnte sch geandert haben Pumuckl456 Diskussion 08 42 20 Okt 2019 CEST Inhaltsverzeichnis 1 Uberblick 2 Verwandte Techniken 3 Performance 4 Kompatibilitat 5 Das Objektmodell von CORBA 6 CORBA Dienste 7 Einordnung 8 Implementierungen 9 Siehe auch 10 Literatur und Quellen 11 Weblinks 12 EinzelnachweiseUberblick BearbeitenDie CORBA Spezifikation ist nicht an eine bestimmte Plattform gebunden Vielmehr sind die Softwarehersteller oder Communitys aufgerufen auf der Grundlage dieser Spezifikation eigene Object Request Broker Implementierungen zu erstellen Die meisten Hersteller bieten Implementierungen fur mehrere Programmiersprachen und auch Betriebssysteme an Die gemeinsame Spezifikation ermoglicht dann die Kommunikation von Anwendungen untereinander die mit unterschiedlichen Programmiersprachen erstellt worden sind verschiedene ORBs nutzen und auf verschiedenen Betriebssystemen und Hardwareumgebungen laufen konnen Mittels der ebenfalls von der OMG spezifizierten Interface Definition Language IDL erstellt der Programmierer eine formale Spezifikation der Schnittstellen Datentypen und Methodensignaturen die ein Objekt fur entfernte oder lokale Zugriffe zur Verfugung stellt Die Schnittstellensemantik wird dabei nicht festgelegt Diese Schnittstellenbeschreibung wird dann mit einem IDL Compiler in aquivalente Beschreibungen der verwendeten Programmiersprache umgesetzt Ausserdem wird Quelltext generiert der zu der benutzten ORB Implementierung passt Dieser Quelltext enthalt Stubs und Skeletons Sie implementieren das Vermittler Pattern als Architekturmuster um die Komplexitat der Netzwerkkommunikation zu verbergen und einen Methodenaufruf wie einen lokalen Aufruf erscheinen zu lassen Ein Stub akzeptiert die gleichen Nachrichten wie das entfernte Objekt das er reprasentiert Daher kann er von anderen Objekten wie ein lokales Objekt ihrer Programmiersprache benutzt werden wahrend die Interprozesskommunikation mit dem entfernten reprasentierten Objekt in mitgelieferten Bibliotheken der CORBA Implementierung verborgen bleibt IDL Compiler werden haufig vom Hersteller des jeweiligen ORB mitgeliefert So definiert z B der Entwickler einer C Server Anwendung zuerst seine IDL Schnittstellen danach erzeugt er mit Hilfe eines entsprechenden IDL Compilers C Skeleton Klassen Als Nachstes erweitert er die Skeletons mit der notwendigen Implementierung der Logik Damit ist seine Arbeit erledigt Ein Client Entwickler benutzt die IDL Schnittstellen des Server Entwicklers und erzeugt mittels seines IDL Compilers Stubs im Quelltext seiner Programmiersprache Er kann dann die Instanzen dieser generierten Klassen wie oben erlautert als normale Objekte benutzen Diese Vorgehensweise reduziert den Arbeitsaufwand in der Client Server Entwicklung da samtliche Details der Interprozesskommunikation fur Client und Server verborgen bleiben Die meisten CORBA Implementierungen unterstutzen die Programmiersprachen Java und C Es existieren jedoch auch Implementierungen fur viele weitere Sprachen Es gibt auch die Moglichkeit CORBA ohne IDL zu verwenden Dafur stehen das Dynamic Invocation Interface DII und das Dynamic Skeleton Interface DSI zur Verfugung Die Kommunikation innerhalb einer CORBA Implementierung ORB erfolgte in fruheren CORBA Spezifikationen mittels eines herstellerspezifischen Protokolls Damit auch ORBs unterschiedlicher Hersteller miteinander kommunizieren konnen wurde mit CORBA 2 0 das General Inter ORB Protocol GIOP festgelegt das die Kommunikation fur verschiedene Transportprotokolle definiert Am weitesten verbreitet ist der Einsatz des GIOP uber TCP IP das Internet Inter ORB Protocol IIOP Verwandte Techniken BearbeitenEbenfalls zur Erstellung von verteilten Anwendungen die mehrere Programmiersprachen verwenden eignet sich das von Microsoft entwickelte COM DCOM Allerdings muss man dann in der Windows Welt bleiben Soll eine Verknupfung zwischen Java und einer anderen Programmiersprache hergestellt werden so kann ebenfalls das JNI verwendet werden Performance BearbeitenMittlerweile ist die Performance von CORBA auf dem Stand vergleichbarer Techniken wie RMI Sie hangt in erster Linie von der Bandbreite und der Latenzzeit des Netzwerkes ab Kompatibilitat BearbeitenMit Hilfe von Bridges kann eine CORBA Anwendung an Anwendungen die RMI oder COM DCOM Schnittstellen zur Verfugung stellen gekoppelt werden Das ist unter anderem im Zusammenspiel mit Windows Anwendungen mit COM Interface interessant Das Objektmodell von CORBA BearbeitenDer Objektbegriff der Object Management Group OMG unterscheidet sich kaum von anderen computerwissenschaftlichen Definitionen des Wortes Objekt Objekte werden als eindeutig identifizierbare Entitat definiert Im Objektmodell werden neben den Eigenschaften von Objekten auch Typen Schnittstellen Operationen und Attribute genauer qualifiziert Typen dienen dazu die moglichen Werte von Daten einzugrenzen und diese Eingrenzung zu benennen Dabei unterscheidet CORBA zwei verschiedene Typengruppen die einfachen und die konstruierten Typen Zu den einfachen Typen gehoren short long float double char boolean octet string enum und any Die konstruierten Typen sind struct sequence und union Fur eine objektorientierte Sicht benotigt der Entwickler noch eine weitere Form der Daten namlich Objektreferenzen In CORBA identifizieren Objektreferenzen die Objekte innerhalb einer ORB Domane Den internen Aufbau solcher Referenzen bestimmt CORBA nicht und er kann je nach ORB Hersteller und Programmiersprache unterschiedlich ausfallen Damit aber die Kommunikation und der Austausch von Objektreferenzen ubergreifend erfolgen kann definiert CORBA als Austauschformat die IOR Interoperable Object Reference CORBA Dienste BearbeitenZusatzlich zum Protokoll definiert CORBA noch einige Dienste bzw Services die eine definierte IDL Schnittstelle besitzen Der wichtigste CORBA Dienst ist der Naming Service der Serverobjekten ermoglicht mittels eines festgelegten Namens angesprochen zu werden Der Namensdienst liefert dann die IOR zu einem registrierten Objektnamen Der Naming Service ist eine Art Telefonbuch fur CORBA Objekte Der Trading Service ermoglicht es ebenfalls Objekte zur Laufzeit zu finden Allerdings werden Objekte hier uber ihre Eigenschaften identifiziert und nicht durch einen Namen Das Ergebnis einer solchen Suche konnen auch mehrere Objekte sein Der Event Service ermoglicht lose gekoppelte ereignisbasierte n m Kommunikation Der Versand erfolgt asynchron Beim Push Modell sendet der Supplier Anbieter ein Event Ereignis in Form eines beliebigen Objektes zum Consumer Verbraucher beim Pull Modell fordert der Consumer ein Event explizit u U blockierend an Event Channels erlauben die Pufferung von Events in FIFO Reihenfolge Daruber hinaus ermoglichen sie die gleichzeitige Verwendung unterschiedlicher Kommunikationsmodelle zur Ubertragung von Events So kann ein Consumer etwa ein Event pullen das von einem Supplier in einen Channel gepusht worden ist Der Life Cycle Service stellt Operationen zum Kopieren Verschieben und Loschen von Objekten zur Verfugung Zusammen mit dem Externalization Service wird damit das Migrieren von Objekten ermoglicht Der Relationship Service ermoglicht die Modellierung von Beziehungen zwischen Objekten wobei diese dabei bestimmte Rollen in der Beziehung ubernehmen Dabei sind drei Level definiert Grundlegende Beziehungen Beziehungsgraphen und spezielle Relationen Enthaltensein Beziehungen 1 n Referenz Beziehungen n m Eine standardkonforme Implementierung des Relationship Service sollte Level 1 Level 1 und 2 oder Level 1 3 implementieren Ausserdem existieren beispielsweise noch folgende Dienste Externalization Service Persistent Object Service Concurrency Control Service Transaction Service Property Service Licensing Service Object Collection Service Query Service Time Service Security Service Notification Service als Erweiterung zum Event Service Einordnung BearbeitenCORBA ist ein relativ abstraktes Konzept welches den intuitiven Zugang erschwert Allerdings ermoglicht der hohe Abstraktionsgrad verteilte Anwendungen mit sehr geringem Arbeitsaufwand zu entwickeln Mit seinen vielen Service Definitionen war CORBA zum Zeitpunkt seiner Entwicklung ein innovatives Konzept mit grossem Potenzial Da nur wenige Services tatsachlich implementiert wurden hat sich diese Hoffnung nicht erfullt Die von Programmiersprachen wie Java Objective C oder C mitgelieferten Bibliotheken bieten heute vieles an was einst als CORBA Services definiert wurde und binden damit den Entwickler an die jeweilige Programmiersprache und die dahinter stehenden Hersteller Implementierungen BearbeitenAdORB CORBA ORB for Mac OS X and iPhone OS Eingestellt letztes Release V1 6 vom 30 Januar 2010 1 VisiBroker von Micro Focus International ursprunglich Borland Eingestellt letztes Release V8 5 vom 31 Januar 2012 2 JacORB Letztes Release 3 9 vom 31 August 2017 3 MICO CORBA Eingestellt letztes Release 2 3 13 vom 4 September 2008 4 omniORB Letztes Release 4 3 0 vom 9 Januar 2022 5 Orbacus Letztes Release 4 3 5 vom 7 Oktober 2016 6 TAO Letztes Release 2 5 6 vom 30 Juli 2019 7 Siehe auch BearbeitenCORBA Component Model Distributed Component Object Model Grid Computing Internet Communications Engine Jini Remote Method Invocation SOAP Universal Network Objects Webservice XML RPCLiteratur und Quellen BearbeitenThomas J Mowbray William A Ruh Inside Corba Addison Wesley Longman Amsterdam Distributed Object Standards and Applications Weblinks BearbeitenLiteratur uber Common Object Request Broker Architecture im Katalog der Deutschen Nationalbibliothek Object Management Group mit dem Katalog der OMG Spezifikationen Der aktuelle CORBA Standard der OMG Group PDF 9 6 MiB The Rise and Fall of CORBA ein kritischer Artikel erschienen in den Communications of the ACMEinzelnachweise Bearbeiten AdORB CORBA ORB for Mac OS X 30 Januar 2010 abgerufen am 21 Oktober 2019 englisch VisiBroker 31 Januar 2012 abgerufen am 21 Oktober 2019 JacORB 31 August 2017 abgerufen am 21 Oktober 2019 englisch MICO CORBA 15 Dezember 2008 abgerufen am 21 Oktober 2019 englisch omniORB Abgerufen am 8 Juli 2021 Orbacus 7 Oktober 2016 abgerufen am 21 Oktober 2019 englisch Johnny Willemsen tao announce ACE 6 5 6 and TAO 2 5 6 available for download 30 Juli 2019 abgerufen am 21 Oktober 2019 Normdaten Sachbegriff GND 4403709 0 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Common Object Request Broker Architecture amp oldid 226807858