Simplifying the Task of Building Robust and Efficient Networked Systems

25
Следующее
Популярные
Опубликовано 17 августа 2016, 21:15
Building robust and efficient networked systems is a tedious and error-prone process. The challenges faced by networked-systems programmers have only been exacerbated with the emergence of new classes of networks such as sensor networks, smart-phones and data-centers. Examples of such challenges include having to distribute global functionality over individual nodes, and handling various application and domain-specific requirements like fault tolerance, energy efficiency etc. In this talk I will describe my efforts to address these challenges for specific domains, and simplify the task of building robust and efficient networked systems. The first part of the talk will focus on sensor networks. Wireless sensor networks are inherently resource and energy constrained, expose a low-level programming style, and are difficult to debug. To address these challenges, I have explored a novel programming language called Pleiades, and an application-logic inference tool called FSMGen. Pleiades is a programming framework that allows sensor network programmers to express functionality in a centralized fashion and pushes the handling of various domain-specific requirements to the compiler and runtime. FSMGen is a tool to derive high-level finite state machines from sensor network programs. FSMGen produces compact FSMs that accurately capture the functionality of the sensor network program and allow bugs and vulnerabilities to be spotted easily. Towards the end, I will describe my ongoing work GuFi on automatically evaluating the gullibility of network protocol implementations. Network protocol implementations are often gullible to manipulation by participants, that allows them to get better performance than they would have obtained otherwise. GuFi employs program analysis to find potential gullibilities in an implementation. It instruments the code to emulate malicious participants and experimentally tests if any of the potential gullibilities revealed by the program analysis can be exploited in practice. I will present results obtained using GuFi for daytona, a user-level TCP implementation.
автотехномузыкадетское