No Slide Title

Download Report

Transcript No Slide Title

Distributed Object
Computing Using
Java and CORBA
Lesson 1:
Introduction
to CORBA
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
Serv er Process
Object Ref erence
Object
Implementation
ORB
Internet
InterORB Protocol
Client Process
Serv er Process
Object Ref erence
Object
Implementation
ORB
ORB
IIOP
Interface
Definition Language
Client Process
Serv er Process
Object Ref erence
Object
Implementation
IDL Stubs
IDL
Skeleton
ORB
Interf ace
ORB
ORB
IIOP
Object
Adapter
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
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 parameterpassing modes
Model inheritance using IDL
Define CORBA exceptions using IDL
Introduction
to IDL



IDL files
IDL compilers
Mapping IDL to Java
Basics
of IDL

IDL constructs
- Modules
- Interfaces
- Attributes
- Operations
IDL
Primitives
IDL
Java
boolean
boolean
char, wchar
char
octet
byte
string, wstring
java.lang.String
short, unsigned short
short
long, unsigned long
int
long long, unsigned long long
long
float
float
double
double
Inheritance
and IDL


Java  no multiple inheritance support

IDL  can be used to define an interface
that inherits from multiple super-interfaces
Java class  can inherit from only one
other class
Nonclass
Data Types




Constants
Enumerations
Unions
Structures



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 parameterpassing modes
 Model inheritance using IDL
 Define CORBA exceptions using IDL
Lesson 3:
Building
CORBA Clients
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
Employees
Officers
Boeing
Programmers
FAA
CEO
CFO
James Roos
Erik Novales
Invoking
Remote Methods

Remote methods are invoked in the same
way that local methods are invoked
Using Out and
Inout 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 parameters to invoke
remote methods
Lesson 4:
Building
CORBA Servers
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
Implementing
CORBA Objects
MessageOperations
Object
Message
_MessageImplBase
MessageServant
IDLEntity
Server-side
implementation
Using the
Naming Service


Instantiating a CORBA object
Creating additional naming contexts
Example of
Naming Service
Initial Naming Context
Default
message1
Hello
message2
Waiting
for Invocation

The wait method
- Called to pause the main thread of
execution
- Part of Java’s built-in threading facilities
Using Out and
Inout 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
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
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
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