ebook img

Bachelor Thesis Andreas Rempel PDF

107 Pages·2016·4.95 MB·English
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 Bachelor Thesis Andreas Rempel

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:
Extended Methodology for the Migration Scenario RDBMS to NoSQL 32 Nowadays there are several graph DBs available, we will broach Neo4J5 since it is widely .. This subsection describes briefly the work of Guo [Guo13] in witch he NoSQL Distilled: a Brief Guide to the Emerging World.
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.