From: jprocter Date: Tue, 12 Dec 2006 11:02:13 +0000 (+0000) Subject: new stuff for vamsas hack. X-Git-Tag: Release_0.2~273 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=96b65e508158327b444397b8f9426b5f000a8cf4;p=vamsas.git new stuff for vamsas hack. git-svn-id: https://svn.lifesci.dundee.ac.uk/svn/repository/trunk@247 be28352e-c001-0410-b1a7-c7978e42abec --- diff --git a/docs/TODO.readme b/docs/TODO.readme new file mode 100644 index 0000000..1e8a4f9 --- /dev/null +++ b/docs/TODO.readme @@ -0,0 +1,26 @@ +VAMSAS Library ToDO list +------------------------ + +Begun for the VAMSAS hackathon/sprint/fest/thing (13-15 December 2006) + +This file is a tabbed list of things that have to be implemented or +tested in the SVN package. Check for updates regularly and +add/modifiy it everytime you do something. + +Number - goes up by one for each item. If you delete an item, don't renumber stuff. + +Status tells us how far we've got on that item. Words like the following please: +* - or nonexistent: its just been made up, nothing has been done on it yet +* designed - someone has an idea how this item is going to be implemented (and ideally, they can describe it to someone else) +* specified: prototyping has been done and checked in, either a text/graphic description is written down somewhere for anyone to access or abstract classes and interfaces have been declared. +* implemented: code has actually been written to do what this Item requires done. +* tested: the implementation is as bug-free and stable as we can make it (notwithstanding anything else that it depends on). + +Package/Classes/Path tells us where to go to find the relevant bits for this item in the repository, and an items package/class set might be written explicitly into the dependencies column of another item. + +Who - you, me or anyone else dealing with this item, or blank if no-one has got to it yet. + +Item - brief name for the development task. + +Dependencies - names of other items, or description of other things that have to be done before this Item can be finished (ie tested and completed). + diff --git a/docs/TODO.xls b/docs/TODO.xls new file mode 100644 index 0000000..b0bd8d6 Binary files /dev/null and b/docs/TODO.xls differ diff --git a/docs/objectUsageModel.txt b/docs/objectUsageModel.txt new file mode 100644 index 0000000..97d8176 --- /dev/null +++ b/docs/objectUsageModel.txt @@ -0,0 +1,44 @@ +Vamsas objectusageModel +----------------------- + +Quick list of features we need on shared object model: + +fine-grained update events +-------------------------- +Anything less than an indication that the whole document +has been updated is fine-grained. +Since every app would have to work out which objects had +changed for themselves, its better to provide a +generic interface in the library. + - class update + - app gets notified when a type of object is updated + - hierarchical update + - app is notified when some is updated that is directly or indirectly referenced by a property of this object (ie + - instance update + - application gets notified when a particular object is updated ? + +Object Locking Mechanism +--------- +Pre-Nov2006 meeting, an object lock was a simple binary attribute flag. This gives no indication to another app about when the lock is going to be freed. +Generally, object databases seem to have a more sophisticated model, so a particular application(and user) can lock a particular object. +Within the document, this can be implemented as a Lock attribute string field, which contains a description of the Lock status on that object. +The description must then be specified. The minimum requirements are : + - one application can lock an object (such as an alignment) against updates by any other application. + * there are caveats. For the example of an alignment, this depends on data above the alignemnt object in the hierarchy. + In this case, any update to objects 'above' the locked object must be data-preserving. + ie + the dataset sequence->alignment sequence relationship must be updated to ensure that when a dataset sequence is extended by an additional segment of residues: + Dataset sequence 5-10 is updated to contain residues 1-15, because another alignment contains a longer segment of the same sequence. + Alignment sequence references dataset sequence from 5 to 10 (we use the dataset sequences numbering system for referring to it). + The update does not affect the alignment sequence's reference to the dataset sequence, since the from,to coordinate segment has not undergone any shift. + * update verification step + any document update must be verified to not violate any existing locks on the document. Dataset sequences and alignment sequences cannot be deleted arbitrarily unless they are lock free. + * lock free for the case of deletion means that no other objects that depends on an object is locked. + + +New/Modified/Delete object notification mechanism +Andrew mentioned that there's no way for an object to be 'deleted' from the model, +particularly if the library prevents the application from clearing references to +objects within other objects. + +There are two cases \ No newline at end of file