0% found this document useful (0 votes)
24 views37 pages

The Architecture of CORBA: (Common Object Request Broker

The document discusses the Common Object Request Broker Architecture (CORBA) which provides a standard way for objects to make requests and receive responses in a distributed computing environment. It covers the motivation for CORBA, the broker architecture, and key aspects of the CORBA architecture such as the Object Request Broker (ORB), interfaces, location transparency, and the Interface Definition Language (IDL).
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 PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views37 pages

The Architecture of CORBA: (Common Object Request Broker

The document discusses the Common Object Request Broker Architecture (CORBA) which provides a standard way for objects to make requests and receive responses in a distributed computing environment. It covers the motivation for CORBA, the broker architecture, and key aspects of the CORBA architecture such as the Object Request Broker (ORB), interfaces, location transparency, and the Interface Definition Language (IDL).
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 PDF, TXT or read online on Scribd
You are on page 1/ 37

Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

The Architecture of CORBA

(Common Object Request Broker


Architecture)
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Agenda
¾ Motivation
• The Broker Architecture
• CORBA Architecture
• ORB-Interoperability
• Conclusion
• Book-References

03/06/2002 2
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Distributed applications cause


a lot of problems
•Participating systems may be heterogeneous

•Access to remote services has to be location


transparent
•State of objects has to be kept persistent and
consistent
•Remote objects have to be found and activated
•Security has to be dealt with

03/06/2002 3
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Distributed application have a


lot of advantages
•Scalability
–Server replication
–Thin, heterogeneous clients
•Re-usability

•Partitioned functionality = easy updating of


either clients or servers

03/06/2002 4
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

so we want an architecture
that…
…supports a remote method invocation paradigm

…provides location transparency

…allows to add, exchange, or remove services dynamically

…hides system details from the developer

03/06/2002 5
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Agenda
9Motivation
¾ The Broker Architecture
• CORBA Architecture
• ORB-Interoperability
• Conclusion
• Book-References

03/06/2002 6
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Broker Architecture
Server
Client
+ runService()
+ sendRequest()
+ initialize()

ClientSideProxy Broker ServerSideProxy

+ callService()
* + registerService()
* + callService()
+ findServer()

Bridge

+ packData()
+ unpackData()
+ transmitMessage()
03/06/2002 7
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Broker Architecture Sequence


Diagram

03/06/2002 8
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Agenda
9Motivation
9The Broker Architecture
¾ CORBA Architecture
• ORB-Interoperability
• Conclusion
• Book-References

03/06/2002 9
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

ORB – Object Request Broker


What is an ORB?
• Highway over which all CORBA-communication occurs

The ORB is responsible for:

• Data marshaling
• Object location management
• Delivering request to objects
• Returning output values back to client

03/06/2002 10
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Example for a CORBA-


Architecture

ORB
ORB Server

Clients
03/06/2002
ORB-Server 11
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA - Common Object


Request Broker Architecture
• CORBA is a standard (not a product!)

• allows objects to transparently make requests and


receive responses

• enables interoperability between different applications


ƒ on different machines
ƒ in heterogeneously distributed environments

03/06/2002 12
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA design goals


• Independence of
ƒ hardware platform
ƒ programming language
ƒ operating system
ƒ specific Object Request Broker
ƒ degree of object distribution

• Open Architecture:
ƒ Language-neutral Interface Definition Language (IDL)
ƒ Language, platform and location transparent

03/06/2002 13
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA works with interfaces


IDL-Interface

Object

• all CORBA Objects are encapsulated

• Objects are accessible through interface only

• Separation of interfaces and implementation


enables multiple implementations for one interface

03/06/2002 14
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA is Location Transparent


For the client it doesn’t matter if the object he is
operation on is running…
• on the same processor and even in the same
process
• on the same processor, in a different process
• in different process on another processor

CLIENT
Object Object Object

03/06/2002 15
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA Architecture

Client Implementation

Implementation
Repository
Interface

Interface
IDL DII ORB BOA IDL
Stub Interface Interface
DSI Interface Skeleton

ORB

03/06/2002 16
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA ORB Interfaces


ORB ORB interface: contains functionality that might
Interface be required by clients or servers

DII
Dynamic Invocation Interface(DII): used for
Interface dynamically invoking CORBA objects that
were not known at implementation time

Dynamic Skeleton Interface(DSI): helps to


DSI implement generic CORBA servants

Basic Object Adapter(BOA): API used by the


BOA
Interface
servers to register their object
implementations
03/06/2002 17
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

IFR - Interface Repository


Registry of fully qualified interface definitions
Repository

• provides type information necessary to


Interface

issue requests using the DII

03/06/2002 18
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

IDL -InterfaceDefinitionLanguage

• Specifies the Interfaces

• is programming-language independent and


does only contain data descriptions

• “Esperanto” of software

03/06/2002 19
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

IDL-Compiler
translates the IDL-specifications into
• IDLstubs (client-side)
• IDL-skeletons (server-side)
in the desired programming language

IDL-File

IDL-
COMPILER

Stub code Skeleton code


03/06/2002 20
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Steps to develop a
CORBA-Application
1.Writing the IDL source

IDL
Definition >>Interface<<
ExactTime

getTime()

03/06/2002 21
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

2.Creating stubs and skeletons

IDL
Definition

IDL
Compiler
idltojava remotetime.idl

Stub Source Skeleton Source

_ExactTimeStub _ExactTimeImplBase
implements
ExactTime
Interface
ExactTime
03/06/2002 22
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

3.Implementing the server

03/06/2002 23
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

start up the ORB

create server object

register with ORB

obtain reference to
naming service

assign name to
server object reference

03/06/2002 24
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

4.Implementing the client

start up the ORB


(this time on client-side)

obtain reference to
naming service

create object reference


to servant object

request services…

03/06/2002 25
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Client Servant Object


Implementation Implementation

Client Stub Source


Object
Skeleton Source Implementation
Program
Source Source

Java Java
Compiler Compiler

Client Program Object Implementation

03/06/2002 26
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Agenda
9Motivation
9The Broker Architecture
9CORBA Architecture
¾ ORB-Interoperability
• Conclusion
• Book-References

03/06/2002 27
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

ORB Interoperability
Interoperability: ability of distinct hard- or
software components to interoperate

different forms of interoperability:

ƒ between objects
ƒ between programming languages
ƒ between computers
ƒ between ORBs

03/06/2002 28
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Possibilities for ORB-interoperability:

• all ORBs support a common protocol (GIOP)


IIOP
ORB_1 ORB_2

Server
Client

• every ORB uses it‘s own protocol,


bridges are used to transfer the protocols

ORB_1- ORB_2-
ORB_1 Protocol
Bridge Protocol
ORB_2

03/06/2002 29
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

If two ORBs cooperate, they need a common


language

General Inter-ORB Protocol (GIOP)

dataFormat
messageFormat

Internet Inter-ORB Protocol(IIOP)

TCP/IP

03/06/2002 30
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

IIOP - Internet Inter-ORB Protocol

• standard communication protocol between ORBs


• describes how agents open TCP/ IP connections
and use them to transfer GIOP messages
• Specifies common format for:
ƒ object references, known as the Interoperable
Object Reference (IOR)
ƒ Messages exchanged between a client and the
object

03/06/2002 31
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

RMI – Remote Method Invocation


Basic architecture

03/06/2002 32
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

CORBA vs. RMI


•RMI is simpler to work with

•RMI interfaces are defined in Java. •CORBA interfaces are defined in


RMI-IIOP allows you to write all IDL
interfaces in Java

•RMI was designed for a single •CORBA is language independence


language where all objects are written
in Java

•RMI objects are garbage collected •CORBA objects are not garbage collected
automatically

03/06/2002 33
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Agenda
9Motivation
9The Broker Architecture
9CORBA Architecture
9ORB-Interoperability
¾ Conclusion
• Book-References

03/06/2002 34
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Advantages of CORBA
• CORBA allows methods on a remote object to be
accessed as if they were on the local machine

• CORBA is a mature technology, support and tools


are widely available

• Can deal with heterogeneous systems

• Legacy-systems can be integrated

03/06/2002 35
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Agenda
9Motivation
9The Broker Architecture
9CORBA Architecture
9ORB-Interoperability
9Conclusion
¾ Book-References

03/06/2002 36
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller

Book references
• Alan Pope: The CORBA Reference Guide, Addison
Wesley, 1997
• CORBA 2.0 – Praktische Einführung für C++ und
Java, Addison Wesley, 1996
• Buschmann et al.: Pattern-Oriented Software
Architecture (Vol.1), Wiley, 1996
• Bill McCarty, Luke Cassady-Dorion: Java Distributed
Objects, SAMS, 1998
• Bruce Eckel: Thinking in Java (2nd edition), Prentice
Hall, 2000

03/06/2002 37

You might also like