outcomewisediskcleaner

wisediskcleaner  时间:2021-04-01  阅读:()
ABSTRACTTraditionally,designersorganizesoftwaresystemasactiveend-points(e.
g.
applications)linkedbypassiveinfrastruc-tures(e.
g.
networks).
Increasingly,however,networksandinfrastructuresarebecomingactivecomponentsthatcontrib-utedirectlytoapplicationbehavior.
Amongstthevariousproblemsthatthispresentsisthequestionofhowsuchactiveinfrastructuresshouldbeprogrammed.
WehavebeendevelopinganactivedocumentmanagementsystemcalledPlacelessDocuments.
Itsprogrammingmodelisorganizedintermsofpropertiesthatactivelycontributetothefunctionalityandbehaviorofthedocumentstowhichtheyareattached.
Thispaperdiscussesactivepropertiesandtheiruseasaprogrammingmodelforactiveinfrastructures.
Wehavefoundthatactivepropertiesenablethecreationofpersistent,autonomousactiveentitiesindocumentsystems,independentofspecificrepositoriesandapplications,butpresentchallengesformanagingproblemsofcomposition.
Keywords:Activeproperties,documentmanagement,com-ponentsoftware,customization.
INTRODUCTIONAscomputersystemsbecomemorepowerfulandnetworkbandwidthandcapacityincreases,newmodelsareemergingforthedevelopmentofinfrastructuretechnologies.
Oneoftheseiswhatwecall"activeinfrastructures.
"Traditionalapproacheshavetypicallyconcentratedcompu-tationalpowerinfixedlocations.
So,forexample,themainframeapproachconcentratescomputingpowerinonelarge,centralizedsystem.
Client/servercomputingdistrib-utesitbetweentwopoints,butregardsthechannelbetweenthosepoints–thenetworkorinfrastructurethatconnectsthem–asastaticchannel.
Activeinfrastructureapproachesexploretheopportunitiestodevolvesomecomputationintotheinfrastructureitself.
Inthismodel,applicationsemanticscanmigrateintoinfrastructure,whichitselfbecomesanactiveentitythatcanspecializeitselftotheneedsofdifferentapplications.
Activeinfrastructureshavebeenexploredinarangeofdomains.
Forexample,theBayoudistributeddata-basesystemallowsdatabaseupdatestocarrywiththemproceduresthatcanresolveconflictsthatareencounteredastheymovethroughthenetwork[24];oragain,activenet-workingallowscodetobe"injected"intothenetworksothatroutersandothernetworkcomponentscanbespecializedtotheneedsofdifferentapplications[27].
Activeinfrastructureapproachesprovideanumberofadvantages.
Theyprovideapplicationswithspecializedinfrastructurearrangementsprovidingcleanerimplementationmodels;theymakemoreefficientuseofinfrastructuresbyincorporatingspecializedfacilitiesratherthanworkingonlyintermsofgenericfea-tures;andtheyallowinfrastructurestoadapttovariationsinapplicationdemands.
Sinceactiveinfrastructuresareanewapproach,however,theyareunfamiliartoprogrammers,andarenotdirectlysup-portedbyconventionalprogrammingtools(bethose"conceptual"toolsorstandardsoftwaretools).
Asetofques-tionsarise,then,abouttheprogrammingmodelthroughwhichactiveinfrastructurescanbepresentedandcontrolled.
InthePlacelessDocumentsproject,wehavebeenexploringanactiveinfrastructureapproachtotheprovisionofdocu-mentanddocumentmanagementservices.
Ourapproachisbasedonadistributedinfrastructureinwhichactivitycanbedirectlyassociatedwithdocuments,ratherthanbeinglockedinsideapplicationsthatareinvokedtoprocessthosedocu-ments.
Bypushingactivityintotheinfrastructure,wecanmakeitindependentofparticularrepositoriesandapplica-tions,sothatuserscanorganizeactivityaroundtheirtasksratherthanaroundthedetailsofapplications.
ThePlacelessDocumentsdesignexplorescompositionalapproachestodocumentservicefunctionality,andnewrelationshipsbetweenapplications,infrastructures,andservices.
ResearchQuestionsOursystemisdesignedasaninfrastructureforinteractivedocumentapplications.
Activeinfrastructureapproachesarenormallyvisibleonlytosystemsprogrammers;theiruseattheapplicationlevelisrelativelynovel.
Thisopensuptwosetsofquestionsthatthispaperwilladdress.
Thefirstishowactiveinfrastructuresandtheextensibilitytechniquestheyintroducecanbeincorporatedintoaninter-activesystemmodel.
WhatsortofconceptualmodelcanbeAProgrammingModelforActiveDocumentsPaulDourish,W.
KeithEdwards,JonHowell,AnthonyLaMarca,JohnLamping,KarinPetersen,MichaelSalisbury,DougTerryandJimThorntonComputerScienceLaboratoryXeroxPaloAltoResearchCenter3333CoyoteHillRoadPaloAltoCA94304USApaul@dourish.
comofferedtoenduserstounderstandhowactivityisincorpo-ratedintotheinfrastructure,andhowcanthisbeincorporatedintoacomponentmodelthatallowsdifferentactivitiestobepresentatthesametimeThesecond(related)issueisthatoftheprogrammingmodelthatthesystemwillpresent.
Howcanwecombineinterac-tivesystemprogrammingwithactiveinfrastructuresWhatconsequencesdoesanactiveinfrastructureapproachholdforinteractivesystemdesignandhowcanthesedesignconcernsbemanifesttoprogrammersHowcantheactiveinfrastruc-tureapproachbeincorporatedintocurrentdesignpracticeInthispaper,wereflectontheexperiencesofdesigningthePlacelessDocumentsinfrastructureanddevelopingapplica-tionsontopofit.
Weexploretheprogrammingmodelthatwedevelopedandsomeofitsconsequences,andshowhowitwasexploitedinapplicationsthatweandothersdevel-oped.
Onthebasisoftheseexperiences,wedrawoutsomelessonsanddiscussourcurrentapproachtotheprovisionofactiveinfrastructureinfollow-onwork.
PROPERTY-BASEDDOCUMENTINFRASTRUCTUREThePlacelessDocumentssystemhasbeenindevelopmentsincelate1997.
Bythisstage,wehavegainedexperiencewithavarietyofprototypeimplementationsaswellasarangeofapplicationsofdifferentstyles,scopesandmodels.
ThenamePlacelessDocumentsreflectsthecoreofourunderlyingmotivations.
Mostinformationmanagementsys-temsemployhierarchiesasthedominantparadigmforinformationmanagement–filesanddirectories,emailmes-sagesandfolders,etc.
Hierarchiesareusedtoperformmultiplefunctions.
Theyareusedtopresentinformation;theyareusedtoretrieveinformation;theyareusedtostoreinformation;andtheyareusedtocontrolinformation.
So,forexample,whenIstoreadocumentinthefilesystem,Iputitatsomeparticularplaceinthefilesystemhierarchythatbothreflectssomefeaturesofthedocument(e.
g.
whenIputitinT:\home\papers\drafts\uist\placeless.
doc)andwhereIthinkIwillremembertolookforitagain;and,byputtingitincertainplaces(e.
g.
theMicrosoftWindows"briefcase"),Icontrolsomethingofhowthatdocumentbehaves.
Inourmodel,wewanttoseparatetheexpressionofdocu-mentfeaturesanddocumentcontrolfromthesystemof"places"thatthehierarchydescribes(hence,"Place-less").
Ouralternativemodelisbasedondocumentproperties.
Propertiesaredocumentmetadatatagsthatusersandappli-cationscanassociatewithdocuments.
TheyareimplementedasarbitrarypairsofstringnamesandJavaobjectvalues;theirvaluescanbeset,tested,retrievedandsearched.
Adoc-umentcanhavemanydifferentpropertiesassociatedwithit.
Weusepropertiestoencodeinformationthatisrelevanttotheusersofthedocuments(e.
g.
,thatadocumentisapaper,thatitisadraft,thatitisbeingpreparedforUIST,etc.
)aswellastoassociateapplicationinformationwithdocuments(e.
g.
thehistoryofapplicationactionsoverthatdocument).
Usersaddpropertiestodocumentseitherdirectlythroughdrag-and-dropinterfacessuchasthoseexploredinaprevi-ousUISTpaper[6],orindirectlythroughproperty-basedapplications[10,14].
ActivePropertiesWeintroducedthedocumentpropertymodelinapreviousUISTconference,whereweoutlinedthedevelopmentofourinitialprototype,calledPresto1[6].
Prestouseddocumentpropertiestoprovideapersistentassociativedocumentstoreforendusersandapplications,butinPrestothestorewasentirelystatic.
InthefullPlacelessDocumentssystem,thepropertystoreisusedasanactiveinfrastructurethroughtheadditionofactiveproperties.
LikeattributesinPresto,Placeless'activepropertiesincludebothanamecomponentandavaluecomponent.
However,activepropertiesincludeathirdcomponent–runnablecode.
Thiscodeisdesignedtoberuninsidetheinfrastructureinresponsetovariousactionsuponthedocument.
Byattachingactivepropertiestoadocument,userscanmakethedocu-mentresponsivetothesituationsinwhichitisused.
Sinceadocumentcanhaveanynumberofpropertiesattached,activepropertiesprovideuserswithcompositionalcontroloverdocumentbehaviour.
WhatsortofbehaviourscanusersachievethroughactivepropertiesActivepropertiescanensurethatdocumentareautomaticallybackedup,oraremaintainedconsistentlyinmultipleplaces(e.
g.
onalaptopandaserver).
Activeprop-ertiescantakefunctionalitynormallyassociatedwithspecificapplicationssuchasworkflow,formatorcontentconversionorspecialisedpresentation,andassociatethemdirectlywiththedocumentsothattheytravelwiththedocu-mentwhereveritgoes,asitisemailedaround,transferredbetweensystemsandsoon.
Activepropertiescanautomati-callydetectdocumentcontentchangesandimplementfeaturessuchasnotification,summarisation,orversioncon-trol.
Further,thesecanallbecontrolledcompositionally,availableoveralldocumentunderusercontrol.
WehavebuiltthePlacelessDocumentsinfrastructureanduseditextensively,exploringitsopportunitiesbybuildingproperty-basedapplicationsandfunctionalelementsinclud-ingthosedescribedabove.
Elsewhere,wedescribethetechnicalconcernsinextendingadocumentmanagementsystemtoincorporateactiveproperties,includingthedistri-butionandefficiencyissuesthatareinvolved[7].
Inthispaper,however,weareconcernedwiththeprogrammingmodelthatactivepropertiesoffer,andwiththewaysinwhichinfrastructureactivitycanbeencapsulatedandpro-videdtoapplicationdevelopers.
THEACTIVEPROPERTYPROGRAMMINGMODELThePlacelessDocumentsinfrastructureiswritteninJava.
Weprovideanumberofinterfacestointeroperatewithexist-ingapplicationinfrastructures.
Forinstance,weofferaccesstothePlacelessDocumentsrepositorythroughHTTP,sothatexistingwebclientscanoperatewithPlacelessDocu-ments;similarly,weprovideaccessthroughotherstandardInternetprotocolssuchasIMAPandFTP,andofferanNFSinterfacesothatfilesystem-basedclientscangainaccesstoPlacelesswithoutanyadaptation.
Newapplications,includ-1.
Prestousedtheterm"attribute"ratherthan"property,"butoth-erwiseitsmodelisasubsetofthepropertymodelinPlacelessDocuments.
ingnewservicestobewrittenasactiveproperties,aretypicallywritteninJava,usingcustomAPIs.
Theinfrastructureprovidestwosortsofactiveproperties,inlineactivepropertiesanddelegates.
InlineActivePropertiesThestandardformofactivepropertyisaninlineactiveprop-erty.
InlineactivepropertieschangedocumentbehaviourbyinterceptingandinsertingthemselvesintotheexecutionpathofdocumentoperationssuchasdeleteDocument,addProp-erty,readContent,andsoon.
Placelessprovidestwelveofthesecoreoperations.
Eachactivepropertycanbeassociatedwithanynumberoftheseoperations.
AnactivepropertythattransformscontentmightinsertitselfintotheexecutionpathofboththereadContentandwriteContentoperations,sothatitcantransformcon-tentsymmetrically;onethatlogsalldocumentactivitymightinsertitselfintotheexecutionpathofallthedocumentoperations.
CombiningActivePropertiesAdocumentcanhavemanyproperties,andsinceactivepropertiesactjustlikenormalproperties,itfollowsthatasingledocumentcanhavemultipleactiveproperties.
Sinceanyactivepropertycaninterceptanysetofdocumentopera-tions,itfollowsthatadocumentmighthavemorethanoneactivepropertyinterestedinaspecificoperation.
Forexam-ple,thesetPropertyoperationmightbeofinteresttotwodifferentactiveproperties:anaccesscontrolpropertythatwantstorestrictwriteaccesstothedocument,andaloggingactivepropertythatwantstomaintainahistoryofdocumentactivities.
Ourinfrastructure,then,mustprovidesomemech-anismforcontrollinghowtheseactivepropertiescombine.
Therearetwomechanismsthatcontrolpropertycombina-tion:propertyorderingandphasedexecution.
Inphasedexecution,thedispatchcycleforasingleoperationonadocumentisdividedintothreephases,calledtheverify,performandnotifyphases.
Conceptually,theverifyphasedeterminesthattheoperationisallowed;theperformphasecarriesouttheoperation;andthenotifyphasecarriesoutanypost-executioncleanupandnotifications.
Whenanactivepropertyinsertsitselfintotheexecutionpathforanopera-tion,itspecifieswhichphaseitshouldbeassociatedwith.
Althoughanactivepropertymayhavemanycodemethods,eachmethodisassociatedwithjustonephase.
Theoverallmodelisshowninfigure1.
Consideraspecificdocumentoperation.
AuserorapplicationhasinvokedtheaddPropertyoperationonadocument,toaddanewprop-ertytoit.
ThisoperationdispatchesintothePlacelessinfrastructure,wheretheactivepropertydispatchertakesover.
First,thedispatcherscanstheactivepropertiesattachedtothisdocumenttodeterminewhichhaveassoci-atedthemselveswiththeaddPropertyoperationintheverifyphase.
Thisresultsinasetofmethods,eachofwhichisdefinedtotakeasargumentsthesetofargumentsfortheaddPropertyoperation,andreturnabooleanvalue.
Eachofthesemethodsiscalledinturn.
Ifanyofthefunctionsreturnsfalse,thentheexecutionsequenceisterminatedandanexceptionisthrowntothecallingapplication,informingitthatanactivepropertyhasdeclinedtheoperation.
Other-wise,thedispatcheradvancestotheperformphase.
Again,eachpropertyisexaminedinturn,thistimeforper-formermethods.
TheaddPropertyoperationdoesnotsupportperformers,butforthoseoperationsthatdo,theper-formermethodsmayaddfunctionalitythatalterstheeffectoftheoriginaloperationanditsreturnvalueifthereisone.
Theinterfacesarearrangedsothateachperform-phaseprop-ertyhasaccesstotheresultcomputed"sofar"bytheotherperformersonthesamedocument.
Forexample,anoutputstreamforwritingthedocumentcontentwillbebuiltsothateachinterposingactivepropertymayalterthecontentasitflowsdownthestream.
Finally,thedispatcheradvancestothenotifyphase.
Again,theactivepropertiesthathaveregisteredthemselvesforthenotifyphaseofthesetPropertyoperationarecalledinturn.
Notifymethodshavenoreturnvalue;theyareentirelyinde-pendentofeachother.
Oncetheyhaveallbeenexecuted,thereturnvaluecomputedduringtheperformphaseisretrievedandreturnedastheoutcomeoftheoperation.
Phasedexecutionallowsustocontrolsomeoftheeffectsofcombiningproperties,byallowingprogrammerstoassociateproperty1property2verifiersperformersnotifiersTable1:OperationsandtheirActivePropertiesVerifyPerformNotifyAddProperty-DeleteProperty-AddMember-GetMembersRemoveMember-GetPropertyValue-SetPropertyValue-SetQueryDeleteDocument-ReadContentWriteContentCloseOutputStream--GetDelegateFor-Figure1:Phasedexecutionofactivepropertycode.
themwithspecificphasesofexecution.
However,thereareotherelementsofpropertyinteraction,particularlyinthecaseofsideeffects.
Wewilldiscussthese,alongwiththepropertyorderingmechanism,inmoredetailafterlayingoutthefullprogrammingmodel.
WritingActivePropertiesActivepropertywriterscreateaJavaclassthatimplementstheActivePropertyinterface.
Thisinterfacerequiressomestandardmethodsforinitializingtheactivepropertyobjectitself.
Inaddition,thisclasswillimplementanumberofotherinterfaces.
Theseinterfacesdescribetheoperationsthattheactivepropertywillintercept.
Forexample,theclassforanactivepropertythatwantstointercepttheverifyphaseofthesetPropertyValueoperationandthenotifierphaseofthewriteContentoperationwillimplementtheinterfacesSetPropertyValueVerifierandWriteContentNotifier.
Table1showsthesetofavailableinterfacesthatanactivepropertywritercanuse.
Eachinterfacedefinesthemethodsthatwillbecalledbythedispatchengineattherelevantpointinthedispatchcycle.
Byprovidinginlineactivepropertiesthatinterceptandredi-rectdocumentoperations,programmersgiveenduserscontrolovertheinteractivebehavioroftheirdocuments.
Sinceactivepropertiescanbeaddedtodocumentsatanypointintheirlifecycle,thiscontrolcanbeexertedatanymomentandcontinuallyrevised.
Fromtheprogrammer'sperspective,codecanbeincorporatedautomaticallyandtransparentlywithnopriorknowledgeonthepartofthedoc-umentorapplicationdevelopers.
DelegatesThesecondsortofactivepropertyinthePlacelesssystemisthedelegate.
Whileinlineactivepropertiesinsertthemselvesintotheexecutionpathofexistingoperations,delegatesextendtheAPIofthedocumentstowhichtheyareattached,providingnewfunctionalityandnewcallpaths.
Conceptually,adelegateisanobjectwhichstandsforthedocumentwithrespecttosomeoperation(infact,withrespecttoaJavainterface).
Ifanapplicationwantstomakeuseofapotentialdocumentinterfaceextensionforaspecificdocument,thenitmakesacallonthedocumentobject,requestingadelegatethatimplementstheinterface.
Thedoc-umentreturnsadelegatethatimplementstherequestedinterface,andthatstandsforthedocumentforthepurposesofthatinterface.
Forexample,thereisnoBackupoperationdefinedinthestandarddocumentoperations.
However,abackupapplicationmightcallamethodonadocumenttorequestadelegatethatimplementstheBackupableDocumentinterface.
Ifthedocumentiscapableofprovidingone,itreturnsanobjectthatimplementsthatinterface;callingthemethodgetLastBackupTime()onthedelegatewouldreportwhenthatdocumentwaslastbackedup,andcallingbackup()onitwouldplaceacopyofthedocumentonastablebackupmedium.
Therearethreeimportantfeaturestonoteconcerningtheprogrammingmodelofferedbydelegates.
Thefirstisthat,whiletheexecutionofinlineactiveproper-tiesiscarriedoutinthePlacelessinfrastructure,theexecutionofdelegatesiscarriedoutintheapplication.
Thatis,thedelegateobjectisreturnedtotheapplicationandbecomespartoftheapplication'saddressspace,withtheapplicationincontrolofwhenthemethodsonthatobjectareinvoked.
Incontrast,inlineactivepropertiesareexecutedasapartofthenormalexecutionofthesystem,andsomustruninthePlacelessDocumentscoresincetheymustoperateacrossallapplications.
Thesecondfeatureisthatdelegatesrequirecoordinationbetweenthedocumentandtheapplication.
Delegatesareonlyprovidedwhenanapplicationknowstoaskforthem,andknowswhatinterfaceisrequired.
Delegatesdonotbecomeactiveforunspecializedapplications.
Thethirdimportantfeatureofdelegatesisthattheyareatype-safeextensionmechanism.
Applicationsrequestadele-gatespecifyingaspecificJavainterface.
Thedelegatethatisreturnedisaninstanceofaclassthatimplementsthatinter-face,andiscasttotheinterfacetype.
Callsuponthatinterfacecanthenbemadedirectly,andcanbetype-checkedbytheJavacompiler.
Incontrasttootherextensionmecha-nismsthatmightrelyontheuseoffeaturessuchasreflectiontomapstringsintomethodnames,thisapproachcanexploitthelanguage'stypesystem.
ImplementingDelegatesusingInlineActivePropertiesAlthoughwehavecontrasteddelegateswithinlineproper-tieshere,inlineactivepropertiesareinfactthemechanismbywhichdelegatesareassociatedwithdocuments.
OneofthebasicdocumentoperationsthataninlineactivepropertycanspecializeiscalledgetDelegateFor().
ThismethodtakesaJavainterfaceasitsargumentandreturnsanobjectthatimplementsthatinterfaceasaresult.
So,apro-grammerwishingtocreatetheBackupdelegatewouldcreatetwoclasses.
ThefirstclassisanimplementationoftheBackupinterface,andperformsthespecializedbackupoper-ations.
ThesecondclassisanactivepropertythatspecializesthegetDelegateFor()methodandreturnsaninstanceoftheimplementationclasswhenitdeterminesthattherelevantinterfaceisbeingrequested.
Oneofourdesignissuesishowasinglemodelsupportsbothprogrammingandend-userinteraction.
Usinginlineactivepropertiestoimplementdelegatesallowsuserstoextenddocumentbehaviorsthroughthesamemechanism–attach-ingpropertiestodocuments–thattheyusetoperformallothercustomizationsofthesystem.
DelegatesandObject-OrientedDelegationDelegationisatechniquethathasalreadybeenusedtogreateffectinobject-orientedprogrammingsystems.
Infact,pro-totype-basedobjectsystemsoftenemploydelegationasameanstoachievethesameeffectsthatcanbeachievedusinginheritanceinclass-basedsystems[21].
Ouruseofdelega-tionissimilar,butweusetheterminwaysthatdonotmatchtheconventionalstructureofobject-orienteddelegation.
InanOOdelegationsystem,amessagesenttooneobjectmaybe"delegated"orredirectedtoasecondobject,whichwillexecutethemethodassociatedwiththatmessageonbehalfofthefirstobject(orfurtherdelegateit).
Theresultofthismethodinvocationwillbereturnedtotheobjectthatorigi-nallysentthemessage.
Thiscanbeseentobestructurallyequivalenttomethodinheritance;imaginethat,bydelegat-ingthemessage,thefirstobjectseemstoinheritfromthesecondobjecttheabilitytorespondtothemessage.
Ouruseoftheterm"delegate"differsfromthismodelinthreeways.
First,ourdelegatesareexplicitlyvisibletotheapplication;wedonotautomaticallydelegateonmessagesends.
Second,wedelegate"downwards"ratherthan"upwards.
"Inourmodel,agenericobject(adocument)pro-videsamorespecializedobject(thedelegate)whichwillrespondtoasetofmessagesonitsbehalf.
Third,thedelegatedoesnotappearto"subclass"thedocumentbecauseitdoesnot,itself,implementtheDocumentinterface;instead,itimplementsonlytheinterfacespecifiedbytheapplication.
AlthoughthedifferencesfromOOPconventionsareconfus-ing,theseparationofthedelegatefunctionalityfromthedocumentfunctionalityprovidessomebenefitsinthedistrib-utedenvironmentofPlacelessprograms.
Inparticular,itmeansthatthedelegatecanbeshippedtootherprocessesorothernodeswithoutcreatingtheconfusionabouttheidentityofthedocumentthatmightresultfromtwo"document"objectsondifferentmachines.
ACTIVEPROPERTIESANDINTERACTIVEBEHAVIOURSOnefeatureofthePlacelessDocumentssystemanditsapproachtoactivedocumentsthatdistinguishesitfromear-lierexplorationsofactiveinfrastructuresisthatPlacelessisprimarilyaninfrastructureforinteractiveapplications.
Theinteractionaspectsofourmodelhavetwosetsofconsequences.
First,thecontrolthatactivepropertiesthemselvesofferoverdocumentbehaviorisinteractivecontrol.
Activepropertiescanbeadded,removedandcontrolledbyendusers.
Indeed,insomeofourbrowsers,activepropertiesareentitiesthatuserssimplydrag-and-dropinordertochangethebehaviorofdocuments.
Thismeansthattheproceduresbywhichactivepropertiescanbeassociatedwithdocumentsmustbebothsimpleandresponsive,thatactivepropertiesmustbeconsistentintheirinteractions,andthatactivepropertiesmustsupportarbitrarycompositions.
Strongerclass-basedapproaches,forexample,wouldnotsatisfytheserequirements.
Second,activepropertiesmayaffecttheinteractivebehaviorofdocuments.
Thisaffectsthestyleofdevelopment;sincedocumentsareinteractiveentities,activepropertiesmustsupportinteractiveresponsetimes.
Inaddition,activeprop-ertiesthemselvessometimesmanageotherinteractiveobjects,suchaswhenthey"decorate"documentinterfaceswithbuttonsandwidgetscorrespondingtocurrently-avail-ableactions.
Theinteractiverequirementsentailalightweightapproachtoactivepropertyprogramming,whichinturnsleadstoastyleofdevelopmentinvolvingmul-tipleinteractingactiveproperties(whichwewilldiscussinmoredetailinthediscussionofProgrammingIssues).
EXAMPLESOFACTIVEPROPERTIESActivepropertiesprovideaflexibleinfrastructureforassoci-atingbehaviorwithdocuments.
Tomakesomeofthisdiscussionmoreconcrete,wewillbrieflydescribesomeoftheapplicationswehavedevelopedusingactiveproperties,andthengoontoexploresomeoftheissuesthatariseinusingactivepropertiesasaprogrammingmodelforactivedocuments.
WorkflowOneseriesofdevelopmentsconcernedtheprovisionofworkflowanddocumentmanagementservicesviaactiveproperties[5,14].
Providingworkflowinthiswaymigratesitintotheinfrastructure,andmakesitindependentofeitherspecificapplicationsorspecificrepositories.
Ourapproachcombinesbothinlineactivepropertiesanddel-egates.
Adelegateencapsulatesaworkflow-specificAPIthatallowsanapplicationtoexploretheprocessinstanceswithwhichadocumentisassociated,querytheirstate,progressadocumentfromonestatetoanother,associatenotificationsandsoforth.
Sinceitisprovidedthroughadel-egate,thisfunctionalitycanbehighlyspecializedbutisavailableonlytospecial-purposeapplicationsthatunder-standhowtocallonit.
Byusinganinlineactiveproperty,wecanconnectworkflowfunctionalitywithexistingapplica-tions.
Anactivepropertyisassociatedwiththereadandwriteoperationsforthedocument;itnoticeswhenthoseoperationsareperformedandpassesnotificationstothedel-egate,whichcananalyzethechangestothecontentandassociatethemwiththeworkflowprocess.
So,forexample,ifadocumentrepresentsaformwithcheckboxes,theactivepropertycannoticewhenthecheckboxeshavebeenselected,andthedelegatecancausethedocumenttobemovedtothenextstageoftheprocess,accordingly.
Ourimplementationusesaninternalworkflowenginetorep-resentandcontrolprocessinstances.
However,manycommercialworkflowsystemsareorganizedaccordingtothereferencemodeldevelopedbytheWorkflowManage-mentCoalitionandprovidenetwork-accessiblemechanismsthroughprotocolssuchasSWAP[22].
Asimplerwaytowriteourdelegatewouldbetomakeitaclientofsuchaser-vice.
Inthisway,wecoulduseactivepropertiestocoordinatedocumentactivitywithanexternalworkflowser-vice,butprovidethis"activation"independentofanyparticularapplicationthatendusersmightwanttouse.
DeliveringServicesTheideaofusingactivepropertiestocoordinatedocumentactionwithexternalmechanismssuchasworkflowleadstoavarietyofwaysinwhichactivepropertiescanbeusedtodeliverdocumentservices.
Obviousexamplesincludeformatconversion(e.
g.
fromMicrosoftWordtoPDF)andinterpolation(e.
ginlinerecod-ingofimagestoreducebandwidthrequirements[13]).
Wehavealsousedthesemechanismstoincorporatehigher-leveldocumentservicessuchascontentfiltering,summarizationandlanguagetranslation.
Deliveringservicessuchasthesethroughactivepropertiesofferstwoadvantagesoverconventionalapproaches,onetechnicalandoneinteractive.
Thetechnicaladvantageisthattheservicescanbeofferedindependentlyofapplicationorrepository.
Theserviceisdeliveredatapointbetweentherepositoryandtheapplication,andsoappliestoanycombi-nation.
Theinteractiveadvantageisthatenduserscancompositionallycontrolthedeploymentofservicesonadoc-umentbydocumentbasis.
Sincethefunctionalityappearstobeassociateddirectlywithdocuments,itmakessensetoallowuserstocontrolitbyactingdirectlyonthosedocu-ments,andso,notionally,controlthebehaviorofthedocumentsratherthanthatofanabstractservice.
VersioningFinally,wehavealsousedactivepropertiestoaugmenttheservicestraditionallyassociatedwithrepositories.
Forexam-ple,usingactiveproperties,wecanaddversioningtoarepositorythatdoesnototherwisesupportit.
Thereareanumberofimplicationsofaddingversioningviaactivepropertiesratherthanbuildingitdirectlyintotheinfrastructure.
Forinstance,sincethePlacelessinfrastructureisunawareofversioning,itprovidesnodirectsupportforthewayinwhichversioningmakesdocumentidentitymorecomplex.
Theinfrastructure,forexample,willnotbeabletorecognizethattwodifferentversionsareactuallythe"same"document.
Asecondconsequenceisthat,sinceversioningisaddedatthemiddlewarelevelratherthantherepositorylevel,wecan,infact,takeadvantageofunderlyingversion-ingfacilitieswhentheyareprovided.
Thisflexibilitycomesatacost;sincedifferentrepositoriesoftenhavedifferentver-sionsemantics,weneedtobeabletointerpretandinterpolatebetweenthem.
Theversioningpropertymaintainsachainofdocumentsthatareearlierversionsofthecurrentcontent.
Eachtimeauseropensthedocumentforwriting,acopyoftheoriginalcon-tentismadeandlinkedtothedocumentasan"earlier"version.
ThisisdonebyattachingtothedocumentanactivepropertythatinterceptsthegetOutputStream()operation,andhencenoticesallattemptstowritenewversionsofthecontent.
2Previousoperationscanberetrievedeitherbylookingdirectlyatthepropertiesthatlinkadocumenttopre-viousversions,orthroughadelegatepropertywhichaddsanAPIforreviewingandretrievingearlierversions.
PROGRAMMINGISSUESThePlacelessDocumentsinfrastructurefirstbecameopera-tionalduringthesummerof1998;sincethattimeithasbeenindailyuseandwehaverefinedandrevisedourcoredesignssignificantly.
Wehavealsogainedconsiderableexperiencewithactiveproperty-basedapplications,someofwhichwedevelopedourselves,andsomeofwhichhavebeendevel-opedbycolleagueselsewhereatPARC.
Avarietyofprogrammingissueshavearisenfromourexperiencesdevel-opingapplicationswithactiveproperties.
ProgrammingUsingStaticPropertiesBeforediscussingactiveproperties,weshouldfirstexplorehowsimplestaticpropertiesimpactprogrammingstyle.
Thecombinationoffreelyextensiblestaticpropertiesandfastquerymechanismsallowprogrammerstoexploitnewmodelsforstructuringtheirapplications.
Propertiesprovideconvenientassociativestorage.
Informa-tioncanbestoredalongsidethedocumentstowhichitapplies,andretrievedbyqueries.
Atthesametime,becausepropertyobjectsstorenotjustprimitivetypesbutarbitraryserializedJavaobjects,adocument'spropertiescanpointtootherdocuments,andsoon,allowingprogrammerstocreatecomplexdatastructuresassetsofrelateddocuments.
Havingadocumentstorethatcanbeusedasapersistentobjectstore,programmersintuitivelyadoptastyleinwhichdatastruc-turesaredistributedacrossdocuments,storedpersistently,andreconstitutedthroughqueriesoverthedocumentspace.
3Mostimportantly,sincepropertiesarecompositional,asingledocumentmayparticipateinmanydifferentapplica-tionsordatastructures.
Thecompositionaluseofstaticpropertiesismirroredintheuseofactiveproperties.
CreatingResponsiveDocumentsOnewayofinterpretingtheeffectofactivepropertiesistoconsiderthatoperationsthatwouldotherwisebefixedintheirconsequencescannowbemadeopenandflexible.
So,forexample,whereasreadingadocument'scontentfromdiskanddisplayingitinawindowisnormallyafixedoper-ationwithafixedimplementation,activepropertiesgiveusersanddocumentsindividualizedcontrolovertheseoper-ations.
Theresultisthatdocumentscanbemaderesponsivetothecontextsinwhichtheyareused.
Atrivialexampleisthatdocumentcontentcanbetransformedaccordingtothepersonwhoreadsitorthetimeatwhichitisread;similarly,otherdocumentoperationscanbemaderesponsivetothecontextsinwhichtheyarecarriedout.
Thisfacility,alongwiththeassociatingstoragefacilitiespro-videdbystaticproperties,makesPlacelessDocumentsanexcellentplatformforthedevelopmentofinteractiveappli-cationsthatexploitcontextualfactorssuchaslocationorparticipants[1,19].
Staticpropertiesencourageacontext-basedapproachinwhichdocumentsandobjectsareanno-tatedwithinformationthatreflectshowtheyhavebeenused,where,when,bywhom,etc.
;combinationsoftheseproper-tiescanserveasretrievalcuesorcanbeusedtoextractrelationshipsbetweendocumentsorapplicationobjects.
Usingstaticproperties,however,meansthatthesecontex-tualfeaturescanbeexploitedonlywhenspecificapplicationsarerunning.
Usingactiveproperties,contextdependencecanbemigratedintotheinfrastructure.
Thecon-textualbehaviorisassociateddirectlywiththedocumentsthemselves.
Thisisvaluablesinceexploitingcontextisakeyelementoftheubiquitousorpervasivecomputingprograms,andsorequiressupportattheinfrastructurelevelratherthaninapplicationspace.
Activepropertiesprovideanovelmeansformaking"passive"entitiesintoactiveelementsofaubiquitouscomputingenvironment.
Throughtheiractiveproperties,documentscanbemaderesponsivetodifferentaspectsoftheiruse.
Inadditiontobeingresponsivetothepersonwhoactsonthem,documentsmightalsobemade2.
Interceptingpropertyoperationsalsoallowsthepropertytokeeptrackofchangestothesetofpropertiesassociatedwiththedocu-ment,butwefocusoncontentoperationshere.
3.
Recognizingthisfeatureofanumberofearlyapplications,weprovidedspecializedsupportforitbydevelopingapackagethatallowedprogrammerstoreflectdocumentsasJavaBeansandviceversa.
responsivetootheraspectsofthecontextinwhichtheyareused;e.
g.
renderingthemselvesdifferentlyandwithdiffer-entinterfaceoptionsdependingontheviewingdevice,onthetimeofday,oratdifferentpointsinanorganizationalprocess[10].
CombiningInlineandDelegatePropertiesInourinitialproposalsforactivepropertyapplications,wefavoredinlineactiveproperties.
Weproposedtheuseofactivepropertiesfordocumentformattranscoding,formobiledocumentservices,forconfiguringthebehaviorofexternalapplicationsorservices,andforspecializingtheser-vicecharacteristicsoftheinfrastructuretoapplicationneeds.
Ourearlyapplicationdevelopmentexperiences,however,showedthepowerofdelegatesforexploringnewapplicationopportunities.
So,ourapplicationsemphasizedthewayinwhichuserscouldextendandaugmentdocumentbehaviorusingdelegateproperties.
Infact,thereisanimportantdualitybetweenthetwoformsofactiveproperties.
Inlineactivepropertiesinterceptdocu-mentoperations,whiledelegatesprovidenewfacilities.
Acommonactivepropertyidiomistoactuallyusebothsorts;useaninlinepropertytoobservethatsomeoperationhastakenplace,andthenactivateadelegatetorunsomenewdocumentbehaviorinresponse.
Theworkflowserviceisanexampleofthisidiom.
Thispairingreliesonanaturalsepa-rationof"new"codefrom"interposed"code.
Itcould,ofcourse,bewrittenasasingleactiveproperty,buttheuseoftwodifferentsortsofactivepropertyseemstomoreaccu-ratelyreflecttheprogrammer'sexpectations.
ExplodedApplicationsInconventionalsystems,functionalityisrestrictedtoappli-cations.
Wehaveshownthatactivepropertiesallowfunctionalitytobedirectlyassociatedwithdocumentsandmovedintotheinfrastructure.
So,thepresenceofactivepropertiescausesustoreassesshowapplicationsworkandhowtheyarestructured.
InPlaceless,wecanstarttothinkofapplicationsasconsistingofavarietyofactivepropertiesthatmaybespreadthroughoutthedocumentspace.
Wecallthese"exploded"applications.
Asanexample,considerasystemthatsupportsdocumentlinking,suchasahypertextsystemoradocumenteditorthatsupportstheinclusionofimagefilesbyreference.
Inacon-ventionalapplication,therelationshipbetweenthedocumentsisonlyactivewhentheapplicationisrunning.
Ifauserdeletesormovesalinkedfile,theapplicationwillnotknow;theresultisadanglinglink.
Activepropertiesprovideamechanismtopreventthisproblem.
InPlaceless,anappli-cationthatsupportsdocumentlinkagecanattachanactivepropertytoanylinkeddocumentthatwillinterceptmoveordeleteoperations.
Whentheseoperationsoccur,itcannotifytheuserthatthisisalinkeddocument(andsotheusermaynotwanttomoveit),and/ornotifytheapplicationthatthedocumenthasbeenmoved(andsoitshouldupdateitspoint-ers).
Theapplicationhasbeen"exploded"orspreadthroughouttheinfrastructure;itcannowbeactiveevenwhenthecentralapplicationisnotrunning.
So,activepropertieschangeournotionsofwhatconstitutesanapplication.
OrderingOneimportantsetofissuesarisearoundtheorderingofpropertyinvocations.
Propertiesprovidecompositionalcon-troloverthebehaviorofadocument,andorderingaffectshowtheirinteractionsarecontrolled.
Placelessprovidestwomechanismstocontrolordering.
Thefirstisthethree-phasemodeldescribedearlier,whereprop-ertiesareinvokedseparatelyaccordingtothreeroles(verifier,performer,notifier).
Thismechanismmovessomeofthemoreobviouspotentialpropertyinteractions(e.
g.
apropertythatwantstovetotheattemptsofanothertoper-formanoperation)intothestructuraldomainoftheinfrastructure,ratherthanhavingtheproperties"fightitoutamongstthemselves.
"Italsoprovidesamorefine-grainedmodelwhich,inturn,encouragespropertywriterstoworkatamorefine-grainedlevel.
However,itleavesmanyproblemsunaddressed.
Inparticu-lar,weobserveconflictsbetweentwoactivepropertiesinvolvedinthesamephaseofthesameoperation.
Weexploredavarietyofdesignsforthisproblem,andeventu-allyfixedonastraight-forwardnumericalorderingfortheinvocationsequenceofproperties.
Thisallowsustocombinepropertiesthathaveinterdependenteffects.
Forexample,ifwewantedtoaddtothesamedocumentonepropertythatencryptedfilecontentsbeforetheywerewrittentodisk,andanotherthatcompressedthem,wewouldwanttoensurethattheywerealwaysinvokedintherightorder.
Anumericalorderingisclearlyflawedinanumberofways;itrequiresthepropertiesthemselvestomanagethepotentialnegotiationtoestablishtheirrelativeorder,ratherthanhan-dlingitautomatically.
However,webelievemorecomplicatedschemestobeoverlycomplex;toestablishalanguageofpropertyside-effects,forinstance,wouldmakeourAPIconsiderablymorecomplex.
4NotificationsAnotheridiomthatweobservedinearlyapplicationswastheuseofnotifications.
"Notifier"-phaseactivepropertieshadbeenincludedtosupportavarietyoftaskssuchasaudittrailloggingandoperationpost-processingthatcouldbeconcep-tualizedasa"notification"fromoneelementofthesystemtoanother.
However,moreexplicitnotificationsorcallbacksbetweendifferentapplicationsturnedouttobemorecommonthatwehadanticipated.
Inparticular,wefoundour-selvesfrequentlywritingnotifieractiveproperties–whichruninthe"kernel"orserver–thatsimplylookedupclientprocessesandinformedthemoftheevent.
Whatismore,forcertainkindsofapplications,suchasapplicationsthatpresentarepresentationoftheactivityofotherclientsoroverworkspaces,wefoundthesesortsofnotificationsbeingaddedtomanydocuments.
Placelessprovidedamechanismforserver-sidenotifications,butnotforclient-sidenotifications.
WeaugmentedourbasicAPIstoprovidesupportforclientnotifications.
Clientscanregistertheirnotificationswitha4.
Infact,however,aswewilldiscuss,therearesomeotherbene-fitstohavingsuchadescriptivelanguage.
server;shouldtheclientdisappearbeforethenotificationiscalled,thenthenotificationwillbesilentlyremovedontheserverside.
Client-sidenotificationsareassociatedwithpat-ternsofdocuments,propertiesoroperations.
So,anapplicationcanregisterasinglenotificationthatwillapplytoanynumberofdocuments,ortoactivitiestogroupsofpropertiesonthosedocuments,andsoon.
Inadditiontoreducingthenumberofnotificationinstances5thisfacilityalsoallowednotificationstoberegisteredthatcannotbeattachedtoaspecificdocument,suchasanotificationthatanewdocumenthasbeencreated.
IntrospectionOurexperienceswiththecompositionaleffectsofactivepropertiesleadtoarecognitionoftheimportanceofpropertyintrospection–theabilitytoexamineandreasonabouttheinternalstructureandbehaviorofactiveproperties.
Therearetworeasonsthatwerequiresomesortofintrospec-tionfacility.
Thefirstisthatproperties,themselves,needtobeabletodeterminehowtheirbehaviorsmightinteract,sothattheycanpotentially"negotiate"aboutorderingorcus-tomizetheirbehaviorinordertobetterinteroperatewithotherproperties.
Forinstance,theversioningpropertymightbehavedifferentlywhenattachedtoadocumentthatalsohasareplicationproperty.
Thesecondisthatweneedtobeabletoprovideend-userswithanunderstandingoftheconse-quencesoftheiractions.
Sinceseeminglysimpleactionssuchasaddingapropertytoadocumentmightcauseavari-etyofactivepropertiestobeexecuted,weneedtobeabletoprovideagenericframeworkinwhichthepotentialout-comesofactionscanbedetermined.
Thisalsorequiresthatwebeabletodeterminesomethingofthestructureandbehaviorofactiveproperties.
OuractivepropertiesarewritteninJava.
Assuch,their"con-tents"–thecodethattheywillexecute–islargelyinaccessiblefromuserspace,outsideoftheminimalstruc-turalpropertiesthatareavailablethroughthestandardJavaReflectionAPIs.
Thesearesufficienttobeabletoseewhatoperationsandwhatphasesarebeinginterceptedbytheactiveproperty,butnottodeterminewhatthatactiveprop-ertywilldo.
Instead,anumberofourapplicationsareforcedtodependonactivepropertyclassnamesand"well-known"propertiestobeabletoreasonaboutthebehaviorofproper-tiesattachedtodocuments.
Onealternativewouldbetowriteactivepropertiesinamoredeclarative"littlelanguage"withlessexpressivepowerthanfullJava,andaboutwhichwemightbeabletoreasonmorecarefully.
ThisapproachhasbeenusedinothersystemssuchasDPF[12].
WedeemedthisapproachinappropriatefortheinitialexplorationsthatPlacelessDocumentswasdesignedtosupport;whenwewereengagedinthedesignwelackedsufficientexperiencewithactivepropertiestodesignsuchalanguage.
Theexperiencewehavenowgainedsuggeststhattheabilitytouseactivepropertiestorelatedocumentbehav-iortothefunctionalityofexternalservices(e.
g.
externalworkflowenginesorformatconversionservices)isanimportantfeatureofourdesign.
Inordertosupportthis,wemustnecessarilygiveupstrongcontroloverthesemanticsofactivepropertyexecution.
Avoluntarydeclarativespecifica-tionoftheside-effectsorperformancerequirementsofactivepropertiesmaybeincorporatedinthefuture.
RELATEDAPPROACHESTherearetwoareasofrelatedworkrelevanttoourexplora-tionofprogrammingmodelsforactivedocuments.
Oneisthesetofinvestigationsintoactiveinfrastructuresofvarioussorts;theotheristheexplorationofcompositionalprogram-mingmodelsforinteractivebehavior.
ActiveInfrastructuresPlacelessDocumentsrepresentsoneapproachtotheprovi-sionofactiveinfrastructures.
Similarissuesoccurinothersystemstacklingsimilarproblems.
TheBayoudistributeddatabaseinfrastructuregaveprogram-mersactivecontroloverthedatabasesystem'spolicyformanagingconflicts.
ByweakeningthetraditionalACIDproperties,replacingthemwithamorefluidsetof"sessionguarantees"[23],Bayouprovidedadatastoragelayermoreattunedtotheneedsofapplicationdomainssuchascooper-ativework[9].
Bayouallowedprogrammerstoattachpiecesofcodecalled"mergeprocs"toupdates,whichwouldbeexecutedtoresolveconflictsencounteredastheyfilteredthroughthenetworkofdatabaseservers.
Likeouractiveproperties,mergeprocswerewritteninafullhigh-levellan-guage,raisingthesamesortsofintrospectionproblems.
However,sincedifferentmergeprocswouldnotbeassoci-atedwiththesameupdate,Bayouhadlittleneedtosupportcompositionalityandsodidnotsufferthesameproblemsofordering,etc.
,thatoccurinPlacelessDocuments.
Activedatabasesmoregenerallyprovideamechanismtoincorporatedynamicallycomputeddataand"triggers"withdataobjects,allowingthedatatorespondactivelytopatternsofaccess[17].
Thesetendtobewritteninrestrictedlan-guages,andthewaysinwhichtheycaninteroperateandrelyonexternalservicesismuchmorerestrictedthanwecanoffer,allowingactivedatabasestoofferstrongerperfor-manceguaranteesatthecostofexpressiveness.
Activenetworking[27]isanapproachtonetworkarchitec-tureinwhichprogramsareexecutedinsidethenetworkarchitectureitself.
Thisapproachsupportsmuchmoreflexi-blemanagementofnetworkresources.
Forexample,routerscanexploitdownloadedcodetodynamicallycontrolroutingpatterns,allowingapplicationstospecializethenetwork'sresponsetotheirparticularrequirements.
Thisissimilartoworkoncomposableprotocols[16]inthatitaffectsthecon-figurationofnetworkingbehavior,butcriticallydifferentinwhereitlocatescomputation,andinparticularthatitallowscomputationtomovearoundandtobeconfigureddynami-cally.
WorkonActiveNames[26]hasexploredinsertingactivemediationintojustthenamelookupprocess,sothatdynamicorcaller-dependentbindingsaremanagedinaprin-cipledway.
Someinteractiveapplicationtoolkits,suchasProspero[4]andIntermezzo[8],haveincorporatedextensibilitytech-5.
Infact,ourimplementationallowsmultipleinstancesofanactivepropertytosharecode,sotheoverheadofmultipleinstancesisnotoneofmemoryfootprint,butoneofactualcode.
niquessothatapplicationdeveloperscanextendtoolkitfunctionalityorinterfaces.
However,theytypicallydonotattempttoexposethisextensibilitymodeltoendusersaswedoinPlacelessDocuments.
Thisisalsotrueofexplorationsofactiveinfrastructuresintheoperatingsystemsdomain.
WorksuchasthatonSpin[3],scheduleractivations[2],exokernels[11]andtheMachExternalPager[18]haveallexploredmediatingthebehaviorofotherwisestaticinfrastructurecomponents.
Muchoftheefforthasbeendirectedtowardsfindingabalancebetweentheexpressivenessoftheinterfaceandthesecurityandresourcemanagementimplicationsofbroadeningittoofar.
CompositionalInteractiveBehaviorsUnlikeotherapproachestoactiveinfrastructures,Placelessisfocusseddirectlyoninteractionconcerns.
Howdoestheactivepropertymodelcomparetootherapproachesprovid-ingcompositionalinteractivebehaviorsIncontrasttotraditional"widget"programming,Myers'"interactors"modelprovidesanencapsulationofinteractivebehaviorthatisseparatefromthegraphicalelementstowhichitisconnected[15].
Interactionpatternsandgraphicalelementsoftheuserinterfacearedevelopedandspecifiedseparately;interactorscanthenbeattachedtographicalele-mentstogivethoseobjectsinteractivebehaviors.
Thisissimilartotheseparationbetweendocumentsandactiveproperties;theyalsohavesimilarcompositionalpropertieswhichmakeforsimilarprogrammingexperiences.
However,Myers'interactorsmodelisaimedspecificallyatthecreationofgraphicaluserinterfaces,whiletheactivepropertymodelismoregeneral.
Activepropertiesalsoresembletheprogrammingmodelofprototype-basedobject-orientedprogramminglanguageslikeSelf[25].
LikeobjectsofatraditionalOOlanguage,Selfobjectscombinedataandactivity(methods);butunlikethetraditionalapproach,Selfprovidesnoclassestoencapsulateobjectstructures,butallowsobjectstoinheritdirectlyfromeachother,throughaprototypemechanism.
PlacelessDocu-mentsissimilartoSelfinthewaythatusersexperiencedocuments(objects)directlyratherthanintermsofpre-definedstructures;andsimilarly,anumberofouruserinterfacesaredesignedaroundthesameprinciplesofcon-cretenessanduniformitythatcharacterizeSelfuserinterfaces[20].
However,althoughourearlydesignsincor-poratedit,PlacelessDocumentsdoesnotprovideinheritanceorthepropagationofpropertiesoractivitythrougha"chain"ofdocuments.
ThisisbecauseofPlaceless'schizophrenicnature,beingbothanapplicationinfrastructureandasystemforendusers.
Whileapplicationdevelopersmightbeexpectedtounderstandamodelstructuredaroundprototypeinheritance,wefeltthatend-userwouldnot.
FOLLOW-ONWORKThePlacelessDocumentsystemisstillunderactivedevelop-ment.
Inparticular,anew"kernel"architecture(thecorepropertystorageandactivationengine)iscurrentlybeingdeveloped,andexploresmoreadvancedideasfortheinte-grationofPlaceless'spropertymechanismswiththerelationaldatabasebeneaththecovers.
Anotherfeaturethatisbeingexploredinthisnewimplemen-tationisarichermechanismforapplicationprogrammerstodescribetotheinfrastructurethestructureoftheirapplica-tionsandtheiruseofpropertiesfordatastorage.
Inthefirstinstance,thisfacilityisaimedprimarilyattheuseofstaticpropertiesandschemas,butitalsoofferstheopportunitytoalleviatesomeoftheproblemsassociatedwiththecomposi-tionofactiveproperties.
Adeclarativemeansfordescribingapplicationneedsallowsthesystemtoadaptitselftotheneedsofeachapplicationandtotakeamoreactiveroleinmanagingtheirinteractions.
Wehavealreadydescribedanumberofwaysinwhichthesystemhasbeenchangedtoincorporatelessonslearnedfromearlyapplicationexperiences(e.
g.
theintroductionofclient-sidenotifications).
Byworkingcloselywithapplicationdevelopers,wearestilllearningnewwaystobettermatchtheconceptualmodelthatPlacelessofferstotheneedsofbothprogrammersandend-users.
CONCLUSIONSInfrastructureshavetraditionallybeenconstruedaspassiveelementsofcomputingsystems;activityhasbeenconcen-tratedattheend-pointsofthesystem,onserversorclients.
However,researchersinavarietyofsystemsarenashavebeenexploringtheuseofactiveinfrastructuresinordertospecialiseinfrastructurestotheneedsofparticularclientsortobettercapitalizeontheincreasedperformanceofmoderninfrastructurecomponents(e.
g.
increasednetworkband-width).
InthePlacelessDocumentsproject,wehavebeenexploringanactiveinfrastructureapproachinthecontextofinteractivedocumentservicesandapplications.
Activeinfrastructureshavebeenconceptualizedinmanydif-ferentways,encapsulatingmanydifferentprogrammingmodels.
TheprogrammingmodelforPlacelessDocumentshasbeendesignedtomeettwogoals.
Ononehand,itispow-erfulenoughtoallowapplicationdeveloperstocreateawiderangeofapplicationsthatcantakeadvantageofactivityintheinfrastructure.
Ontheother,sinceweareaimingatinter-activedocumentapplications,theprogrammingapproachmustalsoencapsulateaconceptualmodelthatisaccessibletoend-users.
ThePlacelessDocumentssystemblursthetra-ditionalboundarybetweenusersanddevelopers,sinceitgivesuserscompositionalcontroloverthebehavioroftheirdocumentsystems.
Whileourapproachisnotasgeneralasthatoftraditionalend-userprogrammingsystems,itnone-thelessrequiresthatusersbeabletounderstandtheencapsulationandcompositionmodelthatoursystemoffers.
Ourconceptualmodelhasbeenbasedonactiveproperties.
Staticpropertiesdescribefeaturesofdocumentsrelevanttouserneeds;activepropertiesaddencapsulatedcodethataffectshowthedocumentbehaves.
Propertiescanbecon-trolledindividuallybyend-usersandapplicationdevelopers,canbecomposedtocreatecomplexbehaviors,andprovideaconsistentinterfaceformanagingdocuments.
Wehaveworkedwithavarietyofpeopleoutsidethedevel-opmentgrouptodevelopapplicationsforPlacelessDocumentsorganizedintermsofactiveproperties.
Onthepositiveside,wehavefoundthatpeopletakenaturallytotheactivepropertymodel,andcanquicklyandeasilycreateapplicationsfactoredintoactiveproperties.
Activeproper-tiesalsoencourageadecomposedmodelinwhichbehaviorsarepersistentlyassociatedwithdocumentssothatapplica-tionactivityisdistributedthroughouttheinfrastructureandpermanentlyavailable.
Onthenegativeside,wehaveencounteredproblemswhereactivepropertieshideapplica-tionbehavior,makingithardforuserstounderstandtheconsequencesoftheiractions;documentbehaviormayresultinunexpectedandunforeseenactivepropertyinvocations.
Thishasnotcausedanysignificantproblemsinthesmallapplicationswehaveexplored,butraisessomeissuestobeaddressedinfutureexplorations.
Theactivepropertymodelspanstwoworlds–theworldofend-userdocumentmanagementandtheworldofapplica-tiondevelopment.
Ascomputersbecomemorepowerfulandapplicationsneedtobemoreandmoreradicallyadaptedtotheneedsofdifferentusersanddifferentenvironments,systemdeveloperswillincreasinglyneedtobuildbridgesbetweenthesetwoworlds.
InthePlacelessDocumentssys-tem,activepropertieshavebeguntoprovideuswithsomecluesastotheproblemsandopportunitiesthattheserequire-mentswillpresent.
ACKNOWLEDGEMENTSWewouldliketothankDirkBalfanz,JacekGwizdka,MinwenJi,EyaldeLaraandIanSmithfortheirbraveryinexperimentingwithactiveproperties.
REFERENCES1.
Abowd,G.
,Dey,A.
,Orr,R.
andBrotherton,J.
1998.
Context-awarenessinWearableandUbiquitousComputing.
VirtualReality,3,200-211.
2.
Anderson,T.
,Bershad,B.
,Lazowska,E.
andLevy,H.
1992.
SchedulerActivations:EffectiveKernelSupportforUser-LevelManagementofParallelism.
ACMTrans.
ComputerSystems,10(1),53–79.
3.
Bershad,B.
,Savage,S.
,Pardayk,P.
,Sirer,E.
,Fiuczynski,M.
,Becker,D.
,Chambers,C.
andEggers,S.
(1995).
ExtensibilityandSafetyintheSPINOperatingSystenm.
Proc.
ACMSymp.
OperatingSystemPrinciples(CopperMountain,CO).
NewYork:ACM.
4.
Dourish,P.
1998.
UsingMetalevelTechniquesinaFlexibleToolkitforCSCWApplications.
ACMTrans.
Computer-HumanInteraction,5(2),109-155.
5.
Dourish,P.
,Bentley,R.
,Jones,R.
andMacLean,A.
(1999).
GettingSomePerspective:UsingProcessDescriptionstoIndexDocumentHistory.
Proc.
ACMConf.
SupportingGroupWorkGROUP'99(Phoenix,AZ).
NewYork:ACM.
6.
Dourish,P.
,Edwards,K.
,LaMarca,A.
andSalisbury,M.
(1999).
UniformDocumentInteractionwithDocumentProperties.
Proc.
ACMSymp.
UserInterfaceSoftwareandTechnologyUIST'99(Asheville,NC).
NewYork:ACM.
7.
Dourish,P.
,Edwards,K.
,LaMarca,A.
,Lamping,J.
,Petersen,K.
,Salisbury,M.
,Terry,D.
andThornton,J.
(inpress).
ExtendingDocumentManagementSystemsWithPer-UserActiveProperties.
ACMTrans.
InformationSystems.
8.
Edwards,K.
1996.
CoordinationInfrastructureinCollaborativeSystems.
PhDdissertation,CollegeofComputing,GeorgiaInstituteofTechnology,Atlanta,GA.
9.
Edwards,K.
,Mynatt,E.
,Petersen,K.
,Spreitzer,M.
,Terry,D.
,andTheimer,M.
1997.
DesigningandImplementingAsynchronousCollaborativeApplicationswithBayou.
Proc.
ACMSymp.
UserInterfaceSoftwareandTechnologyUIST'97(Banff,Alberta).
NewYork:ACM.
10.
Edwards,K.
andLaMarca,A.
1999.
BalancingGeneralityandSpecificityinDocumentManagementSystems.
Proc.
SeventhIFIPConf.
Human-Computer-InteractionInteract'99(Edinburgh,Scotland).
11.
Engler,D.
,Kaashoek,F.
andO'Toole,J.
1995.
Exokernel:AnOperatingSystemArchitectureforApplication-LevelResourceManagement.
Proc.
ACMSymp.
OperatingSystemsPrinciplesSOSP-95,251–266.
NewYork:ACM.
12.
Engler,D.
andKaashoek,F.
1996.
DPF:Fst,FlexibleMessageDemultiplexingusingDynamicCodeGeneration.
Proc.
SIGCOMM'96.
NewYork:ACM.
13.
Fox,A.
,Gribble,S.
,Brewer,E.
andAmir,E.
1996.
AdaptingtoNetworkandClientVariationviaReal-TimeDistillation.
Proc.
ACMSymp.
ArchitecturalSupportforProgrammingLanguagesandOperatingSystemsASPLOS-VII(Boston,MA).
NewYork:ACM.
14.
LaMarca,A.
,Edwards,K.
,Dourish,P.
,Lamping,J.
,Smith,I.
andThornton,J.
1999.
TakingtheWorkoutofWorkflow:MechanismsforDocument-CenteredCollaboration.
Proc.
EuropeanConf.
Computer-SupportedCooperativeWorkECSCW'99(Copenhagen,Denmark).
Dordrecht:Kluwer.
15.
Myers,B.
1990.
ANewModelforHandlingInput.
ACMTrans.
InformationSystems,8(3),289–320.
16.
O'Malley,S.
andPeterson,L.
1992.
ADynamicNetworkArchitecture.
ACMTrans.
ComputingSystems,10(2),110–143.
17.
Paton,N.
andDiaz,O.
1999.
ActiveDatabaseSystems.
ACMComputingSurveys,31(1),63-106.
18.
Rashid,R.
,Tevanian,A.
,Young,M,Golub,D.
,Baron,R.
,Black,D.
,Bolosky,W.
andChew,J.
1987.
Machine-IndependentVirtualMemoryManagementforPagedUniprocessorandMultiprocessorArchitectures.
Proc.
ACMConf.
ArchitecturalSupportforProgrammingLanguagesandOperatingSystems(PaloAlto,CA).
NewYork:ACM.
19.
Schilit,B.
,Adams,N.
andWant,R.
1994.
Context-awareComputingApplications.
Proc.
WorkshoponMobileComputingSystemsandApplications(SantaCruz,CA).
20.
Smith,R.
,Maloney,J.
andUngar,D.
1995.
TheSelf-4.
0UserInterface:ManifestingaSystem-WideVisionofConcreteness,UniformityandFlexibility.
Proc.
ACMConf.
Object-OrientedProgrammingLanguages,SystemsandApplicationsOOPSLA'95(Austin,TX).
NewYork:ACM.
21.
Stein,L.
,Lieberman,H.
andUngar,D.
1987.
ASharedViewofSharing:TheTreatyofOrlando.
InKimandLochovsky(eds),Object-OrientedConcepts,DatabasesandApplications.
NewYork:ACMPress.
22.
Swenson,K.
1998.
SimpleWorkflowAccessProtocol.
IETFInternetDraft.
23.
Terry,D.
,Demers,A.
,Petersen,K.
,Spreitzer,M.
,Theimer,M.
andWelch,B.
1994.
SessionGuaranteesforWeaklyConsistentReplicatedData.
Proc.
Intl.
Conf.
ParallelandDistributedInformationSystems(Austin,Texas).
24.
Terry,D.
,Theimer,M.
,Petersen,K.
,Demers,A.
,Spreitzer,M.
andHauser,C.
1995.
ManagingUpdateConflictsinBayou,AWeaklyConnnectedReplicatedStorageSystem.
Proc.
ACMSymp.
OperatingSystemsPrinciplesSOSP'95(CopperMountain,CO).
NewYork:ACM.
25.
Ungar,D.
andSmith,R.
1987.
Self:ThePowerofSimplicity.
Proc.
ACMConf.
Object-OrientedProgrammingLanguages,SystemsandApplicationsOOPSLA'87(Orlando,FL).
NewYork:ACM.
26.
Vahdat,A.
,Dahlin,M.
,Anderson,T.
,andAggarwal,A.
1999.
ActiveNames:FlexibleLocationandTransportofWide-AreaResources.
Proc.
1999USENIXSymposiumonInternetTechnologiesandSystems(USITS).
27.
Wetherall,D.
1999.
ActiveNetworkVisionandReality:LessonsfromaCapsule-BasedSystem.
Proc.
ACMSymp.
OperatingSystemPrinciplesSOSP-17(LiawahIsland,SC).
NewYork:ACM.

10gbiz:香港/洛杉矶CN2直连线路VPS四折优惠,直连香港/香港/洛杉矶CN2四折

10gbiz怎么样?10gbiz在本站也多次分享过,是一家成立于2020的国人主机商家,主要销售VPS和独立服务器,机房目前有中国香港和美国洛杉矶、硅谷等地,线路都非常不错,香港为三网直连,电信走CN2,洛杉矶线路为三网回程CN2 GIA,10gbiz商家七月连续推出各种优惠活动,除了延续之前的VPS产品4折优惠,目前增加了美国硅谷独立服务器首月半价的活动,有需要的朋友可以看看。10gbiz优惠码...

vpsdime:VPS内存/2核/VPS,4G内存/2核/50gSSD/2T流量/达拉斯机房达拉斯机房,新产品系列-Windows VPS

vpsdime上了新产品系列-Windows VPS,配置依旧很高但是价格依旧是走低端线路。或许vpsdime的母公司Nodisto IT想把核心产品集中到vpsdime上吧,当然这只是站长个人的猜测,毕竟winity.io也是专业卖Windows vps的,而且也是他们自己的品牌。vpsdime是一家新上来不久的奇葩VPS提供商,实际是和backupspy以及crowncloud等都是同一家公司...

牦牛云(3.5USD/月 )阿里云国际版云服务器 1核1G40G

收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...

wisediskcleaner为你推荐
permissiondeniedpermission denied是什么意思啊?newworldtheworld中文是什么意思安徽汽车网安徽汽车票查询巨星prince去世有几位好莱坞巨星死在2016年百度关键词价格查询百度推广关键词怎么扣费?原代码源代码是什么意思啊巫正刚想在淘宝开一个类似于耐克、阿迪之类的店、需要多少钱、如何能够代理百度关键词分析如何正确分析关键词?同一服务器网站一个服务器放多个网站怎么设置?www.vtigu.com初三了,为什么考试的数学题都那么难,我最多也就135,最后一道选择,填空啊根本没法做,最后几道大题倒
网游服务器租用 网页空间租用 lamp 英文简历模板word 光棍节日志 万网优惠券 网页背景图片 河南服务器 godaddy域名证书 有益网络 怎么测试下载速度 工信部icp备案号 免费申请个人网站 电信虚拟主机 购买国外空间 域名与空间 dnspod 国外的代理服务器 全能空间 西安主机 更多