Antonio Carzaniga


My research interests are in the general areas of distributed computing, computer networks and advanced communication services, and software engineering. Below are some ideas and projects I worked on in more or less recent years. The list of my scholarly publications should provide a more complete, although perhaps less clear picture of my research interests and contributions.


My PhD dissertation and my primary research for a long time was about a scalable, distributed publish/subscribe system called Siena. Further information on this research topic is available on my Siena page.

Content-Based Networking

Content-Based Networking is an advanced communication service. The idea of content-based networking is an evolution and extension of my work on scalable publish/subscribe systems. Further information on this research topic is available on my Content-Based Networking page.

Information Centric Networking

The idea of Information Centric Networking is that the network should provide a way access information rather than hosts. This idea has many commonalities with the notion of a content-based network. My work in this area has consisted mostly of trying to combine the two things. See the articles published at the ACM ICN conference in 2014 (Abstract), 2013 (Abstract), and 2011 (Abstract).

Automatic Workarounds and Intrinsic Redundancy

Another line of research I developed in recent years is in the general area of software engineering and more specifically in the area of autonomic systems. The high-level objective of this research is to develop systematic ways to increase the fault-tolerance of some software systems. In particular, I developed the notion of automatic workarounds. An automatic workaround is a workaround deployed automatically at run-time to overcome a failure in a software system. The development of this idea has led to technological as well as more general methodological advances. In terms of technology, workarounds must be realized and engineered so that they can be deployed within a running applications without disrupting its flow and without excessive penalties for the user. More generally, the main idea behind automatic workarounds is to exploit the intrinsic redundancy of software, responding to a failure by finding alternative execution paths that avoid the failure while achieving the same functionality as the failing code.

The key intuition is that modern software, especially modular software, is intrinsically redundant, in the sense that it is likely to contain alternative code that was not deliberately designed as such, and therefore that can be used opportunistically without incurring the high costs of a redundant design. Furthermore, the notion of intrinsic redundancy is quite general and can be useful for other purposes. This line of work has led to two doctoral dissertations and, among others, a recent articles appeared in ACM TOSEM (Abstract), and a sequence of other articles published at the FSE and ICSE conferences in 2010 (Abstract), 2013 (Abstract), 2014 (Abstract), and 2015 (Abstract).


The performance of algorithms based on random walks or other "gossip" protocols depend on the length of the walks or the number of gossip steps. In particular, a random walks must be long enough to achieve the desired sampling distribution independently of the starting node, but exactly how long depends on a the "mixing rate" of the network, which is a global property of the network related to the spectrum of the network graph. We therefore developed a completely decentralized and efficient algorithm called P2PImpulse to estimate this mixing rate and more generally some spectral properties of the network graph. The fundamental idea of P2PImpulse is to view the network as a sort of dynamical system and then to compute what amounts to the impulse response of such a system, and to use that impulse response to then identify the dominant dynamic properties of such a system that in turn correspond to the mixing time. Further information on this research topic is available on my P2PImpulse page.


With this project, I studied ways to automate the experimentation process for large-scale distributed systems. The general idea to achieve automation is to create a script to run an entire experiment, and to do that using code generation starting from models of the system under experimentation, the testbed, and the experiment workload. This research led to the doctoral dissertation of one of the students I co-supervised at the University of Colorado (PDF). The results of this research were also published at the 20th IEEE/ACM International Conference on Automated Software Engineering in a paper that was also nominated for the ASE Best Paper Award (Abstract, PDF). Later I also worked on an extension of this technique to support not only an automated experimentation process but also a repeatable one, where environmental conditions are controlled and statistically significant results are obtained through multi-trial experiments. This technique was published at the International Conference on Software Engineering in 2008 (Abstract, PDF).
this page is maintained by Antonio Carzaniga and was updated on December 13, 2015