ddi & model-view-controller: an architectural perspective

10
DDI & Model-View-Controller: An Architectural Perspective Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl, 23.10.2012

Upload: hunter-everett

Post on 30-Dec-2015

20 views

Category:

Documents


0 download

DESCRIPTION

DDI & Model-View-Controller: An Architectural Perspective. Dennis Wegener , Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl , 23.10.2012. Overview Architecture Missy/ StarDat. Presentation. MVC. Business Logic. Abstract Persistence. Persistence. Software Management - Maven & GIT. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DDI & Model-View-Controller:  An  Architectural Perspective

DDI & Model-View-Controller: An Architectural Perspective

Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS)

Dagstuhl, 23.10.2012

Page 2: DDI & Model-View-Controller:  An  Architectural Perspective

Page 2

Overview Architecture Missy/StarDat

Presentation

Business Logic

Abstract Persistence

MVC

Persistence

Page 3: DDI & Model-View-Controller:  An  Architectural Perspective

Software Management - Maven & GIT

• Apache Maven– software project management and comprehension tool

• Maven Modules for data modelling in our projects:– Abstract module for DDI (based on DDI ontology)– Concrete modules for each project that

• Inherit from abstract ddi module• Add project-specific data fields

• Sharing via VersionControlSystem– Project sources in internal VCS (GESIS-SVN)– Data Module shared externally (GIT)

• https://github.com/missy-project/ddi-model

DDI model

DDI model + Missy

Extensions

DDI model + StarDat

Extensions

Page 4: DDI & Model-View-Controller:  An  Architectural Perspective

Missy Maven Structure

Page 5: DDI & Model-View-Controller:  An  Architectural Perspective

Data model & presentation - MVC

• MVC design pattern• Model

– Domain classes– Attributes– Relations

• View– Representation– JSP, Velocity, XML, JSON, …

• Controller– Commands– RESTful interface

Page 6: DDI & Model-View-Controller:  An  Architectural Perspective

RESTful interface

• Well-defined interface based on HTTP– With few basic methods: GET, POST, PUT, DELETE– Response codes (e.g. 200 OK, 404 Not Found)– Data supported described by MIME types (e.g. text/xml,

application/json)

• Resources are identified using URIs– Collection URI (like http://missy.org/studies)– Element URI (like http://missy.org/studies/studyZA1000)

• Resources could map to domain classes / entities of the DDI ontology

Page 7: DDI & Model-View-Controller:  An  Architectural Perspective

Data model & persistance – API

• Once you have the model you can…– Generate views / user interfaces– Generate storage model (in RDB via hibernate)

• Abstract persistance API– To be published …

• Concrete Implementations– Relational DB– DDI XML files– …

Page 8: DDI & Model-View-Controller:  An  Architectural Perspective

Missy Example

• Question:– DDI Ontology: class Question,

fields like dcterms_identifier, …, field question text

• Variable:– DDI Ontology: class Variable,

fields like dcterms_identifier,…– Missy: inherits class Variable,

adds fields variable name, variable label, classification, …

• Relation: – Variable * hasQuestion 1 Question– Defined at level of DDI Ontology

Page 9: DDI & Model-View-Controller:  An  Architectural Perspective

Page 9

Missy Extension

DDI Ontology

Page 10: DDI & Model-View-Controller:  An  Architectural Perspective

Key Messages & Questions

• DDI model implemented as abstract data model in OO programming language

– According to MVC - domain classes with attributes & relations– Do we need a standard REST interface?

• DDI model not directly based on XML representation– „Data model vs. Data format“– Export mechanisms for XML based representation

• DDI model integrated into project‘s architectures – Does it make sense to create a reference architecture?

• Reuse of software modules is possible– We already share modules/code between internal projects Missy & StarDat– Is anyone else interested in sharing?