SafetyNet: a language-based approach to programmable networks
journal contribution
posted on 2023-06-08, 07:11authored byIan WakemanIan Wakeman, Alan Jeffrey, Tim Owen, Damyan Pepper
It appears that some degree of programmability is inevitable within the network, whether it be through active networks, active services, or programmable middleware. We argue that programming network elements with languages designed for use within a single machine is inappropriate, since the only defense for the shared resource of the network is through the use of sandboxes, which are prone to performance problems and are difficult to implement correctly. Instead, we believe that new languages should be designed for programmable networks, using type systems that ensure safe programs, and encourage correct programs. We have designed and provided the full semantics for such a language, SafetyNet. Building upon this, we have implemented a compiler, run time environment and a simulation environment for our language. In this paper we describe the major features of the language that protect the network: abstracted locations; located objects; volatile routing; thread and class loading; and enforced resource counting. We show how these features are used in a number of small case studies, and in implementing optimised communication libraries. We describe the implications of the language design for the implementation of the run time support environment. The ease with which these demonstrations have been built and debugged shows the potential for enforcing network programming models with well-typed languages.
Originality: Along with similar work from University of Pennsylvania, showed how modern type systems could help create safer programming languages for networked applications, allowing third parties to analyse behaviour before running the application. Rigour: This is a report on the motivation and engineering of the language and system, and details the design, implementation and testing of the language and associated run-time systems. The type system provide the basis for a new theory of concurrent object systems. Significance: Demonstrated the practicality of using modern type theory to design domain specific languages for networking. Impact: Google scholar=36 (including preprint citations, since the title changed)