Developer Details How He Built Software-Defined Networking App
Programming software-defined networking (SDN) applications is no trivial task, even for veteran networking developers, judging from the experience of Andy Pearce, who in a webinar today shared his ups and downs in developing an example app.
Pearce, a system architect at Wiretap Labs, was commissioned by the Open Networking Foundation (ONF) to document his experiences in building the proof-of-concept app as part of the foundation's educational initiatives. It today presented the webinar in conjunction with SDNCentral.
The app was based on the OpenFlow controller protocol and developed on OpenDaylight, a Linux Foundation project providing "an open platform for network programmability to enable SDN and create a solid foundation for [network functions virtualization] (NFV) for networks at any size and scale."
OpenFlow is the communications protocol used to send commands and information from the control plane to the decoupled forwarding plane of routers or switches, a key tenet of SDN.
For the app, the team decided to develop a tapping application, called SampleTap, that network administrators could use to monitor networks and troubleshoot network flows.
"This project was proposed as an educational process, and ONF was interested in having us document the journey of a traditional network developer into the new world of SDN, OpenDaylight APIs and OpenFlow applications," Pearce said in the first of three blog posts that will document his experience.
Pearce, a veteran of 20 years of programming communications and networking technology, has primarily used C++ and C and admitted he didn't have a lot of experience with Java, required for the SDN programming. Pearce particularly noted he had some difficulty using the Maven project management tool, with which he had little experience. He encountered many challenges along the way, he said, but was able to produce a functioning example app on time, with help from some friends more experienced in the technology to smooth over the rough spots.
After going over the technicalities of building the app, Pearce summed up both the good and the bad of what he experienced.
"So, what did we find that was good about OpenDaylight?" Pearce said. "Well, obviously there's a benefit in that it's much better than writing your own controller. It is fairly full-featured, and it does provide access to the underlying OpenFlow functionality. OpenDaylight provides an application framework that uses an event-driven architecture that I really like. It presents a set of APIs that hides the details of the OpenFlow internals, but nonetheless it still lets you do everything you need to do, in terms of programming the switch.
"I was able to do pretty much everything I wanted, though in some cases I had to do some digging into documentation or even looking at the source, or after reaching out to the developer community to get a little bit of help."
As far as the difficulties he faced, "I found that building applications using OSGI bundles and Maven and POM is hard, especially for me, who was somewhat of a Java novice," he said. "The OSGI CLASSPATH contains a list of individual .jar files, but it does not contain a directory. This breaks a lot of functions in third-party libraries.
"The documentation is voluminous and I found it very hard to know what to search for to find what I actually needed. It didn't feel to me like it was terribly well structured for application developers. It was more like a ... generated docs that describe each of the methods in the API.
"There are very few tutorials for a simple and specific purpose. The sample apps are too complicated and usually do several things at once. A series of coding ... for each of the simple functions would've been really helpful for a novice like me."
Pearce also indicated some functionality was missing. Nevertheless, he said, he found it fairly easy to build the application on time, though he couldn't have done that without help from OpenDaylight developers when he got stuck.
Pearce said he will post another blog to go deeper into the process of designing and modeling the SampleTap example app. The source code for the project should be available on GitHub early next week, and the ONF plans on publishing the webinar, with answered questions, in a couple of weeks.
David Ramel is an editor and writer for Converge360.