Welcome!

@CloudExpo Authors: Kong Yang, Liz McMillan, Elizabeth White, Carmen Gonzalez, Yeshim Deniz

Related Topics: Microservices Expo

Microservices Expo: Article

Is SOA Non-Trivial?

Exploring key service characteristics

Discoverable
For services to be of use to anyone they must be discoverable. Discoverability is usually taken to refer to the ability of consumers to find a relevant service by attributes (tags) at runtime via a service registry. In other words, consumers go to a service "yellow pages" and find, at runtime, services that best meet their needs.

In my humble opinion, this sort of runtime discoverability has not yet taken off despite all the hype. Service contracts are complex beasts that include non-trivial functional interfaces and runtime policies such as security and operational service-level agreements. Then there are the capacity management and funding considerations involved in service adoption. Such runtime discoverability is more suited to a market place were variation and competition thrive, than to internal corporate landscapes where reuse and lower total cost of ownership is a key driver.

However, services very much need to be discoverable in the sense that they are well publicized to the consumer community. Services will not be reused if they are not known about. Service registries must contain everything the consumer will want to know about the service, e.g., name, description, functional interface, locations, owner, operational and performance criteria, security model, invocation mechanism, cost, etc. but must equally importantly include tags that will make searches possible.

Having such a service registry is not enough though. Governance is required to ensure that development communities using the registry; governance not just in the stick sense, i.e., thou shalt use the registry or else, but also in the carrot sense - here's why it benefits you and here's how easy it is to do. It is important to capture the hearts and minds of both development and business communities. Reuse is like recycling: fine in principle, with everyone keen to do it, until it becomes inconvenient.

Stateless
A service is said to be stateless if the consumer of that service can make use of any operating instance of that service. This is achieved by services not storing any internal data (state) that would be required if the consumer happened to invoke another instance of that service.

In general this goal is achieved by ensuring that all service data (including state) is kept in an external store common to all instances of that service.

However, for performance reasons, service implementers are often inclined to cache back-end system query results or consumer session data. The reason for this is that the back-end systems and data stores that are accessed by services often become points of contention and a source of bottlenecks, so avoiding the need to query those systems through caching at the service tier is attractive.

Service-tier caching requires that cached data is available at all service instances, and that these instances are kept in sync both with each other and the underlying data store. Achieving this requires fairly sophisticated cache management software with cache refresh, propagation and invalidation mechanisms, as well as volatility analysis of the data being cached - the less volatile data is, the more suitable it will be for caching.

JEE applications servers such as WebLogic and JBoss offer HTTP and stateful EJB session state caching that can be replicated across a cluster and persisted to a variety of data stores for failover purposes. In addition, consumer connections to servers can be made "sticky" so that a given consumer will always return to the same server and only be redirected to another server in a failover scenario. This is fine as long as either the state is replicated or the consumer is happy to lose some conversational state in the rare instance that a server becomes unavailable. It is also possible to store consumer state on the client, either via client cookies or via URL rewriting. WebLogic, for example, can be configured to use either depending on whether client browser cookies are enabled or not. Note that session state replication limits the linear horizontal scaleability of clusters.

A viable and arguable simpler alternative to all of the above (where network latency between service and data tiers is not an issue) is to perform caching in the data tier using, for example, a DBMS feature such as Oracle RAC, which provides a cluster of processes with data caches to improve performance and resilience.

Statelessness is a key characteristic of services, which is essential for a scalable and fault-tolerant SOA. State may be introduced if required but only after careful consideration as it will require complex and potentially less fault tolerant cache management facilities.

Distributed
Services should be distributable, that is they need not and indeed should not run in the same process as the consumer. Services that run in the same process offer no possibility of runtime reuse to other consumers.

In order to achieve this goal, you minimally need two things: a remoting framework and location transparency.

1. Remoting Framework
A remoting framework is the mechanism whereby consumers are able to locate and invoke remote services. Typically for SOA this means web services, though less interoperable protocols such as JEE and .NET may also be used, for example, where performance is a critical criterion. However, such decisions should not be taken lightly - the ability to interoperate is key to achieving reuse across the enterprise.

2. Location Transparency
Location transparency refers to the ability of a consumer to use a service without knowing where that service is running. This may be achieved to a degree through the use of DNS names hiding IP addresses, or creating server clusters fronted by an IP load balancer virtual service address. However, both of these still bind the consumer to a logical instance of the service. In contrast, a service registry provides additional decoupling in that consumers are searched for by attribute (e.g., name and version number) rather than being bound by name.

Location transparency is also required of the service implementation. Services should not be tied to any particular location, both for capacity planning reasons where it may be required to move services between servers to support load, but also for portability reasons. Achieving environment independence is achieved by running services in a container such as JEE or Spring that insulates the services from the underlying infrastructure, as well as ensuring that services are stateless.

Manageable
For a service to be manageable, the operating organization and infrastructure need to be capable of managing services. I won't repeat what I wrote previously in my article on applying ITIL to Service Management (http://soa.sys-con.com/node/702159), but I will say that in terms of runtime manageability it is important that services perform consistent, traceable, and monitorable error and audit logging, and can be monitored in terms of SLA adherence.

Summary
For those of you who are still awake, well done and thank you. Hopefully you have a better appreciation of the complexity involved in achieving some of these "little" service characteristics that are so often quoted.

SOA is non-trivial, and anyone who tells you otherwise is trying to sell you something.

More Stories By Robert Morschel

Robert Morschel is chief architect at Neptune Software Plc and has extensive experience in distributed software development for companies such as British Telecom, Nomura and Fidelity Investments. He blogs on SOA at soaprobe.blogspot.com.

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.


@CloudExpo Stories
SYS-CON Events announced today that Super Micro Computer, Inc., a global leader in compute, storage and networking technologies, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Supermicro (NASDAQ: SMCI), the leading innovator in high-performance, high-efficiency server technology, is a premier provider of advanced server Building Block Solutions® for Data Center, Cloud Computing, Enterprise IT, Hadoop/...
Amazon has gradually rolled out parts of its IoT offerings in the last year, but these are just the tip of the iceberg. In addition to optimizing their back-end AWS offerings, Amazon is laying the ground work to be a major force in IoT – especially in the connected home and office. Amazon is extending its reach by building on its dominant Cloud IoT platform, its Dash Button strategy, recently announced Replenishment Services, the Echo/Alexa voice recognition control platform, the 6-7 strategic...
Bert Loomis was a visionary. This general session will highlight how Bert Loomis and people like him inspire us to build great things with small inventions. In their general session at 19th Cloud Expo, Harold Hannon, Architect at IBM Bluemix, and Michael O'Neill, Strategic Business Development at Nvidia, discussed the accelerating pace of AI development and how IBM Cloud and NVIDIA are partnering to bring AI capabilities to "every day," on-demand. They also reviewed two "free infrastructure" pr...
Judith Hurwitz is president and CEO of Hurwitz & Associates, a Needham, Mass., research and consulting firm focused on emerging technology, including big data, cognitive computing and governance. She is co-author of the book Cognitive Computing and Big Data Analytics, published in 2015. Her Cloud Expo session, "What Is the Business Imperative for Cognitive Computing?" is scheduled for Wednesday, June 8, at 8:40 a.m. In it, she puts cognitive computing into perspective with its value to the busin...
SYS-CON Events announced today that Hitachi, the leading provider the Internet of Things and Digital Transformation, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Hitachi Data Systems, a wholly owned subsidiary of Hitachi, Ltd., offers an integrated portfolio of services and solutions that enable digital transformation through enhanced data management, governance, mobility and analytics. We help globa...
Blockchain is a shared, secure record of exchange that establishes trust, accountability and transparency across supply chain networks. Supported by the Linux Foundation's open source, open-standards based Hyperledger Project, Blockchain has the potential to improve regulatory compliance, reduce cost and time for product recall as well as advance trade. Are you curious about Blockchain and how it can provide you with new opportunities for innovation and growth? In her session at 20th Cloud Exp...
Cognitive Computing is becoming the foundation for a new generation of solutions that have the potential to transform business. Unlike traditional approaches to building solutions, a cognitive computing approach allows the data to help determine the way applications are designed. This contrasts with conventional software development that begins with defining logic based on the current way a business operates. In her session at 18th Cloud Expo, Judith S. Hurwitz, President and CEO of Hurwitz & ...
The explosion of new web/cloud/IoT-based applications and the data they generate are transforming our world right before our eyes. In this rush to adopt these new technologies, organizations are often ignoring fundamental questions concerning who owns the data and failing to ask for permission to conduct invasive surveillance of their customers. Organizations that are not transparent about how their systems gather data telemetry without offering shared data ownership risk product rejection, regu...
Financial Technology has become a topic of intense interest throughout the cloud developer and enterprise IT communities. Accordingly, attendees at the upcoming 20th Cloud Expo at the Javits Center in New York, June 6-8, 2017, will find fresh new content in a new track called FinTech.
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 20th Cloud Expo, which will take place on June 6-8, 2017 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 add...
In recent years, containers have taken the world by storm. Companies of all sizes and industries have realized the massive benefits of containers, such as unprecedented mobility, higher hardware utilization, and increased flexibility and agility; however, many containers today are non-persistent. Containers without persistence miss out on many benefits, and in many cases simply pass the responsibility of persistence onto other infrastructure, adding additional complexity.
@DevOpsSummit at Cloud taking place June 6-8, 2017, at Javits Center, New York City, is co-located with the 20th International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long developm...
The age of Digital Disruption is evolving into the next era – Digital Cohesion, an age in which applications securely self-assemble and deliver predictive services that continuously adapt to user behavior. Information from devices, sensors and applications around us will drive services seamlessly across mobile and fixed devices/infrastructure. This evolution is happening now in software defined services and secure networking. Four key drivers – Performance, Economics, Interoperability and Trust ...
Grape Up is a software company, specialized in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the USA and Europe, we work with a variety of customers from emerging startups to Fortune 1000 companies.
Cloud Expo, Inc. has announced today that Aruna Ravichandran, vice president of DevOps Product and Solutions Marketing at CA Technologies, has been named co-conference chair of DevOps at Cloud Expo 2017. The @DevOpsSummit at Cloud Expo New York will take place on June 6-8, 2017, at the Javits Center in New York City, New York, and @DevOpsSummit at Cloud Expo Silicon Valley will take place Oct. 31-Nov. 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Multiple data types are pouring into IoT deployments. Data is coming in small packages as well as enormous files and data streams of many sizes. Widespread use of mobile devices adds to the total. In this power panel at @ThingsExpo, moderated by Conference Chair Roger Strukhoff, panelists will look at the tools and environments that are being put to use in IoT deployments, as well as the team skills a modern enterprise IT shop needs to keep things running, get a handle on all this data, and deli...
SYS-CON Events announced today that Grape Up will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct. 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Grape Up is a software company specializing in cloud native application development and professional services related to Cloud Foundry PaaS. With five expert teams that operate in various sectors of the market across the U.S. and Europe, Grape Up works with a variety of customers from emergi...
Automation is enabling enterprises to design, deploy, and manage more complex, hybrid cloud environments. Yet the people who manage these environments must be trained in and understanding these environments better than ever before. A new era of analytics and cognitive computing is adding intelligence, but also more complexity, to these cloud environments. How smart is your cloud? How smart should it be? In this power panel at 20th Cloud Expo, moderated by Conference Chair Roger Strukhoff, pane...
SYS-CON Events announced today that Juniper Networks (NYSE: JNPR), an industry leader in automated, scalable and secure networks, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Juniper Networks challenges the status quo with products, solutions and services that transform the economics of networking. The company co-innovates with customers and partners to deliver automated, scalable and secure network...
SYS-CON Events announced today that Twistlock, the leading provider of cloud container security solutions, will exhibit at SYS-CON's 20th International Cloud Expo®, which will take place on June 6-8, 2017, at the Javits Center in New York City, NY. Twistlock is the industry's first enterprise security suite for container security. Twistlock's technology addresses risks on the host and within the application of the container, enabling enterprises to consistently enforce security policies, monitor...