XML web services are a mechanism for exposing program functionality over the web, typically to other services. In this paper we analyse the interactions of standalone applications and web services and investigate modeling role-based interactions. From this investigation, we engineer a tool that automates the process of generating web services based on an application?s set of compliant interface primitives. These interactions can be packaged according to required user scenarios. The tool supports and enforces good software engineering practice such as separation and isolation of data from direct user access. This mechanism lifts the activity of web enabling applications from a programmer-based one to an engineering activity. In developing the tool we discover and highlight the appropriate and inappropriate application of a web service.