next up previous
Next: MUDS: Room-based session Up: Rendezvous Previous: Rendezvous

Clock

No side effects.

Pure functional.

Structured objects.

Centralized implem:

root object, Session object, model object, view (component obj)

session predefined: allUsers, userName, userScreen, removeUser, addUser.

root view:

view = Views (map greetingView allUsers)

GreetingView:

view = Window (userName myId, userScreen myId) (Text greeting) (display text, IP address, displayView)

key KeyCode = modifyGreeting KeyCode.

GreetingModel:

greeting = this. modifyGreeting KeyCode = save (new greeting) initially = save "hello world"

Program consists of hierarchical components.

Root view.

View components have display = view + controller.

Model: request method + update methods.

Hierarhical scopes: scopes uses IS-PART-OF relationship. messages can only be sent to parent. constraints flow downwards. so no cycles.

support for transactions: user actions create a series of threads. user actions oredered - orders their threads - orders accesses to resources. server-based locking.

Views execute in local processes.

Distribution schemes:

Naive:

change, notified, request, response.

Request Cache:

cache responses. if cached value not changed - use cache.

server invalidates cache based on dataflow techniques. seven times improvment.

Request Prefetech:

get all invalid values in batch. speedup 1.5 to 5 times.

Request Presend:

Server remembers which values requested by each view. sends these values when it invalidates: 2 speedup.



Prasun Dewan
Sun Mar 16 14:09:55 EST 1997