medinria 2.0 - platform architecture overview

25
MedINRIA 2.0 - Platform architecture overview Olivier Clatz Julien Wintz

Upload: helki

Post on 04-Feb-2016

38 views

Category:

Documents


4 download

DESCRIPTION

MedINRIA 2.0 - Platform architecture overview. Olivier Clatz Julien Wintz. Context. Multiple software MedINRIA CardioViz3D YAV++ Multiple operating systems Linux MacOSX Windows Multiple data to deal with Scalar, vector, tensor images Static or dynamic images - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: MedINRIA 2.0 - Platform architecture overview

MedINRIA 2.0 - Platform architecture overviewOlivier ClatzJulien Wintz

Page 2: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Context

Multiple software MedINRIA CardioViz3D YAV++

Multiple operating systems Linux MacOSX Windows

Multiple data to deal with Scalar, vector, tensor images Static or dynamic images Static or dynamic meshes

Diverse algorithms image processing visualization FEM models

Different users Clinicians Research scientists

Many contributors Internal External

Page 3: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Problem

Non compatible codes - constrained architectures

Integration policy - compilation and dependencies

Code maintenance

Hard to get familiar with concepts for newcomers

Divergence of philosophy

Page 4: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

A modular architecture

No prior knowledge of its functionalities Low level behavior furnished by plugins High level behavior furnished by scripts

Page 5: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

A modular architecture

Page 6: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Kernel

Page 7: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Kernel

Organized into layers (dtkCore, dtkScript, dtkSql, dtkGui …) Qt based (only)

Cross platform library handling Cross platform introspection Graphical user interface

Built using cmake

A set of software components developed and maintained at INRIA for

scientific software development

Page 8: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Kernel – core layer

Provides hierarchies of virtual data classes Provides hierarchies of virtual processing classes Provides hierarchies of virtual visualization classes Provides factories to manage them all Provides a plugin abstract interface Provides a plugin manager

Page 9: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Kernel – script layer

An abstract interpretation engine

Embeds interpreters through specializations

Page 10: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Plugin

Page 11: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Plugin

Technically speaking: A dynamic library Built independently Relying on a common basis

than the target application

Conceptually speaking: A container of concrete concept types Specializing abstract concept types Registers these types to a factory An optional user interface An optional glue to external libraries

Should be as atomic as possibleto provide the highest modularity

level possibleDefine low level behavior

Page 12: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Script

Page 13: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Script

Manipulate wrapped layers

No matter the language

Manipulate plugins, external libraries wrappers and the application to define a

high level workflow

Page 14: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Platform

Page 15: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Platform

Domain specific use of dtk’s layers Manipulate abstract concepts: data, processing and visualization Plugin manager (dtkCore) Script interpreter (dtkScript, dtkGui)

Domain specific specialization of dtk’s layers User interface (medGui – dtkGui - QtGui) Database (medSql – dtkSql – QtSql)

Browsing area Viewer area Workspace area

Page 16: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Platform – Operating systems

Page 17: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Dependencies & licensing

Page 18: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Examples

Tensor visualization ITK based plugins (data) VTK based plugins (visualization) Static user interface (from plugin) Dynamic user interface (from script)

Page 19: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Examples

Tensor visualization ITK based plugins (data) VTK based plugins (visualization) Static user interface (from plugin) Dynamic user interface (from script)

Design

Page 20: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Examples

Tensor visualization ITK based plugins (data) VTK based plugins (visualization) Static user interface (from plugin) Dynamic user interface (from script)

Usage scenario - plugins

Page 21: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Examples

Tensor visualization ITK based plugins (data) VTK based plugins (visualization) Static user interface (from plugin) Dynamic user interface (from script)

Usage scenario - script

Page 22: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Examples

Page 23: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

Roadmap

Next months First LGPL software release

Image visualization for clinical usage Limited computational capacities Access to existing wrapped libraries through script

Tutorials for scripts & plugins development Documentation Website

Next year Advanced image processing and visualization Visual programming Advanced user interface elements

Page 24: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

What's most important for a common platform / toolkit?

Unified development process +++ Open-source community +++ Powerful end-user application +++ Extensible end-user application ++

+ Heterogeneous plugins +++ Scripting support +++ Rapid prototyping ++

General extension concept ++ Workflow modeling ++ Multiple consistent views ++ Scene graphs + Pipeline concept + Visual programming +

Page 25: MedINRIA 2.0 - Platform architecture overview

CTK Workshop Heidelberg, June 29/30, 2009

How could a collaboration look like?

Possible ways of collaboration: “Common Toolkit”, composed from existing toolkits “Common Toolkit”, implemented from scratch Funding sources ?