Transcript Document

Distributed Object Computing Using Java and CORBA

Copyright © 2003 ProsoftTraining. All rights reserved.

Lesson 1: Introduction to CORBA

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • •

Describe the role of CORBA in developing enterprise applications Describe the role of the Object Management Group Describe the CORBA architecture

CORBA Overview

• • •

Common Object Request Broker Architecture Object-oriented development Distributed-object computing

The Object Management Group

• •

Controls the CORBA standard Provides a specification for CORBA

CORBA Architecture

• – – – –

Object Management Architecture

Object Request Broker

– – –

Object services Common facilities Application objects Internet InterORB Protocol Interface Definition Language Object adapters CORBA Services

Object Request Broker

Client Process Object Reference Server Process Object Implementation ORB

Internet InterORB Protocol

Client Process Object Reference ORB Server Process Object Implementation ORB IIOP

Interface Definition Language

Client Process Object Reference IDL Stubs ORB Interface ORB Server Process Object Implementation IDL Skeleton Object Adapter ORB IIOP

Summary

Describe the role of CORBA in developing enterprise applications

Describe the role of the Object Management Group

Describe the CORBA architecture

Lesson 2: Interface Definition Language

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • • • •

Use the IDL to define the interface to CORBA objects Describe the mapping of IDL nonclass data types into Java Describe the purpose of IDL parameter passing modes Model inheritance using IDL Define CORBA exceptions using IDL

Introduction to IDL

• • •

IDL files IDL compilers Mapping IDL to Java

IDL constructs

Modules

– – –

Interfaces Attributes Operations Basics of IDL

IDL Primitives IDL boolean char, wchar octet string, wstring short, unsigned short long, unsigned long long long, unsigned long long float double Java boolean char byte java.lang.String

short int long float double

Inheritance and IDL

• • •

Java

no multiple inheritance support Java class

can inherit from only one other class IDL

can be used to define an interface that inherits from multiple super-interfaces

• • • •

Constants Enumerations Unions Structures Nonclass Data Types

• • •

Type definitions Sequences Arrays

Parameter-Passing Modes and Exceptions

• •

Parameter-passing modes

– in – out – inout

Exceptions

Use-defined exceptions inherit indirectly from java.lang.Exception

IDL operations must declare their ability to raise an exception

Summary

Use the IDL to define the interface to CORBA objects

Describe the mapping of IDL nonclass data types into Java

Describe the purpose of IDL parameter passing modes

Model inheritance using IDL

Define CORBA exceptions using IDL

Lesson 3: Building CORBA Clients

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • • • •

Use the IDL compiler to generate client stubs Initialize the ORB Use the naming service to obtain an object reference Invoke remote methods Use

out

and

inout

parameters to invoke remote methods

Client IDL Stubs

• •

Used to create client applications IDL-to-Java compiler named

idlj –

Used to compile IDL files to generate client stubs and server skeletons

Initializing the ORB

The

ORB

class

– –

Is used to initialize the ORB Is not instantiated using its public constructor

Provides a static method named

init

that initializes the ORB and returns an instance of the

ORB

class

Using the Naming Service

• •

Connecting to the naming service Using the naming service to obtain an object reference

– –

Obtaining the initial naming context Retrieving an object reference

Example of Namespace

Initial Naming Context Customers Boeing Employees FAA Officers Programmers CEO CFO James Roos Erik Novales

Invoking Remote Methods

Remote methods are invoked in the same way that local methods are invoked

Using

Inout Out

and Parameters

• Out

parameters

Used exclusively to return data from the server to the client

• Inout

parameters

Passed both from the client to the server and, following any changes, from the server back to the client

Summary

Use the IDL compiler to generate client stubs

Initialize the ORB

Use the naming service to obtain an object reference

 

Invoke remote methods Use

out

and

inout

remote methods parameters to invoke

Lesson 4: Building CORBA Servers

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • • • •

Use the IDL compiler to generate server skeletons Implement CORBA objects Initialize the ORB and wait for clients Use the naming service to publish an object reference Use

out

and

inout

parameters

Server IDL Skeletons

A server skeleton provides a framework for the implementation of a CORBA object

MessageOperations

Implementing CORBA Objects Server-side implementation

Object IDLEntity Message _MessageImplBase MessageServant

Using the Naming Service

• •

Instantiating a CORBA object Creating additional naming contexts

Default message1

Example of Naming Service

Initial Naming Context message2 Hello

Waiting for Invocation

The

wait

method

– –

Called to pause the main thread of execution Part of Java’s built-in threading facilities

Using

Inout Out

and Parameters

• Out

parameters

Used exclusively to return data from the server to the client

• Inout

parameters

Passed both from the client to the server and, following any changes, from the server back to the client

Summary

Use the IDL compiler to generate server skeletons

Implement CORBA objects

Initialize the ORB and wait for clients

Use the naming service to publish an object reference

Use

out

and

inout

parameters

Lesson 5: Factory and Callback Objects

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • • •

Describe the purpose of factory objects Use factory objects to obtain object references Describe the purpose of callback objects Develop applications that use callback objects

Factory Objects

• • • •

Types include:

Generic

– – –

Specific In-process Out-process FactoryFinder Using factory objects Designing factory objects

Callback Objects

• •

Using callback objects Designing callback objects

Summary

Describe the purpose of factory objects

Use factory objects to obtain object references

Describe the purpose of callback objects

Develop applications that use callback objects

Lesson 6: CORBA Exceptions

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • •

Describe the purpose of CORBA exceptions Define an exception using IDL Develop CORBA objects that throw exceptions

Introduction to CORBA Exceptions

• •

Throwing CORBA exceptions Catching CORBA exceptions

Summary

Describe the purpose of CORBA exceptions

Define an exception using IDL

Develop CORBA objects that throw exceptions

Lesson 7: Dynamic Invocation Interface

Copyright © 2003 ProsoftTraining. All rights reserved.

Objectives

• • • • •

Describe the purpose of the interface repository Describe the Dynamic Invocation Interface Construct an argument list for use in dynamic invocation Invoke a request using the DII Extract a return value following dynamic invocation

Dynamic Invocation Interface Introduction

DII allows a client to access any CORBA object even though it may not have a client stub to provide a compile-time definition of an object’s interface

Invoking a Remote Method Using DII

• • • •

Construct a list of arguments Prepare a place to hold a return value Invoke the remote method Extract the return value

Summary

Describe the purpose of the interface repository

Describe the Dynamic Invocation Interface

Construct an argument list for use in dynamic invocation

Invoke a request using the DII

Extract a return value following dynamic invocation

Distributed Object Computing Using Java and CORBA

Introduction to CORBA

Interface Definition Language

Building CORBA Clients

Building CORBA Servers

 

Factory and Callback Objects CORBA Exceptions

Dynamic Invocation Interface