Systems Seminar - CSE

Modular Programming for Software Defined Networks

Dr. Joshua ReichPostdoctoral ResearcherPrinceton University

In Software Defined Networking (SDN), a network application comprising many disparate tasks must be converted to a single set of packet-processing rules on the network switches. Unfortunately, today's SDN platforms require network applications to be specified in terms of low-level hardware-centric operations. Moreover, such systems do not support expressing these tasks as separate applications which may be composed together to build a global network application. These two features force network programmers to code low-level monolithic programs – an expensive, error-prone process that produces code that is neither portable, nor reusable.

In this talk, I will discuss our work on the Frenetic network programming language that provides high-level tools for writing modular network software. Frenetic's architecture and approach will be introduced, after which we will focus on the problem of "monolithism" – complex, non-portable, non-reusable network code. We will introduce novel techniques for synthesizing a set of independent network apps into a single coherent network application through functional composition. Features such as isolation and writing topology-independent code will also be covered and concrete examples provided.
Dr. Joshua Reich is a postdoctoral researcher working with Professor Jen Rexford in the Network Systems Group at the Department of Computer Science, Princeton University. He builds systems that enable networked infrastructure be utilized more easily and efficiently – with a current focus on Software Defined Networking techniques. He was selected as an NSF/CRA Computing Innovation Fellow in the 2011 Cohort. He received Best Student Demo at ACM MobiCom/MobiHoc 2007 and was an ARC Student Poster Finalist at SIGCOMM 2010. Joshua is the inventor of record on several patents and his dissertation work on scalable P2P virtual machine streaming led to the founding of a startup, Silver Lining Systems.

Joshua earned a B.A., Magna Cum Laude, in Mathematics from Columbia College, Columbia University in 2002, an M.S. in Computer Science from Columbia University in 2004, and received his PhD in Computer Science from Columbia University in 2011 where he was co-advised by Professors Vishal Misra and Dan Rubenstein. During his PhD studies, Joshua interned with Sandia National Labs (NM and CA), Microsoft (Bangalore and Redmond) and Technicolor (Paris).

Sponsored by