# Designing Conversational Web Services

A single web service may communicate with multiple clients at the same time, and it may communicate with each client multiple times. In order for the web service to track data for the client during asynchronous communication, it must have a way to remember which data belongs to which client and to keep track of where each client is in the process of operations. In WebLogic Workshop, you use conversations to uniquely identify a given communication between a client and your web service and to maintain state between operations.

Conversations are essential for any web service involved in asynchronous communication. This includes web services that communicate with clients using callbacks or polling interfaces, and web services that use controls with callbacks.

## Topics Included in This Section

Overview: Conversations

Introduces the concept of conversations.

Life of a Conversation

Describes an example of a web service in a conversation.

Implementing Conversations

Offers guidelines for building web services that supports conversations.

Managing Conversation Lifetime

Describes how you can write code that controls and responds to lifetime events of a conversation.

Supporting Serialization

Introduces Java serialization and explains why it is important for WebLogic Workshop conversations.

Conversing with Non-Workshop Clients

Explains how clients built with tools other than WebLogic Workshop can participate in conversations.

### Samples

The following sample web services use conversations:

- Conversation.jws
- HelloWorldAsync.jws
- LuckyNumberDBClient.jws
- QuoteClient.jws

For more information about samples, see Samples.

Related Topics

Getting Started: Using Asynchrony to Enable Long-Running Operations