Mark Richards

Subscribe to Mark Richards: eMailAlertsEmail Alerts
Get Mark Richards: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Related Topics: SOA & WOA Magazine

SOA & WOA: Article

Creating an Effective SOA Service Taxonomy

What exactly is a service?

It's hard to think about service-oriented architecture without thinking of services; after all, services are the main focus of SOA (it's even in the name). If service-oriented architecture is an approach where the business and technical architecture is oriented around services, then what exactly is a service? Unfortunately, the answer to this question varies greatly depending on whom you talk to and how you're using SOA in your organization. This variation tends to create quite a bit of confusion when trying to design and implement a SOA-based solution.

There are several excellent service-oriented methodologies available today, most of which describe processes for identifying, defining, specifying, implementing, and governing services. While these methodologies provide the direction and tools necessary to help realize SOA in your organization, they don't address the fundamental question about what a service actually is.

A service is hard to define because there are in fact many different types of services in service-oriented architecture. Understanding what types of services exist, how those service types are defined and related, and how they are communicated to the stakeholders in your organization are key to any SOA-based initiative. In this article I will describe a method for building a SOA Service Taxonomy that will help you effectively classify services for the SOA-based initiatives in your organization.

Overview
Taxonomy is a way of classifying things using a hierarchical classification structure. We use a hierarchical classification system to classify animals into phyla, classes, orders, families, genera, and finally species. Using this classification scheme we can group animals with similar characteristics and features, from the very general (phylum) to the very specific (species). We can apply these same concepts to the way we classify and define service types in a SOA. However, unlike the binomial nomenclature originally laid down by Carl Linnaeus, there exists no foundational nomenclature for developing a hierarchical classification of services in a SOA. Fortunately, creating a classification scheme and categorizing SOA services is infinitely simpler than the task Mr. Linnaeus had several hundred years earlier. However, we still seem to get it wrong.

Service Taxonomy is a way of classifying various types of services used in SOA. The purpose of a hierarchical service classification scheme is to provide clear, concise, and non-overlapping definitions for the various types of services you might use and encounter during a SOA initiative. An effective service classification will help facilitate communication between the various groups and individuals involved in a SOA initiative, from business users to application developers. It does this by providing a common and accepted language, allowing more effective communication between the various stakeholders in your organization.

More Stories By Mark Richards

Mark Richards is a director and senior solutions architect at Collaborative Consulting, LLC, where he is involved in the architecture and design of large-scale Service Oriented Architectures in J2EE and other technologies, primarily in the financial services industry. He served as the president of the Boston Java User Group in 1997 and 1998, and the president of the New England Java Users Group from 1999 to 2004. He is the author of several technical books, and speaks at conferences around the country. Prior to joining Collaborative Consulting Mark served as an executive IT architect at IBM with a focus on SOA in the financial services industry.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.