SearchCIO.comLegacy application modernization: Make SOA work for youFor many years, numerous IT organizations developed applications within their own silos.Enterprises have received tremendous value from these assets -- which now can be consideredlegacy applications -- thanks to enhancements and feature enrichments.More about legacy application modernizationTaking a modern approach to modernizing legacy applicationsSOA solutions create a wrapper for legacy modernizationThese legacy applications, however, can become stumbling blocks when one considers the fast-paced market and ever-increasing demands of competition. In addition, they can cause majordisruptions within a companys application ecosystem because they use outdated technologies,multiple user interfaces or multiple security frameworks. For these reasons, legacy applicationmodernization is crucial if an enterprise wants to stay productive and competitive.For the past several years, one trend has been to use a service-oriented architecture (SOA) tomigrate and modernize legacy applications. SOAs are intended to support modern, distributedsoftware demands, and are language- and platform independent. Those features make themoptimal tools for a company moving to modernization.Keep in mind that modernizing legacy applications is not the primary goal of an SOAimplementation. Such an implementation is just one of many steps along the long road to anenterprise becoming services-oriented. Enterprise IT organizations have several options at theirdisposal when they modernize via an SOA.Application silos require users to employ several legacy applications to perform the tasks withina given business process. That fact makes application redundancy an ideal point at which tobegin overhauling user experiences and user interfaces. For example, take a prescription orderingsystem where multiple applications are used in the ordering process. Such legacy applicationscould be modernized to provide a single view into the entire system via social media software,business process management systems and business intelligence tools.Multiple legacy systems can be integrated behind the scenes through a combination of Webservices and a data access and services layer. This approach depends on a core principle of SOAtechnology: abstraction. When levels of abstraction are created, years upon years of legacyapplications dont have to be redesigned.Hiding legacy application system complexity
Many inventory and ordering systems are like the hypothetical prescription ordering system justused as an example. They continue to perform critical business functions, but its appealing tomodernize and integrate them with newer and even future applications. Enterprises cant simplyrip and replace such systems, so some are modernizing legacy applications by hiding theircomplexity behind adapters or Web services.Enabling SOA and Web services has become a requirement in todays competitive market,making it critical to service-enable legacy applications as well. Once candidate applications havebeen identified, their legacy code is copied into a common framework, and all the referenceddata objects are placed into a common data interface. Once a business operation has beenidentified for reuse and documented, the next step is to "wrap" it. In that process, the componentextracted from the legacy code is given a Web Service Description Language (WSDL) interfaceby each entry being transformed into a method, and each argument and parameter beingtransformed into an XML data element. Data structures become complex elements with one ormore sub-elements, and both methods and arguments will be built into an XML schema.The final step is to generate a proxy to link the Web services into the overarching businessprocesses. The proxy is concerned with checking parameters and generating the required WSDL.Once the proxy is invoked, the legacy-code wrapper parses the XML input message andtransforms the input data into the proper format. After the wrapped component is executed, thewrapper transforms the result into an accepted XML outbound message and sends it back to theWeb client.Ensure proper resources for legacy application modernizationEnterprises that embark on legacy application modernization initiatives often neglect the variousresource issues. Undertaking such initiatives requires the proper mix of resources, talent andskills to ensure success.It could be difficult to find professionals who understand not only the business processes andfunctions associated with legacy applications, but also their underlying code and platforms. Letsface it: Many of todays software and systems engineers are not familiar with legacy applicationsand platforms, such as mainframes, COBOL, CICS, IMS and so forth. So, you needprofessionals who understand these legacy applications, and team them with professionalsentrenched in modern technologies.Time is another resource issue, one that some enterprises seem to downplay. Their goal is toprovide the business with new tools quickly, to help workers gain visibility into daily operationsand stay competitive in an always-changing business climate. Nevertheless, they often get lulledinto believing they will see the rewards of their efforts overnight. This is just not the case. It hasbeen my experience that enterprises dont see positive results until a few months to a year later atthe earliest.In addition, some think that implementing an SOA (and using it for legacy applicationmodernization) is merely another IT project that has a well-defined concluding date. The reality,however, is that becoming a services-oriented enterprise requires the business to define a strategy
and a roadmap for SOA governance. The successful SOA journey will involve traveling frommilestone (of which legacy application modernization is one) to milestone, project by project,along the roadmap. Only when all the desired outcomes have been realized and theircorresponding milestones completed, will an enterprises journey be complete.Reuse capabilities for legacy application systemsI often have been consulted by colleagues responsible for operating and maintaining a humanresources system for an enormous user base -- some 500,000-plus. The original HR systemattempted to modernize some of the business processes associated with a legacy system. Themodernization, however, consisted primarily of writing a new application from scratch on amodern platform. The intent of the modernization effort was to become services-oriented, but theresult was far from it.Revitalizing legacy application systems allows enterprises to offer clients modern tools withoutrisking an expensive demolish-and-rebuild-from-scratch.We began by maintaining the new application and ensuring its daily operation; in the meantime,we overhauled the user interface using Web 2.0 technologies, and began modularizing theoriginal application with the goal of service-enabling the components that were deemed potentialreuse candidates.As maintenance requests and requests for new features come in, the project team considers eachrequests potential reuse capabilities as part of the requirements analysis. Doing this has allowedthe team to develop several Web services that are or will be reused by other projects within theapplication ecosystem. So, at the core of the modernized system, the project team has used theapproaches described earlier.The team ran into a resource scheduling issue with one of the requests for a new feature, and as aresult, used a third approach. The HR system retrieved data from a legacy database overnight; oncertain occasions, however, an external application could take longer than normal to update thedatabase, so a mechanism was needed to avoid resource-access issues.The team had intended to generate its own messaging mechanism, but there was no need tocreate such an animal because the organizations SOA infrastructure included an SOA gatewaythat could provide the same capability. It was decided that a Web services interface to thegateway would be generated and that the gateway would communicate with a data access layerthat communicated directly with the legacy database. This approach allowed the team to increasethe application connectivity options that could reuse the data access layer and avoid resou rceconflicts on the legacy database.Selecting the appropriate starting point and methods for a legacy application modernization is noeasy task, but legacy modernization using an SOA just might be the sort of strategy that givesyour company the means to meet the businesss increasing demands while preserving its largeinvestment in legacy systems. It also could be that initial step along the journey toward theultimate retirement of antiquated systems.
Revitalizing legacy application systems allows enterprises to offer clients modern tools withoutrisking an expensive demolish-and-rebuild-from-scratch.Timothy Vibbert is CTO of Red Eagle Services, a consulting firm focused on SOA, cloudcomputing and business modernization. Let us know what you think about the story; firstname.lastname@example.org.All Rights Reserved,Copyright 2007 - 2011, TechTarget | Read our Privacy Statement