How about a unified lifecycle-interface for all service models? It should reflect the structure of possible client-service-interactions rather than the implementation of a service-model. I would call it, maybe, "Conversation" with the following methods:
- begin() (a new client starts to talk to the service)
- end() (current client is finished talking to the service, throw away client state)
- pause() (client stop's talking to the service for now, but will resume later, so don't throw away client state, but free resources like db-connections.
- resume() (previous client continues to talk to the service)