8
(Dourish1996)givesapplicationauthorsaccesstoarangeofinteractionstylesfromfully
synchronoustofullyasynchronoususingacommontoolkit.Inordertosupportmovement
fromsynchronoustoasynchronouswork,Prosperoallowsconsistencyfailurestooccurand
helpstheapplicationtohandlethem.InProspero,applicationsareimplementedbyadding
codetoaclassframework,andsuchfailuresarehandledbyoverridingupdatemethodsin
theclassesprovided(whichincludeasharabletextbuffer).Thisabstractionpaysoffbyal-
lowingtheimplementationofgeneralizedundo,versionmanagement,versionmerge,and
thepersistentaddressingofdataelements.Prospero’sapproachisverypromising,sinceit
actuallydoesintegrateeditorialworkcleanlyalongtheaxisfromsynchronoustoasynchro-
nouswork.
ThelimitationsofProsperoasageneraltheoreticalmodelstemfromitsfundamentally
operationalnature.Consistencyisactivelycheckedbycodethatcanthentakeanexplicit
actiontoresolvetheconflict.Editingchangesandupdateoperationsthemselvesarerepre-
senteddirectlybycodethatimplementstheirapplication,andanyconflictresolutionpolicy.
Prosperoabstractscommonsharededitingapplicationbehaviorsandprovidesatoolkitof
convenientabstractions,butdoesnotprovideanabstractsemanticsofoperationsandopera-
tionresolution.ThefactthatProspero’soperationalsemanticsarebasedontraditionalcon-
sistencytechniquessuchaslockingalsomakesforsomeproblems,sincetheyoffermuchless
powerinexchangefortheircost,especiallyoncethestrongguaranteesoftraditionallocking
aresoftenedtodeclarationsofprobablebehavior.Thelackofasingleunderlying
concurrencymodelmeansthatreasoningaboutthesemanticsofaProsperoapplicationfun-
damentallyinvolvesreasoningaboutageneralprogram,andnotamorerestricted(declara-
tive)description.
ThePrepeditor(Neuwirth,Kauferetal.1990;Neuwirth,Kauferetal.1994)wasdevel-
opedatCMUasaresearchvehicleforexaminingcollaborativewritingsupporttools.Inaddi-
tiontosystemdevelopment,thePrepgrouphasdoneempiricalresearchontheprocesses
(Dourish1996)givesapplicationauthorsaccesstoarangeofinteractionstylesfromfully
synchronoustofullyasynchronoususingacommontoolkit.Inordertosupportmovement
fromsynchronoustoasynchronouswork,Prosperoallowsconsistencyfailurestooccurand
helpstheapplicationtohandlethem.InProspero,applicationsareimplementedbyadding
codetoaclassframework,andsuchfailuresarehandledbyoverridingupdatemethodsin
theclassesprovided(whichincludeasharabletextbuffer).Thisabstractionpaysoffbyal-
lowingtheimplementationofgeneralizedundo,versionmanagement,versionmerge,and
thepersistentaddressingofdataelements.Prospero’sapproachisverypromising,sinceit
actuallydoesintegrateeditorialworkcleanlyalongtheaxisfromsynchronoustoasynchro-
nouswork.
ThelimitationsofProsperoasageneraltheoreticalmodelstemfromitsfundamentally
operationalnature.Consistencyisactivelycheckedbycodethatcanthentakeanexplicit
actiontoresolvetheconflict.Editingchangesandupdateoperationsthemselvesarerepre-
senteddirectlybycodethatimplementstheirapplication,andanyconflictresolutionpolicy.
Prosperoabstractscommonsharededitingapplicationbehaviorsandprovidesatoolkitof
convenientabstractions,butdoesnotprovideanabstractsemanticsofoperationsandopera-
tionresolution.ThefactthatProspero’soperationalsemanticsarebasedontraditionalcon-
sistencytechniquessuchaslockingalsomakesforsomeproblems,sincetheyoffermuchless
powerinexchangefortheircost,especiallyoncethestrongguaranteesoftraditionallocking
aresoftenedtodeclarationsofprobablebehavior.Thelackofasingleunderlying
concurrencymodelmeansthatreasoningaboutthesemanticsofaProsperoapplicationfun-
damentallyinvolvesreasoningaboutageneralprogram,andnotamorerestricted(declara-
tive)description.
ThePrepeditor(Neuwirth,Kauferetal.1990;Neuwirth,Kauferetal.1994)wasdevel-
opedatCMUasaresearchvehicleforexaminingcollaborativewritingsupporttools.Inaddi-
tiontosystemdevelopment,thePrepgrouphasdoneempiricalresearchontheprocesses