28
Introduction to CORBA Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie Mellon University

Introduction to CORBA Organizational Communications and Technologies Prithvi N. Rao H. John Heinz III School of Public Policy and Management Carnegie

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Introduction to CORBA

Organizational Communications and Technologies

Prithvi N. RaoH. John Heinz III School of Public

Policy and ManagementCarnegie 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 RevisitedOSI Model Revised Model

Application

Presentation

Session

Transport

Network

Data Link

Physical

Religion

Politics

Finance

Environment

Stacks

Interfaces

Substrates

Evolution of the Software Bus

Remote Msgs Remote Procedure Distributed Objects

LPC

IPC

UDP/TCP

DDE

DLL

OLE1.0

NCS RPC

ONC RPC

SHL RRBC

ONC+

DCE

OLE2.0 DCOM

CORBA/IIOP

JAVA/RMI

COM/CORBA

Terms

Abbreviation Name Purpose

LPC

UDP

TCP

IPC

SHL

RRBC

DDE

DLL

OLE 1.0

Local Procedure Call Parameterized code segments

User Datagram Protocol Intermachine messaging

Transmission Control ProtocolReliable delivery of UDP messages

Inter-process CommunicationMessaging 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 EmbeddingExtension of DDE for windows events

Terms

Abbreviation Name Purpose

COM

DCOM

RPC

NCS RPC

ONC RPC

CORBA

IIOP

RMI

SNMP

Component Object ModelExtension DLL/C++ supporting versioning

Distributed COM Extension of OLE2.0 supporting IPC

Remote Procedure Call Proxies making RPC look like LPC

Network Computing ServiceApollo’s inter-machine marshalling

Open Network ComputingSun’s inter-machine marshallingCommon Object RequestBroker Architecture Extends NCS/DCE for dist. Object comm.

Internet Inter-ORB ProtocolCORBA 2.0 standard marshalling protocol

Remote Method InvocationDist. Java-java ipc marshalling protocol

Simple Network ManagementProtocol

Remote attribute query mechanism

Software Interconnect Bus

Software Interconnect Bus

Application Objects Common Facilities

Services

Distributed Objects

Objects + Remote Procedure Calls + Threaded Execution

CORBA brings together three technologies

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 + Remote Procedure Calls + Threaded Execution

InheritanceEncapsulationPolymorphism

DistributionHeterogeneityProcedural Model

ConcurrencyPrioritiesPre-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

CLIENTObject

Implementation

Object Request Broker

Dynamic II IDL Stubs ORB Interface

IDL Skeleton

Object Adapter

Op(args)

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)

Client Server

RuntimeSystem

Application Code

Client stub generatedby IDL compiler

Server Code

Server stub generatedby IDL compiler

Runtime System

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