Designing Configuration Management Tools for Dynamically Composed
Total Page:16
File Type:pdf, Size:1020Kb
Designing Configuration Management Tools for Dynamically Composed Systems Bradley Robert Schmerl, B.Sc.(Hons) Thesis submitted for the degree of Doctor of Philosophy in The Flinders University of South Australia Department of Computer Science Faculty of Science and Engineering October 22, 1998 Table of Contents 1 Introduction 1 1.1Backgroundandmotivation......................... 1 1.2Researchmethodology............................ 3 1.3Contributionsofthethesis.......................... 4 1.4Outlineoftheremainderofthisdissertation................ 5 2 Dynamic composition 7 2.1Domainsinwhichdynamiccompositionoccurs............... 7 2.2Definingdynamiccomposition........................ 8 2.3Analysisofexistingmechanisms....................... 11 2.3.1 Environmentmechanisms......................... 11 2.3.2 Languagemechanisms........................... 19 2.3.3 Distributedsystems............................ 27 2.3.4 Somegeneralissues............................. 29 2.4Issues..................................... 31 3 Modelling dynamic composition 33 3.1Whatisconfigurationmanagement..................... 34 3.1.1 Classification................................ 36 3.1.2 Versioning.................................. 36 3.1.3 Validation.................................. 37 3.1.4 Composition................................ 38 3.2Currentsupportinlanguageandenvironmentmechanisms........ 38 3.2.1 DCDL–................................... 39 3.2.2 UsingDCDL–toexamineconfigurationmanagementissues...... 51 3.3Requiredconfigurationmanagementsupport................ 63 3.4Summary................................... 64 4 Modelling configuration management for dynamically composed systems 65 4.1Requirementsforamodelofconfigurationmanagement.......... 66 4.1.1 Additional requirements . ....................... 67 4.2Evaluatingpreviousconfigurationmanagementmodels.......... 69 4.2.1 Modelling configurations and versions .................. 69 4.2.2 Modelling validation ............................ 70 4.2.3 Modelling selection and composition ................... 72 4.2.4 Summary.................................. 73 4.3Jason–agenericmodelofconfigurationmanagement........... 74 4.4DCDL–Adynamicconfigurationdescriptionlanguage.......... 77 4.4.1 Classifyingconfigurationitems...................... 77 4.4.2 Validatingconfigurationitems....................... 84 4.4.3 Definingversionsofconfigurationitems................. 90 4.4.4 Validationinthepresenceofversions................... 95 4.4.5 Definingcomposition............................106 4.4.6 Combiningupdating,consistencyandselection.............113 4.5Conclusions..................................115 5 Using DCDL to design tool support 117 5.1Thedesignmethodology...........................117 5.2 Applying DCDL to tool design .......................118 5.2.1 ImplicationsofMRscomingfromTR1..................119 5.2.2 ImplicationsofMRscomingfromTR2..................122 5.2.3 ImplicationsofMRsrelatingtoTR4andTR5..............126 5.2.4 ImplicationsofMRscomingfromTR3..................128 5.2.5 Conclusions.................................130 5.3TooldesignoutsideDCDL’sdomain....................131 5.3.1 Interaction with traditional configuration management mechanisms . 131 5.3.2 Choosingthedomainofthetool.....................132 5.4Implementation................................133 5.4.1 Classescorrespondingtothealgebraicmodel..............133 5.4.2 ImplementingDCDLclasses........................134 5.4.3 Implicationsofchoosingthedomainofdynamiclinking.........135 5.4.4 ImplementingDCDLconstraints.....................138 5.4.5 Implementing version families .......................141 5.4.6 ImplementingaDCDL-basedtool.....................143 5.4.7 Notesonperformance...........................145 5.5Summary...................................149 6 Conclusions and Future Work 150 6.1Conclusions..................................150 6.2FutureWork.................................151 6.2.1 Specifictooldesignandimplementation.................151 6.2.2 Modelling other aspects of dynamic composition tools ..........152 6.2.3 Therelationshipwithstaticconfigurationmanagement.........152 6.3Concludingremarks.............................153 A The complete models of several dynamically composed systems 154 A.1 The model of dld ...............................154 A.2 The model of dynload ............................156 A.3 The model of db-Pascal ...........................157 A.4 The model of Napier .............................158 B Formal definitions of some of the concepts in Wiebe’s model 159 B.1Closuremaps.................................159 B.2Namespaces..................................160 B.3Variables....................................161 B.4Constraintformationandevaluation....................162 B.5Evaluatingconstraints............................163 C The syntax of DCDL 165 List of Figures 2.1Dynamicallycomposingdocumentsandprograms.............. 9 2.2Dynamiclinkingusingdld........................... 13 2.3DiagrammaticrepresentationoftheexampleinFigure2.2......... 14 2.4Dynamiclinkingusingdynload........................ 15 2.5DiagrammaticrepresentationoftheexampleinFigure2.4........ 16 2.6UpdatingprogramsusingPODUS...................... 18 2.7Dynamiclinkingusingdb-Pascal....................... 20 2.8DynamicallybindinganametoanimplementationinNapier88...... 21 2.9AssigningandchangingL-valuesinNapier.................. 22 2.10 Using the ClassLoader inJava......................... 23 2.11MultipleversionsinNapier88......................... 26 2.12DefiningmodulesinConic........................... 27 2.13JoiningmodulesinConic........................... 28 2.14RestructuringinDAS............................. 30 3.1Anexampleclassspecification........................ 41 3.2 Attaching a checked constraint to the class Document. .......... 43 3.3 Attaching a maintained constraint to Document............... 44 3.4 Defining a link operation for Document.................... 46 3.5 Overriding attributes in specialisations. ................... 50 3.6Provisionsindldanddynload......................... 53 3.7 Modelling db-Pascal components. ...................... 53 3.8 The link operationindldanddynload.................... 55 3.9Definingresourcesindld........................... 56 3.10Definingresourcesindynload......................... 57 3.11Resourceuniquenessinacomponent..................... 58 3.12 The link operationfordb-Pascal....................... 58 3.13 Objects after linking read database to relational rd.............. 59 3.14 Constraints in which terms may be undefined. ............ 60 3.15 Modelling quiescence in PODUS. ...................... 61 4.1Variouswaysofexpressingconsistency.................... 71 4.2ObjectsinJasonandtheiralgebraicdescription............... 75 4.3DefinitionofaconstraintinJason...................... 75 4.4 Defining version families and system templates in Jason. ......... 76 4.5ExpressingselectioninJason......................... 76 4.6AschemadefinitionforaBrowserapplication................ 78 4.7 The formalisation of the DCDL class Browser. ............... 83 4.8 An example of an algebra for Browser. ................... 83 4.9 An example viewers set for a hypothetical Browser object........ 85 4.10 The variable namespace for the maintain constraint in Figure 4.6. 89 4.11 Examples of specifying version families in DCDL. ............ 91 4.12 A group of Viewer objectsinaparticularΨ-state.............. 94 4.13Anexamplecontainingaversionfamily................... 96 4.14 Interpreting constraints with operators..................103 ⊕ 4.15 Interpreting for-all constraints........................104 4.16 Interpreting there-exists constraints.....................105 4.17Anexamplesystemmodelforabrowser...................107 4.18Beforeandafterapplyinganoperation....................112 4.19 A collection of Viewer objectsfromwhichtoselect.............113 4.20Updatingthebrowserwithanewpieceofdata...............114 5.1 The classes and name propagation for a configuration. ..........119 5.2Viewingasystemmodel............................121 5.3Aschemaspecialisation............................123 5.4Displayinginformationaboutconsistency..................125 5.5Somefamilydefinitions............................126 5.6 Presenting version families as part of the configuration. ..........127 5.7PossibleDCDLinteractionswiththesystemandtheuser.........129 5.8Updatingabrowsersystembyaddingadatacomponent..........130 5.9Interactingwiththerepository........................132 5.10ThepredefinedDCDLclasses.........................134 5.11ImplementingDCDLclassesinC++.....................135 5.12TheDCDLdefinitionsofthedomainspecificclasses............136 5.13Implementingdomainspecificclasses.....................137 5.14 The inheritance hierarchy for the example tool designed in Section 5.2. 137 5.15 The signature of the Equation class, and a corresponding specialisation. 138 5.16 Translating an equation handling families. .................139 5.17Thetranslationofamorecomplexconstraint................140 5.18 The Family class................................141 5.19 The SelectionThread class...........................142 5.20Evaluatingconstraints.............................143 5.21 An example of a constraint requiring tagging. ............144 5.22Thestepsinvolvedinselection........................145 5.23UsingRB3toevaluateincrementallyandnon-incrementally........147 5.24 Using the strategy in Section 5.4 for compiled, non-incremental code. 148 B.1 The namespace closure of Browser......................161 List of Tables 3.1ThebasetypesofDCDL–........................... 40 3.2Signaturesfortheoperators.........................