[ 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

  2. ? pages Zipped PowerPoint 8k
    ? pages Zipped PowerPoint 10k
    ? pages Zipped PowerPoint 25k
    ? pages Zipped PowerPoint 21k
  3. Java classes by Péter Kacsuk

  4. ? pages Zipped PowerPoint 58k
    ? pages Zipped PowerPoint 29k
  5. Advanced Java programming by Kovács József

  6. ? pages Zipped PowerPoint 112k
    ? pages Zipped PowerPoint 71k
  7. Client/Server with Distributed Objects

  8. 24 pages WinZipped-Winword7(27k) by dr. Zoltán László, dr. Károly Kondorosi
  9. Introduction to CORBA

  10. 32 pages WinZipped-Winword7(26k) by dr. Zoltán László
  11. The first CORBA program

  12. 24 pages WinZipped-Winword7(25k) by dr. Zoltán László
  13. Interface Definition Language

  14. 20pages WinZipped-Winword7(19k) by dr. Zoltán László,  Balázs Goldschmidt
  15. Advanced CORBA programming

  16. 29pages WinZipped-Winword7(22k) by dr. Zoltán László,  Balázs Goldschmidt
  17. 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