Microservices Expo Authors: Pat Romanski, Liz McMillan, Elizabeth White, Stackify Blog, Andreas Grabner

Related Topics: Microservices Expo

Microservices Expo: Article

Enterprise Semantics: Aligning Service-Oriented Architecture with the Business

Bringing agility, transparency, and integration to your Web services infrastructure

Service-oriented architectures (SOAs) are a significant step forward in aligning information technology with business goals. But SOAs are insufficient when the Web services of which they are typically composed use inconsistent terminologies and present different understandings of the real-world environment that they are meant to support. Enterprises need transparency, a clear view of what is happening in the organization. They also need agility, which is the ability to respond quickly to changes in the internal and external environments. Finally, organizations require integration: the smooth interoperation of applications across organizational boundaries. Encoding business concepts in a formal semantic model helps to achieve these goals and also results in additional corollary benefits. This semantic model serves as a focal point and enables automated discovery and transformation services in an organization.

Technology and the Enterprise

Enterprise Information Technology (IT) units exist to support organizational business goals. They must always be aware of the need for alignment, the challenging task of ensuring that every IT decision, in every department, helps the business side of the organization to get its job done, and requires constant monitoring of IT assets to be sure that they correctly describe the organization as the organization understands itself. To this end, it is not enough to follow the common industry practice of creating new data sources or layering new applications on top of existing data sources. Information sources and the applications tying into these sources must function in a smooth and unified manner, thereby allowing units and individuals to work together. When aligned, all stakeholders can coordinate efforts both within an organization (internally) and across organizational boundaries (externally).

Services-oriented architectures are playing an essential role in the drive to integrate information and applications across the enterprise. With SOAs in place, technical teams respond quickly to provide a collection of applications that function as a clearly understandable whole. In this way, they provide a powerful tool to the rest of the organization; in fact, such an integrated process can create as much value as all the existing unintegrated processes.

However, alignment is impossible when business departments misunderstand one another and when IT misunderstands the business. All the XML and HTTP in the world cannot integrate applications attempting to communicate in different terminologies. To ensure accurate communication, every application must be developed in strict accordance with the same standard (an impossibility in the real world), or else information managers must analyze the business concepts underlying the data and the applications, relate these concepts to existing industry and enterprise standards, and then encode that analysis in discovery and transformation logic, hence bridging the barriers. Today, this analysis must be repeated on every project. Even then, it remains painfully error-prone. With this in mind, Gartner recommends that enterprises "ensure that all developers use the same semantics and agree on the message contents at a business level." (See "SOA and Web Services Offer Little Vendor Independence," in Resources.)

Service-Oriented Architectures

"Service-oriented architecture" is among the latest three-letter acronyms to hit the technology world. But buzzword cynics should know: "SOA" does have a real meaning. The SOA approach is to expose enterprise data and business logic in loosely coupled, discoverable, structured, standards-based, coarse-grained, stateless units of functionality (see "W3C Web Services Architecture Working Group" in Resources). These are defined as follows:
  • Loosely Coupled. Applications talk to one other and to other databases - without regard for implementation language.
  • Discoverable. A Web service's network location is not predetermined and can be looked up at run-time.
  • Structured. Messages have an interface (schema) that defines their structure and which can also be discovered. This allows applications to read messages from other applications and data sources without the service provider needing to define the exact message-deserialization code.
  • Standards-Based. The message format and schemas are known to all parties.
  • Coarse Grained. Each interaction should provide information or functionality achieving real business value; multiple exchanges of information should not be needed for each step in a business process.
  • Stateless. Though not an absolute requirement, it is better that each message does not change the state of the application - though data can be stored. This allows lost messages to be resent without complicated transaction-processing logic.
In practice, SOAs are achieved with the Web services standards stack of XML, XSD, WSDL, SOAP, and UDDI; XML for the message format, XSD for the message structure, WSDL to tie together information on the service, and UDDI for service discovery. In addition, vertical-specific standards constrain the schemas of the messages sent.

The goal of smooth integration is not achieved by SOA alone. Web services must be described and understood in a semantically consistent way in order to resolve terminological ambiguities and misunderstandings, and to avoid the constant revision and redefinition of terms, concepts, and elements of the business. Such inconsistencies make for applications that cannot talk to each other, and subsequently result in slower response times when changes are needed. Business managers cannot get a clear view of their organization through these multiple unintegrated "languages."

To take a simple example, a manufacturing report service may indicate that one million units of a product were manufactured, while a shipping report service states that only 100,000 were shipped. Extensive analysis might be needed to determine that the shipping report is designed to report the number of packages shipped, each of which includes ten of the original manufactured units. If the former report is for a week measured Monday to Monday, and includes all shippable and defective products, while the latter is for Sunday to Sunday, and excludes defective items and returns, more confusion ensues.

Semantic Service-Oriented Architecture: See Figure 1

In a semantically based SOA, an information model expresses a common linguistic understanding of the real-world business environment across individual organizations or even across entire industries. This allows executives, analysts, data specialists, and application developers to share a common understanding of concepts relevant to the business, a partnership, or an entire vertical industry. According to Gartner, "Data semantics becomes a critical barrier for SOA as more participants involve more applications." (See "SOA Will Demand Re-engineering of Business Applications" in Resources.)

In the shipping example above, the semantic model includes concepts such as "Manufactured Unit," "Package," "Date," Week," "Shippable/Defective," and the relationship between such concepts; it also relates to the manufacturing and shipping report services themselves. Business rules show the relationship between the different ways of expressing the same concepts. In this way, the meaning of the Web services is formally expressed through relation to an agreed upon set of business concepts.

In terms of metadata, SOA maintenance means that development teams require an inventory of services, back-end systems, inter-service interactions, and different service versions. From an architectural standpoint, the Web service is only as good as its interface as described in Web Service Description Language (WSDL). To create useful Web services, enterprises require a methodology for modeling their common business language and for inferring consistent WSDLs. To maintain accurate interrelationships, Web services must be mapped to the back-end applications they expose, and to each other as the business and its trading partners evolve incompatible WSDL schemas. In the semantic SOA, organizations manage their disparate WSDLs, which are front ends for different data assets, IT systems, business processes, networks, and applications, by reference to a common business architecture expressed and not in implementation-oriented terms, but rather according to the needs of the business.

More Stories By Joshua Fox

Joshua Fox is a senior software architect at Unicorn Solutions (www.unicorn.com), developing semantic information management systems for the enterprise. He has experience developing large-scale clustered Java systems for Internet collaboration and multimedia delivery, and has published and lectured widely. He can be reached at [email protected]

More Stories By Joram Borenstein

Joram Borenstein is a senior marketing manager at Unicorn Solutions (www.unicorn.com), working on data semantics technologies for enterprises worldwide. His previous experience includes managing the rollout of content management software platforms. He has published and lectured extensively. He can be reached at [email protected]

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.

Microservices Articles
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, discussed why containers should be paired with new architectural practices such as microservices rathe...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every real-life scenario that a Kubernetes user might encounter? How do you leverage advanced scheduling techniques to shape and describe each scenario in easy-to-use rules and configurations? In his session at @DevOpsSummit at 21st Cloud Expo, Oleg Chunikhin, CTO at Kublr, answered these questions and demonstrated techniques for implementing advanced scheduling. For example, using spot instances and co...
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, will discuss how to use Kubernetes to setup a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace....
SYS-CON Events announced today the Kubernetes and Google Container Engine Workshop, being held November 3, 2016, in conjunction with @DevOpsSummit at 19th Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA. This workshop led by Sebastian Scheele introduces participants to Kubernetes and Google Container Engine (GKE). Through a combination of instructor-led presentations, demonstrations, and hands-on labs, students learn the key concepts and practices for deploying and maintainin...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is foundational - something customers routinely cite as a top pain point. In his session at @DevOpsSummit at 21st Cloud Expo, Bill Borsari, Head of Systems Engineering at Datera, explored how organizations can reap the bene...
As software becomes more and more complex, we, as software developers, have been splitting up our code into smaller and smaller components. This is also true for the environment in which we run our code: going from bare metal, to VMs to the modern-day Cloud Native world of containers, schedulers and micro services. While we have figured out how to run containerized applications in the cloud using schedulers, we've yet to come up with a good solution to bridge the gap between getting your contain...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
DevOps is speeding towards the IT world like a freight train and the hype around it is deafening. There is no reason to be afraid of this change as it is the natural reaction to the agile movement that revolutionized development just a few years ago. By definition, DevOps is the natural alignment of IT performance to business profitability. The relevance of this has yet to be quantified but it has been suggested that the route to the CEO’s chair will come from the IT leaders that successfully ma...
Skeuomorphism usually means retaining existing design cues in something new that doesn’t actually need them. However, the concept of skeuomorphism can be thought of as relating more broadly to applying existing patterns to new technologies that, in fact, cry out for new approaches. In his session at DevOps Summit, Gordon Haff, Senior Cloud Strategy Marketing and Evangelism Manager at Red Hat, will discuss why containers should be paired with new architectural practices such as microservices ra...