Welcome!

SOA & WOA Authors: Maureen O'Gara, Bob Hockman, James Carlini, Larry Bettino, Elizabeth White

Related Topics: SOA & WOA

SOA & WOA: Article

SOA Pattern of the Week (#4): Service Normalization

The "SOA Pattern of the Week" article series is comprised of original content and insights

Like data normalization, the Service Normalization pattern is intent on reducing redundancy and waste in order to avoid the governance burden associated with having to maintain and synchronize similar or duplicate bodies of service logic."

You can see it introduces the Pattern on our publisher page.

When designing data architectures, you can easily end up with different databases or even different database tables containing the same or similar data. This has been the root of many well documented data maintenance and quality issues that helped establish data normalization as widely accepted data modeling best practice. On a fundamental level, the aim of data normalization is to reduce data redundancy to whatever extent possible. This forces any applications that need to use a specific type of data to access it in one location. Therefore, by eliminating data redundancy, data normalization also promotes data reuse.

Reusability is, of course, also a primary goal of service-orientation. So much so that one of its eight principles (the Service Reusability principle) is dedicated solely to enabling this quality in services. Service Normalization is one of many patterns that support service reusability, but its goals go beyond that. Like data normalization, the Service Normalization pattern is intent on reducing redundancy and waste in order to avoid the governance burden associated with having to maintain and synchronize similar or duplicate bodies of service logic.

To accomplish this, Service Normalization essentially draws lines in the sand that establish the boundaries of services so that they do not overlap. Unlike data normalization, Service Normalization is not limited to data. Its primary concern is the normalization of functional service boundaries. Therefore, you will usually find yourself applying this pattern during the service modeling stages, when services are first conceptualized.

One of the most important aspects of understanding the practice of normalizing services is the actual scope or boundary in which the normalization effort is carried out. As we explained in the previous installment in this series, the Domain Inventory pattern enables you to establish multiple collections of independently standardized and governed services within the same IT enterprise. These service inventories (or “continents of services” as they are sometimes referred to) correspond to domains that still allow you to achieve service-orientation goals to a meaningful extent.

A service inventory blueprint is also defined during the analysis and modeling stages and the boundary of a given blueprint typically determines the scope at which Service Normalization is applied. This means that you are allowed to have overlapping service boundaries and redundant service logic, as long as it occurs across domain service inventories (not within a given service inventory).

The rules established by Service Normalization make their way into service modeling processes and overall service delivery methodologies. Avoiding functional overlap becomes a constant consideration and often forms the basis of a dedicated process step (especially for modeling processes that are carried out iteratively). It is also one of those considerations that needs to be tracked and coordinated when you have different teams working in parallel to model services for the same service inventory.

Yet despite best efforts, functional overlap still can happen. Something may get missed within the service inventory blueprint and services with similar capabilities are then inadvertently built. Or, there may even be hard constraints that prevent this pattern from being fully applied, such as when different services need to encapsulate legacy systems that themselves cannot be normalized. In this case, there may be embedded or entrenched logic that unavoidably leads to an extent of redundancy. Then, of course, there is the performance issue. You may run into a situation where delivering fully normalized services will impose unreasonable runtime latency and the only way out of it is to intentionally design some measure of denormalization into the services.

While you can add a real world twist and interpret this pattern as “Within a given service inventory, no two service boundaries can overlap, and if they do, there better be a darn good reason for it!”, the point is that the overarching objective of Service Normalization is to establish a solid foundation in support of the many goals of service-orientation.

The SOA Pattern of the Week series is comprised of original content and insights provided to you courtesy of the authors and contributors of the SOAPatterns.org community site and the book “SOA Design Patterns (Erl et al., ISBN: 0136135161, Prentice Hall, 2009), the latest title in the “Prentice Hall Service-Oriented Computing Series from Thomas Erl” (www.soabooks.com).

More Stories By Thomas Erl

Thomas Erl is the world’s top-selling SOA author and Series Editor of the Prentice Hall Service-Oriented Computing Series from Thomas Erl (www.soabooks.com). With over 100,000 copies in print worldwide, his books have become international bestsellers and have been formally endorsed by senior members of major software organizations, such as IBM, Microsoft, Oracle, BEA, Sun, Intel, SAP, CISCO, and HP. His most recent titles - SOA Design Patterns and Web Service Contract Design and Versioning for SOA - were co-authored with a series of industry experts and follow his first three books Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services, Service-Oriented Architecture: Concepts, Technology, and Design, and SOA Principles of Service Design. Thomas is currently working with over 20 authors on a number of upcoming titles, including SOA Governance, SOA with .NET, SOA with Java, ESB Architecture for SOA, and SOA with REST. He is also overseeing the SOAPatterns.org initiative, a community site dedicated to the on-going development of SOA patterns. Thomas is the founder of SOA Systems Inc. (www.soasystems.com), a company specializing in vendor-neutral SOA consulting and training services. He is also the founder of the internationally recognized SOA Certified Professional program (www.soacp.com and www.soaschool.com). Thomas is a speaker and instructor for private and public events and is regularly invited to Gartner summits. He has delivered many workshops and keynote speeches, and is on the program committee for the International SOA Symposium. Articles and interviews by Thomas have been published in numerous publications, including SOA World Magazine, The Wall Street Journal and CIO Magazine. For more information, visit www.thomaserl.com.

More Stories By Herbjorn Wilhelmsen

Herbjorn Wilhelmsen is an Architect and Senior Consultant at Objectware in Stockholm, Sweden. His main focus areas include service-oriented architecture, Web services and business architecture. Herbjörn has many years of industry experience working as a developer, development manager, architect and teacher in several fields of operations, such as telecommunications, marketing, payment industry, health care and public services. He is active as an author in the Prentice Hall Service-Oriented Computing Series from Thomas Erl and has contributed design patterns to SOAPatterns.org. He leads the Business-to-IT group in the Swedish chapter of the International Association of Software Architects, which performs a comparative study of a number of business architecture methodologies. Herbjörn holds a Bachelor of Science from Stockholm University.