Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

2013.05 - IASSIST 2013 - 2

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 39 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie 2013.05 - IASSIST 2013 - 2 (20)

Anzeige

Weitere von Dr.-Ing. Thomas Hartmann (20)

Aktuellste (20)

Anzeige

2013.05 - IASSIST 2013 - 2

  1. 1. A Technical Perspective on Use-Case-Driven Challenges for Software Architectures to Document Study and Variable Information IASSIST 2013 29.05.2013 Matthäus Zloch GESIS, Germany matthaeus.zloch@gesis.org Thomas Bosch GESIS, Germany thomas.bosch@gesis.org boschthomas@blogspot.com Dennis Wegener GESIS, Germany dennis.wegener@gesis.org 1
  2. 2. Outline • What has already been said • Challenges for MISSY Software Developers • MISSY Software Architecture • Implementation of DISCO • Persistence Strategies 2
  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 AND REQUIREMENTS MISSY for Software Developers 4
  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 previous presentation) 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 system 6
  7. 7. SOFTWARE ARCHITECTURE Design Goals for the MISSY 7
  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 people might work independently but collaboratively • Creation of a reusable and extendable abstract API 8
  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 – Interactions 11 Model View Controller manipulates accesses controls
  12. 12. View Technologies 12 … Model View Controller manipulates accesses controls
  13. 13. Data Model 13 … Model View Controller manipulates accesses controls
  14. 14. Missy Technologies 14 Model View Controller manipulates accesses controls
  15. 15. THE DATA MODEL Implementation of 15
  16. 16. Data Model • DDI-RDF Discovery Vocabulary DISCO • designed for the discovery use-case • provides object types, properties and data type properties designed for discovery use-case • We use DISCO as the internal data model • Implemented in Java • Maps all object properties available • Subclass relationships through Java native inheritance 16
  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 extended 18 DISCO-Model Your Project-Model
  19. 19. Extendible Data Model • DISCO does not cover all use cases • Projects may have individual needs • DISCO-model objects may be extended 19 Provide this as an API!!DISCO-Model Your Project-Model
  20. 20. 20
  21. 21. 21 disco- model api
  22. 22. 22 disco- model api project- model (api)
  23. 23. Multilevel-Model 23 disco-model api project1-model gesis-model api project2-model
  24. 24. PERSISTENCE STRATEGIES Data is stored via 24
  25. 25. Persistence-Layer – Strategies • The application itself does not need to know how the data is (physically) stored • Methods are provided to access and store objects through data access objects • Actual implementation is “hidden” to the upper layers • A strategy is an implementation of the actual type of persistence 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 the data is (physically) stored • Methods are provided to access and store objects through data access objects • Actual implementation is “hidden” to the upper layers • A strategy is an implementation of the actual type of persistence or physical storage, respectively • e.g. DDI-L-XML, DDI-RDF, XML-DB, Relational-DB, etc. 26 disco- persistence api
  27. 27. Persistence-Layer – Strategies • The application itself does not need to know how the data is (physically) stored • Methods are provided to access and store objects through data access objects • Actual implementation is “hidden” to the upper layers • A strategy is an implementation of the actual type of persistence or physical storage, respectively • e.g. DDI-L-XML, DDI-RDF, XML-DB, Relational-DB, etc. • Due to performance: 27 disco- persistence api disco-persistence relational
  28. 28. Persistence-Layer – Strategies / Modules • disco-persistence-api • Defines persistence functionality for model components regardless of the actual type of physical persistence • disco-persistence-relational • Implements the persistence functionality defined in disco-persistence-api with respect to the usage of relational DBs • disco-persistence-xml • Implements the persistence functionality defined in disco-persistence-api with respect to the usage of DDI-XML • disco-persistence-rdf • Implements the persistence functionality defined in disco-persistence-api with respect to the usage of the disco-specification 28
  29. 29. Persistence-Layer – Strategies / Modules • disco-persistence-api • Defines persistence functionality for model components regardless of the actual type of physical persistence • disco-persistence-relational • Implements the persistence functionality defined in disco-persistence-api with respect to the usage of relational DBs • disco-persistence-xml • Implements the persistence functionality defined in disco-persistence-api with respect to the usage of DDI-XML • disco-persistence-rdf • Implements the persistence functionality defined in disco-persistence-api with respect to the usage of the disco-specification 29
  30. 30. 30
  31. 31. 31 JPA-Annotations
  32. 32. 32 JPA-Annotations disco- persistence- api missy- persistence- api
  33. 33. Hibernate Example 33
  34. 34. Inheritance of Properties 34 from DDI-Identifiable
  35. 35. 35 Inheritance of Properties from disco-api
  36. 36. Declaration of own Properties 36 project-model
  37. 37. Missy Project API – Modules 37 persistence business presentation missy-editor-web missy-editor-core disco-model disco- persistence-api disco- persistence- relational missy-model missy- persistence-api missy- persistence- relational
  38. 38. 38
  39. 39. Thank you for your attention 39 Matthäus Zloch Team Architecture GESIS, Germany matthaeus.zloch@gesis.org The Missy Project http://github.com/missy-project

×