You are on page 1of 4

Migrating a Web-Based Application to a

Service-Based System – An Experience Report


Pushparani Bhallamudi1 Scott Tilley2 Arunesh Sinha3

1
Department of Computer Sciences, Florida Institute of Technology
pbhallamudi2008@fit.edu
2
College of Business, Florida Institute of Technology
stilley@fit.edu
3
Department of Electrical & Computer Engineering, Carnegie Mellon University
aruneshs@cmu.edu

Abstract One such organization that chose to successfully migrate


Service-Oriented Architecture (SOA) is a way of its legacy systems to SOA is XYZ Corp.1 Section 2
designing, developing, deploying, and managing provides insight into the business requirements behind the
enterprise systems where business needs and technical need for migration and also provides an overview of the
solutions are closely aligned. Increased return on new service-oriented system. Section 3 presents a brief
investment (ROI) is a prime motivating factor for many introduction about the XYZ project, its business
organizations to migrate their existing systems to ones functionality, and some technical aspects of the old non-
based on services. This paper details the experience of service based system. Section 4 discusses some of the
migrating a traditional Web-based application to a SOA- return on investment (ROI) issues associated with the
based system. The paper focuses on the business and migration. Finally, Section 5 summarizes the paper.
technical issues that motivated the migration, but it also
describes the advantages of the new service-oriented
system in terms of ROI.
2. The Web-Based Application
XYZ has a retail Web-based application that allows
Keywords: Service-Oriented Architecture (SOA), Web consumers to choose, customize, and locate new and pre-
application, migration, evolution, case study owned vehicles using a fast, secure, and easy-to-use Web
interface. The purpose of this Web site is to increase sales
by providing customers with the functionality to choose,
1. Introduction customize, compare vehicles, locate a dealer, and request
a quote. The Web site provides pricing information about
In a competitive business world, information technology the base models and the various options and accessories
not only aids the business in working efficiently but it that customers can choose based on their budget. The
also drives the business. To achieve this purpose, Web site also provides real-time incentives data, and
information technology must align with business needs to shows configured vehicle prices with the incentives
deliver the functionality necessary to satisfy these applied. Using the Web site, customers can search for
business needs in an efficient and effective manner. dealers in their local area and also view the inventory data
Service-Oriented Architecture (SOA) is a way of of each of these dealers.
designing, developing, deploying, and managing One very important feature that the Web site provides is
enterprise systems where business needs and technical to help the customer submit quote to the dealers. Using
solutions are closely aligned [3]. As such, adopting SOA
for new systems, or migrating existing systems to a SOA-
based environment, is an attractive option to meet some of 1
The name of the company has been changed for confidentiality
these needs [1]. However, it is not without considerable reasons. Throughout the paper, the actual organization will be
challenges as well [4]. referred to simply as “XYZ”.

978-1-4244- 5126-5/09/$26.00 ©2009 IEEE 71


this feature, customers provide their details to the dealers suitable solution for the problems. As with most
and get a quote from the chosen dealer for the selected organizations, business issues are drivers for change;
vehicle. The user information (called leads) is collected similarly for XYZ there were many business issues that
by this Web site and sent to the dealer. lead to migration.
In this project there were major concerns regarding data
2.1 Legacy Application Components inconsistency and high maintenance costs, and all these
The non-service based system was a Web-based Java problems were associated with duplicate data. XYZ also
application with many custom components. The has other Web sites that also rely on the same data (like
application consisted of the following important incentives) that this retail Web site uses. They needed a
components: way to consolidate of all vehicle data at one place that
would reduce the problems associated with data
Config Engine: This engine allows configuring any inconsistency and also reduce the maintenance costs.
system where the parts for configuration, rules for
compatible parts (and incompatible ones), and rules of They also had concerns related to the time-consuming
default selections can be provided in a custom XML change process. In the past there were many business
format. This engine loads all this information about each decisions related to vehicles that were actually minor
model at startup. The code for vehicle comparison is changes in the Web site but required minimum of 2-3
written as a wrapper around the core config engine. days of work, which was bad for business and was a
major concern for the vehicle manufacturer. They
Dealer Search Engine: This is a simple engine that required a system where making such simple changes was
accesses external Web sites to get dealers in a region. easier and faster.
Inventory Search: This data is also obtained from an The modeling data received by the Web application was
external Web site by querying the Web service using the habitually incorrect: the data was provided by non-
dealer identification code. This data provides detailed technical people, which often led to inconsistency in the
information about each vehicle in the inventory. rules. This required modeling data to be reviewed
Get-A-Quote Engine: This engine takes the user supplied multiple times to get the correct modeling data. With the
information and converts it into a lead. A lead is user old system this meant integrating the model and getting
information in an XML format called ADF. This lead is the whole Web site up on test platform; this inefficient
securely posted to the dealer. process took about 4 weeks.
Incentives and Pricing Engine: The incentive data is Apart from these business issues, there were some
obtained by accessing a Web service that hosts details technical issues associated with the old system. There
about the incentives. A small configurator decides which were memory problem with the Web site: the old system
incentives are compatible and groups them as required. was developed using old version of Java, which couldn’t
The pricing is obtained as a part of the model data. use memory efficiently, and this led to the server going
down at peak load. With years of development and Java
When a user starts his session on the Web site, all these packages being the only way to separate functionalities
engines are cloned and put in this session object. The (and engines), the code became too complex to
configured vehicle is stored in each session in a custom understand and hence became nearly unmanageable.
patented format, which uses little memory. If the session
makes a dealer/inventory/incentives query then the Due to improper code separation, writing a new feature
appropriate engine is called to perform the task and stores required lots of time. Changes in one part of the code
relevant information in the context of this user. When the potentially could have unintended effect on other features,
user submits his private information, it is taken up by the which forced costly testing cycles even for small changes.
Get-A-Quote engine and sent to the dealer. Moreover, the user interface was not configurable and a
simple change required a considerable amount of user
2.2 Motivation for the Migration Project interface code and a full new build.

Migrating a legacy system to new service-based These business concerns and technical issues were strong
architecture can be complex, expensive, and time motivation for migrating to a better solution. To mitigate
consuming, so there needs to be strong motivation and these problems, XYZ, in consultation with a software
compelling reasons for carrying out this process. A SOA- consulting company, came up with Service Based
based system may offer many benefits over the old Web Platform (SBP). The next section of the paper describes
application, but before considering the migration it’s the service-based system in detail and also focuses on the
important to understand the issues that lead to migration. benefits of the migration.
Based on the issues, one can decide if SOA is the most

72
3. The Service-Based System Dealer and Inventory Service: This data is also obtained
from an external Web site by querying the Web service.
The XYZ Service-Based Platform (SBP) is based on This data provides detailed information about each
SOA. Using a service-based architecture one can imagine vehicle in the inventory. This service is dependent on the
a system as a collection of different services that config service; hence this service is also a client of the
represents certain business tasks. Similarly, SBP is a config service.
collection of services that provide vehicle information
along with a library to load vehicle data, and tools that Lead Service: This service takes the user-supplied
help to create, manipulate, and test vehicle data. SBP information from the user interface and turns it into a
offers a common simplified data source to all the Web lead. This lead is securely posted to an intermediate lead
sites to pull data from. processing system, after which it is sent to the dealers.

Services are integral part of SBP. One of the major tasks User Interface Client: The user interface for the XYZ
in implementing SOA-based systems is to identify correct retail Web site is hosted on different servers and they are
services to implement. Most of the engines that clients to all the services listed above. It uses an open
represented business functionality now represent services; source JavaScript utility to implement a central JavaScript
these services are RESTful and stateless. Input to the controller that interacts with various user interface
services is passed through the URL parameters, or in the components like flash. The central controller also feeds
POST body. Output from the services is either XML or data to all the components, after it gets the data by
JSON (JavaScript object). Below is the list of a few querying the web services in the backend. Overall the UI
important services that are part of the new system. client itself is built with a SOA style framework.

Config Service: This is the most important service. The A campaign management tool running on the server
legacy application code was stateful, so it stored the allows flexibility to configure the user interface by
previous configuration and then updated it based on part modifying the user interface on the fly. The new system
selection. This service is now stateless (since it is uses open source technology such as Spring and
implemented using Web services); the user interface now Hibernate for the backend, and open source JavaScript
stores the information related to previous configuration utilities for the front end.
and sends it to this service on each request. Config service
provides information related to vehicle configuration.
4. The ROI of Migrating to SOA
There are sub-services of this service, such as Part
Business and technical issues motivated the migration to
Service, that return part names, the Product and Compare
the new service-based platform. The rationale behind
services, which provide configuration related information.
considering SOA as an option for migration was
All these sub-services use the same product data library
influenced by the numerous benefits that SOA offers [3].
and use the same server and code of the core config
Three main ROI benefits were experienced by the
engine, but are exposed as different services.
migration: aligning business needs with IT functionality,
Part Service: This service provides information related to keeping data consistent, and reducing cost.
different parts of the vehicle available for Vehicle/Model.
Product Service: This service provides information 4.1 Aligning Business with IT
related to different models available for given vehicle. For The most important factor that makes migration to SOA a
example, for each vehicle make the service would show most suitable solution is that SOA aligns IT with
different models available. business, and most of the issues faced in this project were
Compare Service: This service provides information due to lack of alignment between business and IT.
related to comparison between two models. XYS’z data management problem was a major business
Incentives and Pricing Service: This service uses an issue and since the software was not aligned with the view
external Web service to get the incentive details. of data in the business world, there existed a lot of
Incentives and pricing service provides information mismatch in business specification and technical
related price of the vehicle and the price of each part. It specification. This can only be reduced using SOA. The
searches for appropriate incentives and schemes to apply service-oriented approach not only helped in getting
to the pricing information for the selected vehicle. Since better specification but also reduced the time required for
this service needs the configuration of the vehicle to find creating final specification, as disagreement between
prices and incentives, it is a client of the config service. business and technical people is now less than what was
earlier. Now the business people know what each service
does, without really knowing the internals of the service.

73
With the new service-based model, implementing changes 5. Summary
or adding new features turned out to be easier. This
enabled making changes to the Web site more rapidly The XYZ Service-Based Platform is success story about
than before. It also made it easier to meet the demands of migration to SOA. It illustrates that SOA is not all hype,
an ever changing business environment, like bringing up but can deliver what it promises. Migrating to the service-
an incentive plan on the website within minutes. This based system helped XYZ to align its IT with business,
approach reduces the time to production; and hence and also helped in achieving business agility. The new
generates business value for XYZ by being able to market service-based system is more adaptable to change; the
incentive schemes around important dates (like 4th July). time to production for isolated small changes has reduced
considerably. Overall the cost of migration was less than
4.2 Consistent Data the estimated cost of re-factoring, and yet SOA provides
more benefits than the traditional framework that existed.
After migration, all XYZ Web sites pull data from a
single source (a Web Service in SBP) and hence are For contract-based development projects, SOA can help
in reducing the risk of development failure. It allows work
always consistent. This shows the benefit of exposing
to be distributed among different contracts as services.
reusable services for this project.
Different development teams can develop consumer
application independently.
4.3 Reduced Cost of Maintenance
As was found in other case studies (e.g., [2]), this
Migrating to new service-based model also helped XYZ
migration was successful because SOA was suitable for
reduce the overall development cost. The modular design
this type of project. For example, in this project all the
and current technology has made outsourcing and division
services are owned by single organization. Due to this
of work easier. Little specialized expertise is now
reason, SOA governance was not a major concern in this
required to maintain the Web site. The testing cost is also
project. Identification of services was rather easy in this
lower in maintenance phase, as isolated changes to the
project as most of the engines in the old system
service require testing only that service and part of the represented some kind of business task. There were also
user interface application that uses this service. Making strong business and technical reasons for migration. If
the services stateless makes finding and fixing bugs
these conditions did not exist, migrating to SOA might
easier, as the bugs do not depend on some state that is
not have been the best choice. But in this case, it was.
reached by a complicated control flow.
The time required for development has also reduced References
because the code is now well documented and aligned
with the business model, making it easier to understand. [1] Hau, T.; Ebert, N.; Hochstein, A.; and Brenner, W.
“Where to Start with SOA: Criteria for Selecting SOA
The SBP and user interface part was developed in Projects.” Proceedings of the 41st Annual Hawaii
parallel, by first fixing the service contract and then using International Conference on System Sciences (HICSS
hardcoded responses for the services in user interface. 2008: Honolulu, HI; Jan. 2008).
This enabled overall development to finish faster.
[2] Kajko-Mattsson, M.; Lewis, G.; and Smith, D.
The new service-based model made it possible to build a “Evolution and Maintenance of SOA-Based Systems at
number of tools for business users to be able to control SAS.” Proceedings of the 41st Annual Hawaii
the Web site. For example, there is a new campaign International Conference on System Sciences (HICSS
admin tool that can reconfigure the XYZ user interface in 2008: Honolulu, HI; Jan. 2008).
minutes, and a new modeling tool for the modelers to [3] Lewis, G. “Service-Oriented Architecture and its
enable them to verify model correctness. Now integrating Implications for Software Life Cycle Activities”. SEI
new models takes only one week, and has further reduced Webinar Series. Online at
the cost of maintenance. http://www.sei.cmu.edu/collaborating/spins/081408webin
ars.html. Last Accessed 04/25/09.
The services approach also scales much better than the
old approach. In the legacy Web application, when more [4] Tilley, S.; Gerdes, J.; Hamilton, T.; Huang, S.; Müller,
H.; Smith, D.; and Wong, K. “On the Business Value and
models added all the servers in Web site were also more
Technical Challenges of Adopting Web Services.”
loaded. Now only the config service gets loaded more and Journal of Software Maintenance and Evolution:
if it leads to performance degradation changing/getting Research and Practice, 16:31-50. John Wiley & Sons,
only one extra server can fix it easily. 2004.

74

You might also like