Decision Deck Platform Technical Overview - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Decision Deck Platform Technical Overview

Description:

Almost every object is attached (directly or transitively) to a ... Persisting model objects. DAOs built upon Hibernate. Generic Accessors provided. Simple CRUD ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 20
Provided by: gd79
Category:

less

Transcript and Presenter's Notes

Title: Decision Deck Platform Technical Overview


1
Decision Deck Platform Technical Overview
  • Gilles Dodinet

2nd Decision Deck Dev Days 2008, 3-4 December
2
Agenda
  • General architecture
  • Inside a plugin
  • Development

3
Agenda
  • General architecture
  • The whole picture
  • Plugin architecture
  • Example core model
  • Inside a plugin
  • Development

4
The whole picture
General architecture
  • Plugin oriented
  • Core
  • Plugin manager
  • Base features
  • Third party plugins
  • MCDA methods
  • Shared components

Decision Deck Platform
MCDA Plugins
Core
Plugin Manager
Other Plugins
Core Plugins
5
Plugin architecture
General architecture
  • Bundled as a jar
  • Classes (.class)
  • Resources
  • Images
  • Properties files
  • Meta information
  • Plugin descriptor
  • Service descriptor
  • Persistent classes

User Interface
Plugin Manager
OSGi
Business Services
Data Access
Hibernate
Model
Legend
depends on
plugin classes
6
Core Model Plugin
General architecture
  • A few common concepts
  • Almost every object is attached (directly or
    transitively) to a Project
  • So do plugin model objects

7
Agenda
  • General architecture
  • Inside a plugin
  • Data access
  • Service layer
  • Events
  • User interface

8
Object persistence
Inside a plugin data access
  • Model state stored in MySQL
  • Object/Relational Mapping
  • Reconcile two views on the same data
  • As painless as possible
  • Mapping declared using annotations
  • Managed connection
  • Still need to query the database

9
Persisting model objects
Inside a plugin data access
  • DAOs built upon Hibernate
  • Generic Accessors provided
  • Simple CRUD
  • A few aggregate functions (count, ..)
  • Most of Hibernate complexity is hidden in
    GenericDao and DaoRegistry

10
Services
Inside a plugin
  • Two  service  types
  • Static
  • Dynamic
  • In both cases strongly typed
  • Static services
  • Singletons
  • Delegates data access to DAOs
  • Ex CriterionService.getInstance()
  • Dynamic services
  • Declared in plugin.xml
  • Ex Navigation item providers
  • Accessed through PluginManager API

11
Model Events
Inside a plugin events
  • Plugins can communicate
  • Directly
  • Through events
  • Centralized event management
  • Homogenization
  • Strongly typed
  • Semantics
  • Easier debugging

12
Handling references
Inside a plugin events
  • Fact
  • Hibernate imposes strong relational integrity
    (good practice)
  • Example
  • Criterion does not know anything about
    CriterionRefinement
  • Criterion deletion may fail if there exist some
    refinements
  • Resolution
  • CriterionRefinement provider must register a
    ModelEvent listener to monitor Criterion
    deletions
  • Throw VetoException if needed

13
User interface
Inside a plugin
  • Most of the work involved
  • Swing-based
  • A few building blocks provided
  • Table
  • Matrix
  • Progress dialog

14
Agenda
  • General architecture
  • Inside a plugin
  • Development
  • Handling dependencies
  • Communicating with D3
  • Creating a new plugin

15
Plugin dependencies
Development
 plugin  IRIS
  • Must be explicitly defined
  • MANIFEST.MF
  • Require-Bundle
  • Example
  • Plugin  GLPK  can not see classes from
    plugin  Model 
  • Managed by OSGi
  • Validation (cycles, missing dependencies, )
  • Classloading

 plugin  GLPK
 plugin  DAO
 plugin  Model
16
Communicating with D3
Development
  • D3
  • Distributed Decision Deck
  • A web platform to register and execute remote web
    services
  • A few D3 features available from D2
  • Register a MCDA problem
  • Query for the solution
  • Delete a problem
  • Example Rubis plugin

17
Create a new MCDA plugin
Development
Model definition
Data accessors and services definition
Create POJOs
Annotate POJOs
Create DAOs
Create Services
Configuration
Create User Interface
MANIFEST.MF
plugin.xml
persistence.xml
18
Eclipse D² Plugin
Development
19
Questions
Write a Comment
User Comments (0)
About PowerShow.com