Team 12: CORBA
Download
Report
Transcript Team 12: CORBA
CORBA
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-forprofit 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.
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.
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.
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
7
Standard Call and Return
Servant
(Server)
Client
App. / Applet
Skeleton
IDL
Stub
ORB
Client Call
Return Value
POA
IIOP
ORB
CORBACORBA Architecture
Three-tier CORBA Architecture
The Primary Elements
IDL
Client / Server CORBA Objects
Abstract objects based upon a concrete
implementation
ORBs
Interface Definition Language
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
Object
Member Object
Local Server
Object
Client / Server CORBA
Objects Cont.
Abstract
Implemented via a Servant
Do not have their own implementation. The
elements of a CORBA object (interface,
implementation, and location) are held
rendered via other elements.
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 multithreaded.
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
Implementation Repository
A Database of all of the IDL for compiled
objects running on the ORB
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.
2.
3.
Coding is quicker, so application
can be deployed sooner
Applications designed around
discrete services have better
architecture
Many OMA implementations have
enterprise characteristics built in:
they’re robust, and they scale
27
CORBA vs. DCOM
DCOM supports an objectoriented 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
customer credit data
Business works smarter, not
harder
33
Business-Domain
Enhancements
for 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
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.”
Colin Newman, VP Marketing at IONA
(Developers of the Orbix ORB)
38
References
www.oma.org
www.corba.org
developer.java.sun.com/developer/
onlineTraining/corba
39