The Web Services Resource Framework (WSRF) specifications are an extension to the core Web service standards (WSDL, SOAP, UDDI), which define how to use Web service technologies to address and access computational resources that maintain an internal state between invocations. This behavior is referred to as stateful. Web services which address stateful resources usually have implicit constraints concerning the order in which operations can be invoked. For example, a client might first have to invoke an initialization method before further invocations to the stateful resource are allowed. In order for the client to adhere to these constraints, it needs to obtain information about the intra-service protocol in terms of valid operation sequences and the expected input-output transformation across invocations. While the community has widely agreed on WSDL as the standard for functional service description (the "static" service interface), there is still an evident lack of languages to describe the dynamic, behavioral interface of services.
In this thesis we introduce SEPL (SErvice Protocol Language) as a high-level domain-specific language (DSL) with a scripting-language like syntax, that is tailored specifically towards the needs of intra-service protocol description. Notable features of the DSL include support for WS-Addressing and simple creation of new Web service instances, synchronous and asynchronous service invocation facilities and easy access to WSRF-style service resource properties. Service providers can use SEPL to define the procedure which must be followed by clients in order to achieve a certain behavior. These functionalities, which are compounded from a combination of the service's operations, are themselves exposed as stand-alone operations. Essentially, this approach can break down the functionalities which require knowledge about the state of stateful services to a "stateless" interface. We provide a graphical representation of service protocols in the form of UML Activity Diagrams and tools to generate SEPL code from such models. The broad range of existing UML design tools can foster model driven development of SEPL service protocols. We further present a solution to host and execute SEPL protocols in a server application based on Web services technology.