Handling run-time updates in distributed applications

  • Authors:
  • Marco Milazzo;Giuseppe Pappalardo;Emiliano Tramontana;Giuseppe Ursino

  • Affiliations:
  • Università di Catania;Università di Catania;Università di Catania;Università di Catania

  • Venue:
  • Proceedings of the 2005 ACM symposium on Applied computing
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The server side of business software systems is commonly implemented today by an ensemble of Java classes distributed over several hosts. In this scenario, it is often necessary, for performance tuning or bug fixing, to update the code or change the location of some classes. Since business systems must typically stay on-line 24 hours a day, changes and updates should be made without stopping system execution.This paper proposes a distributed software architecture which clearly separates the functionalities of the server-side application from its on-line adaptation capabilities. As a result, developers are freed from considering adaptation concerns, which are instead provided by separate, application-independent, transparently integrated components. The latter analyse data related to the operational conditions of the application, and, based on available statistics and expected behaviour, trigger changes on the application classes.The bytecode of classes expected to need on-line updating is modified at load time, so as to insert hooks that will support run-time changes. No tampering with class files is required. Particular care has been taken to ensure the type-compatibility of classes thus manipulated.