138
event that passes from the application to the local store. The policy manager is responsible
for accepting events from whatever network connections are available, and storing them in
the local store. Change events from other collaborating instances of the application are dis-
patched indirectly via the policy manager. This not only hides data structure maintenance,
but it encapsulates the implementation of update policies in a single place. The gray arrows
represent control operations from the application to select policy options or request a par-
ticular level of activity.
Policy ManagerNetwork
Application
Local Store
F F F F iii ig g g gu u u ur r r re e e e 7777....1111:::: GGGGlllloooobbbbaaaallll AAAArrrrcccchhhhiiiitttteeeeccccttttuuuurrrreeee ffffoooorrrr PPPPaaaalllliiiimmmmppppsssseeeesssstttt aaaapppppppplllliiiiccccaaaattttiiiioooonnnnssss
This entire architecture is essentially several composed instances of the Observer pattern
(Gamma, Helm et al. 1995). Observer is a way of modularizing updates to state information
by passing those updates to other parts of the system that would be affected by the updates.
Palimpsest’s direct manipulation of changes makes this pattern particularly useful in this
situation. The policy manager can also be seen as an application of the Mediator pattern,
event that passes from the application to the local store. The policy manager is responsible
for accepting events from whatever network connections are available, and storing them in
the local store. Change events from other collaborating instances of the application are dis-
patched indirectly via the policy manager. This not only hides data structure maintenance,
but it encapsulates the implementation of update policies in a single place. The gray arrows
represent control operations from the application to select policy options or request a par-
ticular level of activity.
Policy ManagerNetwork
Application
Local Store
F F F F iii ig g g gu u u ur r r re e e e 7777....1111:::: GGGGlllloooobbbbaaaallll AAAArrrrcccchhhhiiiitttteeeeccccttttuuuurrrreeee ffffoooorrrr PPPPaaaalllliiiimmmmppppsssseeeesssstttt aaaapppppppplllliiiiccccaaaattttiiiioooonnnnssss
This entire architecture is essentially several composed instances of the Observer pattern
(Gamma, Helm et al. 1995). Observer is a way of modularizing updates to state information
by passing those updates to other parts of the system that would be affected by the updates.
Palimpsest’s direct manipulation of changes makes this pattern particularly useful in this
situation. The policy manager can also be seen as an application of the Mediator pattern,