39
tion.Onewaytomakemanipulationofchangespossibleandeasyistouseanunderlying
datamodelthattreatschangesasfirstclassobjects.
Thebest-knownchange-orientedimplementationtechniqueisoperationaltransforma-
tion.However,thesealgorithmsmakelittleuseofchangesasobjectsintheuserinterface,
nordotheyexposechange-basedmanipulationtotheapplication.ThismeansthatEllisand
Gibbs’originalalgorithmisnotinourdirectscope,eventhoughitmanipulateschangesas
firstclassinternalobjects.Ontheotherhand,someoperationaltransformationalgorithms
doqualify,suchasPrakashandKnister’sextensionofEllisandGibbs’algorithmtosolvethe
problemofcollaborativeundo.Inthisalgorithm,individualchangesaremanipulable,and
canbeaddedtoorremovedfromlocaleditinghistoriesbytheuser.Iaminterestedinsys-
temswherechangeorientationisfundamental,andnotonesthatsimplyuseaspartofpro-
tocoldesignandoptimization.
Whileversioncontroliscertainlyonecoreissueinsystemdesign,andonethatfitswell
withachange-orientedsystem,itisfarfromtheonlyreasontotrackoperations.In
authoringanddesigntasks,mergeandundocapabilitiesarethereallyinterestingpointsfor
explorationandresearch,asistakingeffectiveadvantageofdivergenteditingwithoutcre-
atingchaos.Differentwaysofimplementingthebookkeepingofversionmanagementare
usefuladjunctstoexplorationoftheseissues.Thischapterwillexplainwhatchange-
orientedconcurrencyimplies,aswellaswhyonemightwanttouseit.Itwillalsoelaborate
onsomeofthecomplexproblemsofdataandactivitymodelingthatarerequiredinasystem
thataccordschangesfirst-classstatus.
2.1 Thefundamentalsofchange-orientedconcurrencycontrol
Thebasicideaisinfactthesimpleoneimpliedbyname.Thefundamentalservicepro-
videdtotheapplicationbyacollaborationinfrastructureisasharabledatastructure.Rather
thandirectlyaccessingandmanipulatingthestateofthatsharedstructure,change-oriented
40
applicationsmanipulateeditinghistories,asinTimewarp(Edwards1997;EdwardsandMynat
1997),usuallyaddingneweditingoperationstoaparticularhistory(andthusupdatingthe
history),sometimesremovingchangesfromthathistory(andundoingpreviouslydoneop-
erations,orotherwiseadjustingorexaminingitsstructure(revealingtheactionsthathave
affectedit,andmergingdivergentstates).Althoughhistoriesmayhavedifferentforms,each
historydefinesastateofthedatastructure.Dataissharedbysharinghistories,and
concurrencyiscontrolledbymanagingthedifferencesbetweenhistories(asdeterminedby
thechangesthatbelongtothem).
Iwillconcentrateonthelogicalandformalproblemsinvolvedinimplementingsystems
thattreatchangesasfirst-classobjects.Inpresentingthiskindofcapability,Timewarpap-
pealstothenotionoftimetravelandquantumuncertaintyasaguidetotheconcurrency
modelanditsuserinterface.PalimpsestinsteadappealstotheCopenhagen,or“multiple
worlds”interpretationofquantummechanics.Historiesexistonlyastheyareexplicitlycon-
structedbyanapplication,andmanyalternatehistoriesarepossible,givenasetofopera-
tionsthatapplytothesamedata.Applicationsmaychoosetoconstructlinear,singlestate,
branchingorgeneralizedacyclichistories.Anysetofchangesdefinesahostofpossibleal-
ternativestatesoftheshareddata,dependingonexactlyhowthechangesarecombinedand
limitedonlybylogicalconstraintsastowhatcombinationsaremeaningful.Onlystatesthat
“cometoconsciousness”bybeinginstantiatedbyanapplicationareactuallyrealized,even
temporarily.Themanynever-instantiatedstatesareimportant,however.Likeahaloofvir-
tualparticles,theyrepresentauthorialoptionsforrevisionsnevermade.Thesizeofthisvir-
tualstatespaceessentiallydeterminestheflexibilityofachange-orientedconcurrencysys-
tem,sinceitisexactlythissetofpotentialstatesthatdetermineswhatoptionsforresolving
conflictsareavailable,eachlegalchoicerepresentsapossibilitythatmightbeusefulinsome
situation.
Previous Page Next Page