Modular Heterogeneous System Development: A Critical Analysis of Java

  • Authors:
  • Gul Agha;Mark Astley;Jamil A. Sheikh;Carlos Varela

  • Affiliations:
  • -;-;-;-

  • Venue:
  • HCW '98 Proceedings of the Seventh Heterogeneous Computing Workshop
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

Java supports heterogeneous applications by transforming a heterogeneous network of machines into a homogeneous network of Java virtual machines. This approach abstracts over many of the complications that arise from heterogeneity, providing a uniform API to all components of an application. However, for many applications heterogeneity is an intentional feature where components and resources are co-located for optimal performance. We argue that Java's API does not provide an effective means for building applications in such an environment. Specifically, we suggest improvements to Java's existing mechanisms for maintaining consistency (e.g. synchronized), and controlling resources (e.g. thread scheduling). We also consider the recent addition of a CORBA API in JDK 1.2. We argue that while such an approach provides greater flexibility for heterogeneous applications, many key problems still exist from an architectural standpoint. Finally, we consider the future of Java as a foundation for component-based software in heterogeneous environments and suggest architectural abstractions which will prove key to the successful development of such systems. We drive the discussion with examples and suggestions from our own work on the Actor model of computation.