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

To: (Delegation) (Automation) (User)

Delegation Pattern (Top)

If part of the work that is required to transform a stimulus into a response is delegated to a server, then the original event must be mapped into the three events that constitute the delegate work event pattern. The events in this pattern are:

Event: Client Requests Our Service
   Message Stimulus:   Receive Our Service Request from Client
   Update Response:   Create waiting on server entry.
   Message Response:   Send Their Service Request to Server

Event: Server Delivers Their Service
   Message Stimulus:   Receive Their Service from Server
   Update Response:   Delete waiting on server entry.
   Message Response:   Send Our Service to Client

Event: Server Fails to Delever Their Service
   Temporal Stimulus:   A waiting on server entry is past the time when we expected their service to be delivered.
   Message Response:   ?????

One variation on this pattern is to delegate the entire job of producing the response to the server. In that situation, the second event would no longer send our service to the client.

The essential requirements may already contain a number of these patterns because it may be essential to delegate work to servers who are outside of our system. But, when we decide to separate our system into a manual partition and an automated partition, we introduce new client/server relationships that often lead to new delegation event patterns. In addition, if we separate the automated partition into client/server tiers, we will introduce additional automated delegation patterns.

Automation Boundary (Top)

If our choice for the automation boundary splits an essential event, it will be necessary to map the essential event into two practical events. One of these events will have the perspective of the manual partition and the other will have the perspective of the automated partition.

For example, consider the (partly) practical event:

Event: Customer Places Order by Phone
   Message Stimulus:   Receive Phone Order from Customer
   Update Response:   Enter order into system state.
   Message Response:   Acknowlege order to customer.
   Message Response:   Send order to shipping department.

Now, suppose that we make the following design choices:

These choices require that the event to be split because the stimulus must be detected by manual methods but the state must be updated and the response must be sent using automated methods. Now, suppose we make the following additional design choices:

In essense, the manual partition must delegate the work of updating the state to the automated partition. This leads to the following events:

Note that because the clerk should be able to hold the delegation status in its own local temporary state for the two minutes that it takes to detect failure, it is not necessary to explicitly record the delegation in the manual partition state.

Figure 1 shows the typical sequence of events assuming that no failures occur.

Figure 1: Essential Events Mapped to Practical Events

User Interface (Top)

The previous example will require us to create a user interface which the clerk will use to enter the order. A user interface is much like a use case because the interface is based on a sequence of events that are initiated by the user.

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

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