The difficulty in developing reliable software has been an obstacle in using distributed systems. This project will study and advance the use of formal techniques in distributed protocol design. The objective is to develop a framework which allows a complex protocol to be structured as a composition of simpler protocols. The project will develop notations for specifying the interactions between the component protocols, develop a proof system, and build a software tool supporting our methodology. The framework will be applied to various domains such as design of adaptive protocols, reconfigurable protocols, and structuring of control protocols. The educational component of the CAREER prooject will involve students in the protocol development. This will include emphasis of formal techniques in courses, increasing laboratory component to provide experience and forming alliances with the industry to re-train computer professionals (via television courses), and involving undergraduates in research.