Hopefully you have heard the term “Smart Process Apps” (SPA) attributed to Forrester Research. What is it? Is it just marketing hype? It is something real to be concerned about? Here is an explanation I have given that seems to resonate with people.
Definition
Smart Process Apps – “Smart process apps are a new category of application software designed to support business activities that are people-intensive, highly variable, loosely structured, and subject to frequent change. This next generation of packaged apps will encapsulate current best practices in these collaborative business processes yet make it possible for the app to reflect continuous improvements in how collaboration can occur. The emergence of smart process apps makes collaborative processes the next frontier for software. ” – Forrester
We saw this happen before…
To explain, let me take you on a small journey back in time. Computer networking started in the late 1960’s but did not really take off until the 1980’s when we started to see network cards appearing in microcomputers. This allowed for an early form of distributed computing. Any computer could call any other computer, and there was no architectural differentiation. All of the network nodes were equivalent, and life was good in a simple sort of way: there was no structure to the network — any capability could be anywhere.
That was fine for a few years, and then it became apparent that certain computers could play distinct roles, and we started calling some computers “clients” and other computers “servers”. The servers were made available, and the clients made calls to them. The networking did not prevent any computer from calling any computer, but this structure to the infrastructure appeared because it was useful to segregate the functions of a client from a server.
The structuring did not end there, the 1990’s brought three tiered architectures, where there was a client, a middle tier often called an application server, and a third tier where the database and other basic services lived.
This stratification of the network resources is a natural result from the maturing of the network environment. Adding this structure, this architecture, made it easier for applications to be written that fit in robustly.
SOA follows the same path
In the late 1990’s we saw the invention of the Service Oriented Architecture (SOA). The basic elements are web services, and there are more sophisticated than network nodes: they transfer data in a structured way (either XML or JSON) and they have an interface that describes the kinds of operations that you can call.
The red rectangles represent browsers; the browser has become the dominant way to access applications in an SOA environment. Much like the early network environment, there is no structure to the services; any service can call any other service.
That brings us up to today. SOA has been kicking for a decade, and system architects are beginning to understand how all the parts fit together, and what we are seeing again is a stratification of services into two kinds. Depicted here, the service on the lower part are known as transactional web services, or Transactional Web Apps. The upper half is where the Smart Process Apps sit. The transactional services tend to be the system of record which keep permanent records. Smart process apps bridge across them, and provide services above the system of record. Sometimes these services are called Systems of Engagement.
I have found this depiction to one that helps people understand where smart process apps fit in relation to everything. We are beginning to see stratification in the SOA environment. It is a natural course for technology maturity. Another depiction below showing the emergence of these patterns over time:
Will there be a third step for SOA? That remains to be seen. Anyone want to wager a guess in a comment?