Introduction to CORBA

advertisement
Introduction to CORBA
Organizational Communications and
Technologies
Prithvi N. Rao
H. John Heinz III School of Public
Policy and Management
Carnegie Mellon University
Readings
Posting on the Class Web Site
Objectives

Understand goals of distributed object
technology

Examine evolution of Software Bus

Cite CORBA challenges

Review OO support in CORBA
Seven Layer Model Revisited
OSI Model
Revised Model
Application
Religion
Presentation
Politics
Session
Transport
Finance
Environment
Network
Stacks
Data Link
Interfaces
Physical
Substrates
Evolution of the Software Bus
Remote Msgs
Remote Procedure
Distributed Objects
DLL
LPC
DDE
OLE1.0
DCE
NCS RPC
ONC RPC
ONC+
UDP/TCP
IPC
OLE2.0
SHL
DCOM
COM/CORBA
CORBA/IIOP
RRBC
JAVA/RMI
Terms
Abbreviation
Name
LPC
Local Procedure Call
UDP
User Datagram Protocol
TCP
Transmission Control Protocol
IPC
SHL
RRBC
DDE
DLL
OLE 1.0
Purpose
Parameterized code segments
Intermachine messaging
Reliable delivery of UDP messages
Inter-process Communication Messaging between processes
Shared Library/Object
Dynamic Linking of shared code
Release to release binary compat. Support for versioning of shared Libs.
Dynamic data exchange
uSoft’s messaging between procs.
Dynamic Link Library
uSoft’s shared library/object
Object Linking and Embedding
Extension of DDE for windows events
Terms
Abbreviation
COM
DCOM
RPC
Name
Purpose
Component Object Model
Distributed COM
Remote Procedure Call
Extension DLL/C++ supporting versioning
Extension of OLE2.0 supporting IPC
Proxies making RPC look like LPC
NCS RPC
Network Computing Service Apollo’s inter-machine marshalling
ONC RPC
Open Network Computing
Common Object Request
Broker Architecture
CORBA
IIOP
RMI
SNMP
Sun’s inter-machine marshalling
Extends NCS/DCE for dist. Object comm.
Internet Inter-ORB Protocol CORBA 2.0 standard marshalling protocol
Remote Method Invocation Dist. Java-java ipc marshalling protocol
Simple Network Management
Protocol
Remote attribute query mechanism
Software Interconnect Bus
Application Objects
Common Facilities
Software Interconnect Bus
Services
Distributed Objects
CORBA brings together three technologies
Objects + Remote Procedure Calls + Threaded Execution
Why do we care?


Interested in heterogeneous distributed application
development
Advanced complexity of applications




Security
Transactions
Naming
Open standard development
Distributed Objects:
Combining Three Technologies
Objects
Inheritance
Encapsulation
Polymorphism
+
Remote Procedure Calls
Distribution
Heterogeneity
Procedural Model
+
Threaded Execution
Concurrency
Priorities
Pre-emption
The Basic Idea

Take an Object

Make it distributable

Make it distributed
Terminology

Distributed
Objects and components are dispersed across processes that may exist on the
same machine or located across machines on a network.

Heterogeneous
Application whose parts are located on machine that vary by hardware or by
operating system or by programming language.

Object-Oriented
Applications written using objects.
CORBA Challenges

Presents two challenges of developing distributed
systems



Making distributed application development no more difficult
than developing centralized programs
Providing an infrastructure to integrate application
components into a distributed application
Challenges are easier said than done due to:




Partial failures
Impact of latency
Load balancing
Event ordering
General ORB Structure
Op(args)
Object
Implementation
CLIENT
IDL Skeleton
Dynamic II
IDL Stubs
ORB Interface
Object Request Broker
Object Adapter
CORBA Interface Definition
Language (IDL)

OMG IDL is an object-oriented interface definition
language



Used to specify interface containing methods and attributes
OMG IDL support interface inheritance both single and
multiple inheritance
OMG IDL is designed to map onto multiple
programming languages

C, C++, Smalltalk, COBOL, Modula 3, DCE
OMG IDL Compiler

OMG IDL compiler generates client stubs and server
skeletons

Stubs and skeletons automate the following activities in
conjunction with the ORB





Client proxy factories
Parameter marshalling and unmarshalling
Implementation class interface generation
Object registration and activation
Object location and binding
Requesting Service Using
CORBA (and DCE)
Application Code
Client stub generated
by IDL compiler
Runtime
System
Client
Server Code
Server stub generated
by IDL compiler
Runtime System
Server
CORBA Services (OMG
specified)

Services essential for implementing objects




Concurrency control service protects integrity of an object’s
data when multiple requests to object are processed
concurrently
Event service that supports notification of interested parties
when program-defined events occur
Externalization service that supports conversion of object
state to a form that can be transmitted between systems by
means other than a request broker
Life Cycle service that support creation, copying, moving and
destruction of objects
CORBA Services (OMG
specified)




Naming service that permits object reference to be retrieved through
associations between names and objects and for those associations to
be created and destroyed
Persistent Object service that supports persistence of an object’s state
when the object is not active in memory and between application
executions.
Query service that supports operations on sets and collections of
objects.
Relationship services that provides for creating, deleting, navigating
and managing relationships between objects

Containment relationship between a “folder” object and “document” objects
contained in that folder.
CORBA Services (OMG
Specified)

Transaction service provides support for ensuring that a
computation consisting of one or more operations on one or
more objects satisfies the requirements of:



Atomicity in case of failure
Isolation – transactions run concurrently but results are the same
as if they ran serially
Durability – result of successful transaction is never lost
CORBA Services (OMG
specified)





Security service that supports authentication, authorization, integrity
and privacy to degrees and using mechanisms yet to be determined.
Time service that provides synchronized clocks to all objects regardless
of location.
Collection service that support creation and manipulation of collections
of objects.
Replication service that would provide for the explicit replication of
objects in a distributed environment for the purpose of fault tolerance
and for management of consistency of replicated copies.
Trader service that provides matchmaking service between clients
seeking services and objects offering services
CORBA and Object Oriented
Support

Encapsulation
Data and functions manipulating data are
“encapsulated” in object. This enforces data hiding
since the only way to access an object’s data is
through the operations in the object’s public
interface.
CORBA and Object Oriented
Support

Abstraction
Abstraction of common features shared by objects in
classes. A class definition describes the data
associated with each instance of the class, defines
the set of operations that can be invoked on an
instance of the class and prescribes the functions
that are executed in response to requests for those
operations.
CORBA and Object Oriented
Support

Inheritance
Inheritance of interfaces and implementations. This is
the mechanism that supports the specialization or
refinement of classes into subclasses. It is also one
example of reuse inn object-oriented programming.
CORBA and Object Oriented
Support

Polymorphism
Polymorphism is the ability for a request to specific
operation to be handled differently depending on the
type of object on which it is invoked.
Example: subclasses of a common superclass may
override functions defined by the superclass to
differentiate how instances of the subclasses and
superclass behave.
CORBA and Object Oriented
Support


Creation of new objects and classes
Late binding of operation invocations to function calls
allow programs to be written without regard for types
objects they will manipulate
Summary

Examined evolution of distributed object technology

Introduced CORBA services

Examined OO support in CORBA
Download