As I’ve been doing some traveling lately, I’ve been trying to catch up with some Podcasts. Dana Gardner of ZDNet and Interarbor Solutions has a new podcast entitled “BriefingsDirect SOA Insights Edition.” In this episode, Dana, Steve Garone, and Jon Collins discussed virtualization and SOA. It’s funny how every buzzword going on in IT these days is somehow being attached to SOA. I was a bit skeptical on the discussion when I saw the title, and in reality, the discussion was primarily on virtualization, and not as much on SOA.
Something that I didn’t feel came across clearly was that SOA creates a need for more efficient resource allocation. Interestingly, a lot of drive toward virtualization is based upon a need to get a handle on resource allocation. So, perhaps there is a connection between the two, after all. So why is resource allocation important? Well, let’s compare Web Services to Web Applications. The typical web application is deployed on an application server, perhaps in a cluster or on a redundant server. It may or may not share that server with other applications, if it does, the applications may compete for threads, or each application may have its own pool. The application server has some memory allocated to it, etc. The app gets deployed and then no one touches it. Unless this application is facing the internet, it’s unlikely that the loads for which it was initially configured will change dramatically. The line of business may add a few employees here or there, but that’s certainly not going to create enough additional load to crash the system.
Now let’s talk about Web Services. They, too, are deployed on an application server, potentially with other services, potentially with their own threads, some amount of memory, etc. Unlike the Web Application, it’s entirely possibly to have dramatic changes in load from when the Web Service is first deployed. As a new consumer comes on board, the load on the service can increase by tens of thousands of requests per day or more very easily. Furthermore, the usage patterns may be vary widely. One consumer may use the service every day, another consumer may use it once a month, but hammer it that day. All this poses a challenge for the operational staff to ensure the right amount of resources are available at the right time. The ease of virtualization can allow this to happen. BEA just announced their WebLogic Server Virtual Edition, and their VP of WebLogic products, Guy Churchward, was quoted on ZDNet stating, “the setup will allow companies to create new instances of Java applications to meet spikes in demand in a few seconds, compared with 45 minutes, as is the case now.”
Some final thoughts on this: a good friend and former colleague of mine once described what we were doing as the virtual mainframe. In a recent conversation with a client, I also brought up the venerable mainframe. Does your enterprise currently have a highly complicated batch processing window? Have you ever researched what goes into the management of that process when something goes awry? A wily mainframe operator can do quite a bit to make sure that everything still manages to get done within the processing window. Now move to the world of SOA, with increased interdependencies between systems and real time processing. If we don’t give the operational staff the tools they need to efficiently manage those resources, we’ll be in an even bigger mess. Virtualization is one tool in that chest.