Introduction To Middlewares: IIIT Course
Introduction To Middlewares: 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
•
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
➢
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);
IDL Compiler
• 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
• 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
• 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?