CORBA Architecture and
Programming Using Java
Rev. 1.0
This 4-day course introduces Java
programmers to the architecture and programming of CORBA. The course consists of
two modules.
The first module is designed to introduce students of various backgrounds
to the Common Object Brokerage Request Architecture, or CORBA.
The module begins with a short treatment of the origins and history of
CORBA in the Object Management Group, and then the fundamentals of the Object
Management Architecture – the infrastructure whose goals and requirements
define CORBA – are covered. ORBs
and Object Adapters are discussed, and one chapter is devoted entirely to
Interface Definition Language: its
role in the architecture, grammar, and design issues.
A third chapter covers many of the most important CORBA Service
specifications and prompts students to consider the architectural implications
of each.
The second module gives students a
solid intermediate understanding of Java Programming for CORBA – the Common
Object Request Brokerage Architecture. We
take a brief look at the practical relationship between the Java environment and
CORBA, including how various distributed-computing Java APIs fit into a CORBA
system. The Java ORB and language
mapping are treated in detail. Students
design and build servers, command-line and GUI-driven clients, and peer servers
for a CORBA system. There is a
focus on basic mechanics of distributed object interaction – using the ORB,
managing object references, remote versus local access using interfaces and structs.
Students will also look at thornier issues of system design and
implementation with Java and CORBA, such as use of factories, naming servers,
controlling location, lifecycle, and persistence.
LEARNING
OBJECTIVES
·
Understand the Object Management Architecture, the role of an
Object Request Broker, and the assistance of the Object Adapter.
·
Understand the role of Interface Definition Language in achieving
interoperability between various components and design distributed systems using
IDL.
·
Understand the significance of CORBA Services and the implications
of using or integrating various services into a distributed component design.
·
Understand the relationship between the Java environment and CORBA,
including the .details of the IDL-to-Java language mapping.
·
Build Java/CORBA server and client applications
·
Address practical distributed design issues.
Course Duration:
4 days
Prerequisites:
·
Solid experience with Java programming is required.
· A firm understanding of OO concepts is strongly recommended.
Module 1. Introduction to CORBA
1.
The Object Management Architecture
The Object Management Group
CORBA and the Goal of Interoperability
Object Request Brokers
Object Adapters
2.
Interface Definition Language
The Role and Use of IDL
IDL Constructs
Interfaces, Operations, Attributes
IDL Design Issues
Factories
3.
CORBA Services
Naming
Events and Notifications
Transactions and Concurrency
Trader
LifeCycle
Persistent State
Collections
Security
Externalization
Appendix A. References
Module 2.
Java Programming for CORBA
1.
Java and CORBA
Relationship Between Java and CORBA
Portability
RMI and CORBA
Other Java APIs and CORBA
JavaIDL
CORBA Applications and Applets
Practical Motivations to Use CORBA
2.
The Java ORB
The JavaIDL ORB
Use of Alternate ORB Implementations
Initializing the ORB
Creating Requests
Object References
3.
The Java IDL Mapping
JavaIDL Compiler
Mapping for Basic Types
Mapping for Modules
Mapping for Interfaces
Implementation Base versus Tie
Helpers and Holders
Mapping for Structs
Mapping for Exceptions
Mapping for Sequences
Mapping for Arrays
4.
CORBA Object Implementation
What’s Done For You
Writing the Servant
Implementation Base or Tie?
Writing the Server
Publishing the Object Implementation
Simple Object Persistence
5.
The CORBA Client
Building a Client
Object Types and Narrowing|
Making Requests
Peer-to-Peer Systems
Controlling Location
6.
Distributed Design Strategies
Factories
Naming
Lifecycle
Managing Location
Persistent Object Strategies and the PSS
Appendix
A. References
System Requirements
JDK 1.2 and the JavaIDL compiler are
required. Any system that supports
both of these will support the lab software.
A TCP network between student machines is strongly recommended but not
critical.