• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
2013.05 - IASSIST 2013 - 2
 

2013.05 - IASSIST 2013 - 2

on

  • 260 views

 

Statistics

Views

Total Views
260
Views on SlideShare
260
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    2013.05 - IASSIST 2013 - 2 2013.05 - IASSIST 2013 - 2 Presentation Transcript

    • A Technical Perspective on Use-Case-Driven Challengesfor Software Architecturesto Document Study and Variable InformationIASSIST 201329.05.2013Matthäus ZlochGESIS, Germanymatthaeus.zloch@gesis.orgThomas BoschGESIS, Germanythomas.bosch@gesis.orgboschthomas@blogspot.comDennis WegenerGESIS, Germanydennis.wegener@gesis.org1
    • Outline• What has already been said• Challenges for MISSY Software Developers• MISSY Software Architecture• Implementation of DISCO• Persistence Strategies2
    • Thomas Presentation• General information about MISSY• Next generation MISSY• Software architecture overview• Presentation layer and MISSY use cases• Business logic• data model• DDI-RDF Discovery Vocabulary
    • CHALLENGES ANDREQUIREMENTSMISSY for Software Developers4
    • Requirements to Software Developers• Focus lies on software reusability• must be stable and reliable• API must be clean and easy to extend• Flexible Web Application Framework and modern architecture• Service-oriented• Use of Semantic Web technologies• Complex data model to represent use-cases (seen in previouspresentation)5
    • Requirements to Software Developers• Define and implement a common data model and• Different Persistence Strategies• Creation of an abstract framework and architecture• Should be well designed to be able to be extended and reusable• Available as open source software• Independent of end-user system6
    • SOFTWARE ARCHITECTUREDesign Goals for the MISSY7
    • Software Architecture – Design Goals• Separation of• Model, i.e. concepts and real life objects, that represents the use case• (Physical) Storage mechanisms• Logic that controls and provides services to manipulate the data• The representation of information itself• The key is to have logically separated parts, where peoplemight work independently but collaboratively• Creation of a reusable and extendable abstract API8
    • Software Architecture• State-of-the-art technologies to develop software• Multitier architecture• Model-View-Controller (MVC-Pattern)• Maven Projects + Modules• Multitier architecture separates the project into logical parts• Presentation, application processing, data, persistence, …9
    • 10
    • MVC – Interactions11ModelViewControllermanipulatesaccessescontrols
    • View Technologies12…ModelViewControllermanipulatesaccessescontrols
    • Data Model13…ModelViewControllermanipulatesaccessescontrols
    • Missy Technologies14ModelViewControllermanipulatesaccessescontrols
    • THE DATA MODELImplementation of15
    • Data Model• DDI-RDF Discovery Vocabulary DISCO• designed for the discovery use-case• provides object types, properties and data type properties designedfor discovery use-case• We use DISCO as the internal data model• Implemented in Java• Maps all object properties available• Subclass relationships through Java native inheritance16
    • 17
    • Extendible Data Model• DISCO does not cover all use cases• Projects may have individual needs• DISCO-model objects may be extended18DISCO-ModelYour Project-Model
    • Extendible Data Model• DISCO does not cover all use cases• Projects may have individual needs• DISCO-model objects may be extended19Provide thisas an API!!DISCO-ModelYour Project-Model
    • 20
    • 21disco-model api
    • 22disco-model apiproject-model (api)
    • Multilevel-Model23disco-model apiproject1-modelgesis-model apiproject2-model
    • PERSISTENCE STRATEGIESData is stored via24
    • Persistence-Layer – Strategies• The application itself does not need to know how thedata is (physically) stored• Methods are provided to access and store objects throughdata access objects• Actual implementation is “hidden” to the upper layers• A strategy is an implementation of the actual type ofpersistence or physical storage, respectively• e.g. DDI-L-XML, DDI-RDF, XML-DB, Relational-DB, etc.25
    • Persistence-Layer – Strategies• The application itself does not need to know how thedata is (physically) stored• Methods are provided to access and store objects throughdata access objects• Actual implementation is “hidden” to the upper layers• A strategy is an implementation of the actual type ofpersistence or physical storage, respectively• e.g. DDI-L-XML, DDI-RDF, XML-DB, Relational-DB, etc.26disco-persistence api
    • Persistence-Layer – Strategies• The application itself does not need to know how thedata is (physically) stored• Methods are provided to access and store objects throughdata access objects• Actual implementation is “hidden” to the upper layers• A strategy is an implementation of the actual type ofpersistence or physical storage, respectively• e.g. DDI-L-XML, DDI-RDF, XML-DB, Relational-DB, etc.• Due to performance:27disco-persistence apidisco-persistence relational
    • Persistence-Layer – Strategies / Modules• disco-persistence-api• Defines persistence functionality for model components regardless of theactual type of physical persistence• disco-persistence-relational• Implements the persistence functionality defined in disco-persistence-apiwith respect to the usage of relational DBs• disco-persistence-xml• Implements the persistence functionality defined in disco-persistence-apiwith respect to the usage of DDI-XML• disco-persistence-rdf• Implements the persistence functionality defined in disco-persistence-apiwith respect to the usage of the disco-specification28
    • Persistence-Layer – Strategies / Modules• disco-persistence-api• Defines persistence functionality for model components regardless of theactual type of physical persistence• disco-persistence-relational• Implements the persistence functionality defined in disco-persistence-apiwith respect to the usage of relational DBs• disco-persistence-xml• Implements the persistence functionality defined in disco-persistence-apiwith respect to the usage of DDI-XML• disco-persistence-rdf• Implements the persistence functionality defined in disco-persistence-apiwith respect to the usage of the disco-specification29
    • 30
    • 31JPA-Annotations
    • 32JPA-Annotationsdisco-persistence-apimissy-persistence-api
    • Hibernate Example33
    • Inheritance of Properties34from DDI-Identifiable
    • 35Inheritance of Propertiesfrom disco-api
    • Declaration of own Properties36project-model
    • Missy Project API – Modules37persistencebusinesspresentation missy-editor-webmissy-editor-core disco-modeldisco-persistence-apidisco-persistence-relationalmissy-modelmissy-persistence-apimissy-persistence-relational
    • 38
    • Thank you for your attention39Matthäus ZlochTeam ArchitectureGESIS, Germanymatthaeus.zloch@gesis.orgThe Missy Projecthttp://github.com/missy-project