2 Synthesizing Provably Safe Distributed Systems

My research focuses on the development of new programming tools and analysis techniques that improve the process of designing, implementing, and securing large-scale distributed systems. At the University of Pennsylvania, I lead the NetDB@Penn (http://netdb.cis.upenn.edu) research group, which is comprised of 11 doctoral students and three postdocs. I have graduated two doctoral students, and will graduate another three by summer 2012. My advisees include a co-winner of the Rubinoff award for most outstanding thesis in Computer and Information Science, two tenure-track Assistant Professors at Georgetown University, and two researchers at AT&T Labs Research. My work is interdisciplinary, combining techniques across varying subfields in computer science, including databases, formal methods, programming languages, with applications to networking, security, and systems in general. A unifying theme of my research is the use of the declarative networking [20–24] framework in combination with formal verification tools for automatically synthesizing provably correct distributed systems. In declarative networking, distributed systems are specified and implemented using a declarative recursive query language. Declarative networking fundamentally changes the way network protocols are designed and implemented. My early work in declarative networking demonstrated its use as a domain specific language for fast prototyping, by compiling protocols written in a declarative language into efficient distributed implementations. My work in the past few years has evolved declarative networking’s original roots as a rapid prototyping framework, towards one that serves as an important bridge connecting formal theories (for reasoning about protocol correctness) and actual implementations. The ability to bridge this gap is a major step forward compared to traditional approaches, where formal specifications, proof of protocol correctness and implementations are decoupled from one another. This decoupling leads to increased development time, error-prone implementations, and tedious debugging. I have also successfully connected declarative networking work with other domains, for instance, data provenance and network forensics, and unified its declarative framework with similar paradigms from the security and optimizations communities. Given the inter-disciplinary nature of our work, over a span of 5.5 years, my students and I publish across a wide range of conferences, including databases (SIGMOD [27,56], VLDB [16,55], CIDR [28], ICDE [17,54], SOCC [13]), networking (SIGCOMM [49], PODC [42], IEEE/ACM Transactions on Networking [12, 40], HotNets [6,39], CoNEXT [26], ICNP [11], COMSNETS [10]), security (NDSS [36], HotSec [35], PETS [33]), operating systems (SOSP [52], USENIX ATC [14,34]), and formal methods and programming languages (TACAS [43], PPDP [30], FMOODS [44], TPHOLs [41], PADL [23,37]). My students have received two best paper awards at ICDE 2009 [17], and ICAC 2012 [45]. Our research prototypes have been demonstrated at major conferences such as SIGMOD [53], SIGCOMM [4,5,29,32,38], NSDI [15,51], and COMSNETS [10], and experimentally deployed on testbeds such as PlanetLab [26,54], ORBIT wireless [10–12], Amazon EC2 [46,47,52], and AT&T’s ShadowNet [14]. In the rest of this statement, I will summarize the research work in my group, broadly classified under different stages of the distributed systems development cycle: synthesizing provably safe distributed systems (Section 2), debugging distributed systems (Section 3), securing distributed systems (Section 4), and optimizing distributed systems (Section 5). Section 6 provides some highlights on student development through research mentoring in my group. I will conclude in Section 7 with a discussion of our overall research impact. For more details, please refer to [23], an invited paper surveying recent advances in declarative networking.