The Impact of Using Class Inheritance in a Distributed Information System

  • Authors:
  • Patrick Dunne;Alex Gray

  • Affiliations:
  • -;-

  • Venue:
  • ADBIS '99 Proceedings of the Third East European Conference on Advances in Databases and Information Systems
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

The use of class inheritance provides many benefits when developing information based systems. The use of class inheritance within a distributed object information system (DOIS) however, has failed to gain acceptance within the distributed community. One of the major reasons for this is the general acceptance of the widely held belief [19] that inheritance is said to unacceptably degrade the performance of a DOIS. This widely held belief arose from the analysis of Smalltalk and its use in a distributed system. We argue that newer object-oriented languages such as Eiffel and Java use more efficient mechanisms to implement object-oriented features including inheritance. Also, more efficient mechanisms exist for supporting distribution which have changed the distributed inheritance situation. The development of the network techniques such as RPC, CORBA and RMI provide improved support for DOIS. This paper presents an examination of the use of CORBA, RMI and RPC with regard to the performance overheads that arise from moving data from one machine to another. The analysis examines the additional effort that is required in order to support distributed class inheritance. Each aspect of distribution, such as marshalling, binding, network latency and inter-process communication was measured in order to establish the reasons for such degradation. Our results show that the poor performance which is associated with the use of class inheritance within a DOIS, is mainly a result of the inefficiency of the support provided by a language and the unacceptable degradation is not a direct consequence of distribution. Furthermore, our study shows that network techniques such as CORBA and RMI although providing a high level of abstraction, are generally not efficient when large amounts of data are being sent across the network.