How will applications evolve?
When I think about Cisco and what our routers and switches and such enabled over the past 20 years I sort of home in on the Internet. It’s this massive network of devices, all running consistent protocols, working together to forward data to the right destination, with the appropriate autonomy in place to allow for organic growth without stepping on too many of each others toes. As I add a router or network to the Internet the whole Internet gets more valuable (assuming I am not adding a bot-net or something of that ilk).If I can add a router to a network and it dynamically learns its neighbors, learns what they can and cannot do, i.e. their capabilities, then automatically adapts it’s own view of the world and it’s own capabiltities to take advantage of what its neighbors know – why can’t we do the same with services, applications, etc?For instance- I am writing this from my Macintosh right now running Parallels with a Corporate IT image of Windows XP on Parallels on top of my Mac OS-X. I do this primarily so I can run Outlook. (I find the Entourage version inadequate for corporate daily use) In my Outlook configuration I had to statically enter the MS Exchange Server that I use. In the Exchange Server configuration it statically encodes the storage system it uses as well as the upstream MTAs it talks to. From there mail routing gets marginally more dynamic.Why is this the case? Why doesn’t my Outlook determine the closest most available Exchange Server that has access to the SAN with access to the volume housing my mail store? Why doesn’t Exchange dynamically learn what mail stores are available on the SAN? Why doesn’t Exchange then determine the closest, most available, MTA with the capacity to deliver the message being sent? Am not picking on Exchange because about every other application deployed in an Enterprise from Middleware to Databases to even our own Network Management and other software applications falls into the same bucket.It strikes me that there are a lot of lessons we learned over the past several decades in how to build large and dynamically constructed networks can be applied to building large and dynamically constructed application networks. We seem to focus in on ‘put a Load Balancer here, put a Firewall there’ and not always on how to solve this next and somewhat higher-order problem… Do you think Applications and Networks could ever share a common topology view of the world? That applications could talk to their default gateway routers and switches and learn what other applications and services are available? That app to app discovery and communication could be as dynamic as OSPF or BGP?dg