page       attach   
Info Partners
Extensible Object Systems – Dynamic and Unpredictable Environments

In a previous project we have achieved substantial results in extending object systems beyond the traditional ingredients of the object paradigm, incorporating more powerful and flexible features. However, further important issues deserve investigation as a natural continuation of this work, notably the new grand challenges posed when we want to exploit object systems in dynamic and unpredictable environments. This is the main research aim of the project we are proposing.

Indeed, today software systems are becoming larger, more distributed, heterogeneous, and should be ideally able to run eternally. Furthermore, systems are no longer produced ab initio, but more and more as compositions and/or modifications of other, existing systems, often performed at run-time as a result of a process evolution. As a consequence, programmers should be able to design and develop applications which can adapt in response to unforeseen changes of requirements or technology, which are suitable to operate in unpredictable environments, and which can be composed and seamlessly integrated dynamically, even with heterogeneous components.

The object-oriented approach, even though in itself is clearly not enough, still looks a very promising candidate to be extended and integrated with innovative answers to these new grand challenges, since it offers the advantage of well-established mainstream programming languages, support for type safety, already available basis for interoperability (JVM bytecode and .NET IL) and development of component-oriented software.

To exploit object systems in dynamic and unpredictable environments, we will consider as primary objectives adaptation and highly modular dynamic composition. Moreover, adaptation and composition should be guaranteed to be safe by expressing and checking possibly partial requirements; finally, the developed solutions should as much as possible allow interoperability.

The work plan will be organized around four tasks which correspond to the four main approaches we will use to achieve the project's objectives.

  • Integration with the Agent Paradigm
  • Evolution and Reconfiguration
  • From Static to Dynamic Typechecking
  • Design and Implementation of Language Constructs

In the first task we will use the agent paradigm as key notion for extending object systems towards well-engineered concurrent applications. In the second task we will study and develop execution models for evolution and reconfiguration features in object systems. In the third task we will develop type systems which guarantee safe software composition for object systems, facing the new problems offered by dynamic and unpredictable environments. Finally, in the fourth task we will design and implement linguistic support for the advanced features needed to exploit such object systems.

The five units of the project are all leading research groups in design and foundations of object systems, and are active in organizing international events devoted to the project's topics. They have already experimented successful collaboration in the previous project EOS, and altogether provide strong theoretical background, and expertise in both foundational object calculi, and application to prevalent languages. However, they also have specific and complementary skills w.r.t. the new issues of interest which will allow maximizing the efficiency in achieving the project's objectives and improve the partners' cohesion setting up new synergies. In particular, the unit of Alessandria has skills in type theory for higher-order, concurrent and object-oriented languages, the unit of Bologna in engineering of agent and component-based systems, the unit of Firenze in calculi for mobile processes, the unit of Genova in design and foundations of modular languages, and the unit of Milano in aspect-oriented programming and software evolution.