Ideas on real-time support for non-multimedia collaborative applications
The two dimensions of real-time support
- Latency : Late response
- Jitter : Bursty traffic
Latency
Issues in Network Latency
- Packaging : Pack multiple small packets into one package to reduce network congestion. If the application has lots of small packages, then it will have high network overhead because of header information and routing decisions. Small is in refer
ence to the MTU (Maximum Transition Unit). For ethernet the MTU is approximately 1500 bytes.
- Scaling : Send less data either by compression or sending less details. In multimedia applications, sending less details means reducing the sampleing rate or resolution. However, in non-multimedia applications, it seems unclear what could be do
ne.
- In the Spreadsheet application, one cell of data being communicated between applications is about 630 bytes. Compared to the MTU for ethernet there is not much packaging you can do. Could try packing multiple packages and then compressing it.
- There are three different levels of granuality in communication between collaborative applications
- User operation level (e.g. Open, Print, Quit commands)
- Window event level (e.g. xevents)
- Display update level (e.g. Screen dump) - Objects are not identifiable. Some packaging and compression techniques might be applicable.
Issues related to the Processing Time
- There are many modules in collaborative applications, such as concurrency control, coupling, session management, and maintaining consistency. For each of these modules, there are many approaches with different trade offs.
For example, in concurrency control the optimistic approach is faster
but could require more processing time later for merging. On the other hand,
the pessimistic approach takes more time to update now, but would not need to
synchronize later. If many different approaches to each module are available and can be easily composed during run-time, latency can be better managed by dynamically changing approaches as appropriate for the network load.
- Change level of synchronization dynamically depending on system (network) performance
- Definition for level of synchronization: when are the different applications synchronized ?(for example,
after any event, or after a user determined commit, or after a predefined
time interval etc.)
- In the Spreadsheet example, you might try dynamically changing the delay
time of the thread depending on the network latency.
Jitter
- Jitter refers to bursty traffic, which results in a lose of presences.
- A simple approach to control jitter could be buffering - give some minimum time delay between each event.
Return to main page