Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to CORBA G. Michael Youngblood

Similar presentations


Presentation on theme: "Introduction to CORBA G. Michael Youngblood"— Presentation transcript:

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


Download ppt "Introduction to CORBA G. Michael Youngblood"

Similar presentations


Ads by Google