=============================== ABSTRACTS OF TECHREPORTS 2003 =============================== #Reference: vub-prog-tr-03-01 "Reducing Network Latency by Application Streaming" Luk Stoops, Tom Mens, Theo D'Hondt Technical Report #Abstract: In the advent of mobile code, network latency becomes a critical factor. This paper investigates application streaming, a technique that exploits parallelism between loading and execution of mobile code to reduce network latency. It allows applications to migrate from host to host without sacrificing execution time during the migration phase and it allows the application to start its job at the receiving host much earlier. The feasibility of the technique has been validated by implementing prototype tools in Java and the Borg mobile agent environment. #Keywords: mobile code, application streaming, network latency #Reference: vub-prog-tr-03-02 "Refactoring: Current Research and Future Trends" Tom Mens, Serge Demeyer, Bart du Bois, Hans Stenten, Pieter Van Gorp ETAPS 2003 Workshop on Languages, Descriptions, Tools and Applications (LDTA) Electronic Notes in Computer Science 82(3), Elsevier, 2003. #Abstract: In this paper we provide an extensive overview of existing research in the field of software restructuring and refactoring, from a formal as well as a practical point of view. Next, we propose an extensive list of open questions that indicate future research directions, and we provide some partial answers to these questions. #Keywords: refactoring, restructuring, research directions #Reference: vub-prog-tr-03-04 "Identifying Refactoring Opportunities Using Logic Meta Programming" Tom Tourwˇ, Tom Mens Proceedings of CSMR 2003 #Abstract: In this paper, we show how automated support can be provided for identifying refactoring opportunities, e.g., when an applicationÕs design should be refactored and which refactoring(s) in particular should be applied. Such support is achieved by using the technique of logic meta programming to detect so-called bad smells and by defining a framework that uses this information to propose adequate refactorings. We report on some initial but promising experiments that were applied using the proposed techniques. #Keywords: refactoring, bad smells, logic meta programming #Reference: vub-prog-tr-03-05 "Formalising Refactorings with Graph Transformations" Tom Mens, Niels Van Eetvelde, Dirk Janssens, Serge Demeyer Special Issue of Fundamentae Informatica, 2003 #Abstract: The widespread interest in refactoring - transforming the source-code of an object-oriented program without changing its external behaviour - has increased the need for a precise definition of refactoring transformations and their properties. This paper introduces a graph representation of those aspects of the source code that should be preserved by refactorings, and graph transformations as a formal specication for the refactorings themselves. To this aim, we use type graphs, forbidden subgraphs, embedding mechanisms, negative application conditions and controlled graph rewriting. We show that it is feasible to reason about the effect of refactorings on object-oriented programs independently of the programming language being used. This is crucial for the next generation of refactoring tools. #Keywords: graph transformation, refactoring, behaviour preservation #Reference: vub-prog-tr-03-06 "Migration strategies for application streaming" Luk Stoops, Tom Mens, Christian Devalez, Theo D'Hondt Technical Report #Abstract: In the advent of ubiquitous mobile systems in general and mobile code in particular, network latency is a critical factor due to the limited bandwidth in current-day networks. This paper investigates application streaming, a technique that exploits parallelism between loading and execution of code to reduce network latency. It allows applications to migrate from host to host without sacrificing execution time during the migration phase. We show that the performance of application streaming largely depends on the component migration strategies deployed. We implemented one of the more powerful migrating strategies, where components migrate under control of a supervisor. Our experiments, in Java, show that this migration strategy can reduce network latency almost completely. We can also provide design guidelines for building new mobile applications that are tailored to the proposed technique, so that they are able to migrate as if there were no network latency at all. #Reference: vub-prog-tr-03-07 "On first-class methods and dynamic scope" Theo D'Hondt, Wolfgang De Meuter Proc. Langages et Modeles a Objets 2003 #Abstract: When considering the wide range of object-oriented programming languages, one hardly ever finds methods to be first-class entities. At first sight, this phenomenon seems to be caused by a concern for an efficient implementation. Closer inspection however, reveals more subtle grounds that are rooted in issues more fundamental than performance. This paper investigates this aspect of object-oriented programming languages using an extensible object model that is sufficiently simple to reveal the various concerns. In particular, it argues in favor of dynamic scoping as a setting in which to manipulate first-class methods. #Reference: vub-prog-tr-03-08 "High-Speed Migration by Preemptive Mobility" Luk Stoops, Karsten Verelst, Tom Mens, Theo D'Hondt Technical Report #Abstract: In the advent of ambient intelligence, introducing ubiquitous mobile systems and services in general and mobile code in particular, network latency becomes a critical factor. This paper investigates preemptive mobility, a high performance computing technique that exploits parallelism between loading and execution of applications to reduce network latency. The technique sends the mobile application code preemptively to the remote host, long before the actual migration is requested. Then, when we do want to migrate, we wonÕt transfer the complete application anymore but only the delta of the current computational state with the already migrated computational state. Our experiments show that some applications can migrate in 2% of their original migration time. This allows applications to migrate very fast from host to host without a significant loss of execution time during the migration phase. #Keywords: preemptive mobility, mobile code, high performance computing, parallism, network latency #End