08-08-2012, 01:37 PM
CORBA
pres-corba.ppt (Size: 379 KB / Downloads: 23)
OMG
The CORBA specification was developed by the Object Management Group (OMG).
The OMG is an international, not-for-profit group consisting of approximately 800 companies and organizations defining standards for distributed object computing
CORBA is only one of the specifications they develop. They are also behind other key object oriented standards such as UML (Unified Modeling Language).
History
The OMG was established in 1988 and the initial CORBA specification came out in 1992. Over the past 10 years significant revisions have taken place.
Version 2.0, which defined a common protocol for specifying how implementations from different vendors can communicate, was released in the mid-nineties.
The current version of CORBA is 3.0, which introduced the CORBA Component Model.
Today
Today, CORBA serves as middleware for a variety of large enterprise level applications.
One of the most important and most frequent uses is for servers that must handle a large number of clients, at high hit rates, with high reliability.
The current users of CORBA are diverse - including The Weather Channel, GNOME, US Army, CNN, and Charles Schwab.
Specification vs. Implementation
CORBA, as defined by the OMG, is a standard or specification and not a particular piece of software.
CORBA 3.0 is actually a suite of 10 standards, each defining aspects of a CORBA implementation.
Several implementations of the CORBA standard exist. Among the most widely used are IBM’s SOM (a.k.a. SOMobjects) and DSOM architectures. There are also free implementations available for general use.
CORBA Integrations
An implementation of CORBA has been integrated into Netscape browsers.
CORBA has been built into Netscape ONE (Open Network Environment) - Netscape’s application environment based on open internet standards.
The Enterprise Edition of IBM’s WebSphere (a software platform to help build and deploy high performance web sites) integrates CORBA (as well as Enterprise Java Beans) to build highly transactional, high-volume e-business applications
The Primary Elements
IDL
Interface Definition Language
Client / Server CORBA Objects
Abstract objects based upon a concrete implementation
ORBs
Object Request Brokers
GIOP / IIOP
General and Internet Inter-Object Protocols
Interface Definition Language
Defines public interface for any CORBA server.
C++ like syntax
Client and Server implemented based on compilation of the same IDL (usually)
OMG has defined mappings for:
C, C++, Java, COBOL, Smalltalk, ADA, Lisp, Python, and IDLscript
Highlighted IDL Features
Pass by reference and by value
In, out, and inout parameters
Inheritance
Throwing of exceptions
The Any Type
Callbacks
Enables Peer-to-Peer Object Communication.
Also supports:
structs, unions, enumerations, all c++ scalars, arrays, sequences, octets, strings, constants, and typedefs.
Client / Server CORBA Objects Cont.
Abstract
Do not have their own implementation. The elements of a CORBA object (interface, implementation, and location) are held rendered via other elements.
Implemented via a Servant
A servant is a block of code (usually an instance of a class) which implements the public interface of the CORBA object. Depending on the server policies, there may or may not be multiple instances of the servant and it may or may not be multi-threaded.
Configured in code or at server startup
Unlike COM+ and EJB the policies for a CORBA object which control things such as Security, threading, and persistence are not console configurable
Object Request Brokers (Orbs)
Responsible for all communication
Locating objects
Implementation specific
Known IOR(Inter-Object Reference)
Naming and Trading Services( DSN-like)
Transferring invocations and return values
Notifying other ORBs of hosted Objects
Must be able to communicate IDL invocations via IIOP
If an ORB is OMG compliant, then it is interoperable with all other OMG compliant ORBs
Additional ORB Services
Interface Repository
A Database of all of the IDL for compiled objects running on the ORB
Implementation Repository
A Database containing policy information and the implementation details for the CORBA objects running on the ORB
Load Balancing
Fail-over support
Security