Title: CORBA: An Overview
1CORBA An Overview
2Outline
- Motivation
- Introduction to CORBA
- Evolution of CORBA
- CORBA Core
- Interoperability and internetworking
- Conclusion
3Motivation
- Applications working under different environments
- Operating System
- Programming Language
- Distributed applications such as IP telephony
must communicate - Over different network protocols
- How can these applications work together?
4Interoperability Problem
Mac OS
Windows OS
Smalltalk IP Telephony Application
Java IP Telephony Application
?
?
Network architectures and standards (SIP, ISDN,
IP, ATM, etc)
Linux OS
C IP Telephony Application
5Introduction to CORBA
- Common Object Request Broker Architecture
- Interface Definition Language (IDL), Object model
and Object Request Broker (ORB) as key elements - Main idea provide standardized interfaces for
transparent requesting/providing of services
6Main Idea Behind CORBA
- Client requests service without knowing where
provider is and in what environment (programming
language, operating system) - Object provides service without knowing about the
clients environment or location
7Evolution of CORBA
Real-time Fault Tolerance
Horizontal, Vertical Facilities
Interoperability Networking
IDL, Object Model, ORB
8CORBA Object Model
9Schedule
- CORBA IDL
- Dynamic Invocation
- ORB Interface
- Object Adaptor
- Interoperability
- New features
10IDL
- IDL used to define service interface
- IDL is defined just like any programming
language - defines keywords (e.g. void)
- literals (e.g. character literal x)
- Identifiers (e.g. int numb)
- restrictions on these (e.g. identifier cant
start with a number)
11IDL Grammar
- IDL also defines a grammar
- IDL can then be mapped into executable
programming languages such as Java/C
12Schedule
- CORBA IDL
- Dynamic Invocation
- ORB Interface
- Object Adaptor
- Interoperability
- New features
13Dynamic Invocation and Skeleton
- IDL stub/skeleton not the only way to
request/provide services - What if we dont know about the interface at
compile time? But we know what service we want to
request? - Need Dynamic Invocation
14Dynamic Invocation
- Client defines signature of service name,
parameters, return value, context - ORB gives this to the object and object
determines which method to invoke - Useful for providing different interfaces for the
same service
15Dynamic Invocation Example
- Three telephone call charging policies
- Depending on originating/terminating location
- Depending on terminating location only
- Constant billing
16Schedule
- CORBA IDL
- Dynamic Invocation
- ORB Interface
- Object Adaptor
- Interoperability
- New features
17ORB Interface
- Provides common interfaces such as
- ORB operations shutdown, initialize
- Object operation are two objects equivalent?
- Policy operation deny/allow services
- Policy Management overriding policies
- ORB exceptions no implementation available
18Schedule
- CORBA IDL
- Dynamic Invocation
- ORB Interface
- Object Adaptor
- Interoperability
- New features
19Portable Object Adaptor
- Allow for multiple object implementations to
exist on server side (e.g. multiple billing
services for several companies)
VendorA Billing Service
VendorB Billing Service
Choose billing Service based on policy
20Schedule
- CORBA IDL
- Dynamic Invocation
- ORB Interface
- Object Adaptor
- Interoperability
- New features
21GIOP/IIOP
- Multiple vendors implementing ORBs
- A need for ORBs to interface with one another in
a standard way General Inter-ORB Protocol - GIOP generic protocol, no implementation
- IIOP (Internet Inter-ORB Protocol) is the TCP/IP
implementation of GIOP
22CORBA and Interoperability
Mac OS
Windows OS
Smalltalk IP Telephony Application
Java IP Telephony Application
ORB
ORB
GIOP
GIOP
Network architectures and standards (SIP, ISDN,
IP, ATM, etc)
Linux OS
ORB
C IP Telephony Application
23Schedule
- CORBA IDL
- Dynamic Invocation
- ORB Interface
- Object Adaptor
- Interoperability
- New features
24More Recent CORBA features
- Domains such as Transportation, Health Care,
Finance, etc. developed IDL interface common in
their domain - CORBA standardized these for the domains
- More recent CORBA versions include
- Real-time capabilities
- Fault-tolerance
25Conclusion
- There exist different environments in which
telephony applications operate - There is a need for these applications to be
interoperable - CORBA provides the standard way of doing so