Object Models for Business Transaction Processing Systems (BTPS)

 

Position Paper for OOPSLA Workshop ā97

John Tibbetts, Kinexis (john@kinexis.com)

 

 

 

Introduction

It's clear from reviewing the papers that have preceded this one that BTPS covers a lot of conceptual ground. We see a mixture of the metaphysical and the pragmatic, of domain analysis and infrastructure analysis. (I agree with Ralph Johnson's call for a taxonomy of this terrain). This paper will tend toward the abstract side. It deals with the actual shape of today's BTPS and how we might improve the way they are built and used.

My area of interest is in the relatively unexplored (certainly unarchitected) space between client and server, the space where actual applications get written. Whether we use function-oriented or object-oriented techniques, the standard software project still includes a great deal of low-level behavior that has to be created anew for each new application. This is the area that is probably most responsible for the always-bemoaned application backlog.

I believe that this application middle-ground can be approached in a much more formalized and generalized way. Doing so would, I believe, dramatically shorten development cycles while reducing development risks. I call this new approach a Proposal-Based Architecture (PBA).

 

Setting the stage

If we examine the state of business software application architecture (no matter what the application and no matter whether the distribution model is monolithic, client/server, 3-tier, or distributed object), we can probably agree on the following points:

 

Enter Proposals

If we could come to a better understanding of this application middle-ground, perhaps we could abstract out reusable patterns and behaviors and make the application-building experience more streamlined, more stable, more like engineering.

I believe that we can do this. The key is to recognize the nature of this middle-ground as the space where units-of-work are formed and to design objects that are specialized to live in this world. They might best be called Proposal objects because they incarnate an emerging proposal for a subsequent transaction. Their life-cycle starts with the consumer's (whether human or machine) wish to initiate a change to enterprise resources and ends with the submission of a Proposal to an authoritative backend for implementation as a transaction. (Actually there is life for a proposal after commit, but that's a fine point).

A Proposal-based architecture looks at application architecture in a new way. Its insights come in three parts:

  1. PBA thinks of the interaction between user and transactional back end as a highly ritualized conversation.
  2. It turns this conversation into an object, which sits between the user and the back end but is independent of both.
  3. Third, PBA architects into the infrastructure of this Proposal object the common housekeeping tasks that all transactions share, such as navigation, error handling, and versioning.

With the Proposal object as a buffer between front end and back end, transactional applications become dramatically more flexible. The close technological coupling between these two application pieces relaxes. The real-time connection between user and transaction monitor breaks. Suddenly we have a useful new entity: a tentative, in-process, potential change to the database; a proposed transaction that can be passed around, pended, annotated, refined, corrected, and submitted to the back-end when ready.

A proposal object encapsulates the full "state" of the transaction-in-preparation at a given point in its progress. Object-ized, it becomes instantly workflowable, innately pendable, and inherently disconnectable from the server.

In effect, PBA turns a real-time activity into a durable thing. This brings the many advantages of object orientation to a large area of the system that has until now been a sinkhole of programmer time and development dollars.

 

Benefits of Proposal-Based Architecture

None of the above capabilities is unheard of in transactional applications. But where they exist, they have been achieved with great effort, and on a one-time-only basis. The significance of PBA is that these capabilities are innate. They are built into the infrastructure, available to any application that wants to make use of them. In a sense, they come free.

The PBA approach to conceptualizing, object-izing, and architecting the vast application logic piece of transactional systems offers many advantages.

 

 

# # #

 

John Tibbetts is an independent consultant who, under his corporate name, Kinexis, has consulted with a wide variety of large corporations on their transactional architectures. His clients have included banks, insurance companies, railroads, telecommunications companies, and hardware and software vendors. His 1991 OOPSLA Keynote was an early and influential call for more transactional support within object technology. He was the author of the Digitalk Smalltalk CICS interface. Recently, he has been building a Java-based framework to support a Proposal-Based Architecture. With his partner, Barbara Bernstein, he writes a regular column in Information Week magazine.