[ Syllabus ] [ Teaching materials ] [ References ]

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. Client/Server with Distributed Objects
  5. Introduction to CORBA
  6. The first CORBA program
  7. Interface Definition Language
  8. Advanced CORBA programming

Documents

  1. Getting started with Java by Péter Kacsuk
    4 slides Zipped PowerPoint 8k
    8 slides Zipped PowerPoint 10k
    26 slides Zipped PowerPoint 25k
    33 slides Zipped PowerPoint 21k
  2. Java classes by Péter Kacsuk
    36 slides Zipped PowerPoint 58k
    23 slides Zipped PowerPoint 29k
  3. Advanced Java programming by József Kovács
    22 slides Zipped PowerPoint 114k
    28 slides Zipped PowerPoint 73k
  4. Client/Server with Distributed Objects
    24 pages WinZipped-Winword7(27k) by dr. Zoltán László, dr. Károly Kondorosi
  5. Introduction to CORBA
    32 pages WinZipped-Winword7(26k) by dr. Zoltán László
  6. The first CORBA program
    24 pages WinZipped-Winword7(25k) by dr. Zoltán László
  7. Interface Definition Language
    20pages WinZipped-Winword7 (19k) by dr. Zoltan Laszls, Balazs Goldschmidt
  8. Advanced CORBA programming
    29pages WinZipped-Winword7 (22k) by dr. Zoltan Laszls, Balazs Goldschmidt
  9. 12 CORBA Sample Programs by dr. Zoltán László

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 2nd Ed.
Wiley, 1998