Example 2: Groupware Editor
Idea: provide multiple levels of functionality per feature
- full functionality: requires lots of resources
- limited functionality: designed to reduce bandwidth (primarily)
Monitor environment and select feature level:
- updates per character or per block (word, paragraph, etc.)
- download whole text or overview plus components user works on
- locking granularity vs. level of concurrency
- disable group awareness features (telepointers, annotations)
- local backups in highly unstable environment (frequent disconnections)
Information from QoS API: bandwidth, latency, error rates, disconnections, etc.
Adaptive application, some dynamic rebalancing of functionality, though mostly static partitioning