Cloud and virtualization technologies offer new options for modernizing legacy applications today. They're just in time, because many organizations' existing applications can't handle the mobile- and Web-based ways people want to deliver and access information, according to Matt Brasier, IT book author and head consultant for UK-based C2B2 Consulting.
In this interview, Brasier explains both why mobile computing is putting pressure on businesses to update older applications and recent changes in ways to do application modernization.
How does mobile computing impact legacy applications today?
Matt Brasier: The change in how users access services -- towards mobile sites and smartphone apps -- is a key driver for application modernization. As users move to using mobile devices, they increase their usage of services by one or more orders of magnitude; either by changing their usage patterns to access a system at times when they would normally be away, or by having an app that automatically polls the system for them at regular intervals. This can create significant scalability challenges.
What are the biggest changes in application modernization methods in the past few years?
Brasier: The biggest changes are in the tools that can be applied to decouple applications and their interfaces. Cloud platforms and virtualization provide a better set of tools and architectural options, and the fact that they are mainstream technologies now means that these approaches are seen as less risky and more likely to get the go-ahead for implementation. We are seeing more and more application modernization projects that start out by replicating the legacy environment in the cloud and then scaling out and up from there.
What new application modernization methods do you see coming into use in the near future?
SOA principles and even SOAP Web services can contribute a lot to any application modernization program.
Brasier: I think the current trend of moving away from all-encompassing frameworks and towards niche products that translate and control specific interfaces will continue. This started as a move away from big expensive frameworks, such as SOAP Web services running through Enterprise Service Bus systems. This architecture is suitable to many projects, but excessive pressure by vendors and over-hyping of the product capabilities has led to it being applied in places where it is not wholly appropriate. As a response, developers have turned to smaller point-to-point integration technologies -- such as Apache Camel -- that seek to solve a particular part of an integration puzzle, but do it well.
We are finding that more and more of our customers are performing a piecemeal modernization of their estate component-by-component, trying to pick the most appropriate tool for each instance, rather than picking a framework at an organizational level and applying it to every problem. By applying this approach in cloud or virtualized infrastructure, customers are able to control the scaling of their system and manage their interfaces much better.
Some traditional methods for application modernization include screen scraping, code conversion, rip-and-replace and extend-and-surround. Has the efficacy of any of these methods faded?
Brasier: The use of techniques such as screen scraping and code conversion does seem to be declining, but I feel this is probably largely influenced by the fact that the number of systems to which these options apply are decreasing. Current-day application modernization programs are more likely to replace first-generation Java Web applications than green-screen mainframe applications. My preference is to use rip-and-replace or extend-and-surround approaches where possible -- because they are approaches that primarily focus on defining and understanding interfaces between the legacy system and its neighbors -- and then using that interface as a mechanism to replace or expand the capability. While it could be argued that screen scraping makes use of an interface (the UI), it is such a brittle interface that its use should be considered a last resort.
How do cloud and virtualization technologies fit into application modernization today?
Brasier: Virtualization and cloud deployment are both tools that can enable application modernization, although I would not consider either of them to be a true methodology on their own. They can both be used to replicate a legacy environment in a way that allows it to be scaled and managed better, and can help to define interfaces.
Has the service-oriented architecture (SOA) play in application modernization changed?
Brasier: I think SOA as a paradigm has picked up a bad reputation because of its over-zealous use by software vendors when seeking to sell enterprise service bus (ESB) products. SOA principles -- the use of services based upon well-defined interfaces -- apply equally well to other technologies, and I think there is a lot that can be gained by applying SOA principles when engineering systems using any set of technologies. SOA principles and even SOAP Web services can really contribute a lot to any application modernization program; but you are more likely to be taken seriously today if you don't call it SOA.