For the last 5+ years, I have been deeply focused in the area of middleware application servers and the container services that they provide. If you go a bit further back and look at the arc of progression in this space, you will see multiple pivots of innovation for these servers. In the beginning, it was all about transactions, and then JEE was added, followed closely (and probably most recently) by a push around SOA. While none of these topics have gotten less important over time, they become an assumed part of application server runtimes and architectures. That is, customers will not consider an application platform that does not at least support those technologies and paradigms.
Does that mean that the application server space is dying down in terms of innovation and change? Not at all in my opinion. Just like JEE was there to push transactions and SOA was there to extend the innovation around JEE, a host of other hotspots are appearing that are demanding inventive changes in the application server space. One of those is the notion that an application server in and of itself is not the unit of purchase and use any longer. Instead, users want entire platforms that not only provide a robust container for their applications, but also surround those applications with other capabilities and qualities of service. This is definitely an interesting movement, and one that is leading to advances in the state of the art concerning elastic caching, policy-based application management, plugin driven architectures, and more. As intriguing as this notion is, I actually think there is something that will soon push traditional application server runtimes even further: PaaS.
A cursory look at the PaaS industry will quickly reveal that we are at the forefront — I mean the very forefront — of a potentially thunderous shift in the enterprise application space. Initially there has been a large focus on making it fast and simple to provision and manage applications on top of traditional middleware stacks. Of course this cannot and will not be the focus forever. At some point, the gaze of the industry will shift, and we will start to fundamentally rethink what that middleware stack is, what services it delivers, and how it functions. What does this mean? Well, I am sure that many of you have your own ideas, but allow me to offer up a few of mine as food for thought:
– Application servers and the kernel blend: There has been a lot of talk about the commoditization of the operating system, but I can tell you from first-hand experience that much of that has been premature. That said, as we move to more PaaS-like models, the OS and basic application server will blend together much more. Application servers will be extremely lightweight, and provide basic container support for your applications. Beyond that, I believe we will see a pull model based on need… which leads me to my next thought.
– Application servers become composable: In the cloud we want speed. Well, with traditional application servers, you can only push the limits so far. Sure, you can pre-install, pre-configure, etc., but you still have to deal with the unique configuration for each instance. In some cases this takes a while simply because there are tons of features to configure. What’s more is that some of these features are not actively used. In this light, I think PaaS will force application servers to take on more of a fit-for-purpose model. Features and components will be pulled in when they are needed and not a moment before. Further, those same features will be turned off when they are not actively consumed. This has benefits beyond speed of course, namely a consumption footprint more appropriately aligned with use.
– Application virtualization becomes a core competency: We can have esoteric arguments about whether cloud computing requires virtualization, but what is the point? Virtualization is elemental to nearly all cloud-based solutions (especially at the IaaS/PaaS layer). That said, most of the virtualization innovation has been focused on server virtualization and management. Going forward, those same concepts will be pushed up to the application. The capability to create virtualized pools of application instances, supporting extremely high densities and reducing management burdens of large environments will become the norm. In fact, those capabilities will become a core part of the application container.
These are but a few of the innovation areas I anticipate that PaaS will drive into the middleware application server space. You may think these are wildly off base, and you may have your own ideas about what PaaS is going to drive into this area. Whether you agree or vehemently disagree, I would like to hear what you have to say!