Networking: A killer app for programming languages researchers

  Рет қаралды 430

Microsoft Research

Microsoft Research

8 жыл бұрын

Modern computer networks perform a bewildering array of tasks, from routing and traffic monitoring, to access control and server load balancing. Moreover, historically, managing these networks has been hideously complicated and error-prone, due to a heterogeneous mix of devices (e.g., routers, switches, firewalls, and middleboxes) and their ad hoc, closed and proprietary configuration interfaces. Software-Defined Networking (SDN) is poised to change this state of affairs by offering a clean, simple and open interface between network devices and the software that controls them. In particular, many commercial switches now support the OpenFlow protocol, and a number of campus, data-center, and backbone networks have deployed the new technology. However, while SDN makes it possible to program the network, it does not make it easy: The first generation of SDN controllers offered application developers the "assembly language" of network programming platforms. To reach SDN's full potential, research in programming languages and compilers is desperately needed. In this talk, I discuss our work to date on the Frenetic project, which involves the design of language, compiler and run-time system support for SDN programming. Our languages allow programmers to work declaratively, specifying global behaviors of their network at a high level of abstraction. The compiler and run-time system take care of the tedious details of implementing these high-level policies using the OpenFlow protocol. A key strength of our design is its support for modular programming. Complex network applications can be decomposed in to logical subcomponents -- an access control policy, a load balancer, a traffic monitor, a router -- and coded independently. Frenetic's rich combinator library makes it possible to stitch such components back together to form a fully functioning whole. In this talk, we will discuss our latest design ideas, including technology that allows programmers to define abstract, virtual networks and isolated network slices. We will also touch on the semantics of Frenetic, explain some of its key properties, and describe a few of the algorithms needed to implement it. frenetic-lang.org

Пікірлер
Programming Languages and Technical Disruption
1:22:41
Microsoft Research
Рет қаралды 519
Frenetic: A Network Programming Language
1:07:23
Microsoft Research
Рет қаралды 718
Final muy increíble 😱
00:46
Juan De Dios Pantoja 2
Рет қаралды 27 МЛН
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 188 МЛН
ROCK PAPER SCISSOR! (55 MLN SUBS!) feat @PANDAGIRLOFFICIAL #shorts
00:31
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 7 МЛН
Lecture 9: Hardware and Software
1:12:22
Michigan Online
Рет қаралды 24 М.
AI Case Studies for Natural Science Research with Bonnie Kruft
26:38
Microsoft Research
Рет қаралды 9 М.
Intro To RabbitMQ
54:06
IAmTimCorey
Рет қаралды 91 М.
How does HTTPS work? What's a CA? What's a self-signed Certificate?
11:02
eBPF: Unlocking the Kernel [OFFICIAL DOCUMENTARY]
30:00
Speakeasy Productions
Рет қаралды 87 М.
Making Sentence Embeddings Robust to User-Generated Content
1:02:50
Microsoft Research
Рет қаралды 613
Ждёшь обновление IOS 18? #ios #ios18 #айоэс #apple #iphone #айфон
0:57
Will the battery emit smoke if it rotates rapidly?
0:11
Meaningful Cartoons 183
Рет қаралды 27 МЛН
Gizli Apple Watch Özelliği😱
0:14
Safak Novruz
Рет қаралды 3,1 МЛН