Download presentation
Presentation is loading. Please wait.
Published byMeryl Ellis Modified over 9 years ago
1
January 25, 2016 First experiences with CORBA Niko Neufeld
2
January 25, 2016Niko Neufeld The task Prepare a ring display for the RICH reconstruction/simulation Want to use JAVA 2D toolkit
3
January 25, 2016Niko Neufeld Possible strategies Dump data to file (from C++, read with Java) clumsy(!), ugly(!!), synchronization(!!!) Link together Java and C++ difficult, huge executable, always same client Use a TCP socket elegant, client - server, standard (C) only primitive data types (basically bytes), must provide your own protocol CORBA standardized, Java and C++ fully supported free implementations available
4
January 25, 2016Niko Neufeld CORBA / OMG OMG (Object Management Group) comprises all major vendors except Microsoft defines and develops the standard the standard and most OMG document are available for public download http://www.omg.org Microsoft has a similar approach COM/OLE Interoperability is under way
5
January 25, 2016Niko Neufeld CORBA intro CORBA stands for Common Object Request Broker Architecture It is a standard for object/component cooperation A component is usually a (collection of) object(s) which performs a well defined task e.g. display a histogram. It is (ideally): standalone, “plug and play”able across networks and platforms It defines “services” for objects: naming, persistency, transactions etc. It is language/platform independent
6
January 25, 2016Niko Neufeld CORBA - ORB All requests from objects to objects are handled by the Object Request Broker (ORB)
7
January 25, 2016Niko Neufeld Interface Definition Language (IDL) IDL describes the interfaces which objects show to the ORB It contains: modules = namespaces in C++ interfaces = abstract base classes in C++ operations = methods data types = standardized types basic:compatible to double, int, long, etc. constructed: struct, sequence, string, any, union, enum These are mapped to the respective language types by the precompilers (idl, jidl)
8
January 25, 2016Niko Neufeld IDL (trivial example) i nterface Y2K { const short y2k=2000 ; attribute short currentyear ; exception Y2Kbug {string yeah; }; void print(in short year) raises (Y2Kbug); }; idl y2k.idl produces y2k_skel.cpp and y2k.cpp and the header files Not shown here (lengthy - but no need to look into them) y2k_skel is used for the implementation of the server part and y2k.h for a possible client.
9
January 25, 2016Niko Neufeld Generated IDL file //## Module: Photon //## Subsystem: Rich::Detector //## Source file: C:\Program Files\Rational\Rational Rose 98 Evaluation Edition\Rich\Detector\Photon.idl #ifndef Photon_idl #define Photon_idl #include "Rich\Detector\Pixel.idl" interface Photon : Trajectory { //##begin Photon.initialDeclarations preserve=yes //##end Photon.initialDeclarations // Attributes attribute double energy; attribute double thetaCherenkov; // Operations void absorbed(); void scattered(in const HepPoint3D &position, in const HepPoint3D &direction); }; #endif
10
January 25, 2016Niko Neufeld Working with CORBA
11
January 25, 2016Niko Neufeld How to use it Server must be running somewhere It produces a unique(!) Object reference for the object whose service it offers This reference can e.g. be stored as a string and passed to a possible client The client initializes the ORB, obtains the object reference and gets a reference to the object and can then call its methods And it really works!
12
January 25, 2016Niko Neufeld What did I use? JAVA 1.2 on Linux www.blackdown.org/java-linux fully compliant SUN certified port of 1.2 ORBacus 3.1.2 for C++ and Java www.ooc.com/ob/ commercial software free for non-commercial use full CORBA IDL support, IDL to C++/Java mapping Linux 2.0.35 (dual P2) gcc/egcs, java
13
January 25, 2016Niko Neufeld Some final remarks I started out looking for a simple solution for C++ and Java interoperability CORBA works very nicely, it is a very high level way of communication I did not check performance issues One gets distribution, client-server, multi language (almost) for free There seem to be a lot more interesting possibilities
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.