Sunday, August 10, 2014

SOA and SDN - Lots in common

A decade and a half ago SoA drove an architectural change in software systems with the primary goal of loosening the tight bindings that existed between distributed components in a system. Then the tight binding was the language used (primarily Java). SoA was not a product, but it drove the roadmap of almost every product in the software industry. It created new products as well. Tight bindings made the software systems unscalable and brittle. SoA succeeded in that today's systems are more distributed and more scalable. Today's programmer has a choice of language. SDN too is not a product, it is an architecture. It too aims to loosen the tight bindings in the network systems - in this case a tight binding between the interface and the implementation (resulting in monopolistic markets). But the impact of SDN on the networking industry at least so far (4 yrs since OpenFlow) seems very limited. SoA drove a new serialization, new interface definition, new directory and a new wire protocol. SDN so far has done nothing of the sort. This could be because SDN is looking for a killer app. It is certainly not vanilla network management where it is applied today. SoA did not take off until a single webpage relied on 300 or more services to render the page. This technology was rapidly adopted in the social networking space. We are not seeing anything like this in networking yet. Cloud Networking or NFV may be those killer apps that SDN needs, but so far, we have not seen them drive any fundamental innovation into networking. SDN today is just a paper tiger. It needs a killer app and a real product to succeed. OpenFlow is increasingly looking like CORBA and not SOA.