Technology and marketing are often going side by side. Today, I want to talk about SOA (service oriented architecture), web services, microservices and monolithic architecture. These issues raised many questions and created lot of confusion in PLM technology and marketing in the past few years.
Let me start from “monolithic PLM” techno-marketing. Monolithic legacy PLM was used as cliche in many marketing campaigns selling new or newer technology. These publications painted word “monolithic” as a bad word in PLM. It made analogy of between monolithic and inefficiency, absences of flexibility and old architecture. Many of these things are true, but the devil is in details as I like to say.
The following article is a good example. Check PLM is ready for the future in CIO Review article by David Sherburne of Carestream Health Inc. Here is an interesting passage:
One of the major issues faced by PLM implementers is making the system “simple”. PLM’s scope reaches across the organization and all the way to the bottom of the supply chain. A good rule of thumb is to realize that users don’t know what they don’t want until they use it, so getting simple right the first time is not really an option with today’s architectures. So why is “simple” such a challenge? In order to be able to cover all the functionality required to run a complex global organization, legacy PLM manufacturers have continuously built functionality into a single monolithic application. This has led to so much functionality being packed into a single interface that users get lost in the haze of too much functionality.
Given the importance of PLM in solving this problem of complexity, is today’s PLM industry ready for the challenge? One of the major issues faced by PLM implementers is making the system “simple”. PLM’s scope reaches across the organization and all the way to the bottom of the supply chain. A good rule of thumb is to realize that users don’t know what they don’t want until they use it, so getting simple right the first time is not really an option with today’s architectures. So why is “simple” such a challenge? In order to be able to cover all the functionality required to run a complex global organization, legacy PLM manufacturers have continuously built functionality into a single monolithic application. This has led to so much functionality being packed into a single interface that users get lost in the haze of too much functionality. Mobile devices cannot be easily enabled, casual users are overwhelmed and systems cannot extend outward into the supply chain quickly. Systems are equally hard to upgrade and manage for IT departments because well-meaning implementers try to satisfy all subject matter experts and over customize the application. The future platform challenge is to enable functionality in simpler smaller pieces, creating applications targeted for a specific processes and single user roles within a manageable interface or “App”.
I like David’s explanations and examples. Many problems were created by vendors selling “single app” or “suite of products” to solve all organizational problems. It never worked well in my view. However, there is also techno-marketing aspect here. If you need to buy PLM software today, how can you decide what software is monolithic and what is not. Even more, what characteristics of PLM software you should check to insure that problem described by David will not show up in your organization.
You probably remember my earlier blog about monolithic app and marketing before. Read here – Demystification of monolithic PLM marketing. Microservice architecture recently started to show up as an alternative to monolithic apps. So, I was looking for a good and simple way to describe SOA, monolithic and microservices and I think I found one.
Most of PLM architectures adopted ideas of SOA. It happened for the last 10 years of developing SOA and web services architecture. While most of PLM core products are much older than 10 years, almost all PLM provider claims SOA as their fundamental architecture elements.
Navigate to TechTarget article The fundamental differences between microservices and SOA. What you can learn that most probably all PLM product architectures available on the market today are actually monolithic SOA architecture.
Here is the passage and picture.
Where microservices and SOA differ. The difference between stateless and stateful behavior is likely to be the most confounding issue for SOA developers to grasp. One simple rule is that you should never store data within a microservice. That practice would limit the ability to scale under load or replace a failed service. If you need to maintain data or context across multiple instances in a microservices architecture, store the data either with the calling software and send it to the microservice when it’s called, or get it from a back-end database. Design microservices so that calling them with the same input will always generate the same output.
From the picture above you can guess that most of PLM architectures are actually monoithic SOA platforms storing data in a single database and providing API and services (sometimes SOA and sometimes REST). But, that’s it. Beyond that point very few PLM applications are micro-services by nature.
Most of PLM systems are designed as a single database architecture combined with flexible data model. In all PLM systems I know, the combination of database and flexible data abstraction is the key to enable business logic. PLM business logic is consumed by application and APIs are available to access it. This is a place where variety of web services are available. Recently, PLM vendors started to move to REST to support growing demand to develop HTML5 and mobile based applications. But you can see a difference and it is quite fundamental. Scaling of these application is hard to impossible.
Why is it important? Technology matters. When it comes to scale, reliability and cost, microservice architecture will be indisputable winner. It will provide set of scalable microservices running on a scaled set of servers and databases. Opposite to existing monolithic PLM architectures demanding layers and single database with replications. PLM industry is in the process of discovering new business models and growth opportunities. Cost and scale are two most important factors to fuel these discovery process.
What is my conclusion? Don’t let PLM technomarketing people to confuse you with SOA, web services and microservices. Ask for details, ask for pictures and explanations. In most cases, PLM microservice is presented as a layer of REST APIs access old PLM databases via business application layers and connected to a single PLM database. These application won’t scale and will require single tenant architecture for deployment. The demand for scale and low cost is huge. Keep it in mind when you decide about future PLM technologies. Just my thoughts…
Want to learn more about PLM? Check out my new PLM Book website.
Disclaimer: I’m co-founder and CEO of OpenBOM developing cloud based bill of materials and inventory management tool for manufacturing companies, hardware startups and supply chain. My opinion can be unintentionally biased.