corba overview and advanced programming issues 1998 ctit, nikolay diakov 1 table of contents...
TRANSCRIPT
![Page 1: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/1.jpg)
CORBAOverview and Advanced Programming Issues
1998 CTIT, Nikolay Diakov
11
Table Of Contents
• Introduction
• OMG, OMA, CORBA Object Model
• CORBA
• Introspection
• ORB Interoperability
• Run-time features, Fault-tolerance and Component Model
• CORBA 3.0
Part 1 Part 2
• Simple Application
• IDL to Programming Language mapping
• Advanced Programming Issues
Appendix• Look into the IDL
![Page 2: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/2.jpg)
CORBAOverview and Advanced Programming Issues
1998 CTIT, Nikolay Diakov
22
Part 1. Overview
• Proprietary systems
• Networks with proprietary protocols
• Open systems and standardized communication protocols
![Page 3: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/3.jpg)
Introduction
1998 CTIT, Nikolay Diakov
33
• Object Management Group (OMG)
• Common Object Request Broker Architecture (CORBA)
• Object Management Architecture (OMA)
![Page 4: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/4.jpg)
OMG
1998 CTIT, Nikolay Diakov
44
• Founded April 1989.
• Largest software consortium in the world
• It has 800+ participants• Small staff (27 full time); no internal development. Offices in U.S.A., Germany, Japan, U.K, Australia, India.
• Dedicated to creating and popularizing object-oriented standards for application integration based on existing technology.
![Page 5: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/5.jpg)
Common Object Request Broker Architecture
1998 CTIT, Nikolay Diakov
55
![Page 6: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/6.jpg)
CORBA
1998 CTIT, Nikolay Diakov
66
CORBA bus
App1App2
App3
AppX
![Page 7: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/7.jpg)
Object Management Architecture
1998 CTIT, Nikolay Diakov
77
![Page 8: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/8.jpg)
OMA
1998 CTIT, Nikolay Diakov
88
Application Objects
Object Request Broker
ObjectServices
CommonFacilities
Object Management Architecture
![Page 9: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/9.jpg)
OMA
1998 CTIT, Nikolay Diakov
99
• System oriented components
• Object Request Brokers
• Object Services
Application Objects
Object Request Broker
ObjectServices
CommonFacilities
![Page 10: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/10.jpg)
OMA
1998 CTIT, Nikolay Diakov
1100
• System oriented components
• Object Request Brokers
• Object Services
• Application oriented components
• Application Objects
• Common Facilities
Application Objects
Object Request Broker
ObjectServices
CommonFacilities
![Page 11: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/11.jpg)
OMA
1998 CTIT, Nikolay Diakov
1111
• System oriented components
• Object Request Brokers
• Object Services
• Application oriented components
• Application Objects
• Common Facilities
• Horizontal
• Vertical
Application Objects
Object Request Broker
ObjectServices
CommonFacilities
![Page 12: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/12.jpg)
OMG Object Model (OM)
1998 CTIT, Nikolay Diakov
1122
![Page 13: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/13.jpg)
OMG Object Model (OM)
1998 CTIT, Nikolay Diakov
1133
• Object– Combines Functionality and Data – Typically represents a real-world object– Has a well-defined interface (Through IDL)– and an “object reference” or address– Follows basic OO principles:
• Encapsulation Inheritance
• PolymorphismInstantiation
![Page 14: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/14.jpg)
OMG Object Model (OM)
1998 CTIT, Nikolay Diakov
1144
Consists of• Core Object Model
• Components
• Profiles
GoalsApplication portability
Object level
Design level
Source code level
Interoperability
![Page 15: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/15.jpg)
CORBA Object Model
1998 CTIT, Nikolay Diakov
1155
• Based on OMG/OM
• Goes concrete on the technology - interaction between clients and servers
Concepts
clients
requests
operations
Interfaces and attributes
![Page 16: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/16.jpg)
CORBA Object Services
1998 CTIT, Nikolay Diakov
1166
![Page 17: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/17.jpg)
CORBA Object Services
1998 CTIT, Nikolay Diakov
1177
•Access to object references• Naming Service
• Object Trader Service
• Notification of significant events of change of state
• Event Service
• Notification Service
• Support of transactional semantics
• Transaction Service
•Access to object references• Naming Service
• Object Trader Service
• Notification of significant events of change of state
• Event Service
• Notification Service
• Support of transactional semantics
• Transaction Service
•Support for secure interoperability
• Object Security Service
• Licensing Service
• Other• Life Cycle Service
• Persistence Service
• Concurency Control Service
• Time Service
•Support for secure interoperability
• Object Security Service
• Licensing Service
• Other• Life Cycle Service
• Persistence Service
• Concurency Control Service
• Time Service
![Page 18: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/18.jpg)
CORBA Interface Definition Language
1998 CTIT, Nikolay Diakov
1188
![Page 19: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/19.jpg)
CORBA IDL
1998 CTIT, Nikolay Diakov
1199
OMG/ISO IDL (Interface Definition Language) Separates the Interface from the Implementation
• multiple-inheritance, strongly typed, public interface specification language;
• independent of any particular language/compiler;
• mappings will be provided for many languages/compilers;
• not a programming language.
Enables Interoperability
![Page 20: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/20.jpg)
CORBA IDL
1998 CTIT, Nikolay Diakov
2200
I D L
I D L
I D L
I D L
I D L
I D L
ORB
C
C++
COBOL
Ada
Smalltalk
More
Client Side Object Implementation
Side COBOL
C
Ada
C++
Smalltalk
More
I D L
I D L
I D L
I D L
I D L
I D L
ORB
![Page 21: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/21.jpg)
CORBA - UML and MOF
1998 CTIT, Nikolay Diakov
2211
•Unified Modeling Language - enables visual modeling and analysis
•Metadata Object Facility - provides a standard repository for metadata within the CORBA architecture
![Page 22: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/22.jpg)
CORBA For Developers
1998 CTIT, Nikolay Diakov
2222
Develop Clients and Servers Independently using the Best Tools for Each Task
Develop Clients and Servers Independently using the Best Tools for Each Task
CORBA Services and CORBA Facilities accessed via standard OMG IDL Interfaces
CORBA Services and CORBA Facilities accessed via standard OMG IDL Interfaces
• CORBA provides a sophisticated base for software
development
• CORBA Services provide necessary OO foundation
• CORBA Facilities standardize building blocks
• Developers create or assemble Application Objects
Much more than Client-Server
![Page 23: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/23.jpg)
CORBA For Users
1998 CTIT, Nikolay Diakov
2233
• Purchase Server Objects from Multiple Vendors and Integrate Under One or More Client Applications
• Seamlessly Integrate In-House and Purchased Objects
• Acquire & Maintain a Single Set of Business Objects Accessed by the Entire Enterprise
• Each Division Accesses These Common Objects Using a GUI Built for its Own Needs
![Page 24: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/24.jpg)
CORBA Essential
1998 CTIT, Nikolay Diakov
2244
![Page 25: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/25.jpg)
CORBA
1998 CTIT, Nikolay Diakov
2255
ClientObject
Implementation
ORB
With IDL the interface definition is separated from the implementation
With IDL the interface definition is separated from the implementation
![Page 26: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/26.jpg)
CORBA
1998 CTIT, Nikolay Diakov
2266
ClientObject
Implementation
ORB
Defining the Object’s interface in the OMG IDL creates a language independent API for the Object
Defining the Object’s interface in the OMG IDL creates a language independent API for the Object
![Page 27: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/27.jpg)
CORBA
1998 CTIT, Nikolay Diakov
2277
ClientObject
Implementation
ORB
Objects may be written in programming languages -- C, C++, Java, Smalltalk, Ada, COBOL, Visual Basic, or might be Wrapped Legacy Applications, Tool-Generated Objects, or Objects purchased from
Vendors.
Objects may be written in programming languages -- C, C++, Java, Smalltalk, Ada, COBOL, Visual Basic, or might be Wrapped Legacy Applications, Tool-Generated Objects, or Objects purchased from
Vendors.
•C++
•Java
•Pascal
•Ada
![Page 28: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/28.jpg)
CORBA
1998 CTIT, Nikolay Diakov
2288
ClientObject
Implementation
ORB
The same IDL defines the Client Side API.The same IDL defines the Client Side API.
![Page 29: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/29.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
2299
![Page 30: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/30.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3300
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 31: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/31.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3311
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 32: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/32.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3322
Client• The Client invokes operations
• The invocation is transparent in terms of
• runtime environment
• location
• implementation language
• The Client invokes operations
• The invocation is transparent in terms of
• runtime environment
• location
• implementation language
![Page 33: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/33.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3333
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 34: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/34.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3344
ObjectImplementation
• Implements the interface
• Can be written in any programming language
• Can be independent to the ORB implementation
![Page 35: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/35.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3355
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 36: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/36.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3366
IDLstubs
IDLskeleton
• The stub is the part to include into the client project.• The stub is the part to include into the client project.
Both generated from the same IDL interface
• The skeleton is the part to include into the server project.
• The skeleton is the part to include into the server project.
Both provide the mapping to the particular programming language
![Page 37: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/37.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3377
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 38: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/38.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3388
ORB interface
ORB is a logical entity that may be implemented in various ways. To hide implementation details from the applications, the CORBA specification defines an abstract interface for an ORB. This interface provides a variety of helper functions.
ORB is a logical entity that may be implemented in various ways. To hide implementation details from the applications, the CORBA specification defines an abstract interface for an ORB. This interface provides a variety of helper functions.
![Page 39: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/39.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
3399
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 40: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/40.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
4400
DII DSI
• Provides dynamic access to the request scheme of the ORB
• No stub specific bindings
• Allows deferred synchronous and oneway requests
• Provides dynamic access to the request scheme of the ORB
• No stub specific bindings
• Allows deferred synchronous and oneway requests
• Allows request to go to implementations that does not have compile-time knowledge about the interface they implement
• Allows request to go to implementations that does not have compile-time knowledge about the interface they implement
![Page 41: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/41.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
4411
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 42: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/42.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
4422
Object Adapter
• Object Activation
• Delivering the requests to the particular implementation
• CORBA 3.0 standardizes Portable Object Adapters
• Object Activation
• Delivering the requests to the particular implementation
• CORBA 3.0 standardizes Portable Object Adapters
![Page 43: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/43.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
4433
Client
ORBDII
IDLstubs
ORB interface IDLskeleton
DSI
Object Adapter
GIOP/IIOP ORB CORE
ObjectImplementation
![Page 44: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/44.jpg)
CORBA Introspection
1998 CTIT, Nikolay Diakov
4444
GIOP/IIOP ORB CORE
Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments.
Provides a mechanism for transparently communicating client requests to target object implementations. The ORB simplifies the distributed environments.
![Page 45: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/45.jpg)
CORBA Interoperability
1998 CTIT, Nikolay Diakov
4455
![Page 46: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/46.jpg)
CORBA Interoperability
1998 CTIT, Nikolay Diakov
4466
•There are different hardware platforms;
• There are different operating systems;
• There are different network protocols;
• There are different application formats/protocols.
There must be consensus
on interoperability.
One possible answer to the question how to make these things work together is:
![Page 47: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/47.jpg)
CORBA Interoperability
1998 CTIT, Nikolay Diakov
4477
• Boundaries which may not be obvious or
logical to you
– departmental (budget, task, group)
boundaries
– site boundaries (company, plant)
– technological boundaries (HW, SW)
![Page 48: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/48.jpg)
CORBA Interoperability
1998 CTIT, Nikolay Diakov
4488
ORB ORB
TCP/IP (Internet)
Domain A Domain B
![Page 49: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/49.jpg)
CORBA Interoperability
1998 CTIT, Nikolay Diakov
4499
Key steps to Full Interoperability
• Standardize rich, extendible, and generic enough communication protocol
• Each vendor implements mapping to and from this protocol
• Standardize rich, extendible, and generic enough communication protocol
• Each vendor implements mapping to and from this protocol
![Page 50: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/50.jpg)
CORBA InteroperabilityBridging
1998 CTIT, Nikolay Diakov
5500
ORB ORB
TCP/IP (Internet)
Domain A Domain B
Bridge
Client Server Object
![Page 51: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/51.jpg)
CORBA InteroperabilityBridging
1998 CTIT, Nikolay Diakov
5511
• Bridging
• mediated• full-bridging
• half-bridging
• immediate
ORB ORB
Domain ADomain B
Bridge
![Page 52: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/52.jpg)
CORBA InteroperabilityBridging
1998 CTIT, Nikolay Diakov
5522
• Bridging
• mediated• full-bridging
• half-bridging
• immediate
In-line bridges
Request-level bridges
ORB ORB
Domain ADomain B
Bridge
![Page 53: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/53.jpg)
CORBA InteroperabilityBridging
1998 CTIT, Nikolay Diakov
5533
• GIOP
• IIOP
• ESIOP
![Page 54: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/54.jpg)
CORBA goes Real-Time
1998 CTIT, Nikolay Diakov
5544
![Page 55: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/55.jpg)
CORBA goes Real-Time
1998 CTIT, Nikolay Diakov
5555
Real-time CORBA is an optional ORB extension
•fixed-priority scheduling
• control over ORB resources for end-to-end predictability
• flexible communications
Real-time CORBA is an optional ORB extension
•fixed-priority scheduling
• control over ORB resources for end-to-end predictability
• flexible communications
![Page 56: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/56.jpg)
CORBA is Fault-Tolerant
1998 CTIT, Nikolay Diakov
5566
![Page 57: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/57.jpg)
CORBA is Fault-Tolerant
1998 CTIT, Nikolay Diakov
5577
The flexible POA it self is not enough.
A new specification for
fault-tolerant CORBA is standardized.
The flexible POA it self is not enough.
A new specification for
fault-tolerant CORBA is standardized.
![Page 58: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/58.jpg)
CORBA is Fault-Tolerant
1998 CTIT, Nikolay Diakov
5588
An Example is the GIOP offers mechanism of providing multiple addresses in an Interoperable Object Reference. This allows load-balance schemes and fault-tolerant schemes of finding another ORB resource for satisfying a request.
An Example is the GIOP offers mechanism of providing multiple addresses in an Interoperable Object Reference. This allows load-balance schemes and fault-tolerant schemes of finding another ORB resource for satisfying a request.
![Page 59: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/59.jpg)
CORBA Component Model
1998 CTIT, Nikolay Diakov
5599
![Page 60: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/60.jpg)
CORBA Component Model
1998 CTIT, Nikolay Diakov
6600
CORBAbeansCORBAbeans
•Multiple interfaces per object, object passable by value, messaging servce
•Components does not map 1:1 to interface or CORBA object
•Multiple interfaces per object, object passable by value, messaging servce
•Components does not map 1:1 to interface or CORBA object
![Page 61: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/61.jpg)
CORBA Component Model
1998 CTIT, Nikolay Diakov
6611
CORBA componentCORBA component
• instance identity
• properties
• event notification mechanism
• CORBA scripting facility - assembling applications from CORBA components
• instance identity
• properties
• event notification mechanism
• CORBA scripting facility - assembling applications from CORBA components
![Page 62: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/62.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
6622
![Page 63: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/63.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
6633
1. Portable Object Adapter
2. CORBA messaging
3. Objects-By-Value
1. Portable Object Adapter
2. CORBA messaging
3. Objects-By-Value
![Page 64: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/64.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
6644
1. Portable Object Adapter (POA)
The POA mediates the CORBA objects and the programming implementationsThe POA mediates the CORBA objects and the programming implementations
The main purpose of POA is to provide portability for CORBA server applications. Portability from the implementation of the ORB.
The main purpose of POA is to provide portability for CORBA server applications. Portability from the implementation of the ORB.
![Page 65: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/65.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
6655
1. Portable Object Adapter (POA) allows
• Creation of CORBA Objects
• Demultiplexing of requests made on each CORBA object
• Dispatching requests to the appropriate implementation that the CORBA Object represents
• Activation/Deactivation of CORBA Objets
• Creation of CORBA Objects
• Demultiplexing of requests made on each CORBA object
• Dispatching requests to the appropriate implementation that the CORBA Object represents
• Activation/Deactivation of CORBA Objets
All this in an ORB implementation independent way
![Page 66: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/66.jpg)
Server Application
CORBA 3.0
1998 CTIT, Nikolay Diakov
6666
1. Portable Object Adapter (POA)
ORB
Request
![Page 67: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/67.jpg)
Server Application
CORBA 3.0
1998 CTIT, Nikolay Diakov
6677
1. Portable Object Adapter (POA)
ORB POA
Request
![Page 68: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/68.jpg)
Server Application
CORBA 3.0
1998 CTIT, Nikolay Diakov
6688
1. Portable Object Adapter (POA)
ORB POA
Request
Implementation(Servant)
![Page 69: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/69.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
6699
2. CORBA Messaging
• The CORBA messaging fills a big hole in the consistency of the CORBA specification
• It helps reliably communicating over unreliable connections.
• The Client / Servers are not that tightly coupled anymore as in the synchronous invocation.
• Makes CORBA usable in large distributed systems.
• The CORBA messaging fills a big hole in the consistency of the CORBA specification
• It helps reliably communicating over unreliable connections.
• The Client / Servers are not that tightly coupled anymore as in the synchronous invocation.
• Makes CORBA usable in large distributed systems.
![Page 70: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/70.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
7700
2. CORBA Messaging
• Asynchronous messaging
• Time-independent invocations
• Facilities for specifying messaging quality of service (QoS)
• Asynchronous messaging
• Time-independent invocations
• Facilities for specifying messaging quality of service (QoS)
![Page 71: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/71.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
7711
2. CORBA Messaging
• Asynchronous messaging
• Callback
• Polling - returns a type, for later polling
•Time-independent invocations
• Facilities for specifying messaging quality of service (QoS)
• Asynchronous messaging
• Callback
• Polling - returns a type, for later polling
•Time-independent invocations
• Facilities for specifying messaging quality of service (QoS)
![Page 72: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/72.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
7722
2. CORBA Messaging
• Quality of Service Allows specifying policies for quality of message delivery, queuing and priorities.These policies can be applied on level ORB, level Thread, orlevel object.
• Quality of Service Allows specifying policies for quality of message delivery, queuing and priorities.These policies can be applied on level ORB, level Thread, orlevel object.
![Page 73: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/73.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
7733
3. Objects by Value
• What is passing-by-value?
![Page 74: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/74.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
7744
3. Objects by Value -How is it possible with CORBA?
Valuetype - new constructed type added to the OMG IDL
• like interfaces it has operations and data members
• it can inherit other Valuetype (single only)
Unlike interfaces
• datamembers are transferred
• operation invocations are local
Valuetype - new constructed type added to the OMG IDL
• like interfaces it has operations and data members
• it can inherit other Valuetype (single only)
Unlike interfaces
• datamembers are transferred
• operation invocations are local
![Page 75: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/75.jpg)
CORBA 3.0
1998 CTIT, Nikolay Diakov
7755
3. Objects by Value -How is it possible with CORBA?
How the operation invocations are local and still work?
- Java, Smalltalk
- C++
The programmer of the object has to take care of the mechanism of transferring the implementation locally. The extended IDL to programming language mapping just gives the means for doing that.
How the operation invocations are local and still work?
- Java, Smalltalk
- C++
The programmer of the object has to take care of the mechanism of transferring the implementation locally. The extended IDL to programming language mapping just gives the means for doing that.
![Page 76: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/76.jpg)
CORBAAdvanced Programming Issues
1998 CTIT, Nikolay Diakov
7766
Part 2. Advanced Programming Issues
![Page 77: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/77.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
7777
![Page 78: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/78.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
7788
0. Define the problem
1. Think distributed
2. Define a communication interface
3. Build the server
4. Build the client
5. Setup a test session
![Page 79: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/79.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
7799
0. Define the problem
We define our problem in the context of the electronic commerce. We need our client to be able to buy goods from our sites.
![Page 80: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/80.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
8800
1. Think distributed
Client
Client
Client
ClientServerObject
![Page 81: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/81.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
8811
2. Define a communication interface
ClientServerObject
Interface Purchase
- operation ListGoodies
- operation AddGoodytoCart
- operation ListCart
- operation Order
![Page 82: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/82.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
8822
3. Build the server
ClientServerObject
Interface Purchase
- operation ListGoodies
- operation AddGoodytoCart
- operation ListCart
- operation Order
The server will implement the interface. It will provide the code of each operation, in a language that is most suitable and chosen by the developer.
The server will implement the interface. It will provide the code of each operation, in a language that is most suitable and chosen by the developer.
![Page 83: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/83.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
8833
4. Build the client
ClientServerObject
Interface Purchase
- operation ListGoodies
- operation AddGoodytoCart
- operation ListCart
- operation Order
The client will include the some code to be able to
locate the Server object, bind to an instance, and to
call operations on it.
The client will include the some code to be able to
locate the Server object, bind to an instance, and to
call operations on it.
![Page 84: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/84.jpg)
CORBASimple Application In CORBA
1998 CTIT, Nikolay Diakov
8844
5. Setup a test session
Client
ServerObject
ORB1. Run the ORB software on a machine connected to the network.
1. Run the ORB software on a machine connected to the network. 2. Run the SERVER
program. If on a remote machine, depending on the implementation the SERVER will find the ORB.
2. Run the SERVER program. If on a remote machine, depending on the implementation the SERVER will find the ORB.
3. Run the Client.3. Run the Client.
![Page 85: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/85.jpg)
CORBAThe Interface Definition Language
1998 CTIT, Nikolay Diakov
8855
![Page 86: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/86.jpg)
CORBAThe Interface Definition Language
1998 CTIT, Nikolay Diakov
8866
Similar to C++• preprocessing• lexical rules• grammar• inheritance
IDL is NOT an implementation language!
![Page 87: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/87.jpg)
CORBAIDL to Programming Language Mapping
1998 CTIT, Nikolay Diakov
8877
![Page 88: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/88.jpg)
CORBAIDL to Programming Language Mapping
1998 CTIT, Nikolay Diakov
8888
• Translates from OMG IDL constructs
to programming language constructs
• Special IDL compiler generate stubs
for the client and skeletons for the
server objects
![Page 89: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/89.jpg)
CORBAIDL to Java Mapping
1998 CTIT, Nikolay Diakov
8899
•IDL Modules map to Java Packages
•Interfaces map to public Java Interfaces + “Helper” and “Holder” Java classes
•IDL Operations map to Java methods
•the integral types (Integer, float) map to the corresponding Java integral types
•exceptions map to Java exceptions
![Page 90: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/90.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9900
![Page 91: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/91.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9911
1. Callbacks
2. Interface Repository
3. DII
4. DSI
![Page 92: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/92.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9922
1. Callbacks
ClientServer
Normally, the communicationbetween clients and serversfollow the request/response scheme. This however, is not sufficient sometimes.
Normally, the communicationbetween clients and serversfollow the request/response scheme. This however, is not sufficient sometimes.
Requestthen
Response
![Page 93: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/93.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9933
1. Callbacks
ClientServer
Imagine the server being able to invoke methods on the client.The client becomes a server
Imagine the server being able to invoke methods on the client.The client becomes a server
Requestthen
Response
![Page 94: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/94.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9944
1. Callbacks
ClientServer
How is this done on CORBAHow is this done on CORBA
•The client implements an interfacetoo.
•The client implements an interfacetoo.
![Page 95: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/95.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9955
1. Callbacks
ClientServer
How is this done on CORBAHow is this done on CORBA
•The client invokes an operation on the server passing a reference to its interfaces
•The client invokes an operation on the server passing a reference to its interfaces
![Page 96: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/96.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9966
1. Callbacks
ClientServer
How is this done on CORBAHow is this done on CORBA
•The server is now able to invoke operations on the client anytime
•The server is now able to invoke operations on the client anytime
![Page 97: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/97.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9977
2. Interface Repository
![Page 98: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/98.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9988
2. Interface Repository• Interface Repository allows:
– Implementation of browsers that allow designers to determine what have been defined in a system.
– CASE tools to aid software design, writing and debugging
– Applications to use DII to learn dynamically about objects and interfaces that were not know at compile time.
![Page 99: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/99.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
9999
3. DII
![Page 100: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/100.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110000
3. DII
The Dynamic Invocation Interface (DII) allows clients to dynamically
• discover objects;• discover objects’ interfaces;• create requests;• invoke requests;• receive responses.
![Page 101: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/101.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110011
3. DII - Features
• requests appear as objects themselves;
• requests are reusable;
• invocation may be synchronous or deferred synchronous
![Page 102: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/102.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110022
3. DII
ClientServerServerServer
Using DII the client discoversthe proper server object.
Using DII the client discoversthe proper server object.
![Page 103: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/103.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110033
3. DII
ClientServer
ServerServer
The client discovers theappropriate interface implemented from this object
The client discovers theappropriate interface implemented from this object
![Page 104: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/104.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110044
3. DII
ClientServer
ServerServer
The client creates a request object, which encapsulates a invocation of a operation on the servers interface.
The client creates a request object, which encapsulates a invocation of a operation on the servers interface.
![Page 105: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/105.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110055
3. DII
ClientServer
ServerServer
The client invokes the request.
The client invokes the request.
![Page 106: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/106.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110066
3. DII
ClientServer
ServerServer
The client invokes the request.
The client invokes the request.
![Page 107: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/107.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110077
3. DII
ClientServer
ServerServer
The client invokes the request.
The client invokes the request.
![Page 108: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/108.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110088
3. DII
ClientServer
ServerServer
The client obtains a resultif necessary.
The client obtains a resultif necessary.
![Page 109: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/109.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
110099
3. DII
ClientServer
ServerServer
The client obtains a resultif necessary.
The client obtains a resultif necessary.
![Page 110: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/110.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111100
3. DII
ClientServer
ServerServer
The client obtains a resultif necessary.
The client obtains a resultif necessary.
![Page 111: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/111.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111111
3. DII
ClientServerServerServer
This scenario can be usedas many times as necessary.The request object and all other object can be reused.This has potential to boost upperformance.
This scenario can be usedas many times as necessary.The request object and all other object can be reused.This has potential to boost upperformance.
![Page 112: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/112.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111122
3. DII
ClientServerServerServer
Requests can be sent in a deferred style. These request does not block the client in expectation for a result. The result can be obtained later, when ready and/or when needed.
Requests can be sent in a deferred style. These request does not block the client in expectation for a result. The result can be obtained later, when ready and/or when needed.
![Page 113: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/113.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111133
3. DII
ClientServerServerServer
Requests can be sent in a oneway style. These request does not block the client in expectation for a result. There is no result.These invocation are very useful sometimes when the clientwants to announce something tothe server object but no result and no waiting for completionof the invocation is needed.
Requests can be sent in a oneway style. These request does not block the client in expectation for a result. There is no result.These invocation are very useful sometimes when the clientwants to announce something tothe server object but no result and no waiting for completionof the invocation is needed.
![Page 114: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/114.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111144
4. DSI
![Page 115: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/115.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111155
4. DSI
Client
Server
Dynamic Skeleton Interface is the Server side analog ofthe DII scheme.
Dynamic Skeleton Interface is the Server side analog ofthe DII scheme.
![Page 116: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/116.jpg)
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111166
4. DSI
Client
Server
Each DSI request enters the particular interface the same wayas the static. The difference is that the implementation has to dynamically determine which operation has been invokedand demarshal the parameters.
Each DSI request enters the particular interface the same wayas the static. The difference is that the implementation has to dynamically determine which operation has been invokedand demarshal the parameters.
Request
IR
![Page 117: CORBA Overview and Advanced Programming Issues 1998 CTIT, Nikolay Diakov 1 Table Of Contents Introduction OMG, OMA, CORBA Object Model CORBA Introspection](https://reader035.vdocuments.us/reader035/viewer/2022062314/56649eda5503460f94be8b66/html5/thumbnails/117.jpg)
Domain BDomain A
CORBAAdvanced Topics
1998 CTIT, Nikolay Diakov
111177
4. DSI - Usage
The DSI is mainly used in implementation of software bridges for Interoperability. It is naturally and easy through DSI to translate all request of one type to another domain.
The DSI is mainly used in implementation of software bridges for Interoperability. It is naturally and easy through DSI to translate all request of one type to another domain.
ORB1ORB2
Client ServerBridge
DSI