First experiences with CORBA - PowerPoint PPT Presentation

About This Presentation
Title:

First experiences with CORBA

Description:

CORBA works very nicely, it is a very high level way of communication ... One gets distribution, client-server, multi language (almost) for free ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 14
Provided by: niko75
Category:

less

Transcript and Presenter's Notes

Title: First experiences with CORBA


1
First experiences with CORBA
  • Niko Neufeld

2
The task
  • Prepare a ring display for the RICH
    reconstruction/simulation
  • Want to use JAVA 2D toolkit

3
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
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
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 playable across networks
    and platforms
  • It defines services for objects
  • naming, persistency, transactions etc.
  • It is language/platform independent

6
CORBA - ORB
  • All requests from objects to objects are handled
    by the Object Request Broker (ORB)

7
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
  • basiccompatible 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
IDL (trivial example)
interface Y2K const short y2k2000
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
Generated IDL file
// Module Photon // Subsystem
RichDetector // 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.initialDeclaration
s preserveyes //end Photon.initialDeclaration
s // Attributes attribute double energy
attribute double thetaCherenkov //
Operations void absorbed() void
scattered(in const HepPoint3D position, in const
HepPoint3D direction) endif
10
Working with CORBA
11
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
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
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
Write a Comment
User Comments (0)
About PowerShow.com