deriving service variants from business process specifications
Software service organizations typically tend to develop custom solutions upon entry to a project engagement. This is not a scalable proposition. Today, driven by the need for enhancing profitability, reuse of existing assets across customer engagements is a more viable strategy. This is leading to the transformation of software services organizations from a labor-based to an asset-based model. In the enterprise application development domain, business processes are used to model the dynamic behavior of enterprise applications. Hence one highly prevalent asset-based approach in this domain is to build a scalable portfolio of services using a service-oriented architecture (SOA) approach. This provides a mechanism for representing business processes as a set of business-aligned, loosely-coupled services that can be iteratively composed and re-composed to create loosely coupled composite applications that mirror and support business processes. A key research problem that arises here is how to instantiate a stated business process specification as a combination of variants of existing services in the portfolio. We show via an illustrative example that this problem is non-trivial and scalable, and it depends on the semantics of the business process specification, especially with respect to the inter-service data and control flow dependencies that the instantiated business process specification has to satisfy. To that end, we also present our Variation-Oriented Service Design (VOSD) algorithm for automatically deriving service-level variants from the stated business process specifications. We also show that our algorithm is scalable, since its asymptotic complexity is linear in the number of service variants. We also illustrate our algorithm via the example.
business process reuse service-oriented architecture