Declarative networking

  • Authors:
  • Boon Thau Loo;Tyson Condie;Minos Garofalakis;David E. Gay;Joseph M. Hellerstein;Petros Maniatis;Raghu Ramakrishnan;Timothy Roscoe;Ion Stoica

  • Affiliations:
  • University of Pennsylvania, Philadelphia, PA;University of California, Berkeley, CA;Technical University of Crete, Greece;Intel Research, Berkeley, CA;University of California, Berkeley, CA;Intel Research, Berkeley, CA;Yahoo! Research, Silicon Valley;ETH Zurich, Switzerland;University of California, Berkeley, CA

  • Venue:
  • Communications of the ACM - Scratch Programming for All
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Declarative Networking is a programming methodology that enables developers to concisely specify network protocols and services, which are directly compiled to a dataflow framework that executes the specifications. This paper provides an introduction to basic issues in declarative networking, including language design, optimization, and dataflow execution. We present the intuition behind declarative programming of networks, including roots in Datalog, extensions for networked environments, and the semantics of long-running queries over network state. We focus on a sublanguage we call Network Datalog (NDlog), including execution strategies that provide crisp eventual consistency semantics with significant flexibility in execution. We also describe a more general language called Overlog, which makes some compromises between expressive richness and semantic guarantees. We provide an overview of declarative network protocols, with a focus on routing protocols and overlay networks. Finally, we highlight related work in declarative networking, and new declarative approaches to related problems.