The DISCO (Distribution, Interaction, Specification, Composition for Object Systems) project is funded by MIUR - Programmi di ricerca di rilevante interesse nazionale. The duration is 24 months, from 22/03/2010 through 22/03/2012, and the funding is 53639 EUR.
This project builds on and extends the achievements of projects EOS and EOSDUE.
DISI, Univ. di Genova, via Dodecaneso 35, 16146 Genova, Italy
E-mail: firstname.lastname@example.org, Tel: +39 010 3536730, Fax: +39 010 3536699
Summary of the project (taken from "Modello A")
In previous PRIN projects (EOS, EOSDUE) we have achieved substantial results in extending object systems beyond the traditional ingredients of the object paradigm, incorporating more powerful and flexible features.
Basing on our experience in this work, we face in DISCO two new grand challenges posed to object technology:
- exploiting objects in distributed environments, and
- ensuring reliability by formal specification and verification techniques. Keywords in the project title summarize these two challenges as main objectives and composition as our privileged mean to achieve them.
Today, distributed computing has become a ubiquitous technology in the form of the Internet and the Web. There is growing demand for applications that work well on and off line, combining the ease of maintenance of web applications with the high quality user experience of local clients. In particular, there is an increasing trend towards the provision of software as a service via the network (cloud or utility computing). An important question to address is then whether specific principles of object-oriented programming still can help to program, structure and organize such systems. We believe the answer is yes, as also recently advocated by Gilad Bracha in the white paper Objects as Software Services.
Development of provably reliable software has been an ideal goal since the beginning of computer science. However, nowadays there is a renewed confidence in the research community towards its achievement in real-world applications. For instance, Tony Hoare has recently proposed the problem of a "Verifying Compiler", that is, a fully automated program verification system that can handle programs of arbitrary size and complexity, as a Grand Challenge. His thesis is that most of the factors that have inhibited progress on practical program verification are no longer as severe as they were.
More specifically, integration of programming languages with verification techniques is a hot topic (see, e.g., the PLPV workshops series), often focused on object-oriented programming, as also shown by many European projects.
Whereas the two above slogans are of course ambitious and call for long-term research, DISCO aims at obtaining a substantial advancement, in the spirit of these slogans, of the state-of-the-art of object technology related to (1) and (2). We believe this advancement can be achieved relying on the following strengths of the project:
- Project members are leader researchers in object technology in Italy, with specific and complementary skills, and are active in organizing international events devoted to the topics of the project (the next, and most important, being ECOOP 2009).
- In particular, they have developed in previous common projects well-established work on flexible composition of object systems and type analysis which will be of key importance, as better motivated in tasks description in the "Research Program Aim".
- Cooperation among the units renews and expands an integrated work praxis successfully consolidated in preceding PRIN projects.
- New expertise has been acquired in the fields directly related to the objectives, since some DISCO members specifically work on programming languages for network computing, calculi for specifying and combining services, specification of concurrent, distributed and mobile systems, automated verification.
- One unit provides more applicative competences which complete the more theoretical skills of the others.
- Two units of the project are involved in the COST action IC0701 "Formal Verification of Object-Oriented Software", which aims to develop verification technology for object-oriented programs on industrial scale, and includes a working group on concurrency, mobility, distributed Systems.
Accordingly to the overall aim, the work plan will be organized around three tasks: Composition; Interaction and Distribution; Specification. The first task is devoted to consolidate work which enhances compositionality in object systems, by allowing more flexible forms of software composition, evolution and reuse. The second and third task will exploit these results to face the challenges (1) and (2), respectively. That is, the aim of Task 2 is to exploit the constructs and techniques for flexible composition and evolution developed in Task 1 in a context of concurrency, mobility, and distribution. The aim of Task 3 is to formalize and validate useful properties of the distributed object systems designed in previous tasks, starting from classical static analysis based on syntactic information, towards more sophisticated forms of type systems able to specify different kinds of "semantic" properties.