Chapter2:TheChange-OrientedPerspectiveonCollabora-
tiveEditing
Thischapterpresentsaparticularperspectiveonconcurrencycontrolanddivergence
managementandexamineshowitcanbeintegratedintocollaborativesystems.Idefine,for
thepurposesofthisdissertation,themeaningof“changeorientation”andtheterminologyI
useinpresentingit.ThenIdiscusssomeofthereasonswhychange-orientedapproachesare
attractive,andanalyzedifferentwaysofconceptualizingwhatkindsofchangeschange-
orientedsystemshandle.Thischaracterizationwillshowthatrepresentationalpowerfor
change-orientedsystemsismorecomplexthanitmayappear.Somewaysofdealingwith
changesthatarelogicallysufficienttorepresentstatesofadatastructureturnouttobeless
powerfulatrepresentingalternativeversionsofthatdatastructure.Thisanalysiswillpoint
thewaytomorepowerfulrepresentationsofoperationsondata.
ThetermChange-OrientedVersioninghasbeenusedinsoftwareengineeringtodescribe
thetrackingofindividualoperationsasawayofmanagingversionsandfeatures(Lie,
Conradietal.1989;Munch1993;ZellerandSnelting1995).AsIampresentingadifferent,
thoughrelatedapproach,Iusetheslightlydifferenttermchange-orientedconcurrencycon-
trol.Thisdenotesthetrackingofindividualchangeoperationsonshareddatastructuresasa
waytoaddressconcurrencyandconsistencyissues.Weshallbeexaminingsystemsthattreat
changesasfirstclassobjects,sothatusersofapplicationsandimplementersofapplications
willbothhaveanaturalmodelforhandlingconcurrentupdates.Whileversionsandsaved
statesareclearlyimportant,theyarenotprimaryinthesamewayastheactualchanges
madeinadocument.Savedstatesaretime-basedsnapshotsofanactivityinprocess,butthe
actualactionstakenareasclosetothesubstanceofanactivityasonecangetinanapplica-
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
Previous Page Next Page