Over the past decade, database programming has focused on languages and methodologies for developing data-intensive applications, and on techniques for efficiently implementing them. Research in this area has yielded languages with rich type systems, orthogonal persistence, support for collection types, and other advanced features. The commercial impact of this research, however, has been rather limited. Database applications are a multi-billion dollar business worldwide, but most applications are still developed using rudimentary tools.
The goal of this paper is to urge the database programming research community to rise to the next challenge: business process programming, a field that is in its infancy, and where there is the potential for significant impact. Competitive pressures are forcing enterprises to re-engineer and automate their business processes. Such processes are of long duration, complex, and error-prone. They consist of multiple steps that need to be coordinated; that may be executed by application programs, machines, or humans in different roles across different organizations; and that may execute in heterogeneous, distributed computing environments.
This paper introduces topics in business process programming that we believe will be of interest to the database programming community. These range from issues in modeling and specifying business processes, including new transactional models for capturing their execution semantics, to problems of efficient, scalable implementation in the heterogeneous distributing environments prevalent in typical enterprises.