Foundations of Wide Area Network Programming

13th International School for Computer Science Researchers
Lipari Island, July 01, 2001 - July 14, 2001

The 13th School for Computer Science Researchers addresses Ph.D. students and young researchers who want to get exposed to the forefront of research activity in the field of Wide Area Network Programming, with particular reference to the future of the World Wide Web and to issues of distributed architectures, software engineering, object oriented design, security, mobility, coordination, collaborative work and retrieval/handling of semistructured data.


Prof. Alfredo Ferro, (University of Catania), Co-Chair
Prof. Ugo Montanari, (University of Pisa), Co-Chair
Prof. Vladimiro Sassone, (University of Catania), Co-Chair


Security Protocols and Formal Methods
Prof.Martin Abadi, Bell Labs Research, Palo Alto
Content:These lectures are an introduction to security protocols and to some of the formal approaches to their design and analysis. The lectures cover the basics of security protocols, with some examples (fragments of SSL, SSH, etc.) and principles. Then they focus on formal methods for modelling and reasoning about security protocols, and particularly on the spi calculus (an extension of the pi calculus with constructs for cryptography).
Principles of Wide Area Programming
Prof.Luca Cardelli, Microsoft Research, Cambridge, UK
Content:We discuss the challenges of computation on wide-area networks, and introduce a formalism, the Ambient Calculus, that matches some fundamental characteristics of wide-area networks and systems. Our approach (developed with Andrew Gordon) reflects the institution that to function satisfactorily for a wide-area network, the existing "sea of objects" must be partitioned and made hierarchical, internally mobile, and secure.
Coordination Languages and Models
Prof.Paolo Ciancarini, Universita` degli Studi, Bologna
Content:The emergence of high bandwidth network technology, and the trend toward reusing whole applications as components of larger software configurations is fuelling the development of distributed software architectures and agent-oriented programming. Coordination languages are a class of programming languages which offer a variety of solutions to the problem of managing the interaction among computing entities, like agents or processes. These languages usually offer explicit support for composing and controlling software architecture made of interacting active components. Interestingly, most coordination languages are based on a few common notions, such as pattern-based, associative communication, that complements the name-oriented, data-based communication of traditional languages for parallel programming. A number of interesting models have been proposed and used to support coordination languages and systems. We will describe and discuss a number of these models and languages.
Concurrent Object-Oriented Programming
Prof.Doug Lea, State University of New York at Oswego
Content:Topics include: Concurrent object models and their mappings to systems, general design constraints and patterns for exclusion, state dependence, sending messages, and creating threads, application-specific design patterns for computationally-intensive, event-driven, and IO-intensive programs, and for constructing distributed object system middleware. Programming example will be in Java.
Mobility, Security and Proof-Carrying Code
Prof.Peter Lee, Carnegie-Mellon University, Pittsburgh
Content:This course will provide an introduction to the security problems raised by mobile code, along with an overview of approaches used in solving them. A portion of the overview will cover approaches used in current practice, but the majority of the course will focus on various forms of proof-carrying code (PCC), including the Necula/Lee approach as well as recent developments such as typed assembly language. A substantial part of the course will explain some of the "proof-engineering" issues that must be solved in order to make any approach to PCC practical.
The Extensible Markup Language (XML)
Prof.Michael I. Schwartzbach, University of Aarhus
Content:XML is emerging as a unifying notation for structured data. Its main areas of application are Web contents and databases. In itself, XML is just a particular notation for labeled ordered trees. The potentially vast impact arises from a collection of generic tools that are being integrated into the Web infrastructure. The main tools deal with namespaces, schemas (grammars), linking, transformation, and querying. These lectures will present 'the XML vision' and its technological foundations.
Java, Jini and Related Technologies
Prof.Jim Waldo, Sun Microsystems, Burlington, Mass. and Harvard Un
Content:In this course, we will investigate the effect being able to move objects(including the code that implements the object) has in a distributed computing system. We will begin by looking at Java Remote Method Invocation, the base distributed computing infrastructure within Java. We will then see how Jini is built on the semantic model established by RMI, and how such a system allows abstraction from the communication protocols used in the system. Finally, we will look at some of the research challenges open in such a world of mobile objects.