Results 1 - 10
of
85
Partial Behavioral Reflection: Spatial and Temporal Selection of Reification
, 2003
"... Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more e#cient and flexible behavioral reflection. We expose the spatial and temporal dimensions of such reflection, and p ..."
Abstract
-
Cited by 65 (15 self)
- Add to MetaCart
Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more e#cient and flexible behavioral reflection. We expose the spatial and temporal dimensions of such reflection, and propose a model of partial behavioral reflection based on the notion of hooksets. In the context of Java, we describe a reflective architecture o#ering appropriate interfaces for static and dynamic configuration of partial behavioral reflection at various levels, as well as Reflex, an open reflective extension for Java implementing this architecture. Reflex is the first extension that fully supports partial behavioral reflection in a portable manner, and that seamlessly integrates load-time and runtime behavioral reflection. The paper shows preliminary benchmarks and examples supporting the approach. The examples, dealing with the observer pattern and asynchronous communication via transparent futures, also show the interest of partial behavioral reflection as a tool for open dynamic Aspect-Oriented Programming.
A Bytecode Translator for Distributed Execution of "Legacy" Java Software
, 2001
"... This paper proposes a system named Addistant, which enables the distributed execution of "legacy" Java bytecode. Here "legacy" means the software originally developed to be executed on a single Java virtual machine (JVM). For adapting legacy software to distributed execution on multiple JVM, develop ..."
Abstract
-
Cited by 44 (5 self)
- Add to MetaCart
This paper proposes a system named Addistant, which enables the distributed execution of "legacy" Java bytecode. Here "legacy" means the software originally developed to be executed on a single Java virtual machine (JVM). For adapting legacy software to distributed execution on multiple JVM, developers using Addistant have only to specify the host where instances of each class are allocated and how remote references are implemented. According to that specification, Addistant automatically transforms the bytecode at load time. A technical contribution by Addistant is that it covers a number of issues for implementing distributed execution in the real world. In fact, Addistant can adapt a legacy program written with the Swing library so that Swing objects are executed on a local JVM while the rest of objects are on a remote JVM.
A Java Commodity Grid Kit
, 2000
"... ... In this paper, we explain why CoG Kits are important, describe the design and implementation of a Java CoG Kit, and use examples to illustrate how CoG Kits can enable new approaches to application development based on the integrated use of commodity and Grid technologies. ..."
Abstract
-
Cited by 40 (6 self)
- Add to MetaCart
... In this paper, we explain why CoG Kits are important, describe the design and implementation of a Java CoG Kit, and use examples to illustrate how CoG Kits can enable new approaches to application development based on the integrated use of commodity and Grid technologies.
Interactive and Descriptor-based Deployment of Object-Oriented Grid Applications
- in Proc. of the 11th International Symposium on High Performance Distributed Computing (HPDC'02
, 2002
"... Increasing complexity of distributed applications and commodity of resources through grids are making the tasks of deploying those applications harder. There is a clear need for standard tools allowing versatile deployment and analysis of distributed applications. We present here a solution for the ..."
Abstract
-
Cited by 37 (16 self)
- Add to MetaCart
Increasing complexity of distributed applications and commodity of resources through grids are making the tasks of deploying those applications harder. There is a clear need for standard tools allowing versatile deployment and analysis of distributed applications. We present here a solution for the deployment and monitoring of applications written using ProActive, an experimental Java-based library for concurrent, distributed and mobile computing. We describe the use of XML-based descriptor for the deployment part of a distributed application and the use of IC2D (Interactive Control and Debugging of Distribution), for the monitoring and steering of the running application. Those ideas, concepts, and experiments are a contribution towards the construction of integrated environments for component-based grid programming. 1
From Distributed Objects to Hierarchical Grid Components
- in International Symposium on Distributed Objects and Applications (DOA
, 2003
"... We propose a parallel and distributed component framework for building Grid applications, adapted to the hierarchical, highly distributed, highly heterogeneous nature of Grids. This framework is based on ProActive, a middleware (programming model and environment) for object oriented parallel, mo ..."
Abstract
-
Cited by 33 (10 self)
- Add to MetaCart
We propose a parallel and distributed component framework for building Grid applications, adapted to the hierarchical, highly distributed, highly heterogeneous nature of Grids. This framework is based on ProActive, a middleware (programming model and environment) for object oriented parallel, mobile, and distributed computing. We have extended ProActive by implementing a hierarchical and dynamic component model, named Fractal, so as to master the complexity of composition, deployment, re-usability, and e#ciency of grid applications. This defines a concept of Grid components, that can be parallel, made of several activities, and distributed. These components communicate using typed one-to-one or collective invocations.
Asynchronous and Deterministic Objects
- IN 31ST ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
, 2004
"... This paper aims at providing confluence and determinism properties in concurrent processes, more specifically within the paradigm of object-oriented systems. Such results should allow one to program parallel and distributed applications that behave in a deterministic manner, even if they are distrib ..."
Abstract
-
Cited by 31 (15 self)
- Add to MetaCart
This paper aims at providing confluence and determinism properties in concurrent processes, more specifically within the paradigm of object-oriented systems. Such results should allow one to program parallel and distributed applications that behave in a deterministic manner, even if they are distributed over local or wide area networks. For that purpose, an object calculus is proposed. Its key characteristics are asynchronous communications with futures, and sequential execution within each process. While
Doorastha -- A step towards distribution transparency
- JIT, 2000
, 2000
"... Compared to centralized programming, writing applications with current distribution platforms like RMI or CORBA is quite difficult, because it requires several special considerations. For example, "normal" Java has referential semantics, objects are accessed and passed to methods through referenc ..."
Abstract
-
Cited by 23 (0 self)
- Add to MetaCart
Compared to centralized programming, writing applications with current distribution platforms like RMI or CORBA is quite difficult, because it requires several special considerations. For example, "normal" Java has referential semantics, objects are accessed and passed to methods through references. We would certainly like to keep these clear semantics in the case of a distributed application, too. With the standard Java distribution platform (RMI) however, objects used as arguments in a remote method invocation are by default copied to the remote site. This obviously will affect the program's semantics, if the programmer is not aware of the difference. In this paper
Compiling Multithreaded Java Bytecode for Distributed Execution
- In Proc. Euro-Par 2000, number 1900 in Lecture Notes in Computer Science
, 2000
"... Abstract. Our work combines Java compilation to native code with a run-time library that executes Java threads in a distributed-memory environment. This allows a Java programmer to view a cluster of processors as executing a single Java virtual machine. The separate processors are simply resources f ..."
Abstract
-
Cited by 22 (9 self)
- Add to MetaCart
Abstract. Our work combines Java compilation to native code with a run-time library that executes Java threads in a distributed-memory environment. This allows a Java programmer to view a cluster of processors as executing a single Java virtual machine. The separate processors are simply resources for executing Java threads with true concurrency and the run-time system provides the illusion of a shared memory on top of the private memories of the processors. The environment we present is available on top of several UNIX systems and can use a large variety of network protocols thanks to the high portability of its run-time system. To evaluate our approach, we compare serial C, serial Java, and multithreaded Java implementations of a branch-and-bound solution to the minimal-cost map-coloring problem. All measurements have been carried out on two platforms using two different network protocols: SISCI/SCI and MPI-BIP/Myrinet. 1
Reflex -- Towards an Open Reflective Extension of Java
, 2001
"... Since version 1.1 of the Java Development Kit, the Java reflective facilities have been successively extended. However, they still prove to be limited. A number of systems (e.g. MetaXa, Guaran a, Kava, Javassist) have addressed this limitation by providing reflective extensions of Java with richer M ..."
Abstract
-
Cited by 19 (5 self)
- Add to MetaCart
Since version 1.1 of the Java Development Kit, the Java reflective facilities have been successively extended. However, they still prove to be limited. A number of systems (e.g. MetaXa, Guaran a, Kava, Javassist) have addressed this limitation by providing reflective extensions of Java with richer MetaObject Protocols (MOPs). All these extensions provide a particular infrastructure that reflects the commitment of the designer to particular trade-offs between eciency, portability, expressiveness and flexibility. Unfortunately, these trade-offs are not satisfactory for all applications, since different applications may have different needs. This calls for breaking down the building of a reflective extension into different components that can be specialized in order to fit specific needs. We qualify such a reflective extension as open. In this paper, we present Reflex, a prototype open reflective extension of Java. As such, Reflex is a working reflective extension implemented by composing basic building blocks organized following a framework. Reflex comprises the definition of the framework, default generic components and some specialized components.

