The Architecture of CORBA: (Common Object Request Broker
The Architecture of CORBA: (Common Object Request Broker
Agenda
¾ Motivation
• The Broker Architecture
• CORBA Architecture
• ORB-Interoperability
• Conclusion
• Book-References
03/06/2002 2
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
03/06/2002 3
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
03/06/2002 4
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
so we want an architecture
that…
…supports a remote method invocation paradigm
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()
+ callService()
* + registerService()
* + callService()
+ findServer()
Bridge
+ packData()
+ unpackData()
+ transmitMessage()
03/06/2002 7
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
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
• 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
ORB
ORB Server
Clients
03/06/2002
ORB-Server 11
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
03/06/2002 12
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
• Open Architecture:
Language-neutral Interface Definition Language (IDL)
Language, platform and location transparent
03/06/2002 13
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
Object
03/06/2002 14
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
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
DII
Dynamic Invocation Interface(DII): used for
Interface dynamically invoking CORBA objects that
were not known at implementation time
03/06/2002 18
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
IDL -InterfaceDefinitionLanguage
• “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
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
IDL
Definition
IDL
Compiler
idltojava remotetime.idl
_ExactTimeStub _ExactTimeImplBase
implements
ExactTime
Interface
ExactTime
03/06/2002 22
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
03/06/2002 23
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
obtain reference to
naming service
assign name to
server object reference
03/06/2002 24
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
obtain reference to
naming service
request services…
03/06/2002 25
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
Java Java
Compiler Compiler
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
between objects
between programming languages
between computers
between ORBs
03/06/2002 28
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
Server
Client
ORB_1- ORB_2-
ORB_1 Protocol
Bridge Protocol
ORB_2
03/06/2002 29
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
dataFormat
messageFormat
TCP/IP
03/06/2002 30
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
03/06/2002 31
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
03/06/2002 32
Distributed Computing CORBA-Architecture Speaker: Oliver Mueller
•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
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