A typical Web service is comprised of a collection of things. There's the service contract (WSDL, schema, etc.) hosted by the Web server, there's messaging logic comprised of service agents, and then there's the actual underlying logic that contains the functionality encapsulated by the Web service. That functionality, in a custom-designed Web service, is usually represented by one or more components. Those components will remain stateful during the processing of whatever operation of the Web service was invoked. In larger service compositions, you can run into a situation where Web services composing (invoking) others will need to remain stateful for extended periods while all the composition logic executes and before they can respond or react to their initial request. The principle of Service Statelessness addresses this by encouraging state management delegation and deferral extensions to be designed into the component logic. This helps maximize scalability, a prime concern in larger service inventories. The following links will help illustrate these points: Web service and Service statelessness.
This was first published in September 2007