Servicetizing User Experiences for Complex Business Applications
Date of Submission:
August 7, 2006
Web interfaces have been widely used to support user interactions in complex business applications. In a typical design of such an application, the execution is driven by the http requests sent by the web-browser. Thus, the control of the workflow is encoded by the hyperlinks and buttons embedded in various web pages that support the user interactions. This web-driven design makes it hard to reason about and to maintain the workflows, especially when the web pages are dynamically generated at runtime. This design also increases the complexity in developing rich user interactions for complex workflows. In this paper, we propose a new design that separates the workflow specification from the user interaction specification in a business application. This design is based on a workflow-driven service-oriented architecture pattern. In this architecture, the user interactions are captured by user experience services that can be developed, deployed, and maintained independently of the application. These services can be composed together with other business services by an executable workflow specification to provide the functionalities required by the application. This approach increases the flexibility in the implementation of the user interactions. It also enables a model-driven development approach for implementing the workflows that involve sophisticated user interactions.