CORBA CORBA
2
Introduction
CORBA (Common Object Request Broker Architecture) is a standard that enables an object written in one programming language, running on one platform to interact with objects across the network that are written in other programming languages and running on other platforms.
For example, a client object written in C++ and running under Windows can communicate with an object on a remote machine written in Java running under UNIX.
3
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).
4
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.
5
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.
6
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.
7
CORBA IntegrationsAn 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
Standard Call and Return
ClientApp. / Applet
IDLStub
ORB
Servant(Server)
Skeleton
ORBIIOP
POA
Client Call
Return Value
11
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
12
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
13
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 ObjectsCORBA OBJECT
(abstract)
Implementation Object(“CORBA” enabled)
Member ObjectLocal Server
Object
Local ServerObject
Implementation
16
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
17
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
18
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
19
Application in Software Projects
Rapid development of API’s Inter-language and operating
system operability Legacy system wrappers IIOP faster than HTTP Simplifies development of
distributed applications
20
Drawbacks
Lower Level than COM+/.NET/EJB Configuration in Code Steeper Learning Curve than other
solutions.
21
Object Management Architecture(OMA)
Center of all the activity undertaken by OMG
OMA specifies a range of architectural entities surrounding the core ORB, which is CORBA proper
Detailed specifications for each component and interface category is populated in OMA reference Model
22
CORBA Services
CORBA Services provides basic functionality, similar to the services that system library calls do in UNIX. Functions includes creating objects, controlling access to objects, keeping track of relocated objects and to consistently maintain relationship between objects.
23
Horizontal CORBA Facilities
Horizontal CORBA Facilities sit between the CORBA services and Application objects. These components providing support across an enterprise and across business. Four facilities: the Printing Facilities, the Secure Time Facilities, the Internationalization Facilities, and Mobile Agent Facilities.
24
Domain(Vertical) CORBA Facilities
Domain CORBA Facilities are the most exciting work at OMG. Define a standard interfaces for standard objects shared by companies within a specific vertical market(e.g. healthcare, manufacturing, finance). Now nine industries have their own OMG task force.
25
Three Benefits of using OMA
1. Coding is quicker, so application can be deployed sooner
2. Applications designed around discrete services have better architecture
3. Many OMA implementations have enterprise characteristics built in: they’re robust, and they scale
26
CORBA vs. DCOM
DCOM supports an object-oriented model, but differs substantially from classical OO models. DCOM object provides services through one or more distinct interfaces.
DCOM is lack of polymorphism, instead, it constructs application from binary components.
27
CORBA vs. JAVA/RMI
Some overlap between these two, both provide a viable means of building distributed applications.
CORBA is concerned with interfaces between objects and applications modeled as objects, Java is primarily concerned with the implementation of these objects.
28
CORBA vs. JAVA/RMI
JAVA/RMI systems fall short of seamless integration because of their interoperability requirements with other languages. JAVA/RMI system assumes the homogeneous environment of the JVM, which can only take advantage of Java Object Model.
Coexistence between CORBA and Java
29
The Future of CORBA
Much easier for developers to build and run client/server applications written in different languages using the IDL interface
Compute-domain benefits Functionality the same as if written to
sockets or some other RPC device Business-domain benefits
Allows rapid development of full service website
30
Compute-Domain Enhancements
in traditional business Remote access to all network
systems for employees. product descriptions pricing stock order placement customer credit data
Business works smarter, not harder
31
Business-Domain Enhancementsfor e-business
Builds on compute-domain work add web functionality to existing internal
network uses CORBA’s IDL to integrate new
processes Development and maintenance of
customer centered e-commerce site is still manageable for IT department.
Gives business time to sell product, not fix problems
32
Companies Using CORBA Today
AT&T Late 1990’s developed 20 to 40 systems
using CORBA for both internal and external access
Are certain development time for future projects will be greatly reduced by building reusable frameworks with the OMG
The Weather Channel Used CORBA and Linux System is reliable, low maintenance,
offers data logging Cut software development time from
months to weeks