|By Thomas Erl||
|August 16, 2008 02:15 PM EDT||
Each SOA design pattern provides a design solution in support of successfully applying service orientation and establishing a quality service-oriented architecture. Therefore, to better understand how and to what extent individual SOA design patterns can be applied, SOA as an architectural model itself needs to be broken down into the following types, each of which represent a common "scope of implementation":
- Service Architecture: The architecture of a single service
- Service Composition Architecture: The architecture of a set of services assembled into a service composition
- Service Inventory Architecture: The architecture that supports a collection of related services that are independently standardized and governed
- Service-Oriented Enterprise Architecture: The architecture of the enterprise to whatever extent it is service-oriented
In a typical enterprise, these architecture types are very much interrelated, yet each requires individual design attention and documentation.
About the Patterns
This article is roughly organized according to these architecture types and related patterns.
SOA design patterns collectively form a master pattern language that allows patterns to be applied in different combinations and sequences. There are also compound patterns that are comprised of multiple individual design patterns. (For example, the Enterprise Service Bus and orchestration both represent compound design patterns.)
SOA design patterns are not specific to any particular vendor platform or business industry; they are simply design techniques that help overcome common obstacles to achieving the strategic goals and benefits associated with SOA and service-oriented computing.
The remainder of this article highlights key design patterns while referencing a cross-section of others. Not all mentioned patterns are explained, but descriptions are freely available at the SOA patterns community site (www.soapatterns.org).
Patterns for Collections of Services
A service inventory represents a collection of independently standardized and governed services. As shown in Figure 1, the services you deliver for a given service inventory are standardized and designed according to service orientation so that they become intrinsically interoperable. This then allows you to draw from this pool of services to assemble and augment service compositions repeatedly.
Inventory Boundary Patterns
One of the biggest decisions a project team faces when starting an SOA initiative is determining the appropriate scope of a service inventory. The Enterprise Inventory and Domain Inventory design patterns help address this decision point by providing alternative approaches.
The goal of the Enterprise Inventory pattern is to establish an enterprise-wide service inventory. The end result of achieving this pattern is considered desirable because it enables you to build all of your services according to the same design conventions to ensure consistent and widespread inter-service compatibility. It further guarantees that all of the services will be owned and evolved by the same group or department, which is the ultimate in centralized governance.
Although ideal, this approach is often not realistic, especially for larger organizations. It can raise various issues, including time and budget constraints, cultural and political concerns, and order of magnitude considerations (especially in relation to the long-term growth and governance of the inventory). These issues can introduce risks and problems that outweigh the benefit potential of applying this pattern.
This is the reason the Domain Inventory pattern has become so popular. It advocates an approach whereby the enterprise is divided into segments (domains), each of which represents a meaningful cross-silo scope. Often, the boundary of a domain inventory architecture is aligned with a business domain (such as accounting or claims). Services delivered into this architectural boundary are subject to the same design standards and governance practices, allowing them to be evolved independently from neighboring domain inventories in the same enterprise.
Although the use of this pattern can introduce the need for cross-domain data model and protocol conversion (as per the Schema Transformation and Protocol Bridging patterns), there are additional patterns (such as Cross-Domain Utility Layer, Dual Protocols, and Inventory Endpoint) that help reduce this impact.
Inventory Structure Patterns
Regardless of its scope, within the boundary of a service inventory, certain design patterns are applied to ensure a consistent structure in support of service orientation. For example, Logic Centralization positions reusable services as the sole or primary contact points for the logic they represent. This is further supported by the Service Normalization pattern that fosters service autonomy by reducing the amount of functional overlap between individual service boundaries to establish more of a "normalized" inventory.
The Service Layers pattern (and related, specialized layer patterns) can be used to further organize a service inventory into a set of logical layers, each of which is based on a different classification of service.
Note: Just a reminder that all of these structural patterns are only applied within the boundary of an inventory architecture. This means that, if you are working within the confines of a domain inventory, these patterns will not be applied on an enterprise-wide basis.
To support and extend the structure of a service inventory architecture, various other design patterns can be applied. Some (like Canonical Schema and Canonical Transport Protocol) help standardize the services within the inventory boundary to foster native interoperability and composability, while others (like Process Centralization and Rules Centralization) can be selectively used to leverage established product platforms that support the centralized management of business process logic and business rules, respectively.
Yet another dimension to inventory architecture design is the centralization of service contract-related logic. The creation of redundant schema and policy content can be addressed by the Schema Centralization and Policy Centralization patterns, each of which establishes a separate data representation layer (one layer for data models, the other for global and domain-level policies) that supports the primary service contract layer.
There are many more specialized patterns that are applied to an inventory architecture to solve common problems related to resource management, state management, quality of service, security, and communication.
Patterns for Service Design
Each service exists as a standalone software program, autonomous yet still fully geared to participate in larger service aggregations. When designing a service architecture, numerous challenges can arise, especially when shaping this architecture according to service-orientation design principles, such as Service Statelessness and Service Loose Coupling. Figure 2 provides an abstract glimpse of service architecture design patterns that are applied at the service architecture level.
SYS-CON Events announced today that Commvault, a global leader in enterprise data protection and information management, has been named “Bronze Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY, and the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Commvault is a leading provider of data protection and information management...
Feb. 6, 2016 02:30 PM EST Reads: 342
Continuous Delivery and Release Automation for Microservices By @Anders_Wallgren | @DevOpsSummit #Microservices
As software organizations continue to invest in achieving Continuous Delivery (CD) of their applications, we see increased interest in microservices architectures, which–on the face of it–seem like a natural fit for enabling CD. In microservices (or its predecessor, “SOA”), the business functionality is decomposed into a set of independent, self-contained services that communicate with each other via an API. Each of the services has their own application release cycle, and are developed and depl...
Feb. 6, 2016 02:00 PM EST Reads: 190
SYS-CON Events announced today that Alert Logic, Inc., the leading provider of Security-as-a-Service solutions for the cloud, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Alert Logic, Inc., provides Security-as-a-Service for on-premises, cloud, and hybrid infrastructures, delivering deep security insight and continuous protection for customers at a lower cost than traditional security solutions. Ful...
Feb. 6, 2016 01:30 PM EST Reads: 328
At the heart of the Cloud Native model is a microservices application architecture, and applying this to a telco SDN scenario offers enormous opportunity for product innovation and competitive advantage. For example in the ETSI NFV Ecosystem white paper they describe one of the product markets that SDN might address to be the Home sector. Vendors like Alcatel market SDN-based solutions for the home market, offering Home Gateways – A virtual residential gateway (vRGW) where service provider...
Feb. 6, 2016 01:00 PM EST Reads: 131
SYS-CON Events announced today that VAI, a leading ERP software provider, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. VAI (Vormittag Associates, Inc.) is a leading independent mid-market ERP software developer renowned for its flexible solutions and ability to automate critical business functions for the distribution, manufacturing, specialty retail and service sectors. An IBM Premier Business Part...
Feb. 6, 2016 01:00 PM EST Reads: 528
SYS-CON Events announced today that Catchpoint Systems, Inc., a provider of innovative web and infrastructure monitoring solutions, has been named “Silver Sponsor” of SYS-CON's DevOps Summit at 18th Cloud Expo New York, which will take place June 7-9, 2016, at the Javits Center in New York City, NY. Catchpoint is a leading Digital Performance Analytics company that provides unparalleled insight into customer-critical services to help consistently deliver an amazing customer experience. Designed...
Feb. 6, 2016 12:00 PM EST Reads: 305
SYS-CON Events announced today that AppNeta, the leader in performance insight for business-critical web applications, will exhibit and present at SYS-CON's @DevOpsSummit at Cloud Expo New York, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. AppNeta is the only application performance monitoring (APM) company to provide solutions for all applications – applications you develop internally, business-critical SaaS applications you use and the networks that deli...
Feb. 6, 2016 09:45 AM EST Reads: 323
In the Bimodal model we find two areas of IT - the traditional kind where the main concern is keeping the lights on and the IT focusing on agility and speed, where everything needs to be faster. Today companies are investing in new technologies and processes to emulate their most agile competitors. Gone are the days of waterfall development and releases only every few months. Today's IT and the business it powers demands performance akin to a supercar - everything needs to be faster, every sc...
Feb. 6, 2016 09:00 AM EST Reads: 502
The (re?)emergence of Microservices was especially prominent in this week’s news. What are they good for? do they make sense for your application? should you take the plunge? and what do Microservices mean for your DevOps and Continuous Delivery efforts? Continue reading for more on Microservices, containers, DevOps culture, and more top news from the past week. As always, stay tuned to all the news coming from@ElectricCloud on DevOps and Continuous Delivery throughout the week and retweet/favo...
Feb. 6, 2016 08:30 AM EST Reads: 143
In most cases, it is convenient to have some human interaction with a web (micro-)service, no matter how small it is. A traditional approach would be to create an HTTP interface, where user requests will be dispatched and HTML/CSS pages must be served. This approach is indeed very traditional for a web site, but not really convenient for a web service, which is not intended to be good looking, 24x7 up and running and UX-optimized. Instead, talking to a web service in a chat-bot mode would be muc...
Feb. 6, 2016 07:30 AM EST Reads: 153
[session] From Build to Scale: Lifecycle of Microservices By @fortyfivan | @CloudExpo #Microservices
More and more companies are looking to microservices as an architectural pattern for breaking apart applications into more manageable pieces so that agile teams can deliver new features quicker and more effectively. What this pattern has done more than anything to date is spark organizational transformations, setting the foundation for future application development. In practice, however, there are a number of considerations to make that go beyond simply “build, ship, and run,” which changes ho...
Feb. 6, 2016 07:15 AM EST Reads: 125
SYS-CON Events announced today that Interoute, owner-operator of one of Europe's largest networks and a global cloud services platform, has been named “Bronze Sponsor” of SYS-CON's 18th Cloud Expo, which will take place on June 7-9, 2015 at the Javits Center in New York, New York. Interoute is the owner-operator of one of Europe's largest networks and a global cloud services platform which encompasses 12 data centers, 14 virtual data centers and 31 colocation centers, with connections to 195 ad...
Feb. 6, 2016 05:00 AM EST Reads: 322
With microservices, SOA and distributed architectures becoming more popular, it is becoming increasingly harder to keep track of where time is spent in a distributed application when trying to diagnose performance problems. Distributed tracing systems attempt to address this problem by following application requests across service boundaries, persisting metadata along the way that provide context for fine-grained performance monitoring.
Feb. 5, 2016 03:45 PM EST Reads: 778
The battle over bimodal IT is heating up. Now that there’s a reasonably broad consensus that Gartner’s advice about bimodal IT is deeply flawed – consensus everywhere except perhaps at Gartner – various ideas are springing up to fill the void. The bimodal problem, of course, is well understood. ‘Traditional’ or ‘slow’ IT uses hidebound, laborious processes that would only get in the way of ‘fast’ or ‘agile’ digital efforts. The result: incoherent IT strategies and shadow IT struggles that lead ...
Feb. 5, 2016 03:00 PM EST Reads: 411
If we look at slow, traditional IT and jump to the conclusion that just because we found its issues intractable before, that necessarily means we will again, then it’s time for a rethink. As a matter of fact, the world of IT has changed over the last ten years or so. We’ve been experiencing unprecedented innovation across the board – innovation in technology as well as in how people organize and accomplish tasks. Let’s take a look at three differences between today’s modern, digital context...
Feb. 5, 2016 01:00 PM EST Reads: 136
Web performance issues and advances have been gaining a stronger presence in the headlines as people are becoming more aware of its impact on virtually every business, and 2015 was no exception. We saw a myriad of major outages this year hit some of the biggest corporations, as well as some technology integrations and other news that we IT Ops aficionados find very exciting. This past year has offered several opportunities for growth and evolution in the performance realm — even the worst failu...
Feb. 3, 2016 10:00 PM EST Reads: 537
Are you someone who knows that the number one rule in DevOps is “Don’t Panic”? Especially when it comes to making Continuous Delivery changes inside your organization? Are you someone that theorizes that if anyone implements real automation changes, the solution will instantly become antiquated and be replaced by something even more bizarre and inexplicable?
Feb. 3, 2016 06:30 PM EST Reads: 310
Welcome to the first top DevOps news roundup of 2016! At the end of last year, we saw some great predictions for 2016. While we’re excited to kick off the new year, this week’s top posts reminded us to take a second to slow down and really understand the current state of affairs. For example, do you actually know what microservices are – or aren’t? What about DevOps? Does the emphasis still fall mostly on the development side? This week’s top news definitely got the wheels turning and just migh...
Feb. 3, 2016 03:00 PM EST Reads: 287
Test automation is arguably the most important innovation to the process of QA testing in software development. The ability to automate regression testing and other repetitive test cases can significantly reduce the overall production time for even the most complex solutions. As software continues to be developed for new platforms – including mobile devices and the diverse array of endpoints that will be created during the rise of the Internet of Things - automation integration will have a huge ...
Feb. 3, 2016 02:00 PM EST Reads: 638
I recently spotted a five-year-old blog post by Mike Gualtieri of Forrester, where he suggests firing your quality assurance (QA) team to improve your quality. He got the idea from a client who actually tried and succeeded with this counterintuitive move. The thinking goes that without a QA team to cover for them, developers are more likely to take care of quality properly – or risk getting the dreaded Sunday morning wakeup call to fix something. Gualtieri’s post generated modest buzz at th...
Feb. 3, 2016 07:00 AM EST Reads: 615