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