Distributed Object-Oriented Systems

Motivation:

Constant innovation in computing industry has brought large mass of sophisticated application. A set of problems has been derived from the sophistication for both developers and users. Applications are time-consuming to develop, difficult and costly to maintain. Functionality and data of one application generally are not available to other applications even if they are running on the same computer. Very often the same services provided by the operating system and the network are different. Programming models are also inconsistent. They are vary widely depending on whether the service is coming from a provider in the same address space as the client program, from a separate process on the same computer, from the operating system, or from a provider running on a separate computer across the network.

Another consequence of the increasing software complexity is the need for a new approach of developing software featured by

Responding to the increasing demand, a variety of distributed frameworks have been started to develop. Such frameworks facilitate the creation of collaborative distributed applications. Maybe the best-known representatives of such distributed framework is the CORBA

The Common Object Request Broker Architecture (CORBA) is structured to allow integration of a wide variety of object systems, developed by the Object Management Group (OMG).

The client is the entity that wishes to perform an operation on the object and the object implementation is the code and data that actually implements the object. The ORB (Object Request Broker) is responsible for all of the mechanisms required to find the object implementation for the request, to prepare the object implementation to receive the request, and to communicate the data making up the request. The interface the client sees is completely independent of where the object is located, what programming language it is implemented in, or any other aspect which is not reflected in the object's interface.

To make a request, the client can use the Dynamic Invocation interface (the same interface independent of the target object's interface) or an OMG Interface Definition Language (OMG IDL) stub (the specific stub depending on the interface of the target object). The client can also directly interact with the ORB for some functions.

The ORB locates the appropriate implementation code, transmits parameters and transfers control to the object implementation through an IDL skeleton or a dynamic skeleton. Skeletons are specific to the interface and the object adapter. In performing the request, the object implementation may obtain some services from the ORB through the Object Adapter. When the request is complete, control and output values are returned to the client.

ORB is not required to be implemented as a single component, but rather it is defined by its interfaces. Any ORB implementation that provides the appropriate interface is acceptable. The ORB Core is that part of the ORB that provides the basic representation of objects and communication of requests. CORBA is designed to support different object mechanisms, and it does so by structuring the ORB with components above the ORB Core, which provide interfaces that can mask the differences between ORB Cores.

Aim:

This course is intended to bring together the student's knowledge of object-oriented software development and networking and to extend it into the creation of distributed object-oriented systems. We set the objective to develop a new course to introduce CORBA both on theoretical and practical level.

Objectives:

On completion of this course student will be able to:

Approach:

The theoretical aspects of this topic will be covered in lectures to convey the fundamental issues. Practical exercises will concentrate on the use of framework and creation applications. The particular tools to be used (ORBIX, Java, etc) will be defined after evaluating experiencies are from TEMPUS partners.
 
 

Prerequisits:

At least middle level on Operating systems, Computer Networks, Software Engineering and programming practice on an OO language (C++).

 

Detailed syllabus:

1. Getting started with Java

2. Java classes

3. Advanced Java programming

4. Getting started with CORBA

5. CORBA programming

6. Running OrbixWeb programs

7. Adv. CORBA programming

Work Breakdown Structure:
 

Getting started with Java

 

 

Java classes

 

 

Advanced Java programming

 

 

Getting started with CORBA

TUB DCEIT

1999

CORBA programming

TUB DCEIT

1999

Running OrbixWeb programs

TUB DCEIT

2000

Adv. CORBA programming

TUB DCEIT

2000


 

Indicative text:

Robert Orfali, Dan Harkey, Jeri Edwards
The Essential Client/Server Survival Guide, Wiley, 1996

Robert Orfali, Dan Harkey, Jeri Edwards
The Essential Distributed Objects Survival Guide, Wiley, 1995

Alan Pope
CORBA Reference Guide, Addison-Wesley, 1998

Ron Ben-Natan
CORBA - A Guide to Common Object Request Broker Architecture, McGraw-Hill, 1995

Waqar Sadiq, Fred Cummins
Building Distributed, Object-Oriented Business Systems Using Corba, SIGS, 1997

Jon Siegel et al
CORBA Fundamentals and Programming, Wiley, 1996

Robert Orfali, Dan Harkey
Client/Server Programming with Java and CORBA, Wiley, 1998

Sean Baker
CORBA Distributed Objects using Orbix, ACM Addison Wesley, 1997

Thomas J. Mowbray, Ron Zahavi
The Essential CORBA : Systems Integration Using Distributed Objects, Wiley, 1995

Andreas Vogel, Keith Duddy
Java Programming With CORBA, Wiley, 1997

OrbixWeb Programmer’s Guide
IONA Technologies PLC, 1997

OrbixWeb Programmer’s Reference
IONA Technologies PLC, 1997