12th European Conference on Object-Oriented Programming |
|
Tutorial T16 |
Organizers: |
Gian Pietro Picco
Dip. Automatica e Informatica, Politecnico di Torino, Italy, and Dept. of Computer Science, Washington University in St.Louis, MO, USA |
Day: | Tuesday afternoon |
Level: | Introductory/Intermediate |
Room: | C401 (5th floor) |
The aim of the tutorial is to provide the audience with a comprehensive view of the new research area concerned with code mobility.
Code mobility can de defined as the capability of a distributed application to relocate its components at run-time. Component migration may involve the code of a software component (e.g., the code of a class), or even some combination of code and state (e.g., a class instance). This possibility has been made popular by Java and a myriad of other languages and systems. However, these systems differ in the way they provide support to code mobility, as they rely on different conceptual and terminological backgrounds, design choices, and abstractions. Even worse, the frequent use of the term "agent" to denote the application code being relocated adds further confusion, suggesting links with disciplines like artificial intelligence which are actually not concerned with this research area. Furthermore, although research on mobile code has gained great attention, applications exploiting code mobility are still missing or they are limited to minimal forms of mobility as in the popular example of the Java applets being downloaded into Web browsers. It is evident that this is an immature research area, and there is a strong need for a systematic approach to understanding the key characteristics of code mobility as well as for a careful analysis of the benefits provided.
The tutorial illustrates a taxonomy of mobile code technologies, architectural paradigms, and applications. The portion of the taxonomy related to technology is based on a reference model describing the basic abstractions into play, i.e. executing units, resources, and sites. Following this reference model, the mechanisms provided by the existing technologies are classified distinguishing among mechanisms dealing with mobility, security, translation and execution, and communication. In turn, architectural paradigms abstract away from the details of specific technologies and provide the application designer with a high-level view that can be used to evaluate the opportunities for mobile code. Finally, the taxonomy of applications provides a non-exhaustive list of domains that can benefit of mobile code.
The taxonomy provides a terminological and conceptual framework that characterizes the founding concepts of the research area. Also, it is useful to practitioners in that it provides guidelines for evaluating the opportunities for mobile code in a given application domain and select the technology that is more appropriate to it. This second aspect is the subject of the final part of the tutorial, that presents an assessment of mobile code technologies and paradigms in the context of a specific application domain: network management. Here, the concepts of the taxonomy are applied to develop a quantitative model that enables the application designer to select the most appropriate design paradigm and technology, based on the relevant parameters of the application domain and on the cost functions to be minimized.
Keywords: mobile code, mobile object systems, design paradigms, Java, active networks, mobility, network-aware computing.
Gian Pietro Picco is a Ph.D. candidate at Politecnico di Torino, Italy, where he will defend his thesis on code mobility in the first half of this year. His research interests are in understanding, evaluating, formalizing, and exploiting code mobility in the context of large-scale distributed systems. He authored several journal and conference publications on this subject. Prior to that, he worked in software process modeling, object-oriented databases, and robotics. Over the years, he has been involved in a number of collaborations with national and international academic and industrial partners. Furthermore, he taught university as well as industrial training courses. He is presently a visiting researcher at Washington University, St. Louis, USA, where he is investigating the relationships between mobile computing and mobile code.