So the northbound API is how that business application talks to the controller to explicitly describe its requirements: I am OpenStack. I want this VM field to talk to this other VM but no other VMs can talk to them, etc. But also give me a view of how loaded the network is so I can make an informed decision on where to put new VMs. So those are two examples of northbound APIs that I think are meaningful for people.
NW: Without northbound APIs will SDN applications be constrained vendor-specific controllers?
SHERWOOD: Look at the operating system world. There is not an API that is standard for application developers across Mac OS, Windows and Linux. It just doesn't exist. But that's been a fairly healthy ecosystem. Similarly, if you look at cellphones, there's not a comparable northbound API across iOS, Android, Symbian, etc. But again, that's a fairly healthy ecosystem. The critical thing is, as long as the API is open it doesn't matter as much if it's standardized. Yes, eventually, these things might become de facto standards, but that's many moons from now.
NW: But if all the controller vendors come out with non-standard northbound APIs it's going to make it harder on the buyer, won't it?
SHERWOOD: My mindset is the buyers are actually buying business applications, and it's really about what supports what. For example, it is a reality that the people who write Angry Birds have to write different implementations, one for Android and one for iPhone. But as long as the application you want is available on the platform you want it to work on, that kind of doesn't matter for the buyer. You just want the application to work.
NW: Is it technically hard to create these northbound APIs or is it just a byproduct of the way the technology is emerging, with the early focus on the southbound side while biding your time on the northbound stuff?
SHERWOOD: It's both. Think of the work required to get Unix to a position where people could even think about standardizing the APIs that became POSIX. A lot of learning had to be done, and people are still arguing about it. With my working group hat on I tell people we should build a bunch of examples, figure out what we got wrong, try to fix it, iterate it, and, assuming we actually reach some sort of stable point, then try to standardize that. Right now everyone and their grandmother has a controller, and what that means is that everyone and their grandmother has a northbound API. And while I'll be the first to tell you I think mine is best, at this point nobody really knows.
Sign up for CIO Asia eNewsletters.