A Technical Perspective on Use-Case-Driven Challengesfor Software Architecturesto Document Study and Variable InformationI...
Outline• What has already been said• Challenges for MISSY Software Developers• MISSY Software Architecture• Implementation...
Thomas Presentation• General information about MISSY• Next generation MISSY• Software architecture overview• Presentation ...
CHALLENGES ANDREQUIREMENTSMISSY for Software Developers4
Requirements to Software Developers• Focus lies on software reusability• must be stable and reliable• API must be clean an...
Requirements to Software Developers• Define and implement a common data model and• Different Persistence Strategies• Creat...
SOFTWARE ARCHITECTUREDesign Goals for the MISSY7
Software Architecture – Design Goals• Separation of• Model, i.e. concepts and real life objects, that represents the use c...
Software Architecture• State-of-the-art technologies to develop software• Multitier architecture• Model-View-Controller (M...
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...
17
Extendible Data Model• DISCO does not cover all use cases• Projects may have individual needs• DISCO-model objects may be ...
Extendible Data Model• DISCO does not cover all use cases• Projects may have individual needs• DISCO-model objects may be ...
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 a...
Persistence-Layer – Strategies• The application itself does not need to know how thedata is (physically) stored• Methods a...
Persistence-Layer – Strategies• The application itself does not need to know how thedata is (physically) stored• Methods a...
Persistence-Layer – Strategies / Modules• disco-persistence-api• Defines persistence functionality for model components re...
Persistence-Layer – Strategies / Modules• disco-persistence-api• Defines persistence functionality for model components re...
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-persistenc...
38
Thank you for your attention39Matthäus ZlochTeam ArchitectureGESIS, Germanymatthaeus.zloch@gesis.orgThe Missy Projecthttp:...
Upcoming SlideShare
Loading in...5
×

2013.05 - IASSIST 2013 - 2

114

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
114
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2013.05 - IASSIST 2013 - 2

  1. 1. 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
  2. 2. Outline• What has already been said• Challenges for MISSY Software Developers• MISSY Software Architecture• Implementation of DISCO• Persistence Strategies2
  3. 3. 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
  4. 4. CHALLENGES ANDREQUIREMENTSMISSY for Software Developers4
  5. 5. 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
  6. 6. 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
  7. 7. SOFTWARE ARCHITECTUREDesign Goals for the MISSY7
  8. 8. 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
  9. 9. 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. 10. 10
  11. 11. MVC – Interactions11ModelViewControllermanipulatesaccessescontrols
  12. 12. View Technologies12…ModelViewControllermanipulatesaccessescontrols
  13. 13. Data Model13…ModelViewControllermanipulatesaccessescontrols
  14. 14. Missy Technologies14ModelViewControllermanipulatesaccessescontrols
  15. 15. THE DATA MODELImplementation of15
  16. 16. 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. 17. 17
  18. 18. Extendible Data Model• DISCO does not cover all use cases• Projects may have individual needs• DISCO-model objects may be extended18DISCO-ModelYour Project-Model
  19. 19. 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. 20. 20
  21. 21. 21disco-model api
  22. 22. 22disco-model apiproject-model (api)
  23. 23. Multilevel-Model23disco-model apiproject1-modelgesis-model apiproject2-model
  24. 24. PERSISTENCE STRATEGIESData is stored via24
  25. 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.25
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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. 30. 30
  31. 31. 31JPA-Annotations
  32. 32. 32JPA-Annotationsdisco-persistence-apimissy-persistence-api
  33. 33. Hibernate Example33
  34. 34. Inheritance of Properties34from DDI-Identifiable
  35. 35. 35Inheritance of Propertiesfrom disco-api
  36. 36. Declaration of own Properties36project-model
  37. 37. Missy Project API – Modules37persistencebusinesspresentation missy-editor-webmissy-editor-core disco-modeldisco-persistence-apidisco-persistence-relationalmissy-modelmissy-persistence-apimissy-persistence-relational
  38. 38. 38
  39. 39. Thank you for your attention39Matthäus ZlochTeam ArchitectureGESIS, Germanymatthaeus.zloch@gesis.orgThe Missy Projecthttp://github.com/missy-project

×