The Disconnected Service Agent Application Block
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies.
This section describes the Disconnected Service Agent Application Block, which provides management features for running Web services from occasionally connected smart client applications.
With a disconnected service agent, the application can maintain a queue of Web service requests when offline (disconnected) and then replay them when a connection to the server application becomes available. This means that applications can work in a disconnected environment; this is a crucial requirement in many scenarios.
There are two distinct features in the Disconnected Service Agent Application Block:
- It includes a subsystem that allows developers to invoke disconnected Web services using patterns similar to those they are familiar with from using Visual Studio Web Services proxies. However, the disconnected service agent queues requests and keeps track of the asynchronous callbacks that the application expects to receive when the Web service responds.
- It includes a dispatcher that determines exactly when to dispatch each call to a Web service, depending on connectivity conditions and pricing policies. When the correct conditions occur, the dispatcher makes the request, using the appropriate credentials and addresses for the endpoint.
- This topic includes the following subtopics:
- Design of the Disconnected Service Agent Application Block. This topic describes the way each feature in the application block is designed.
- Working with the Disconnected Service Agent Application Block. This topic includes a list ofprocedures for using the application block.
- Web Service Idempotency and WS-Addressing. This topic describes how you can ensure that your Web services correctly support message IDs and the WS-Addressing standard.
- Extending the Disconnected Service Agent Application Block. This topic describes how you can add your own features to the application block or change the behavior of existing features.