Introduction To Distributed Computing Using CORBA: Rushikesh K. Joshi
Introduction To Distributed Computing Using CORBA: Rushikesh K. Joshi
Distributed Computing
using CORBA
Rushikesh K. Joshi
Dept of Computer Science & Engineering
Indian Institute of Technology, Bombay
Powai, Mumbai - 400 076, India.
Email: [email protected]
Why Do You Go for
Distributed Computing ?
Common Application
Facilities Objects
The ORB (object request
broker)
ORB is the core of the Object
Management Architecture
Examples:
• CORBAplus - Expertsoft
• Orbix - IONA
• Visibroker - Visigenic, now with Inprise
The Language of
Application Development
OR
orb->object_is_ready (lib);
orb->implementation_is_ready (lib);
}
IDL: The Core of CORBA
Spec
The Interface Definition Language
• IDL provides a language/OS independent
interfaces to all objects, services and
components on the CORBA bus
• The OMG IDL is purely declarative : that
means, no implementation details are
provided
• It is strongly typed.
• IDL specs can be written and invoked in
any language that specifies CORBA
bindings (C/C++/COBOL/Smalltalk)
Server implements an IDL
and Client invokes interfaces
defined by an IDL
• Implementation is in an
implementation language
• Invocations are also in an
implementation languages
• IDL to language mapping is
necessary
• e.g. mappings for
C/C++/COBOL/Smalltalk/Java
An Example IDL
Interface Account {
CORBA::ORB_init (..);
Mapping the Basic Data
Types
• IDL C++
short CORBA::Short
long CORBA::Long
unsigned short
CORBA::UShort
unsigned long CORBA::Ulong
float CORBA::Float
double CORBA::Double
… Basic Data Types
• IDL C++
char CORBA::Char
boolean CORBA::Boolean
Octet CORBA::Octet
any CORBA::Any
Interface Repository
• Provides storage to store IDL
information
• A program may refer to objects
whose interface would be known at
runtime
• This info may be used by the ORB
to perform requests
• IR may be made to store other info
about interfaces such as debugging
info, browser routines etc
Implementation
Repository
• Contains information that allows
ORB to locate and activate the
implementation of a required
server object