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.

GigsGigsCloud(年付26美元)国际线路美国VPS主机

已经有一段时间没有听到Gigsgigscloud服务商的信息,这不今天看到商家有新增一款国际版线路的美国VPS主机,年付也是比较便宜的只需要26美元。线路上是接入Cogentco、NTT、AN2YIX以及其他亚洲Peering。这款方案的VPS主机默认的配置是1Gbps带宽,比较神奇的需要等待手工人工开通激活,不是立即开通的。我们看看这款服务器在哪里选择看到套餐。内存CPUSSD流量价格购买地址1...

CYUN专注海外精品服务器资源 国庆钜惠 最低5折起 限量促销

国庆钜惠 最低5折起 限量促销CYUN专注海外精品服务器资源,主营香港CN2 GIA、美国CERA、美国高防服务器资源,实体公司,ISP/IDC资质齐全,客服配备齐全。本次针对国庆推出非常给力的促销活动,旗下所有平台同享,新老客户同享,限时限量,售完截止。活动截止时间:2021年10月9日官网地址:www.cyun.net参与机型:香港CN2 GIA云服务器、香港双程CN2云服...

青云互联:洛杉矶CN2弹性云限时七折,Cera机房三网CN2gia回程,13.3元/月起

青云互联怎么样?青云互联是一家成立于2020年6月份的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。目前,美国洛杉矶cn2弹性云限时七折,美国cera机房三网CN2gia回程 13.3元/月起,可选Windows/可自定义配置。点击进入:青云互联官网青云互联优惠码:七折优惠码:dVRKp2tP (续...

wisediskcleaner为你推荐
摩根币摩根币到底是什么是不是骗局funnymudpee京东的显卡什么时候能降回正常价格啊,想买个10607788k.com以前有个网站是7788MP3.com后来改成KK130现在又改网站域名了。有知道现在是什么域名么?8090lu.com8090向前冲电影 8090向前冲清晰版 8090向前冲在线观看 8090向前冲播放 8090向前冲视频下载地址??ip查询器怎么样查看自己电脑上的IP地址javbibinobibi的中文意思是?99nets.com制作网络虚拟证件的网站 那里有呀?www.idanmu.com新开奇迹SF|再创发布网|奇迹SF|奇迹mu|网通奇迹|电信奇迹|bk乐乐bk乐乐和CK是什么关系?175qq.com查询QQ登录地址
php网站空间 美国vps评测 香港加速器 windows主机 jsp主机 全能主机 hnyd 免空 大容量存储器 刀片式服务器 泉州电信 傲盾官网 Updog 银盘服务 石家庄服务器托管 114dns 广东主机托管 云服务是什么意思 大化网 电脑显示屏不亮但是主机已开机 更多