Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | giacomo-herrera |
View: | 30 times |
Download: | 1 times |
CORBA: An Overview
Mojtaba Hosseini
Outline Motivation Introduction to CORBA Evolution of CORBA CORBA Core Interoperability and internetworking Conclusion
Motivation 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?
Interoperability Problem
Linux OS
Windows OS
Java IP Telephony Application
C++ IP Telephony Application
Mac OS
Smalltalk IPTelephonyApplication
Network architectures and standards (SIP, ISDN, IP,
ATM, etc)
??
Introduction 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
Main Idea Behind CORBA
Interface compiled
into stub for client Interface compiled
into skeleton for object
Client: entity requesting service
Object: entity providing service
ORB takes requestfrom client
ORB informs objectof service
•Client requests service without knowing where provider is and in what environment (programming language, operating system)
•Object provides service without knowing about the client’s environment or location
Evolution of CORBA
CORBA 3.0
Facilities
Interoperability
CORBA Core
1991
1996
1998
1999
IDL, ObjectModel, ORB
InteroperabilityNetworking
Horizontal,VerticalFacilities
Real-timeFault Tolerance
CORBA Object Model
Schedule
CORBA IDL Dynamic Invocation ORB Interface Object Adaptor Interoperability New features
IDL 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
can’t start with a number)
IDL Grammar IDL also defines a grammar
IDL can then be mapped into executable programming languages such as Java/C++
Schedule
CORBA IDL Dynamic Invocation ORB Interface Object Adaptor Interoperability New features
Dynamic Invocation and Skeleton IDL stub/skeleton not the only way to
request/provide services What if we don’t know about the interface
at compile time? But we know what service we want to request?
Need Dynamic Invocation
Dynamic 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
Dynamic Invocation Example
Three telephone call charging policies: Depending on originating/terminating location Depending on terminating location only Constant billing
Client Dynamic InvocationInterface
Dynamic SkeletonInterface
charge(x,y)
Charge(y)
Charge()Client
charge(x,y)
charge(y)
Schedule
CORBA IDL Dynamic Invocation ORB Interface Object Adaptor Interoperability New features
ORB 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
Schedule
CORBA IDL Dynamic Invocation ORB Interface Object Adaptor Interoperability New features
Portable 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 ServiceChoose billing Service based on policy
Schedule
CORBA IDL Dynamic Invocation ORB Interface Object Adaptor Interoperability New features
GIOP/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
CORBA and Interoperability
Linux OS
Windows OS
Java IP Telephony Application
C++ IP Telephony Application
Mac OS
Smalltalk IPTelephonyApplication
Network architectures and standards (SIP, ISDN, IP,
ATM, etc)
ORB
ORB
ORB
GIOPGIOP
Schedule
CORBA IDL Dynamic Invocation ORB Interface Object Adaptor Interoperability New features
More 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
Conclusion 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