81
userintentions,operationsmustbecorrectlytransformed,andpartiestothecollaboration
musttrackeachother’sstatesufficientlytodeterminewhattransformationtoapply.Palimp-
sestprovides,forindividualchanges,aninvariantrepresentationthatseparatessynchroni-
zationfromintentionpreservation.Thebestdescriptionofthestateoftheartinoperational
transformationisfoundin(SunandEllis1998;Sun,Jiaetal.1998).
Palimpsesteliminatesthenotionthattheoperationsinahistorymustbetotallyordered,
insteadrelyingonlyonapartialorderthatreflectsdatadependenciesinthechanges.This
alsomeans,aswehaveseen,thattheaddressingmechanismdoesnotrelyonoffsetsorany
otherinformationrelatedtoaspecificstate.Thishasasignificanteffectonimplementa-
tions,sinceitisnolongernecessarytohaveevenpartialknowledgeofthedistributedstate
ofothercollaboratingparties.
4.2 BasicDefinitions
ThefundamentalobjectsofthePalimpsestformalismarechanges,changesets,andse-
quencestates.Achangerepresentsauser’seditingoperationonasequence,andincludes
enoughinformationtoindicatetheeditingintentionofthatchange.Achangesetisasetof
changes,whoseactionsaretobecomposed.Fromachangeset,itispossibletoextracta
sequencestate,theparticularstatedefinedbyproperlyexecutingtheoperationsinthat
changeset.AsystembasedonthePalimpsestmodelwillmaintainanumberofchangesets.
Oneisthe“universalchangeset,”containingallchangesofwhoseexecutionthesystemhas
evenbeeninformed,otherswillcorrespondtoparticularstates(versions)thattheapplica-
tionisinterestedin.
Useroperationsthataffectthehistoryofasequencecorrespondtothemaintenanceof
differentchangesetsrepresentingdifferentstatesthatareofinterest.Anautomaticmerge
oftwostatescanbeaccomplishedsimplybytakingtheunionofthetwochangesetsrepre-
sentingthosestates.Auserrequesttoundoachangeisaccomplishedbyremovingthatpar-
82
ticularchangefromthesetrepresentingthestatecorrespondingtotheuser’s“currentver-
sion”.Real-timecollaborationcouldbeachievedbyagroupofprocesseseachkeepingasin-
glechangesetrepresentingthecurrentversion,andbroadcastingnewchangestotheoth-
ers.Thedistributionalgorithmthendeterminestheultimatelevelofconsistencyachieved
bythesystem,independentlyofthedatamodel,sinceorderofarrivalwillnotaffectthe
finalresults.
4.2.1 Changesandchangesets
Theelementsofachangesetareoffourtypes:insertion,deletion,moveandcopy.Each
changecinasethasauniqueidentifier.Twochangesmaybeidenticalineveryproperty
excepttheirID(thisoccurswhentwoauthorsmakethesamecorrection).Formally,werep-
resentIDsaselementsofasetId,andachangeasatuple(i, c)
whereiisanID,andcisthe
restoftheinformationabouttheactualoperationrepresentedbythechange.Changesmay
bewrittenwithoutexplicitIDs,whereitwillnotcauseconfusion.ThefunctionId(c)gives
theIDofagivenchangec,andChange(I)givesthechangewithIDI.
Thefollowingnotationsareusedtoidentifytheactiontakenbyachange,thepossible
valuesofcinachangetuple(I, c).I[a, s]representstheinsertionofafinitesequenceof
items(s)atalocationgivenbytheaddressa.D[a
1 , a
2 ]representsthedeletionofallitems
whoseaddressesfallbetweena
1 anda
2 .M[a
1 , a
2 , d]representsthemovementofthesubse-
quencewithaddressesfroma
1 …a
2 ,inclusive,totheaddressd.C[a
1 , a
2 , d]representsady-
namiccopythatduplicatesthesubsequencewithaddressesfroma
1 …a
2 ,inclusive,tothe
addressd.
4.2.2 ThestructureofPalimpsestaddresses
Palimpsestaddressesrepresentthelocationsofdata,bytheIDsofthechangesthatcre-
atedthatdataandhaveaffecteditsposition.Theaddresseshavethegeneralformdiscussed
inSection3.4.3.
Previous Page Next Page