Table Of ContentInstituteofArchitectureofApplicationSystems
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.