Eclipse Authors: Pat Romanski, Elizabeth White, Liz McMillan, David H Deans, JP Morgenthal

Related Topics: Eclipse, Microservices Expo, @CloudExpo

Eclipse: Blog Feed Post

The Busy Executive’s SOA Reference Guide

SOA is an architectural approach designed to identify and delineate business functional boundaries

SOA Track at Cloud Expo

Based on feedback from my last blog entry, "The Busy Executive's Quick Cloud Computing Reference Guide" the consensus was that people found it very helpful as a means of gaining quick understanding of what Cloud Computing is without getting mired in heaps of technology jargon and hype. So, I decided that SOA needed something very similar. After all, there's so much confusion and misunderstanding of SOA in the market right now.

Let's start with a basic understanding of a service. There are lots of things that you can call services, which is where many of the problems arise for SOA. I believe that the use of the word service in context of "Service Oriented Architecture" connotes a particular meaning that filters out most of non-applicable definitions of services. To further illustrate this meaning, I will discuss services in the context of software services so as to clarify the differences between SOA and not-SOA.

First, SOA is an architectural approach designed to identify and delineate business functional boundaries within a particular domain. A domain can be a single organizational unit or an entire industry. Regardless of the domain, if there are interactions within the domain, then there is most likely more than one unique business functions used to complete those interactions.

Many times, and more often with larger domains, there is more than one way to accomplish a particular task or objective. When a domain is required to support multiple paths to a singular end, it has been identified that the redundancy has an associated cost. Removing that redundancy results in efficiencies and cost savings. Very simply, SOA is the initiative designed around identifying the domain goal, marking the necessary business functions boundaries required to reach that goal, consolidating these business functions so that there is no redundancy and then orchestrating the process to reach the goal against the resulting set of business functions. The identified business functions are your services. Note, without these business functions you cannot complete your mission and achieve your task.

Most people agree on the following regarding desirable attributes of a service. We use them to do work for us that we don't want to do, we want them to be consistent and reliable, we want to pay a fair price to use them and we don't want to own them, and we don't expect to still be responsible for part of the job after hiring the service. If you hired a landscape service for your house that was supposed to prune your shrubs and you still had to go out on the weekends and clip the hedges, chances are you'd fire that service provider.

All the "chatter" in the media and on the Internet would have you believe SOA is very complex and requires expensive software and expensive resources when all we're doing is looking at a particular domain and figuring out how we can chop it up into a group of services that work together. For example, a landscape service and a mulching service have particularly good synergy, would you agree? These are two distinct services, but they have what we call a loosely-coupled relationship. That is, they work together for the duration of a task and then go their separate ways.

Granted, the task of looking at a domain and breaking it down into a set of services is a strategic skill that requires an experienced practitioner, but formulating the boundaries and putting the governance around those boundaries in place can be done by current management.

Now that we have these critical elements defined, let's compare three different topics of software that have all been associated or labeled SOA. Of the three, only one is truly SOA. These three topics are: Software-as-a-Service (SaaS), component-based software development and real SOA.

Why Isn't Software-as-a-Service a Service? To answer this, let's return to our agreed upon attributes of a service. SaaS meets one criteria we defined for a service—we want to pay a fair price to use them and we don't want to own them. However, most SaaS is just rented software. You're still responsible for integrating your data with the SaaS application after you rent it. You're still responsible for configuration of the forms and workflows after you rent it. For me, SaaS fails to meet the other key attributes of a service.

When many technologists and IT specialists discuss SOA, what they most often really mean is component-based software development. Many people in the IT industry have used the label SOA to describe a way to build software systems. This is possible, if the software represents critical business functions as we will explore shortly in the discussion of real SOA. However, in these conversations you will also hear things like SOA platforms and utility services. These are sure-fire indicators that the discussion has degraded into software design methodology and has left the realm of SOA.

Here's why there's no such thing as a "utility" service and it's just a software component. If the business itself would be less scalable or cease operation because the service is not available, then you have a service. If the mulching service doesn't show up when the landscaper is there, the landscaper cannot complete their task.  Whereas, the utility service concept is a technological artifact of a software or solution design. The software providing the business service could exist without the existence of the utility service. The resulting solution may not be as modular of a design and, perhaps, not offer the service provider, the preferred level of agility and flexibility, but the service consumer would be no worse off than if you decided not to build a utility service, but instead, developed that business logic directly in to the software itself.

The last topic is SOA and real services that are comprised of software. The best way to describe this is to look at a couple examples of services that I have developed over the years.

The Alert Service – This is a software-based service that was used in data center management to notify personnel that a problem had occurred. A user or another piece of software could create an alert and it would send the notification via a number of mediums, such as pager, fax, phone, email and printed ticket. This software took care of the entire task, didn't have to be built for each individual usage and delivered the one and only one way to perform the task goal.

Zero Bond Calculator Service – This is a software-based service that provided various zero-coupon traders with a consistent means of quoting a zero coupon price. The service happened to be accessible via Excel, but could have been offered via phone or other mediums if necessary. The trader provided the inputs and the calculator service provided the pricing. It consolidated the various approaches to pricing used by each different trader, thus minimizing the overhead of the trading desk. Again, it took care of the entire task, didn't have to be built for each individual usage and delivered the one and only one way to perform the task goal.

In each of the aforementioned examples, the software represents a business function that was implemented using software because it was easily automated and reduced the need for human labor. However, because it was implemented in software, does not, in and of itself, make these services. It's the role they represent. These services allowed the business to reduce complexity, consolidate around one way of achieving a goal and do so in a way that was agile and flexible. Moreover, while they are not dependent upon one another to provide value to the business, one could easily see how they could work together synergistically to ensure high-availability of the zero coupon pricing calculator for traders.

That's SOA in a nutshell! Identify, consolidate, orchestrate and govern a set of business functions or capabilities.

More Stories By JP Morgenthal

JP Morgenthal is a veteran IT solutions executive and Distinguished Engineer with CSC. He has been delivering IT services to business leaders for the past 30 years and is a recognized thought-leader in applying emerging technology for business growth and innovation. JP's strengths center around transformation and modernization leveraging next generation platforms and technologies. He has held technical executive roles in multiple businesses including: CTO, Chief Architect and Founder/CEO. Areas of expertise for JP include strategy, architecture, application development, infrastructure and operations, cloud computing, DevOps, and integration. JP is a published author with four trade publications with his most recent being “Cloud Computing: Assessing the Risks”. JP holds both a Masters and Bachelors of Science in Computer Science from Hofstra University.

IoT & Smart Cities Stories
Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO are the world's most influential, independent events where Cloud Computing was coined and where technology buyers and vendors meet to experience and discuss the big picture of Digital Transformation and all of the strategies, tactics, and tools they need to realize their goals. Sponsors of DXWorldEXPO | CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities.
All in Mobile is a place where we continually maximize their impact by fostering understanding, empathy, insights, creativity and joy. They believe that a truly useful and desirable mobile app doesn't need the brightest idea or the most advanced technology. A great product begins with understanding people. It's easy to think that customers will love your app, but can you justify it? They make sure your final app is something that users truly want and need. The only way to do this is by ...
DXWorldEXPO LLC announced today that Big Data Federation to Exhibit at the 22nd International CloudEXPO, colocated with DevOpsSUMMIT and DXWorldEXPO, November 12-13, 2018 in New York City. Big Data Federation, Inc. develops and applies artificial intelligence to predict financial and economic events that matter. The company uncovers patterns and precise drivers of performance and outcomes with the aid of machine-learning algorithms, big data, and fundamental analysis. Their products are deployed...
Cell networks have the advantage of long-range communications, reaching an estimated 90% of the world. But cell networks such as 2G, 3G and LTE consume lots of power and were designed for connecting people. They are not optimized for low- or battery-powered devices or for IoT applications with infrequently transmitted data. Cell IoT modules that support narrow-band IoT and 4G cell networks will enable cell connectivity, device management, and app enablement for low-power wide-area network IoT. B...
The hierarchical architecture that distributes "compute" within the network specially at the edge can enable new services by harnessing emerging technologies. But Edge-Compute comes at increased cost that needs to be managed and potentially augmented by creative architecture solutions as there will always a catching-up with the capacity demands. Processing power in smartphones has enhanced YoY and there is increasingly spare compute capacity that can be potentially pooled. Uber has successfully ...
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...