Corba: Team 12 Jean Lefever Brian Podolny Teresa Chang Russ Weitz
Corba: Team 12 Jean Lefever Brian Podolny Teresa Chang Russ Weitz
Team 12
Jean Lefever
Brian Podolny
Teresa Chang
Russ Weitz
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.
2
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).
3
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.
4
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.
5
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.
6
CORBA Integrations
An implementation of CORBA has been
integrated into Netscape browsers.
7
Standard Call and Return
Servant
Client (Server)
App. / Applet
Skeleton
IDL
Stub
POA
Client Call
Return Value
CORBACORBA Architecture
Three-tier CORBA Architecture
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
11
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
12
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.
13
Steps to Write a CORBA Object in
Java
Client / Server CORBA
Objects
CORBA OBJECT
(abstract)
Implementation
Implementation Object
(“CORBA” enabled)
Local Server
Member Object
Object
Local Server
Object
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
16
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
17
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
18
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
19
Drawbacks
Lower Level than COM+/.NET/EJB
Configuration in Code
Steeper Learning Curve than other
solutions.
20
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
21
OMA Reference Model
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
Application Objects
Topmost part of the OMA hierarchy.
Provide access to application objects
that can invoke methods on remote
objects through ORB. Application is built
from a large number of basic object
classes, new classes can be generated
or specified provided by CORBA
services.
Standardization is not required.
26
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
27
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.
28
CORBA vs. DCOM
The major difference is CORBA is an
open specification. DCOM has the
potential to evolve at a faster rate than
CORBA because the politics will be
simpler.
CORBA can be deployed far more widely
than DCOM and runs in most current OS
environment, while DCOM is running
almost exclusively in the Windows
environment.
29
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.
30
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
31
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
32
Compute-Domain
Enhancements
in traditional business
Remote access to all network
systems for employees.
product descriptions
pricing
stock
order placement
34
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
35
Companies Using CORBA
Today
Raytheon Company
Needed to update its complex real-time
distributed system
Built new system using C++ and CORBA
Ready to build next generation system
36
Companies with Plans to
Develop Using CORBA
Chase Manhattan Bank
Plans to develop wholesale banking service
Will use CORBA and Java-based middleware
Further plans to introduce Java-based mortgage
application service as well as integration with
third-party applications possibly by year’s end
Nokia Telecommunications
Combining use of Orbix and CORBA to continue
enhancing products and manage value added
services based on a common architecture.
37
NOKIA
“Nokia’s decision [to use CORBA]
highlights the continuing adoption of
CORBA and is recognition of the fast,
effective, scaleable and open approach
to the development of powerful,
intelligent, mission-critical network
services that CORBA offers.”
38
References
www.oma.org
www.corba.org
developer.java.sun.com/developer/
onlineTraining/corba
39