Maximize Reuse of Services Within Your SOA
Leverage existing infrastructure, create appropriate organizational structures, and adopt collaborative development practices.
by Theo Beack
February 13, 2006
Service-oriented architecture (SOA) is one of today's hottest topics. No matter where you go, or which customers you engage, the same topic is foremost in their minds. People want to know how to use or build an SOA to (a) solve some of the most pressing business problems, (b) create more integrated business solutions, and (c) reduce the cost of building and maintaining existing IT infrastructure and applications.
Much has been written on the value of SOA and how it will help organizations meet all the aforementioned objectives. How to design and build a solid SOA is another common topic, and it appears that everyone has an opinion on what constitutes a "service." IT architects love to discuss the best approach for designing an SOA. Yet, it appears that relatively little has been written about one of the most important aspects of SOA: how to foster reuse of existing services.
In this article, I will explore one of the prime reasons we are using SOAs to solve the most crucial integration and business problems, namely the reuse of existing applications, business processes, and infrastructure. Many organizations struggle to reach wide adoption of services within their SOAs, despite creating them with reuse in mind. This article explores the ways in which practitioners of SOA can maximize the adoption and reuse of services by leveraging the existing infrastructure, creating appropriate organizational structures, and adopting collaborative development practices.
When reading SOA-related articles or conversing about SOA, the majority of people often make the same basic assumptions:
- You don't need to rip and replace existing systems.
- SOA and the use of Web services standards help ease the pain of integration.
- SOA allows the reuse of existing applications (home-grown and packaged).
Everyone seems to agree that reuse is one of the prime reasons for SOA's widespread use and success. Few question what "reuse" really means, or how it can be achieved.
Before continuing, you should consider two sets of questions. First: What does reuse really mean in the context of SOA? Does reuse imply the reuse only of newly created Web services? Does it also include the reuse of existing applications? Does it include the reuse of existing programming and technology best practices, and/or software development guidelines?
Second: How does one achieve reuse? Many organizations that have embarked on the SOA path have realized that achieving true reuse is not as simple as creating Web services and making them available for use. Many different factors seem to wreak havoc on service use within an enterprise.
Understanding the nature of reuse within the context of SOA, and how one can generate the adoption of services, is an important step toward achieving one of the important promises of SOA.
What Is Reuse?
Reuse can take many different forms as described earlier, but my simple definition of the term is the ability of various people or service consumers to use the exact same service, component, procedure, guideline, or process repeatedly to fulfill a given task. From this definition it is clear that reusability extends beyond the mere reuse of Web services or existing applications (exposed as Web services). It also implies other focus areas and disciplines that are crucial to building a culture of collaborationthereby providing the means to create a truly reusable approach based on the principles of SOA.
Back to top