13
Thismayseemanunacceptablepricetopayintermsofconsistency,butsuchproblems
areunavoidable,becauseinfact,someconsistencyproblemsareinherentlyundetectableby
acomputersystem.Forexample,assumetwoauthorsarecollaboratingonadocumentin
whichtherearetworedundantparagraphs.Eachcollaboratorcouldseparatelyattemptto
repairtheinconsistencybydeletingadifferentparagraph.Thesyntacticallyconsistentresult
wouldhaveanundetectablesemanticinconsistency,sinceanapplication’smodelofthetext
doesnotincludeknowledgeofthetext’scontent.Furthermore,anylock-basedprotocolsup-
portingagranularityfinerthantheregioncoveringbothparagraphscouldcreatethesame
kindofinconsistency.Theoppositionofconsistencyandopportunisticworkisinherent,
evenintheabsenceofautomaticallydetectableconflicts.
Thissoundsworsethanitreallyis,sincethiskindofproblemhappensevenwhenpeople
collaboratewithoutcomputersupport.Ontheotherhand,manyactualorpotentialsemantic
inconsistenciescanbecheckedbyspecializedapplications.Thelevelofcheckingthatisap-
propriatemayevenvarysignificantlyforthesameapplicationdependingonhowitisbeing
used.Duringaninteractivesession,thesemanticconsistencyofeditingoperationsbycol-
laboratorsmaybeofminimalimportance,solongasbothcanseesomesyntacticallyconsis-
tentresultinatimelyfashion.Inanasynchronouscollaborationwherepotentiallyhundreds
ofchangesmadebydifferentauthorsarebeingcombined,muchmorerigoroustestingfor
potentialconflictsmaybeanessentialqualitycontrolmeasurefortheresulttobeuseful.
Avarietyofsystemsarenowbeingcreatedtoexploretheissuesinvolvedinrelaxingcon-
sistencyrequirementsinordertocreatemoreflexiblecollaborations.Prospero,forinstance,
providesanapplicationframeworkthatallowsloosely-coupledcollaboration.Applicationde-
signersusingtheProsperotoolkitdefineobjectsthatrepresentatomicoperationsona
shareddatastructure(whichisreplicatedateachsite).Theseoperationshavemethodsto
checkforconflicts,andresolvedivergences,underthecontrolofthetoolkit.Evensome
softwareengineeringsystems(whichhavegenerallybeenwillingtopaythepriceofensur-
14
ingconsistency)haveexploredloosernotionsofconsistency(NarayanaswamyandGoldman
1992).
TheTimewarpsystemusesasimilarsetofclassdefinitionstoProspero’stodetermine
conflictsets(operationsthatmaypotentiallyconflict).Operationsinthesameconflictset
arethencheckedatruntimebyafixedalgorithm,guidedbyapplication-specificcallbacks
thattestforactualasopposedtopotentialconflicts.Anyactualconflictstheninvokeaset
ofstandardconflict-resolutionstrategiesthatcanbecustomizedbytheapplicationwriter.
Timewarpisbasedoneditinghistories(includingexplicitlyavailablealternativehistories).It
alsoincludesastandarddisplayprotocolthatenablesconflictstoautomaticallyapply“ren-
deringfilters”thatcanchangethedisplayofanobjectthattakespartinoneormoreunre-
solvedconflicts.(Edwards1997;EdwardsandMynat1997).
TheGINAeditingenvironment(Berlage1994)alsoretainsfulleditinghistoriesofapplica-
tionobjects,andtheseareusedtosynchronizereplicatedcopiesoftheeditedobjectsinthe
separateactiveeditingsessions.GINA’supportsconflictresolutionbyprovidingaflexible
undofacilitycapableofsupportingout-of-sequenceundooperations.Thisenablesconflicts
tobedirectlyresolvedbyusersofthesystem.
Fromacollaborationpointofview,onecriticalconcurrencyissueiswhatviewapplica-
tionshaveoftheeditedobject:
Doesthesharedartifacthaveonestate,ormany,andwhatconstraintsareenforcedon
thosestates?
StateConfigurations Convergent Divergent
SingleState Typicalrelationaldata-
base
Prospero(ateachnode)HTTP
withoutDAVextensions
Multiplesequentialstates Augment/NLS
Multiplebranchingstates
(Versiontrees)
RCS,SCCS CVS
Multiplestateswithmerge
(VersionDAGs)
ConfigurationManage-
mentsystems
Timewarp,
Prospero(globally)
Arbitrarystatesets
(Operationalselection)
GINA,distEdit Palimpsest,Prospero,PEDIT,
Epos
Previous Page Next Page