InstituteofArchitectureofApplicationSystems UniversityofStuttgart Universitätsstraße38 D-70569Stuttgart BachelorThesisNo. 171 Integration and Extension of a Cloud Data Migration Support Tool AndreasRempel CourseofStudy: SoftwareEngineering Examiner: Prof. Dr. Dr. h. c. FrankLeymann Supervisors: SteveStrauch Dr. VasiliosAndrikopoulos Commenced: September18,2014 Completed: May20,2016 CR-Classification: C.2.4,D.2.5,D.2.7,D.2.12,H.2.4 Abstract SincethegrowthofCloudcomputing,thedesiretousethisnovelcomputingapproachhas increased. ItisnotnecessarytoredevelopanexistingapplicationtotargettheCloudandben- efitfromitsadvantages. Sometimes,itisevenmoresensibletomigrateexistingapplications runninginastaticenvironment. Sincemanyofthoseapplicationhavestrictlayers,where noteachlayermightbenefitfromanelastichostingenvironment,itissometimessufficient tomigrateonlyindividuallayers. Tocoverasmanyusecasesaspossible,broadconvertible scenarios,notuncommonlygoingbeyondproprietaryapproaches,mustbeoffered. Becausea migrationprocessisstillaprettycomplexmatter,itisconvenienttohaveaguidedconversion tocoverallrequirementsandachievethedesirableresult. ThisbachelorthesisfocusesonaspectsofmigratingdatatotheCloudbyusingapreviously developedprototypeofaCloudDataMigrationSupportTool. Particularly,theintegrationof alreadyexistingmodificationsandevaluationsofthistool,whichwerealreadydeveloped independently,intoonestableprototypewererequired. Afurtherobjectiveofthisthesisisto gainplatformindependencebyextendingtheprototypebyaplug-inmechanismtoallow theuseofnativeJavaDataBaseConnectivity(JDBC)driversforexportingdatafromexisting storagesourcesandsubsequentlyimportingthisdataintoatargetdataenvironment,whose types may differ from the types of the source data environment. Furthermore, applying provenconceptsonarchitectureanddesignarepartofthisworkaswell. Contents 1. Introduction 1 1.1. MotivatingScenario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. ProblemStatementandScope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3. DefinitionsandConventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.1. Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4. Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Fundamentals 9 2.1. CloudComputing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2. DifferencesofDatabases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1. RelationalDatabases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2. ObjectRelationalDatabases . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.3. Column-FamilyStores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.4. DocumentDatabases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.5. Key-ValueStores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.6. GraphDatabases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3. DataMigration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.1. Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.2. MigrationToolandMethodology-Bachmann . . . . . . . . . . . . . . 19 2.4. SoftwareIntegrationStrategies . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.1. Bottom-upIntegration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4.2. TopDownIntegration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4.3. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.5. JavaExtensionMechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.1. ClassLoading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5.2. ExtensionLoading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3. RelatedWork 31 3.1. PreviousResults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1.1. MigrationScenario: RDBMStoNoSQL . . . . . . . . . . . . . . . . . . 31 3.1.2. EvaluationofMethodologyforDBLMigration: Industry . . . . . . . . 32 3.1.3. EvaluationofMethodologyforDBLMigration: eScience . . . . . . . . 34 3.1.4. PositioningandDistinguishes . . . . . . . . . . . . . . . . . . . . . . . 35 3.2. Multi-tenantOpen-SourceEnterpriseServiceBus . . . . . . . . . . . . . . . . 35 4. ConceptandSpecification 37 4.1. IntegrationandAdaption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.1. Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 iii Contents 4.1.2. FunctionalRequirements . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2. Add-onExtensionMechanism. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2.1. AddAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.2. DeleteAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.3. AssignAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.4. DismissAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3. Non-FunctionalRequirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.1. Extensability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.2. Usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.3. Reuseability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.4. Integratability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.5. Maintainability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.6. BackwardCompatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.7. Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.8. Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5. Design 49 5.1. Adaptations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1.1. PresentationLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1.2. Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.2. ExtensionMechanismArchitecturalOverview . . . . . . . . . . . . . . . . . . 53 5.2.1. ArchitectureoftheExtensionMechanism . . . . . . . . . . . . . . . . . 53 5.2.2. DBSchemaExtension . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6. Implementation 57 6.1. ImplementationoftheIntegration . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1.1. ToolsandLibrariesUsedforIntegration . . . . . . . . . . . . . . . . . . 57 6.1.2. IntegrationStrategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.2. MigrationandReconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.2.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.2.2. ExtendedToolset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.2.3. BuildCycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.2.4. Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.3. AdaptationofMigratedProject . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3.1. Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.3.2. UserControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.4. ExtensionofCDMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.4.1. Web-UINavigationControls . . . . . . . . . . . . . . . . . . . . . . . . 67 6.4.2. Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.4.3. AdapterOverviewPage . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.4.4. NewAdapterPage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.4.5. ApprovalofImplementationandIntegration . . . . . . . . . . . . . . . 74 6.5. ExemplaryAdapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.5.1. MySQLSourceAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5.2. PostgreSQLTargetAdapter . . . . . . . . . . . . . . . . . . . . . . . . . 75 iv Contents 7. Validation 77 7.1. ToolandServices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.2. TestData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.3. TestCases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3.1. UseCaseBased . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.3.2. BasedonPreviousResults . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.4. ValidationResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.4.1. OutcomeofUseCaseBasedTests . . . . . . . . . . . . . . . . . . . . . 81 7.4.2. OutcomeofTestsBasedonPreviousResults . . . . . . . . . . . . . . . 82 8. ConclusionandFutureWork 83 A. Interfaces 85 A.1. SourceAdapterInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 A.2. TargetAdapterInterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Bibliography 89 v Contents vi List of Figures 2.1. RelationalDatabaseSchema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2. ORDBDataModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3. CassandraDataModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4. MongoDBDataModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5. Key-ValueStoreDataModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6. GraphDataModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.7. SystemComponentDiagramandLayerDiagramofCDMT . . . . . . . . . . . 20 2.8. MethodologyforDataMigration . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.9. IsolatedModulesBottom-upTest . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.10. IsolatedComponentsBottom-upTest . . . . . . . . . . . . . . . . . . . . . . . 23 2.11. OverallSystemTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.12. TestingHighestInvokingModule . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.13. TestingComponents’HighestInvokingModule . . . . . . . . . . . . . . . . . 26 2.14. JREClassLoaderHierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.15. SchematicFunctionalityofaClassLoader . . . . . . . . . . . . . . . . . . . . . 28 3.1. ExtendedMethodologyfortheMigrationScenarioRDBMStoNoSQL . . . . 32 3.2. MethodologyofAWSandBachmannCombined . . . . . . . . . . . . . . . . . 34 3.3. ArchitectureofanESBInstance . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.1. UseCasesOverview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.1. ComponentConnectionofthePresentationLayer . . . . . . . . . . . . . . . . 50 5.2. WorkflowfortheDecisionSupport . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3. Add-onMechanismOverview . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4. SnippedofExtendedDBSchema . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.1. StructureofDeployedSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.2. InitiativeViewAfterCreatinganewProject . . . . . . . . . . . . . . . . . . . . 65 6.3. MessageExchangeSchema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 6.4. WelcomePage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.5. NavigationConceptofCDMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6.6. DashboardofCDMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.7. AdaptersOverview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.8. AvailableActions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.9. PageforAddinganewAdapter. . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.10. FileUploadAreainDetail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.1. CrowfootDiagramoftheTestDB . . . . . . . . . . . . . . . . . . . . . . . . . . 79 vii ListofFigures viii
Description: