Avanade Viewpoint
Service-Oriented Architecture:
The Need for a New Architecture
The information technology solutions that many organizations have created over the past
decades are no longer sufficient to meet contemporary business needs. In today’s economy,
the global marketplace requires businesses to operate with greater agility, competitiveness,
and productivity, at lower cost than ever before—because now their competitors come from
every corner of the globe. Technological advances that one company overlooks will be adopted
by another and used to their advantage.
As a result, companies must quickly recognize and respond to new opportunities and challenges
and growing global competition. Enhancing efficiency and productivity requires faster access
to deeper, more accurate, and more timely information for better decision-making. As companies
respond to their challenges by setting up virtual supply chains that bring more global partners
and vendors into their core business, they need ways to seamlessly integrate with those
partners and vendors.
Many IT environments aren’t up to the challenge. IT resources are tied down with
fixing, maintaining, and attempting to integrate existing solutions, rather than investing
in innovative solutions to new business needs. The IT department, which needs to be a strategic
asset to the company, is too often a cost center instead of an innovation center.
Fortunately, trends have been moving in a more productive direction. Technologies like extensible
markup language (XML) and simple object access protocol (SOAP) enable new ways to integrate
systems. Legacy investments may now integrate with new solutions across platforms, departments,
geographic boundaries—even across enterprises. A critical mass of software standards further
facilitates integration. Over the past 40 years, software reuse has blossomed from subroutines
to functions, eventually evolving into classes, objects, and methods. The result is software
that is faster, easier and more cost-effective to develop, maintain, and adapt for new requirements.
Together, these developments provide the foundation to solve the problems facing business and IT: service-oriented architectures (SOAs).
Introducing SOA
SOA is an approach to building software solutions for organizations in a way that allows
greater flexibility and agility, easier integration of legacy systems to new technologies
and improved maintenance and extensibility, and facilitates sharing existing services
investments. By deploying business solutions based on SOA, IT becomes a strategic asset,
helping an organization gain competitive advantage while reducing risk.
Leading independent analysts are keenly interested in the value SOA delivers to the
enterprise, and are predicting very large CAGR (Compounded Annual Growth Rate) figures for
SOA software and services adoption. The IDC forecasts "worldwide SOA-based services
spending of $10.4 billion in 2007, reflecting growth of 63.4% over 2006. At the end of
the forecast period in 2011, spending for such services is projected to grow $40.8 billion
on a global basis."[1]
The key concepts behind SOA, which provide the foundation for the benefits described above, include:
- Foundation services—Developed as building blocks of application
functionality that can be shared for use anywhere they are needed in an IT infrastructure.
- Process orchestration—Used to assemble or aggregate the common-services
building blocks into larger, more complex business processes.
- Open standards—Describe services and their interactions, enabling
services and business processes that interact seamlessly.
- Plug-in capability—Enables future services, processes, and applications
to be added to the architecture whenever needed.
Flexibility and Agility
The flexibility that SOA provides means that SOA-based solutions can be implemented on
any standards-based platform. The heterogeneous nature of SOA gives the organization
flexibility to create applications that work not only within its enterprise, but across
enterprise boundaries to include vendors, customers, partners, and acquisition targets.
Shared services enable much of the flexibility and agility of SOAs. Such services
include both business processes (checking inventory or obtaining a credit card authorization)
and technology processes (security, instrumentation, or database connectivity). Applications
in an SOA environment are created by assembling groups of these services and invoking
them in a specific order. Changing application functionality or creating new functionality
becomes a matter of adding or changing the invoked services or changing the order in which
they’re invoked, rather than having to create functionality by writing new code.
SOA makes it easier for applications to connect and interact with each other, as well.
With traditional architectures, when one application within an organizational environment
is replaced, the organization must rewrite all the low-level connections between the
replacement application and the rest of the environment—a time-consuming, painstaking,
and expensive proposition.
The flexibility and agility enabled by SOA-based solutions means that organizations
can respond more quickly to new business needs, customer requirements, competitive
pressures, and market opportunities. Implicit in these gains is the added benefit to the
IT department. By reducing the time and cost of introducing new or updated solutions,
SOAs free up IT departments to launch entirely new initiatives—such as deploying real-time
collaboration environments or consolidating server infrastructures—that reap new levels
of cost savings and revenue benefits throughout the organization.
SOAs also enable business users and their IT counterparts to work together more
productively. Traditionally, business users have passed along their requirements to IT,
and IT has responded (days, weeks, or months later) with a solution that is assumed to
meet the business need. In contrast, the best SOA tools can be put in the hands of
business users, enabling them to define the behavior of their solution. IT personnel
still create those services, but business users can contribute what they know best:
how those services should work together to serve the customer, the internal business
user, or other end-user. As the catalogue of services grows, so do the opportunities
to create solutions for current and future functionality. The result isn’t just
faster solutions. It’s better solutions.
Easier Integration
SOAs can easily integrate across platforms—but SOAs can also integrate across
formerly insurmountable borders: very long distances. Because they are composed of
discrete services invoked as needed for a particular solution, you can host SOA
applications anywhere: in a company’s New York headquarters, Palo Alto-based
research facilities, Bangalore-based software development operation, Manila-based
maintenance center, or anywhere else. And these services can be accessed from anywhere,
by any application, provided the proper credentials are supplied.
It’s not just the technologies that can be dispersed. The people can be, as well.
Integrating across geographic boundaries means that an organization can make more
efficient use of human resources anywhere in the world. One team can write new services
while another updates existing ones. A third team can aggregate services into a new
application while a fourth team tests scripts against it. All aspects of the software
lifecycle can happen whenever needed, rather than waiting for a single facility to manage
the lifecycle process in sequence.
SOA’s ease of integration also extends the life—and the return on investment—of
multimillion dollar mainframe systems organizations may rely on for mission-critical solutions.
Mainframe systems are notoriously difficult to update. Yet competitive pressures, customer
demands, regulatory changes and other factors all cry out for updating mainframe code.
SOA can serve as a façade or interface between the mainframe and other systems, providing
the most cost-effective way—and, in many cases, the only practical way—to implement needed changes.
Maintenance and Extensibility
As mentioned, SOAs cut the time and cost of software updates, thanks to their flexibility,
agility, and easy integration. SOA solutions can reflect new business-unit policies and
governance requirements by making a change at the service level and propagating it quickly
throughout an infrastructure. Organizations can respond more quickly to competitive threats,
legislative changes, or new business needs and opportunities. The financial compliance
illustration is one example; should additional legislative requirements be enacted, businesses
that take advantage of SOAs will be able to extend or modify their current solutions more easily
to meet these new needs. Data privacy issues raise another interesting example.
The maintenance and extensibility benefits of SOA come from more than the ability to
quickly reconfigure and add compatible services. Mission-critical applications need high
levels of availability, and IT departments guarantee that availability in service level
agreements (SLAs) with their business users. The higher the guaranteed availability,
the more maintenance and attention is required to meet the SLA. When applications are
built of integrated code from the ground up, time and money must be invested to ensure
the availability of the entire application.
However, not every line of code in a mission-critical application is itself mission critical;
most mission-critical applications combine a few truly crucial functions with a majority
of more mundane processes. SOAs, and the componentized services on which they’re built,
allow IT departments to focus their attention below the application level, to zero in
on those specific services that are mission critical, and to invest their time and
resources to ensure the SLA of those specific services. Beyond making more efficient
use of personnel, IT departments can now also make more efficient use of hardware and
other assets, deploying services specifically for mission-critical functionality,
rather than for all software features within a mission-critical application.
SOAs enable high availability in yet another way. Because services can be run anywhere
in a global enterprise network, organizations can create redundant services for
mission-critical needs, creating a mesh-network of services that can be re-routed in case
of the failure of any given service or datacenter.
Sharing Existing Services Investments
SOAs are often described as "re-using" existing components or services.
This is a misnomer that understates the benefit of SOAs. Before SOA, code re-use implied a
component or service created for one use, and then copied into another location to be re-used.
The pattern at work here is called "scattering" and involves replicating the
functionality in several places.
SOAs, in contrast, actually share services rather than reusing them. The service remains
outside the application, rather than being incorporated into it, as in code re-use.
In a "sharing" environment, the single instance of a service is the instance
that is invoked by multiple applications. As a result, the organization need only host,
support, and update that single shared instance of the service, resulting in savings
throughout the service’s lifecycle.
Hardware savings is a big advantage of service sharing. The shared service can be hosted
on hardware that processes workloads for the solutions invoking that service. With the
hardware finely tuned for that specific service and associated load, the result can be
more efficient processor utilization and disk storage. Without the need to maintain
redundant functionality across a broader number of machines, this aspect of SOAs enables
better hardware capacity planning and better return on investment.
As the use of shared services increases, organizations with mature SOAs can achieve
one of the primary goals of their investment: the fully composite application, composed
entirely of existing services. Such a solution could be developed simply by dragging and
dropping relevant services on a design surface and drawing lines to connect them.
Development that used to take weeks could be put into production in days.
Publicly available aggregators and "mash-up" toolkits—for search engines,
mapping systems, etc.—are examples of composite application-builders that can be used to
create applications composed of existing services.
Return of Investment
SOA can deliver significant returns on investment, compared to traditional software
environments, but organizations need to understand where and when to expect those returns
so they can perform more effective cost-benefit analysis on the move to SOA.
There is a perception that the move to an SOA-based environment increases the initial
cost of development. That’s generally not true, because most organizations have been
adopting protocols and standards consistent with SOA, even if they haven’t yet made
the leap to full-fledged SOA development. Their preparation will make the full move to
SOA more cost-effective than it would otherwise be.
Organizations are unlikely to launch their SOA environments with full-fledged composite
applications, so organizations that look for ROI only from composite application development
may overlook much of their total benefit. Instead, IT management should consider the impact
of SOA beyond development: test, deployment, maintenance, troubleshooting, and hardware.
SOA reduces costs in all these areas.
One pitfall many organizations face occurs when enterprises fail to train staff on
the processes to register and share services, or when they fail to implement the registries
needed to make SOA effective. The lesson here is that, when an organization chooses to use
SOA, they must invest fully in the registration services, evangelism/championing, and
benefits of creating and sharing services across the enterprise. Failure to do so will
result in a plethora of single-use services that are not being shared across applications,
resulting in a net loss of productivity and efficiency. If you go SOA, go all the way.
But is the anticipated return enough to justify the investment in SOA? If you change
mission-critical functionality more than twice a year, if you add customers at least once
a quarter, if you are continually updating key applications (or wish you could), then your
organization is a good candidate for SOA. If you wish to improve your capacity planning,
security profile, or system availability, you’re a good candidate for SOA.
Developing an understanding of where you are today, with a roadmap and milestone-based
approach to where you want to be, is the first step toward realizing the benefits SOA can offer.
1 "Worldwide SOA Based Services 2007-2011" Forecast and Analysis, IDC, April 2007.