Foto del docente

Mirko Viroli


Department of Computer Science and Engineering

Academic discipline: ING-INF/05 Information Processing Systems

Vice Dean of Vicepresidenza della Scuola di Ingegneria — Cesena

Director of Second Cycle Degree of Computer Science and Engineering


Innovative techniques for extending object-oriented platforms. Conceiving advanced programming techniques for object-oriented programming platforms like Java.
Agent-oriented engineering of complex distributed systems. Conceiving models and technologies for co-designing the agent and artifact abstractions, and for conceiving and formalising languages for the specification of their properties and implementation.
Coordination models. Systematically using formal modelling techniques for the specification of coordination systems, used as the basis for analysing properties and for building correct systems.
Self-organising systems. Studying self-organising solutions in the context of multi-agent systems, coordination models, and pervasive computing.

Innovative techniques for the extension of object-oriented platforms

The current reference for the development of software in the context of distributed applications on heterogeneous architectures is based on platforms like Java and .NET. They provide: (i) a virtual machine (VM) executable on any device and node of the network, (ii) a high-level programming language based on the object-oriented paradigm (Java and C#), (iii) a set of libraries and advanced tools for facilitating development and deployment of complex distributed applications. These platforms, which are used by millions of developers, are the de-facto standard for programming a large set of applications: they keep evolving so as to satisfy the ever growing requirements of expressiveness, maintainability and flexibility which are typical of modern applications. Research themes in this context concern:
  • Run-time support to generics - Developing innovative techniques for supporting at execution time the mechanism of generics, both by a compilation and Java VM approach
  • Variant parametric types and Java wildcards - Studying and introducing theoretical and pragmatical aspects of this "unification" mechanism for parametric and inclusive polymorphism.
  • Family polymorphism - Developing an approach to extend a hierarchy of classes by creating a new specialised hierarchy where all inner-classes' relationships (inheritance and delegation) are preserved without incurring into the well-known covariance problem, thus supporting functionalities of component systems
  • Multi-paradigm programming - Exploring logic and agent-oriented extensions of the Java programming language
Agent-oriented engineering of complex distributed systems

The research field on multi-agent systems, originated in distributed AI and then influenced by software engineering, promotes the idea of analysing, designing, and implementing software systems in terms of autonomous agents (each proactively executing a given task and/or achieving a given goal). Agents interact one another so as to achieve a social goal, which is the objective of the overall system. A research activity developed in this field starts with the recognition of the fundamental role of environment in multiagent systems (a pattern typically inspired by complex systems): this is not only seen as the superimposed locus where the application is deployed, but rather as an objective of design, thus requiring proper abstractions for it being modelled, and infrastructures/technologies for being implemented. The research themes in this context concern:
  • Environment and infrastructures - Studying methodologies and infrastructures for incorporating the environment as a first-class entity in the engineering of agent systems
  • Artifacts and A&A model - Identifying in the artifact abstraction the fundamental abstraction for supporting the environment: in this theme its foundational aspects are studied, along with a support in terms of programming language and infrastructure
  • Agent Coordination Context - Introduction of an abstraction to support organisation, security and coordination in agent systems, representing at the infrastructure level the agent interface towards its environment
Coordination Models

Coordination is one of the most pervasive and multidisciplinary theme of research on modern (and classical) computer science: it deals with the introduction of models, languages, and platforms for managing the interactions between software components. Born in the context of parallel architectures with the Linda model, it has been then exploited in coordination technologies like TuCSoN. In particular, models and technologies introduced in the field of "coordination models and languages", are primary candidates for being used as basic tools to build and manage the environment of a multiagent system, due to their focus on interaction management for distributed systems. The research themes in this context concern:
  • Advanced coordination models - In this research context new coordination models are studied, along with extensions of existing ones
  • Coordination artifact - This abstraction, particular instance of an artifact, allows us to create a bridge between the fields of multiagent systems and coordination models
  • Coordination as a service - By recognising the possibility of providing coordination as a service, through an infrastructure, in this research theme we analyse the relationship with existing frameworks like process algebras and service-oriented infrastructures.
Self-organising systems

In modern applications, coordination models for distributed systems should more and more frequently face system's parts that are outside the scope of design: they can have unpredictable behaviour, for either legacy or deployment reasons. Characteristics like robustness to failures and adaptativity to unforseen situations become much more critical with respect to, e.g., performance, and hence inspire implementations of coordination services based on innovative techniques, related to self-organising models. In this kind of approach, a system is realised by subparts that interact locally based on very simple behaviours, with the result of making interesting global properties emerge. This context requires innovative analysis and design tools, for instance based on simulations, and an early identification of design errors, and hence a more rapid design of correct systems.
  • Self-organising multi-agent systems - Introduction of a new methodological approach to the design and verification of multiagent systems featuring self-organisation
  • Self-organisation and coordination - Studying self-organising mechanisms for positioning data items into data-driven coordination systems.
  • Pervasive Service Ecosystems - Studying models and designing infrastructures for self-organising pervasive service ecosystems

Latest news

At the moment no news are available.