Page: (Bot) (Prev) (Next)   Class: (Outline) (Assign) (Answer)   Course: (Content)

To: (Delay) (Cycle)

Delayed Response Pattern (Top)

If the response to an event does not need to be produced when the stimulus is detected, then the original event can be mapped into the delayed response pattern. The events in this pattern are:

Event: Client Makes Request
   Message Stimulus:   Receive Request from Client
   Update Response:   Create need response entry.
   Update Response:   Save stimulus.

Event: Client Expects Response
   Temporal Stimulus:   It is time to respond to the client.
   Update Response:   Delete need response entry.
   Message Response:   Send Response to Client

Note that the event that produces the response is usually a temporal event. However, in many practical situations, a temporal event that is processed in an automated partition is actually triggered by an operator in the manual partition who informs the automated partition that the time for the event has arrived.

The essential requirements may already contain a number of these patterns because it may be essential to delay the response to some event. But, when we assign different processing cycles and types to an event stimulus and response(s), we introduce new delayed response event patterns.

Processing Cycles (Top)

If the non-functional requirements allow the response to an event to be delayed, we can usually generate the responses for multiple events using a batch process that runs at a slower cycle than the detection of the stimulus. For example, consider the following essential event:

Event: Shipping Ships Order
   Message Stimulus:   Receive Order Shipped Notice from Shipping
   Update Response:   Update order state to invoiced.
   Message Response:   Send Invoice to Customer.

Now, suppose the non-functional requirments require or permit us to make the following design choices:

These choices have several consequences:

Suppose that we also make the following design choice:

This leads to the following practical events:

These interactions are illustrated in Figure 2.

Figure 2: Practical Event Interactions

Note that this scenario is a combination of the delayed response pattern because of the delay in sending the invoices and the delegation pattern because the essential event was split by the automation boundary. Also note the use of invoice states to keep track of the current state of each order.

Page: (Top) (Prev) (Next)   Class: (Outline) (Assign) (Answer)   Course: (Content)

Prepared by David L. March -- Last Revised on April 13, 2003