- My Last Blog
- Business Process Platforms
- Composite Applications: An Example
- Model-Driven Composition Tools
- Computer-Assisted Business Process Management (BPM)
- Next Blog
This blog is the second in a series of articles that examine the synergistic relationship between robust platforms and model-driven development tools.
In My Last Blog…
In my last blog, “Software Technology Platforms and Model-Driven Systems,” I described the slow but steady rise in the level of abstraction of software technology platforms, which has culminated in the proliferation of powerful middleware. I also explained how this rise has enabled a corresponding rise in the level of abstraction of software development languages, because it shrinks the “abstraction gap” that compilers have to bridge. As a result, we are witnessing the emergence of model-driven development tools that use relatively abstract models as input to compilers that generate significant amounts of code that executes on top of middleware.
Now a new kind of platform is emerging that will gradually change the face of IT as we know it: The Business Process Platform.
Business process platforms are a response to macro-economic demand for greater flexibility in business software systems. Today, an enterprise’s innovative business processes constitute its primary competitive advantage. Businesses need the flexibility to execute their differentiating processes, and cannot afford simply to execute processes baked into application software.
One of the key ways that we put business process platforms together is by wrapping applications with a layer of reusable service interfaces, and grouping the services together to offer reusable business processes. The applications plus the service enablement layer constitute an application platform. The business process platform is the combination of the application platform and the technical software platform. The business process platform facilitates the construction of composite applications that employ the reusable components in innovative ways. Figure 1 illustrates these basic concepts.
Over an extended period of time, some applications will morph into well-defined frameworks of business services, and new business systems will emerge that are inherently structured this way. In such cases, clients can access the business services directly (see Figure 2). Business process platforms in fact combine this approach with service enablement layers around more traditional applications.
As described above, composite applications reuse a businsess process platform’s service components to enable innovative business processes. Here is an example of a composite application.
A company had a set of systems covering procure-to-pay, order-to-cash, and manufacture-to-inventory processes. The company found a way to reuse them to become more competitive.
At the start of each week the company asked its suppliers which components they were selling at low prices. The company then ran its advanced planner and optimizer system to determine what it could make with those low-cost components. Once the company knew what products it could make, it ran an electronic auction for those products to maximize the selling price. When the auction resulted in an order, the company bought the components it needed (at low cost) from its suppliers and ran its manufacturing system to plan production for and build the finished products.
As a result, the company significantly increased its profit by minimizing component costs and maximizing the selling price, just by reusing existing systems reconfigured into a new business process. Figure 3 illustrates this innovative integration of existing functions and applications.
This is a classic example of a composite application. We can build such applications from existing functionality without business process platforms, but business process platforms package the functionality so that it is more readily reusable. Business process platforms are thus designed to ease the composition of such specialized applications and business processes.
Figure 3: A Composite Application
As recounted above, the rise in the abstraction level of technical software platforms has made it feasible to raise the abstraction level at which we develop software, giving rise to model-driven software development, because the upward push of the platform narrows the “abstraction gap” that model compilers have to bridge. Business process platforms are at an even higher abstraction level, and they in turn allow us to push the level of abstraction of development tools even higher, giving rise to model-driven service composition tools (see Figure 4). The combination of a business process platform with model-driven composition tools can make a real difference when a company wishes to customize its operations, such as in the manner described in the example above.
Model-driven service composition tools will become more and more powerful over time. As the tools become more effective, reusable compositions of services will be pushed into the business process platform, raising the platforms abstraction level even higher. A good business process platform will not be a flat space of fine-grained services. It will offer compositions of services that define and execute business processes that are more than simple, single business behaviors.
Computer-assisted business process management (BPM) represents the ultimate ascendance of the platform and of the software development languages to the level of abstraction of the business itself. The goal of BPM is to be able to use modeling tools to design, simulate, and tune business processes, and then to execute the business process models directly. Todays BPM tools do some impressive things, but as an industry we face a challenging road to realize the BPM vision fully. It will take time no matter how well we manage the transition.
However, we can speed our progress by focusing on achieving useful objectives along the way. We should not have to realize the full vision before we can garner business value. Good business process platforms with good tools will help IT execute business processes better than before, and great platforms with great tools will help even more. The smart business process platform vendor will concentrate on productizing results along the lengthy road to ensure that customers get significant business value at each stage of the evolution.
Amid the buzz about service-oriented architecture and computer-assisted business process management, a truly far-reaching transition is under way. Business process platforms will move us closer to the longer-range vision of executable business process models. The transition is not a simple matter and will take some time to play out fully. The pace of the transition will be determined by the skill with which we offer business value at every step along the path.
In a follow-on blog I’ll describe some of the challenges we face in scaling these business process platforms up, and will provide a preview of some interesting ways to meet the challenges.