3.1 Client Details (Remote/Proxy Side of the DSLR Connection)
The client (remote/proxy) side of the DSLR connection is responsible for calling CreateService to create the remote service on the server; then for sending dispatcher requests and receiving dispatcher responses (for two-way requests). When the service is no longer needed, the client calls DeleteService to clean up the service on the remote side.
The DSLR client has the following states, as illustrated in the following figure:
Figure 3: DSLR client state diagram
Start state: The client is ready to create proxies for remote services. The following event is processed in this state:
Accepting Requests: The client has called CreateService to instantiate the service on the server, and is ready to accept requests to send to that service. The following events are processed in this state:
DSLR One-Way Event
DSLR Two-Way Request
Sending Request: The client is sending either a DSLR one-way event or two-way request to the remote service. No events are processed in this state. The client either transitions from this state to Accepting Requests or Receiving Response, depending on the request type.
Receiving Response: The client is receiving a response for a two-way request that has been sent to the server. The following event is processed in this state:
Finish state: The client has called DeleteService to clean up the remote service. No events are processed in this state.