“The difference between extracting simplicity and mastering complexity is largely whether we focus on defining the right abstractions or creating new mechanisms.”
The diagram below provides a slide taken from a speech by Scott Shenker on the principles behind SDN (Software Defined Networking).
You can listen to the words surrounding this slide roughly 14 minutes into the video.
Shenker speaks of the concept of abstraction / modularity within software, coming from the work of Barbara Liskov in the 1970’s, allowing one person to solve the complexity of one module of a solution, which is then highly simplified when it is called upon by other programmers.
The slide above points to the fact that networking hasn’t used this concept of abstraction, meaning that a developer has to build the complete solution and can’t just build on the abstracted work of others. SDN is the mechanism of developing these abstractions to simplify networking.
This in turn provides the potential for simplification of OSS when it calls on an SDN, but also in the abstraction of elements of the OSS and interfacing to your OSS.