Business application development often starts with business process modeling to discover and document the key business requirements necessary to meet business objectives. Tasks in these processes can be implemented using a variety of techniques. However, there are many cases where simple functional decomposition leading to workflow based applications are not enough. In these cases other architectural styles may be used to develop applications in order to better manage complexity, achieve more reuse, and to facilitate change.
In this article, Jim Amsden explains how business services modeling helps bridge the semantic gap between business requirements and the software architecture. Business services modeling provides a formal relationship between business process models and the model elements that realize them by treating each business process as a contract. This contract specifies service providers playing roles in a collaboration fulfilling responsibilities choreographed by rules for how the roles interact in order to achieve some business objective. Contracts provide a clear separation between specifications of what has to be done from the many possible ways of doing it.