A modular framework for global computing
Technological advances in telecommunication networks and the development of more efficient communication protocols are leading to an ever-increasing integration of computing systems. Massive networked and dynamically reconfigurable infrastructures interconnecting heterogeneous, autonomous and mobile components can now operate on the basis of limited information. With only variable guarantees for communication, resource usage, and in particular code mobility, they have stimulated the proposal of new techniques for the development and deployment of global computational environments. To support the implementation of languages designed for distributed programming fostered by these 'global computers', a generic software framework called IMC (Integrated Mobile Calculi) has been introduced. The basic idea and motivation of the MIKADO project partners was to provide for all the functionalities and abstractions required for arbitrary components to communicate and move in a distributed setting. IMC therefore provides concrete implementations for the standard functionalities of Java mobile framework, such as code mobility, node topology, naming and binding, among others. In this respect, IMC is straightforward to use if there is no need for specific advanced features. Nevertheless, the framework is open to customisations if this is required by the mobility system to be implemented. The user can customise parts of the framework by providing their own implementations for all the interfaces used within the IMC package. It enables platform designers to customise communication protocols and network architectures. At the same time, it provides language designers with primitives to develop run-time supports for languages oriented towards global computing. Within the IMC framework, the most recurrent notions of network aware programming were packed together to permit developers to concentrate on the specificities of their system. A primordial version of the IMC framework was initiated within the MIKADO project and released as open source software. Since then, it has been completely re-designed and re-implemented to improve usability and to provide many additional features. The actual code of the different IMC components can be found by following the link: http://sourceforge.net/projects/imc-fi