From 96b65e508158327b444397b8f9426b5f000a8cf4 Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 12 Dec 2006 11:02:13 +0000 Subject: [PATCH] new stuff for vamsas hack. git-svn-id: https://svn.lifesci.dundee.ac.uk/svn/repository/trunk@247 be28352e-c001-0410-b1a7-c7978e42abec --- docs/TODO.readme | 26 ++++++++++++++++++++++++++ docs/TODO.xls | Bin 0 -> 15872 bytes docs/objectUsageModel.txt | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 docs/TODO.readme create mode 100644 docs/TODO.xls create mode 100644 docs/objectUsageModel.txt 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 0000000000000000000000000000000000000000..b0bd8d63e12f2b2c3911de651b4af66640c85554 GIT binary patch literal 15872 zcmeHOYm8h~9Y1$ww)<*f+u~YY^>(*FDZATt+1estTl$Dq`jBl)6ES5vb9Z;>?94hd zTecs-6`QQGzQ`~UB`ckb*= zXIm77?3tW<&*T69pa1KedtUR~-^@Mv#1Afd#Z-h(o47eW*=%N&l{-i?N@z1Ch6MAc zCnqPh&=@3V!iPu$r@-qaz6~$My8)3lZ$xZDY({KBY(<=nI0x}O#Pbnp_qlk_L!6Iz z0piCH+YvvGxB&4&#ETFwMkKtAA0icfq*=Ym{bVk>8SA5&4}NL*#em9z-(vDu5T_ zP1s%Qw)C&-ubyZB-jYcb^2Pi>$=x`X^0Lx~DR{y70}u&k;y?EMbI(8Cb8*|lUjzSL z?|zT`{~3|rMDkC5`5oMi$nHeh_?>(Nkvu$(NdCW#$l>O@h?MKci2RoR46$6UF68@D zL-~Bx%@4RYW(GXBKb7%vDX-}6%w_g_g<__3fOQ*2b7}3fPh8X@Z34CCdm)%1zwFyP zwr$vEW}|=&Lz(nw_I;>UV3=nW!yiBaIZ~H>e=OL$dWiHw}>1pc;(1_!wQji1ovfh??W|{cqiq{&0l53@;`?Z8w>ciYC{V!h_?Af0j zE+&gT`MtM!sZy~gl`nW`L-o^ul&|9!`@FO}SV)cxx!R=E!P5hqrGcu$kyhB7E-ClLCClD zOlzG!-#S+Z*6Ay=j(TMuti!KD73TN@!4SAAu2rLy=+l~PJGfiFU|pIJL6 z%r!oR35T?{dxdV_Mx!I?WXW^A{h$Nqp%-O}!!q)bUs^A;hP9>2)F|z#T();x_*PlF z_O@&^hhzL4b*^NM%DT&!btPowDz&#|7i6WLiz8mjEtZmnl9#S*%W~80W85pa>3piV zOhwsQ#DKd6JtNyw8Y?;F_@NATlnC|2kx%8(@pTt0&G8lE&s949G?_Jin-dO4`Q*q* zHj_%0GWpyx9rb*RyQ5^m9VQQ=Iks!HXWx}J3VBm)E8p7hn2!5e8}zld3R+Wt7_8+F zvHJedBN7e5d$~t2kjZ)77)yV-ndUnV!GVubuFO_hRao3e6Q4~YAgAFN{eF<*w& zftQa>@$#|vA(dKi%(vj?WNwY+Qoqh)keBPf?Hotd5-XP|6%!dZb-4e8x(H=py|k$ee*3T9(&Dw#`XIL@4YpXn137{ygv$Dqm30Mib*y>{7NXDZ zl3AI%A)gu@<_N#8kQ%~z#)X&U3#Db=7++#*+kZpLYYDm2c`iB7w$*1;29-j&PWakC zYB}m*zlKuO5~{c`SHmzRa_@+GOCX+i~O_t~|6<*Ho2j6kUNl zYwk8j@x>!#`3!$8^1Urb(Wfp)Y6M@I>;Wnw>rpjcx{G~x1fH8K6iJ>LFg*3nUePwT_>9cqdm#rDV%`|!DI1*o85 z%zN;uW5KiaQ?`7D>OI zgv?sjHZL-7vJl~*cqFd!1Kfw};M)2S*V@;ZM{D9bsGDkE&gfO%xpi;}8P#(~fZI_Amyl81 zs{`Dt>);YHin}4e-B1UYkWt*70q)K^xP*-24g|OZb#Mt8#l1biy}b@DA)~nW2e|jw z!6jrA_pt!?u{yYfjN(2S;67Ogmyl81X9C=3>fjPGiu-JU`)nOtLPl|43UFVlgG
    veDm8O7yBp!TE5I=F<4;8aPO;wOGrB_ zfT;s(H~19KJfpO82Aw_VjIw+NW@n;GIr`kXZY#I!rWKl-u*RF!V4hy`T;ngtk;IJS z6|7mFP8^q&%b!5y7Bj;2pB}lmA56GGcu300(lKcAdZZkjsKjvl;6mXHC%@orzC6D# za7X2NJ6}YMJ3&2l)+3w>v zIO}jOn=wh85&y4h7bX^9RKV_D$G18+W+7?{KWUHE_v$6S`f0gaTuJ-u>zW;OU)<)m5-{-a#(7?+Q z@o-*>BRPDVcmRjvwyLLXpxcc_dD*_4?osQx7)W4u8G}cyvn*6qL6xJWuCqG_T0Ff& z8Vqt(PB5SfJqN|gql_QjT!gOb9wS^f&CPNQlQlQ;u_IA_EC9uGXCAxOwKuKN**jO# zd{wr2X*lc)!#FiIFR`CmCTsatO8IswRHHjY*aodZsP-->HdD@O2N7zV);=E8SaWA4 z>W$@MT|V8tut|J}n#|WRQHD*70~L(o{VLwO;qP~1s`M7#2hrC~!2;Zy)HzODWRBAs z;|{zA()kOVYaEv}=E$sIHlAtR?cfYyuFMVE(B^yJ`Rnht?A^X*kCZQ!@~h-|mz0dl zUXIedO!f>W%~w!!Ji)fmNwFiyFTg$W++sF?$IsvviHkTSxA5|~0XB@;MnP`m^_ox0 zZ7>(5p3FmdLkv4$K{@14ELwZQ3^ktr@^~ZfXdG(oYf6J_$DG1F4k!Y9TmP+Ksn3Ns zGhG>OxZAt0vaD9V54t#n+a*p~@7I)FrkjgxM+Rr(?)4jQtVO^tZ;Fkh7c=8jW66j5 z;9e(Bo`j8!xrByCpiZ1;U;L@&W}Y(|DANG^;ufs7)|<@|x0(&Om3yOEhqALDC%S-{ zHz`@WY{T8&EN=F8fnvez2lYHk_RFYJDq~T z`peU{TQN@_#2+el8wJ6~vk6{r`u5rvx)HInpWY&bDrgr3G zlILvU$OU1ZpVBbFuTtfZr-= zOjC@v3b?}Y*>ujAGD=)o#*b!Y8Rs*VWtf0WDdSFRB^=wYEW?CxN*N|2C_Ak)2%kUR zj;O@t?6R^9lb8tZDVc-v2JjrzXwH%Qz%~~{j!kJ@968FZxdd{QSaS`?QPw+SErP*Y z#c!@*9c{?}VkjiNfcCLD(xjXUNt%>UbEHW;(qy~x$B4D8=a936P@$i(b$VyJ z+{@M+d7&?o3gsk~3xrC8P~nYpLN*8$o^EN5yr84`Int!xk_z=oDwhZq_JVf#PZaTH zN$Z^NYp%R?T7Y=2;59~MXpB(diFCW1r;`d#vD*bxbEJv2x$r_el4gg{Y!aHhOGU^g zp^4>~pCc9i4~sI;j>KCmc+HX4dC#Iu6)vEs?rbY28Jh zt+xuzPXxJg+qMc7-sS%T+Bpx#Jz;jpZxjA9v#e+J&XSxs0|s`aI8D(XB#jhBXu^n#1x$rPf zIJV(GXt&iys!_vJ2-`N_HNYap?0W-|lJ}Q6+x8=^u?ydvFYGH0d0vS(2HBOS9~}HM zERLQ=9xDI)$8o6Qe>iT?lyuV@G6MsvW$cuH>GbrIiJsNw?Q4GcrRno919|Qm_%|6k BTq6Jg literal 0 HcmV?d00001 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 -- 1.7.10.2