2012.10 - ddi lifecycle - moving forward - 3
TRANSCRIPT
DDI & Model-View-Controller:
An Architectural Perspective
Dennis Wegener, Matthäus
Zloch, Thomas Bosch (GESIS)Dagstuhl, 23.10.2012
Page 2
Overview Architecture Missy/StarDat
Presentation
Business Logic
Abstract Persistence
MVC
Persistence
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
Missy Maven Structure
Data model & presentation - MVC
• MVC design pattern
• Model – Domain classes
– Attributes
– Relations
• View– Representation
– JSP, Velocity, XML, JSON, …
• Controller– Commands
– RESTful interface
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 theDDI ontology
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
– …
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
Missy Extension
DDI Ontology
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?