|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.
It's been a busy time for tech's ongoing infatuation with containers. Amazon just announced EC2 Container Registry to simply container management. The new Azure container service taps into Microsoft's partnership with Docker and Mesosphere. You know when there's a standard for containers on the table there's money on the table, too. Everyone is talking containers because they reduce a ton of development-related challenges and make it much easier to move across production and testing environm...
Nov. 29, 2015 09:00 PM EST Reads: 621
Hiring the wrong candidate can cost a company hundreds of thousands of dollars, and result in lost profit and productivity during the search for a replacement. In fact, the Harvard Business Review has found that as much as 80 percent of turnover is caused by bad hiring decisions. But when your organization has implemented DevOps, the job is about more than just technical chops. It’s also about core behaviors: how they work with others, how they make decisions, and how those decisions translate t...
Nov. 29, 2015 04:45 PM EST Reads: 198
In his General Session at DevOps Summit, Asaf Yigal, Co-Founder & VP of Product at Logz.io, explored the value of Kibana 4 for log analysis and provided a hands-on tutorial on how to set up Kibana 4 and get the most out of Apache log files. He examined three use cases: IT operations, business intelligence, and security and compliance. Asaf Yigal is co-founder and VP of Product at log analytics software company Logz.io. In the past, he was co-founder of social-trading platform Currensee, which...
Nov. 29, 2015 04:00 PM EST Reads: 253
People want to get going with DevOps or Continuous Delivery, but need a place to start. Others are already on their way, but need some validation of their choices. A few months ago, I published the first volume of DevOps and Continuous Delivery reference architectures which has now been viewed over 50,000 times on SlideShare (it's free to download...no registration required). Three things helped people in the deck: (1) the reference architectures, (2) links to the sources for each architectur...
Nov. 29, 2015 03:30 PM EST Reads: 261
The Internet of Things (IoT) is growing rapidly by extending current technologies, products and networks. By 2020, Cisco estimates there will be 50 billion connected devices. Gartner has forecast revenues of over $300 billion, just to IoT suppliers. Now is the time to figure out how you’ll make money – not just create innovative products. With hundreds of new products and companies jumping into the IoT fray every month, there’s no shortage of innovation. Despite this, McKinsey/VisionMobile data...
Nov. 29, 2015 02:00 PM EST Reads: 485
Culture is the most important ingredient of DevOps. The challenge for most organizations is defining and communicating a vision of beneficial DevOps culture for their organizations, and then facilitating the changes needed to achieve that. Often this comes down to an ability to provide true leadership. As a CIO, are your direct reports IT managers or are they IT leaders? The hard truth is that many IT managers have risen through the ranks based on their technical skills, not their leadership ab...
Nov. 29, 2015 01:00 PM EST Reads: 415
Just over a week ago I received a long and loud sustained applause for a presentation I delivered at this year’s Cloud Expo in Santa Clara. I was extremely pleased with the turnout and had some very good conversations with many of the attendees. Over the next few days I had many more meaningful conversations and was not only happy with the results but also learned a few new things. Here is everything I learned in those three days distilled into three short points.
Nov. 29, 2015 01:00 PM EST Reads: 354
One of the most important tenets of digital transformation is that it’s customer-driven. In fact, the only reason technology is involved at all is because today’s customers demand technology-based interactions with the companies they do business with. It’s no surprise, therefore, that we at Intellyx agree with Patrick Maes, CTO, ANZ Bank, when he said, “the fundamental element in digital transformation is extreme customer centricity.” So true – but note the insightful twist that Maes adde...
Nov. 29, 2015 01:00 PM EST Reads: 454
DevOps is about increasing efficiency, but nothing is more inefficient than building the same application twice. However, this is a routine occurrence with enterprise applications that need both a rich desktop web interface and strong mobile support. With recent technological advances from Isomorphic Software and others, rich desktop and tuned mobile experiences can now be created with a single codebase – without compromising functionality, performance or usability. In his session at DevOps Su...
Nov. 29, 2015 12:45 PM EST Reads: 421
Nov. 29, 2015 12:30 PM EST Reads: 242
As organizations realize the scope of the Internet of Things, gaining key insights from Big Data, through the use of advanced analytics, becomes crucial. However, IoT also creates the need for petabyte scale storage of data from millions of devices. A new type of Storage is required which seamlessly integrates robust data analytics with massive scale. These storage systems will act as “smart systems” provide in-place analytics that speed discovery and enable businesses to quickly derive meaningf...
Nov. 29, 2015 12:30 PM EST Reads: 427
Continuous processes around the development and deployment of applications are both impacted by -- and a benefit to -- the Internet of Things trend. To help better understand the relationship between DevOps and a plethora of new end-devices and data please welcome Gary Gruver, consultant, author and a former IT executive who has led many large-scale IT transformation projects, and John Jeremiah, Technology Evangelist at Hewlett Packard Enterprise (HPE), on Twitter at @j_jeremiah. The discussion...
Nov. 29, 2015 06:45 AM EST Reads: 743
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud, to a world of hybrid cloud, and to a world dominated by the APIs that make today's multi-cloud environments and hybrid clouds possible. In this Power Panel at 17th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the importance of customers being able to use the specific technologies they need, through environments and ecosystems that expose their APIs to make true ...
Nov. 29, 2015 06:00 AM EST Reads: 558
Microservices are a very exciting architectural approach that many organizations are looking to as a way to accelerate innovation. Microservices promise to allow teams to move away from monolithic "ball of mud" systems, but the reality is that, in the vast majority of organizations, different projects and technologies will continue to be developed at different speeds. How to handle the dependencies between these disparate systems with different iteration cycles? Consider the "canoncial problem"...
Nov. 29, 2015 05:00 AM EST Reads: 461
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists discussed what things are the most important, which will have the most profound...
Nov. 29, 2015 04:30 AM EST Reads: 487
Growth hacking is common for startups to make unheard-of progress in building their business. Career Hacks can help Geek Girls and those who support them (yes, that's you too, Dad!) to excel in this typically male-dominated world. Get ready to learn the facts: Is there a bias against women in the tech / developer communities? Why are women 50% of the workforce, but hold only 24% of the STEM or IT positions? Some beginnings of what to do about it! In her Day 2 Keynote at 17th Cloud Expo, San...
Nov. 29, 2015 03:00 AM EST Reads: 598
PubNub has announced the release of BLOCKS, a set of customizable microservices that give developers a simple way to add code and deploy features for realtime apps.PubNub BLOCKS executes business logic directly on the data streaming through PubNub’s network without splitting it off to an intermediary server controlled by the customer. This revolutionary approach streamlines app development, reduces endpoint-to-endpoint latency, and allows apps to better leverage the enormous scalability of PubNu...
Nov. 29, 2015 03:00 AM EST Reads: 340
In today's enterprise, digital transformation represents organizational change even more so than technology change, as customer preferences and behavior drive end-to-end transformation across lines of business as well as IT. To capitalize on the ubiquitous disruption driving this transformation, companies must be able to innovate at an increasingly rapid pace. Traditional approaches for driving innovation are now woefully inadequate for keeping up with the breadth of disruption and change facin...
Nov. 29, 2015 02:30 AM EST Reads: 504
I recently attended and was a speaker at the 4th International Internet of @ThingsExpo at the Santa Clara Convention Center. I also had the opportunity to attend this event last year and I wrote a blog from that show talking about how the “Enterprise Impact of IoT” was a key theme of last year’s show. I was curious to see if the same theme would still resonate 365 days later and what, if any, changes I would see in the content presented.
Nov. 29, 2015 01:00 AM EST Reads: 442
You may have heard about the pets vs. cattle discussion – a reference to the way application servers are deployed in the cloud native world. If an application server goes down it can simply be dropped from the mix and a new server added in its place. The practice so far has mostly been applied to application deployments. Management software on the other hand is treated in a very special manner. Dedicated resources are set aside to run the management software components and several alerting syst...
Nov. 29, 2015 12:00 AM EST Reads: 220