Analysis
Overview
Provide a local change server. Simulate multi-user actions and if possible get the concept about how we're going to deal with collaboration.
Common approach is to have remote proxy objects, when you set them and the server recieves it. Instead of this, we won't have proxy objects, but real objects. We won't transfer just the values, we'll transfer changes, instead of setting the frame to 5, we'll have a change server that will collect the changes and periodically sync the changes.
Change server is on client and server, merges changes. This task is the server that is on the client, should work without internet connectivity.
Modify resource, it generates changes, the change manager adds them to the change server.
Task requirements
- Create a local client change server module
- Allow changes for resources to be registered with the change server
- Allow for connections between change servers (remote change servers)
- Provide a mechanism for connected servers to sync their changes
Task result
(List the end product of the task (for example "Source code", "Wiki page", etc.))
Implementation idea
- Determine if the change server should record all changes, or if the user needs to specify the use of the change server
- Connection to a remote server should be book specific.
- Connecting to a remote server may cause the connection to the local server to be implied
- All changes go through the local server, which are then synced to the the connected remote server. This allows for offline editing
- Maybe this is a book property edited via some book settings
- Pay attention to how changes should be coalesced, if at all. (for example if the user sets the frame size 50 times, there should only be one change record for the frame size)
Related
How to demo
Show the change log generated by the change server.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
- provide a local change server
- simulate multi-user actions if possible
- get the concept about how we're going to deal with collaboration
- common approach is to have remote proxy objects, when you set them and the server recieves it
- instead of this, we won't have proxy objects, but real objects. We won't transfer just he values, we'll transfer changes, instead of setting the frame to 5, we'll have a change server that will collect the changes and periodically sync the changes, change server is on client and server, merges changes, this is the server that is on the client, should work without internet connectivity.
- Modify resource, generates changes, change manager adds them to the change server