Last modified 16 years ago
Last modified on 02/20/09 15:43:41
Analysis
Overview
This task is about persisting ProObjects/Properties. Generally the idea is that in Sophie 2 we have immutables and ProObjects/Properties and they have to be persisted. This task is responsible for persisting the property part.
Task requirements
- ProObjects should be persisted and the following should be taken into consideration when designing how this will be done:
- ProObjects and immutables form an acyclic graph of dependencies in Sophie 2. Having this in mind, persisting should be designed in such a way that:
- saving and especially loading shouldn't be affected by the order of traversal.
- usage of SharedSaver and SharedLoader should be explained in the context of persisting ProObjects/Properties.
- sample use case with explanations should be provided.
- explanations on why the proposed design won't be affected by the loading order.
- immutables are the leaves in this graph of dependencies. Explain how persisting ProObject/Properties should collaborate with persisting of immutables to achieve a working scheme for persisting the whole graph.
- Think of scenarios and define the way properties save/load.
- ProObjects and immutables form an acyclic graph of dependencies in Sophie 2. Having this in mind, persisting should be designed in such a way that:
- Create a wiki page with the design of the format that will handle the things stated above.
- provide scenarios to show that this format is really needed.
- create diagrams.
- give concrete explanations.
- All important wiki content should be put in the corresponding section of a wiki page => BASE_PERSISTENCE
Task result
- wiki page.
Implementation idea
- view code:
- => trunk/sophie2-platform/modules/org.sophie2.base.persistence
- => trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r1/src/main/java/org/sophie2/main/model/book/format/r1
- => trunk/sophie2-platform/modules/org.sophie2.main.model.book.format.r2/src/main/java/org/sophie2/main/model/book/format/r2
- View the related things.
- Design format and create a wiki page with the task requirements fulfilled.
Related
- BASE_PERSISTENCE_COMMONS_R0
- BASE_PERSISTENCE_INTERMEDIATE_STORAGE_R0
- BASE_PERSISTENCE_FORMAT_REGISTRY_R0
- BASE_PERSISTENCE_FORMAT_POINT_R0
- BASE_PERSISTENCE_IMMUTABLES_R0
How to demo
- show the wiki page and explain the things described there.
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
(Write comments for this or later revisions here.)