CERIAS - Center for Education and Research in Information Assurance and Security

Skip Navigation
Purdue University - Discovery Park
Center for Education and Research in Information Assurance and Security

Mace: Systems and Language Support for Building Correct, High-Performance Networked Services

Charles Killian - Purdue University

Feb 18, 2009

Size: 356.6MB

Download: Video Icon MP4 Video  
Watch in your Browser   Watch on Youtube Watch on YouTube


Building distributed systems is particularly difficult because of the
asynchronous, heterogeneous, and failure-prone environment where these
systems must run. This asynchrony makes verifying the correctness of
systems implementations even more challenging. Tools for building
distributed systems must strike a compromise between reducing programmer
effort and increasing system efficiency. Mace is a C++ language
extension, compiler, runtime, and toolset, that translates a concise but
expressive distributed system specification into a C++ implementation.
Mace exploits a natural decomposition of distributed systems into a
layered, event-driven state machine. A key design principle of Mace is
to separate each service algorithm from the implementation mechanics
(serialization, dispatch, synchronization, etc.), debugging code (logging
and property testing), and its utility services (lower-level services
providing a specified interface). Our experience indicates that
precisely because Mace imposes limits on the design structure of
distributed systems, it supports the implementation of a wide variety of
high-level supporting tools, including model checking, simulation, live
debugging, and visualization. Mace is fully operational, has been in
development for four years, and has been used to build a wide variety of
Internet-ready distributed systems. This talk will describe both the
Mace programming language design and MaceMC, the first model checker
that can find liveness violations in unmodified systems implementations.

About the Speaker

Charles Killian
Purdue University, Computer Science
West Lafayette, IN

Charles Killian is an Assistant Professor in the Department of Computer Science
at Purdue University. He completed his Ph.D. in Computer Science from the
University of California, San Diego under the supervision of Amin Vahdat.
Before transferring to UCSD in August 2004, he completed his Masters in
Computer Science from Duke University with Amin Vahdat. His research is at the
boundary of systems and programming languages, focusing on ways to use
compilers and language constructs to dually bridge the gap between performance
and programming expression, and to provide high-level tools for debugging,
analysis, and understanding. Over the past 4 years he has implemented the Mace
programming language and toolkit, built numerous distributed systems, and
designed MaceMC, the first model checker capable of finding liveness violations
in unmodified systems code.

Unless otherwise noted, the security seminar is held on Wednesdays at 4:30P.M. STEW G52, West Lafayette Campus. More information...


The views, opinions and assumptions expressed in these videos are those of the presenter and do not necessarily reflect the official policy or position of CERIAS or Purdue University. All content included in these videos, are the property of Purdue University, the presenter and/or the presenter’s organization, and protected by U.S. and international copyright laws. The collection, arrangement and assembly of all content in these videos and on the hosting website exclusive property of Purdue University. You may not copy, reproduce, distribute, publish, display, perform, modify, create derivative works, transmit, or in any other way exploit any part of copyrighted material without permission from CERIAS, Purdue University.