Abstractions, Internet Evolution, and the Role of Software Engineering

A field of computer science progresses fastest when its researchers find the right abstractions. Progress comes from the many benefits of abstraction, including:

In comparison to other fields of computer science, networking is in an unusual position because of the Internet. No other field has an artifact so dominant, and one that by its very nature demands global interoperability. Consequently, in no other field is it as challenging to envision and experiment with new abstractions.

Nevertheless, many people feel that the time is ripe for the field of networking to invest more effort in abstraction. "Report of the DIMACS Working Group on Abstractions for Network Services, Architecture, and Implementation" (Jennifer Rexford and Pamela Zave; ACM SIGCOMM Computer Communications Review 43(1):56-59, January 2013) summarizes the results of an interesting workshop on the subject that Jennifer and I organized in 2012.

For researchers in formal methods and software engineering, "Formal methods and networking: Former success, current failure" (Pamela Zave, position paper for the NSF, December 2012) explains why networking and network software should be an important focus of effort in the future.

Our work on the geomorphic view of networking is relevant to both audiences. It is proving to be a very useful and productive abstraction of network architecture (see the design space of network mobility). It also has considerable tutorial value, capturing the essence of networking issues and design in a way that makes it easily accessible to software researchers.

See also How Software Architecture Can Make an Application-Friendly Internet for more information about the challenges and some ideas for meeting them. This is a keynote talk given at CompArch & WICSA 2011 in Boulder, Colorado. "Internet evolution and the role of software engineering" (Pamela Zave; The Future of Software Engineering, Sebastian Nanz, editor, Springer, 2011) describes many aspects of these ideas in more detail. To track the development of these ideas over time, see also Software Engineering for the Next Internet, a keynote talk given at the 31st International Conference on Software Engineering in May 2009.