Download presentation
Presentation is loading. Please wait.
1
©2002-2003 G. Michael Youngblood
Introduction to CORBA G. Michael Youngblood Artificial Intelligence Laboratory The University of Texas at Arlington 7/16/2019 © G. Michael Youngblood
2
©2002-2003 G. Michael Youngblood
Objectives CORBA technology introduction CORBA terminology introduction CORBA references introduction CORBA IDL CORBA Applications CORBA Services CORBA demonstration Additional information 7/16/2019 © G. Michael Youngblood
3
CORBA Technology Overview
7/16/2019 © G. Michael Youngblood
4
©2002-2003 G. Michael Youngblood
CORBA Common Object Request Broker Architecture Specification written and maintained by the Object Management Group (OMG) First Specification: OMA Object Management Architecture 7/16/2019 © G. Michael Youngblood
5
Object Management Architecture
Object: an encapsulated entity with an immutable distinct identity whose services are accessed only through well-defined interfaces. Interface Categories: general groupings for object interfaces. Conceptually linked by an ORB. 7/16/2019 © G. Michael Youngblood
6
OMA: Interface Categories
Object Services: domain-independent, or horizontally oriented, interfaces used by many distributed object applications. Ex: Naming Service, Trading Service Domain Interfaces: domain-specific, or vertically oriented, interfaces usu. Industry specific. Ex: Person Identification Service Application Interfaces: developed specifically for a given application. Ex: your own CORBA applications 7/16/2019 © G. Michael Youngblood
7
OMA interface categories
Domain Interfaces Domain Interfaces Application Interfaces Domain Interfaces Domain Interfaces Domain Interfaces Object Request Broker Object Services 7/16/2019 © G. Michael Youngblood
8
©2002-2003 G. Michael Youngblood
CORBA Terminology Side step.. 7/16/2019 © G. Michael Youngblood
9
©2002-2003 G. Michael Youngblood
CORBA Terminology CORBA Object: a “virtual” entity capable of being located by an ORB and having client requests invoked on it. Target Object: within the context of a CORBA request invocation, it is the CORBA object that is the target of that request. Client: an entity that invokes a request on a CORBA object, Server: an application in which one or more CORBA objects exist. Request: an operation invocation on a CORBA object by a client. Object Reference: a handle used to identify, locate, and address a CORBA object. Servant: a programming language entity that implements one or more CORBA objects. 7/16/2019 © G. Michael Youngblood
10
CORBA Technology Overview
Returning… 7/16/2019 © G. Michael Youngblood
11
OMA realized through CORBA
CORBA provides platform-independent programming interfaces and models for portable distributed object-oriented computing applications. 7/16/2019 © G. Michael Youngblood
12
©2002-2003 G. Michael Youngblood
CORBA major features OMG Interface Definition Language Language Mappings Operation invocation and dispatch facilities (static and dynamic) Object adapters Inter-ORB Protocol 7/16/2019 © G. Michael Youngblood
13
©2002-2003 G. Michael Youngblood
CORBA Architecture 7/16/2019 © G. Michael Youngblood
14
©2002-2003 G. Michael Youngblood
IDL Interface Definition Language Sole purpose is to allow object interfaces to be defined in a manner that is independent of any particular programming language. 7/16/2019 © G. Michael Youngblood
15
©2002-2003 G. Michael Youngblood
Language Mappings IDL-to-Programming Language mappings are defined. C, C++, Java, Ada, LISP, XML, COBOL, FORTRAN, Smalltalk, Eiffel, Perl, Python, Tcl, etc. 7/16/2019 © G. Michael Youngblood
16
Operation Invocation and Dispatch Facilities
Static invocation and dispatch IDL translated into language-specific stubs and skeletons that are compiled into applications. Dynamic invocation and dispatch Construction and dispatch of CORBA requests at run time. Interface and types determined by outside means (e.g., Interface Repository) 7/16/2019 © G. Michael Youngblood
17
©2002-2003 G. Michael Youngblood
Object Adapters Serve as glue between servants and the ORB Fulfill 3 requirements Create object references, which allow clients to address objects Ensure each target object is incarnated by a servant Takes requests dispatched by a server-side ORB and further directs them to servants incarnating each of the target objects POA! 7/16/2019 © G. Michael Youngblood
18
©2002-2003 G. Michael Youngblood
Inter-ORB Protocols ORB-to-ORB communication (even between different implementations) GIOP (“gee-op”): General Inter-ORB Protocol An abstract protocol that specifies transfer syntax and a standard set of message formats to allow independently developed ORBs to communicate over any connection-oriented transport. IIOP (“eye-op”): Internet Inter-ORB Protocol GIOP over TCP/IP 7/16/2019 © G. Michael Youngblood
19
©2002-2003 G. Michael Youngblood
IOR ORB interoperability also requires standardized object reference formats. Interoperable Object References (IOR) Standard object reference format 7/16/2019 © G. Michael Youngblood
20
©2002-2003 G. Michael Youngblood
How does it work? Request Invocation Object Reference Semantics Reference Acquisition Contents of an Object Reference References and Proxies 7/16/2019 © G. Michael Youngblood
21
©2002-2003 G. Michael Youngblood
Request Invocation When a client invokes an operation via an object reference, the ORB does the following: Locates the target object Activates the server application if the server is not already running Transmits any arguments for the call to the object Activates a servant for the object if necessary Waits for the request to complete Returns any out and inout parameters and the return value to the client when the call completes successfully Returns an exception (including any data contained in the exception) to the client when the call fails 7/16/2019 © G. Michael Youngblood
22
Request Invocation Characteristics
The entire request invocation mechanism is completely transparent to the client, to whom it looks like an ordinary method invocation on a local object. Request characteristics: Location transparency Server transparency Language independence Implementation independence Architecture independence OS independence Protocol independence Transport independence 7/16/2019 © G. Michael Youngblood
23
Object Reference Semantics
Every object reference identifies exactly one object instance Several different references can denote the same object References can be nil References can dangle Reference are opaque (the client is not allowed to look at their contents) References are strongly typed References support late binding References can be persistent References can be interoperable 7/16/2019 © G. Michael Youngblood
24
Reference Acquisition
Object references are the only way for a client to reach target objects. How does a client get a server’s object reference? Bootstrapping Naming or Trading Service Command-line or reading a file Out-of-band method 7/16/2019 © G. Michael Youngblood
25
Contents of an Object Reference
Repository ID Endpoint Info Object Key Repository ID (standardized) Endpoint Info (standardized) Object Key (proprietary) 7/16/2019 © G. Michael Youngblood
26
References and Proxies
When a reference is received by a client, the client-side run time instantiates a proxy object in the client’s address space This proxy is an instance that supplies an interface to the target object to the client. Client Server Proxy Skeleton Instance foo() foo() foo() Object Reference foo() Servant 7/16/2019 © G. Michael Youngblood
27
©2002-2003 G. Michael Youngblood
Questions? CORBA Technology Overview CORBA Terminology 7/16/2019 © G. Michael Youngblood
28
©2002-2003 G. Michael Youngblood
CORBA References 7/16/2019 © G. Michael Youngblood
29
OMG’s Document Access Page
OMG Specifications Key Specifications Architecture and Specification (CORBA/IIOP) IDL Language Mappings Services 7/16/2019 © G. Michael Youngblood
30
©2002-2003 G. Michael Youngblood
Good Books The C++ Standard… Advanced CORBA Programming with C++ by Michi Henning and Steve Vinoski\ Many examples… PURE CORBA by Fintan Bolton 7/16/2019 © G. Michael Youngblood
31
©2002-2003 G. Michael Youngblood
Implementations Orbacus OmniORB MICO TAO (The ACE ORB) ORBit etc. 7/16/2019 © G. Michael Youngblood
32
©2002-2003 G. Michael Youngblood
Questions? CORBA References 7/16/2019 © G. Michael Youngblood
33
CORBA Interface Definition Language (IDL)
7/16/2019 © G. Michael Youngblood
34
Interface Definiton Languge
Simple language Mappings to most modern popular programming languages Compiled into stub and skeleton code by an IDL compiler 7/16/2019 © G. Michael Youngblood
35
©2002-2003 G. Michael Youngblood
IDL Compilation 7/16/2019 © G. Michael Youngblood
36
©2002-2003 G. Michael Youngblood
IDL Simple Example // description of the module AddressBook module AddressBook { interface Person attribute string name; string send (in string fromWhom); }; } ; 7/16/2019 © G. Michael Youngblood
37
©2002-2003 G. Michael Youngblood
IDL Data Types 7/16/2019 © G. Michael Youngblood
38
©2002-2003 G. Michael Youngblood
IDL Supports Constants Custom types Attributes Methods Structures Exceptions Interfaces Modules 7/16/2019 © G. Michael Youngblood
39
©2002-2003 G. Michael Youngblood
Questions CORBA IDL 7/16/2019 © G. Michael Youngblood
40
©2002-2003 G. Michael Youngblood
CORBA Applications 7/16/2019 © G. Michael Youngblood
41
General CORBA Application Development
Determine your application's objects and define their interfaces in IDL Compile your IDL definitions into C++ stubs and skeletons Declare and implement C++ servant classes that can incarnate your CORBA objects Write a server main program Compile and link your server implementation files with the generated stubs and skeletons to create your server executable Write, compile, and link your code together with generated stubs 7/16/2019 © G. Michael Youngblood
42
©2002-2003 G. Michael Youngblood
Examples Coming soon… Please hold questions until demonstration 7/16/2019 © G. Michael Youngblood
43
©2002-2003 G. Michael Youngblood
CORBA Services 7/16/2019 © G. Michael Youngblood
44
©2002-2003 G. Michael Youngblood
CORBA Services OMG Naming Service Basically, DNS for IORs OMG Trading Service Service discovery OMG Event Service Broadcast events Interface Repository Time Service etc. 7/16/2019 © G. Michael Youngblood
45
©2002-2003 G. Michael Youngblood
Questions? CORBA Services 7/16/2019 © G. Michael Youngblood
46
©2002-2003 G. Michael Youngblood
CORBA Demonstration 7/16/2019 © G. Michael Youngblood
47
©2002-2003 G. Michael Youngblood
CORBA Examples Simple Client-Server Advanced Client-Server Advanced Client-Server using NameService Advanced Client-Server using NameService invoking a Callback 7/16/2019 © G. Michael Youngblood
48
©2002-2003 G. Michael Youngblood
Questions? CORBA Applications CORBA demonstrations 7/16/2019 © G. Michael Youngblood
49
Additional Information
Are there any questions? 7/16/2019 © G. Michael Youngblood
50
©2002-2003 G. Michael Youngblood
Questions Any other questions? 7/16/2019 © G. Michael Youngblood
51
©2002-2003 G. Michael Youngblood
References Henning, Michi and Steve Vinoski. Advanced CORBA Programming with C++. Addison-Wesley: Reading, MA 7/16/2019 © G. Michael Youngblood
52
G. Michael Youngblood youngbld@cse.uta.edu http://tauceti.uta.edu
Thank You! G. Michael Youngblood 7/16/2019 © G. Michael Youngblood
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.