ebook img

Flexible Heterogeneous Software Systems - CWI Amsterdam | Research PDF

192 Pages·2006·1.62 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Flexible Heterogeneous Software Systems - CWI Amsterdam | Research

Flexible Heterogeneous Software Systems ACADEMISCH PROEFSCHRIFT ter verkrijging van de graad van doctor aan de Universiteit van Amsterdam op gezag van de Rector Magnificus prof. mr. P.F. van der Heijden ten overstaan van een door het college voor promoties ingestelde commissie, in het openbaar te verdedigen in de Aula der Universiteit op donderdag 1 februari 2007, te 10.00 uur door Hayco Alexander de Jong geboren te Zaandam Promotor: prof. dr. P.Klint Co-promotor: prof. dr. M.G.J.vandenBrand Faculteit: Natuurwetenschappen,WiskundeenInformatica The work in this thesis has been carried out at Centrum voor Wiskunde en Informa- tica(CWI)inAmsterdamundertheauspicesoftheresearchschoolIPA(Institutefor ProgrammingresearchandAlgorithmics). Acknowledgements FirstofallIwouldliketothankPaulKlintforhisconstructiveandinspiringmen- torship. Youwerealwaystheretodiscussanyresearchideas,andhelpedme(re-)focus whenIgotlostinmyowntrainofthoughts,withoutevergivingmethefeelingIwas forced to see things your way. Thank you for giving me both the guidance and the freedomIneededtocompletethisthesis! Next I thank Mark van den Brand who, through his own perseverance, motivated metogoonattimeswhenIwasreadytopulltheplug. Yourongoingdesiretoextend andimprovetheMeta-Environmentultimatelysparkedmyideasforthecurrentplug-in architecture. Also, youandyourwifeJose´ madethebestkinderboerderijstewIever had! ;-) Iwouldliketothankthemembersofthereadingcommitteeforreadingthisthesis andforprovidingvaluable feedback: prof. dr. UweAßmann, prof. dr. JanBergstra, prof. dr. MartinKersten,prof. dr. ir. KoosRooda,prof. dr. HansvanVliet. ManythanksalsotoAlbertHofkampforthoroughlyreadingmythesis,andgiving mevaluablefeedback. MyfriendshipwithPieterOlivierhasgrownduringmythesisyearsinmanyways. In a professional way, together with Maud Olivier-Weddepohl, we are now real busi- nesspartners. ButIalsoenjoyedallthesocialthingsweshared,suchasourinterestin gamingandhiking. Forthecompletionofthisthesiswehavesharedmanymotivating talks while exploring and enjoying the wonderful Veluwe at the same time. Thanks for all your support so far, and may our way of life and view on matters remain as compatibleformanyyearstocome,astheyarenow! HadInotmetTaekeKooikeratCWI,thecomputerIusedtowritethisthesiswould have been another MyCom product. Instead, I now know exactly how to build (and have built) my own computer from various hardware components. Not only have we spentmanyhoursworkingtogetheronSEN1software,wealsosharedmanyexciting discussionsonothertopics,allofwhichIreallyenjoyed,andwhichhaveenrichedmy life. In the past six years at CWI, many people have at some point been part of the SEN1 research group. They have all contributed in one way or another to my thesis. Discussionsinthehallway,sharingresearchviewsoverlunch,havingcakeandcoffee together, (re-)using each others software. The open and harmonious way we worked togetherinSEN1,withampleroomforconstructivecriticism,hasalwaysinspiredand motivatedmeverymuch. iii Finally,Iwanttothankallthepeoplewhoarenotdirectlyrelatedtothemakingof thisthesis,butwhohaveenduredmyantics,whohadtoputupwithmybadmoods,had theirfriendshipstemporarilysuspendedwhileIwrestledwithmyself,andforenduring otherHaycoisms.IwanttothankmyMomforherunfailingsupportduringthesethesis years,andmyclosefriendsEggievanBuiten,Jean-PierreNibbelink,MaudWeddepohl (err,Olivier),RubenLaane,andMeriamNibbelinkforbeingtherewhenIneededthem —eachintheirownway. Thanks! iv Contents I Overview 1 1 Introduction 3 1.1 Softwarere-use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1 SoftwareArchitecture . . . . . . . . . . . . . . . . . . . . . 4 1.1.2 Component-basedsoftwareengineering . . . . . . . . . . . . 6 1.1.3 Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.4 SoftwareProductlines . . . . . . . . . . . . . . . . . . . . . 7 1.1.5 Variability. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2 TheDecouplingParadox . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.1 TheUNIXpipeline . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.2 TheToolBuscoordinationarchitecture . . . . . . . . . . . . . 11 1.3 ResearchContext . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 ResearchQuestions . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 RelatedWork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.6 OutlineandOriginoftheChapters . . . . . . . . . . . . . . . . . . . 14 1.7 AbouttheImplementations . . . . . . . . . . . . . . . . . . . . . . . 15 II StructuringComponentData 17 2 ATerms 19 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 ATermsataGlance . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.1 TheATermDataType . . . . . . . . . . . . . . . . . . . . . 20 2.2.2 OperationsonATerms . . . . . . . . . . . . . . . . . . . . . 22 2.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.2 MaximalSharing . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.3 GarbageCollection . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.4 TermEncoding . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.5 ATermExchange: theBinaryATermFormat . . . . . . . . . 31 v 2.4 PerformanceMeasurements. . . . . . . . . . . . . . . . . . . . . . . 33 2.4.1 Benchmarks. . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.4.2 Measurements . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4.3 SummaryofMeasurements . . . . . . . . . . . . . . . . . . 39 2.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.5.1 RepresentingSyntaxTrees: AsFixandCasFix . . . . . . . . 39 2.5.2 ASF+SDFMeta-Environment . . . . . . . . . . . . . . . . . 41 2.5.3 ASF+SDFtoCcompiler . . . . . . . . . . . . . . . . . . . . 42 2.5.4 OtherApplications . . . . . . . . . . . . . . . . . . . . . . . 42 2.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.6.1 RelatedWork . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.6.2 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.6.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3 GenerationofAbstractProgrammingInterfacesfromSyntaxDefinitions 47 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.1.1 RelatedWork . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.1.2 ASF+SDFinanutshell . . . . . . . . . . . . . . . . . . . . . 51 3.1.3 AnnotatedTerms: theATermsyntax . . . . . . . . . . . . . . 53 3.1.4 ASF+SDFParseTreesforDummies: AsFixexplained . . . . 53 3.2 AccessingATermDataTypes . . . . . . . . . . . . . . . . . . . . . . 55 3.2.1 AccessingATermsusingtheLevelOneinterface . . . . . . . 55 3.2.2 AccessingATermsusingtheLevelTwointerface . . . . . . . 56 3.2.3 AccessingAsFixparsetrees . . . . . . . . . . . . . . . . . . 57 3.2.4 Maintenanceissues . . . . . . . . . . . . . . . . . . . . . . . 58 3.3 FromsyntaxtoAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.3.1 DerivingtheADTfromaSDFspecification . . . . . . . . . . 61 3.4 CodegenerationfromADTtoC . . . . . . . . . . . . . . . . . . . . 62 3.4.1 Generatedtypesandfunctions . . . . . . . . . . . . . . . . . 62 3.4.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.5 SoftwareengineeringbenefitsintheMeta-Environment . . . . . . . . 67 3.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.7 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.8 Futurework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 III StructuringComponentInteraction 71 4 ToolBus: theNextGeneration 73 4.1 GenericLanguageTechnology . . . . . . . . . . . . . . . . . . . . . 73 4.1.1 OneRealization: theASF+SDFMeta-Environment . . . . . . 73 4.1.2 TowardsaComponentBasedArchitecture . . . . . . . . . . . 74 4.1.3 PlanofthisChapter. . . . . . . . . . . . . . . . . . . . . . . 75 4.2 TheToolBusArchitecture. . . . . . . . . . . . . . . . . . . . . . . . 75 4.3 AnExample: theAddressBookService . . . . . . . . . . . . . . . . 76 4.3.1 ToolBusProcessesfortheAddressBookService . . . . . . . 79 vi 4.3.2 ToolBusProcessfortheUserInterface. . . . . . . . . . . . . 81 4.4 ApplicationtotheASF+SDFMeta-Environment . . . . . . . . . . . 82 4.5 IssuesinaNext-GenerationToolBus . . . . . . . . . . . . . . . . . . 84 4.5.1 UndisciplinedMessagePatterns . . . . . . . . . . . . . . . . 84 4.5.2 ExceptionHandling . . . . . . . . . . . . . . . . . . . . . . 86 4.5.3 Call-By-ValueVersusCall-By-Reference . . . . . . . . . . . 87 4.5.4 RelatedFrameworks: JavaRMI,RMI-IIOPandJavaIDL. . . 88 4.6 CurrentStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.7 ConcludingRemarks . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5 MyFavoriteEditorAnywhere 95 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1.2 Relatedwork . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.2 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.2.1 Requirementsandconsiderations . . . . . . . . . . . . . . . 97 5.2.2 Editor-independentdesign . . . . . . . . . . . . . . . . . . . 98 5.2.3 Editor-specificdesign. . . . . . . . . . . . . . . . . . . . . . 98 5.2.4 Executionmodels . . . . . . . . . . . . . . . . . . . . . . . . 99 5.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.3.1 EditorMultiplexer . . . . . . . . . . . . . . . . . . . . . . . 99 5.3.2 EditorConnectors . . . . . . . . . . . . . . . . . . . . . . . 100 5.3.3 Glueingitalltogether . . . . . . . . . . . . . . . . . . . . . 102 5.4 DiscussionandFuturework . . . . . . . . . . . . . . . . . . . . . . 103 6 SoftwareSystemExtensibility 105 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6.1.1 ResearchContext . . . . . . . . . . . . . . . . . . . . . . . . 106 6.1.2 ResearchQuestions . . . . . . . . . . . . . . . . . . . . . . . 107 6.1.3 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.2 TheMozillaSoftwareSuite . . . . . . . . . . . . . . . . . . . . . . . 108 6.2.1 MozillaThemes . . . . . . . . . . . . . . . . . . . . . . . . 108 6.2.2 MozillaPlug-ins . . . . . . . . . . . . . . . . . . . . . . . . 108 6.2.3 MozillaExtensions . . . . . . . . . . . . . . . . . . . . . . . 109 6.2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.3 TheEclipseplatform . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.3.1 Extensionparticipantsandroles . . . . . . . . . . . . . . . . 110 6.3.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.3.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.4 TheJavaPlug-inFramework . . . . . . . . . . . . . . . . . . . . . . 114 6.4.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.5 Winamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.5.1 WinampThemes . . . . . . . . . . . . . . . . . . . . . . . . 115 6.5.2 WinampPlug-ins . . . . . . . . . . . . . . . . . . . . . . . . 115 6.5.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.6 ExtensionMechanismComparison . . . . . . . . . . . . . . . . . . . 116 vii 6.6.1 Decoration . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6.6.2 Delegation . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6.6.3 Mediation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6.6.4 Adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.7 APlug-inArchitecturefortheMeta-Environment . . . . . . . . . . . 118 6.7.1 ExtensionmechanismsintheMeta-Environment . . . . . . . 119 6.7.2 TheBasicGUIFramework . . . . . . . . . . . . . . . . . . . 120 6.7.3 Example: simpleclock . . . . . . . . . . . . . . . . . . . . . 123 6.7.4 Extension: Allowingcommunicationtoaplug-in . . . . . . . 123 6.7.5 Extension: Allowingcommunicationfromaplug-in . . . . . 124 6.7.6 Extension: Allowinginter-plug-incommunication . . . . . . 125 6.8 Currentplug-insintheMeta-Environment . . . . . . . . . . . . . . . 126 6.8.1 Someplug-instatistics . . . . . . . . . . . . . . . . . . . . . 131 6.8.2 TheERRORplug-ininterface . . . . . . . . . . . . . . . . . . 131 6.8.3 Plug-ininteractionintheMeta-Environment . . . . . . . . . 133 6.9 SummaryandConclusions . . . . . . . . . . . . . . . . . . . . . . . 137 6.9.1 Plug-inTechniques . . . . . . . . . . . . . . . . . . . . . . . 137 6.9.2 Plug-ininteraction . . . . . . . . . . . . . . . . . . . . . . . 138 6.9.3 TheToolBusinaPlug-inFramework . . . . . . . . . . . . . 138 6.9.4 ImpactontheASF+SDFMeta-Environment . . . . . . . . . 138 6.9.5 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . 140 IV Conclusion 141 7 Conclusions 143 7.1 Spaceefficient,type-safedataexchange . . . . . . . . . . . . . . . . 143 7.2 BuildinganIDEusingacoordinationarchitecture . . . . . . . . . . . 144 7.2.1 ComponentcoordinationtechniquesforanIDE . . . . . . . . 144 7.2.2 Usingoff-the-shelfcomponentsinarobustway . . . . . . . . 145 7.2.3 AcentralGUIfordecoupledcomponents . . . . . . . . . . . 145 7.2.4 ApplicabilityConsiderations . . . . . . . . . . . . . . . . . . 146 7.3 FutureWork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 7.3.1 Applicationwidetype-safety . . . . . . . . . . . . . . . . . . 146 7.3.2 AboutToolBusandplug-ins . . . . . . . . . . . . . . . . . . 150 A SyntaxandInterfaceofATerms 153 A.1 ConcreteSyntaxofATerms . . . . . . . . . . . . . . . . . . . . . . . 153 A.1.1 ATerms.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 A.1.2 IntCon.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 A.1.3 RealCon.sdf. . . . . . . . . . . . . . . . . . . . . . . . . . . 154 A.1.4 StrCon.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 A.1.5 IdentifierCon.sdf . . . . . . . . . . . . . . . . . . . . . . . . 154 A.1.6 NatCon.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 A.1.7 Whitespace.sdf . . . . . . . . . . . . . . . . . . . . . . . . . 155 A.2 Level2interfaceforATerms . . . . . . . . . . . . . . . . . . . . . . 155 viii B 159 B.1 ConcreteSyntaxofAsFix. . . . . . . . . . . . . . . . . . . . . . . . 159 B.1.1 Parsetree.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.1.2 Tree.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 B.1.3 Annotations.sdf . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.1.4 Symbol.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 B.1.5 Attributes.sdf . . . . . . . . . . . . . . . . . . . . . . . . . . 161 B.2 Examplegenerateddictionaryfile . . . . . . . . . . . . . . . . . . . 162 ix x

Description:
ter verkrijging van de graad van doctor aan de Universiteit van Amsterdam software system extensibility patterns found in these systems, and relate them to our
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.