0% found this document useful (0 votes)
50 views28 pages

Introduction To Middlewares: IIIT Course

This document provides an overview of CORBA (Common Object Request Broker Architecture). It discusses distributed computing challenges like heterogeneity, failures, and concurrency that motivated middleware standards. CORBA addresses these challenges using IDL (Interface Definition Language) to define object interfaces, an ORB (Object Request Broker) for communication, and services like naming, security, transactions, and events. Key CORBA concepts are explained, including stubs, skeletons, IIOP, and the POA (Portable Object Adapter) that manages server-side resources.

Uploaded by

Praveen Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views28 pages

Introduction To Middlewares: IIIT Course

This document provides an overview of CORBA (Common Object Request Broker Architecture). It discusses distributed computing challenges like heterogeneity, failures, and concurrency that motivated middleware standards. CORBA addresses these challenges using IDL (Interface Definition Language) to define object interfaces, an ORB (Object Request Broker) for communication, and services like naming, security, transactions, and events. Key CORBA concepts are explained, including stubs, skeletons, IIOP, and the POA (Portable Object Adapter) that manages server-side resources.

Uploaded by

Praveen Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 28

IIIT Course

Introduction To Middlewares

Lecture – CORBA
Presentation outline

>
Distributed Computing
>
Motivation (Why ? & What ? )
>
Common Design Challenges (How??)
>
Evolution of Middleware standards
>
CORBA
>
Composition of CORBA
>
Basic Understanding of terms ORB, IDL, GIOP, IIOP, POA
>
Other CORBA Extensions
Distributed Computing

• Why ?
– Problem inherently distributed
– Harness Unused Computation cycles
– The Internet WWW
• Design Challenges
– Heterogeneity (Integration Compatibility)
• Architecture, OS, Implementation Languages
– Partial Failures
• Local Failures, global resilience, and recovery
– Concurrency
• Action interleaving and interference
– Security
• Intrusion detection/prevention/repair; Privacy
Evolution of Standards

1) DCE (Distributed Computing Environment) by Open Software


Foundation (OSF),
1) Procedural school of thought
2) Object Orientation natural fit – Data Encapsulation etc..
2) CORBA - Common Object Request Broker Architecture.
3) Java RMI - EJB
4) Web Services


Not ordered by increasing power

None made obsolete by other. Combination often used.

Hence not really comparable to each other.
Overall Trend:
Increasing support for loose coupling
Separation of
Development, Deployment, Discovery, Integration
What is CORBA ?


Proposed by Object Management Group (OMG). A formed of 700
companies

Born in 1991

Major version CORBA 2.3 in 1998 Java Lang Mappings


Object model for distributed computations

It allows distributed, heterogeneous collection of objects to
interoperate

Platform independent architecture for client-server computing

Direct support for “asynchronous operation”

Additional Services for common functionality

Transaction, Naming, Event, Security .......
CORBA

• Components
– Interface Definition Language (IDL)
– ORB (Object Request Broker)
– POA (Portable Object Adaptor)

• Concepts
– IOR (Interoperable Object Reference)
– IIOP (Internet Inter-Orb Protocol)
– Stubs & Skels
– Client/Server
Architecture
CORBA usecase
• Given an object reference from a client, the
ORB locates the corresponding object
implementation (the server) on behalf of the
client.
• When the server is located, the ORB ensures
that the server is ready to receive the request.
Components of CORBA
Services in CORBA
IDL
CORBA - IDL

The services that an Object provides are
given by its interface

Interfaces are defined in OMG's Interface
Definition Language (IDL)

Object interfaces are programming
language independent

IDL defines language bindings for many
different programming languages

Stubs & Skels are generated from IDL

Benefits of using IDL


Interface - Contract between client and
server

Platform, Language independence

Modularity

Robustness - eliminate general
networking errors, declare exception
IDL - explained

Key Object communication language

Strongly typed declarative language

Rich set of data-types for describing
complex parameters

IDL compiler can generate code that
performs tedious, error prone and repetitive
tasks like:

establishing network connections

translating data structures into byte streams
(marshalling)

locating object implementations

invoking the right code to perform an operation
IDL - example

// IDL
module BankSimple {

interface Client {
oneway void notification (in boolean done,
in string explanation);
Number chooseNumber (in NumberList choices);
};

interface WorkFlowManager {
oneway void requestLine (in customerID customer,
in customerAddr address,
in Client cb);
oneway void installationComplete (in customerID customer,
in customerAddr address);

oneway void numberActivated(in boolean status);


};
};
CORBA – The ORB Core

• Provides Application level communication infrastructure


• Responsible for delivering requests and responses
• Provides location transparency of objects
IDL

IDL Compiler

Client Stub Server Skel


CORBA RUNTIME
Client Code Server Code
Portable Object Adapter (POA)

• A server communicates with the ORB through POA


• Transparent activation and deactivation of objects
• Manages server side resources by a set of policies
– Lifespan Policy
• Transient
• Persistent
– Thread Policy
– Request Processing Policy
– ...
• POA is just like any other service running on top an ORB
• Properties object to facilitate Inter ORB Communication
Interoperability

• Protocol
– IIOP
• TCP/IP based version of GIOP
– IOR
• A portable object reference format
– Specifies the “endpoint” of the object
– Has information to identify the target object on the server
– Message format & Protocols
• Standardized messages and message formats
– Request, Reply, CancelRequest, LocateResponse ...
• Standardized marshalling
– Common Data Representation (CDR)
CORBA Services – Naming

• Associates names with objects


• Can be used by clients to find servers
• Can be used by applications to create name bindings for later
lookup
CORBA Services – Security

• Authentication
– Assert a users identity
– PAM (pluggable authentication module) support
• Authorization
– Check if authenticated user has access to target object
– Access Control Lists (ACLs)
CORBA Services – Transaction

• Supports transactional objects


– Distributed 2-phase commit
• Client initiates transactions
• Target object aware of being executed in a transaction context
– Responds to request for commit and rollback
• Method invocation independent of transaction
CORBA Servces – Event

• Provides an asynchronous communication and notification


mechanism
• Suppliers – produce data
• Consumers – process data
• Event channel
– Intermediary object that decouples communication between supplier
and consumer
CORBA Services – Other

• Trader Service
– Find objects when name is not known
– Objects register with a set of properties
– Clients lookup for objects satisfying a property
• Concurrency
• Lifecycle
• Object Licensing
• ....
Questions?

You might also like