32
MITK Diffusion (under the hood) Klaus H. Maier-Hein (Ph.D.) Computational Disease Analysis Group Medical and Biological Informatics

MITK Diffusion (under the hood) Klaus H. Maier-Hein (Ph.D.) Computational Disease Analysis Group Medical and Biological Informatics

Embed Size (px)

Citation preview

MITK Diffusion(under the hood)

Klaus H. Maier-Hein (Ph.D.)Computational Disease Analysis GroupMedical and Biological InformaticsK.H. Maier-Hein

K.H. Maier-HeinReproducibilityanything less than the release of source programs is intolerable for results that depend on computation

K.H. Maier-HeinDifferent levels of interoperabilityDifferent user-groups use and extend our software

DepartmentResearch Center (Physics, Radiology)Sonderforschungsbereich (special research area)Collaborators / the world

MITK supports data- and code interoperabilityCode: component-based approachesData: Nifty/Nrrd, DICOM (Q/R), XNAT, (NITRC)

K.H. Maier-HeinData interoperabilityDifferent Interfaces REST, Webinterface, -applets, DICOM q/r

Very flexibleUpload, view, search, meta-data, manage access

Support by Slicer, NiftyView, CTK (soon available)Data infrastructure of choice for SFB Heidelberg

Centralized data management resource to support multiple investigators and research studiesK.H. Maier-HeinCode interoperabilityScientists dont waste time on software architecture

Requirements are still demandingRe-usabilityInteroperabilityCollaborationClinical application

MITK uses component technology to minimize the effort

K.H. Maier-Hein

K.H. Maier-HeinThe BlueBerry Application Framework

K.H. Maier-Hein

K.H. Maier-Hein

The MITK WorkbenchViewsEditorsK.H. Maier-HeinWhat is BlueBerry?The BlueBerry application framework

Similar to the Eclipse RCP (but in C++)

Builds plugin-based applications (OSGi-driven)Lazy loading of plug-ins (scalability)Strong encapsulation & loose couplingReuse/recombine already existing plug-ins

Flexible application layout views and perspectives

Written for and included in MITK (but independent)

K.H. Maier-HeinCTK Plugin FrameworkK.H. Maier-HeinCTKCTK is an international initiative to provide a shared code base for re-usable components and interoperability technology.

Plugin FrameworkCommand Line ModulesWidgetsDICOM supportApplication Hosting (DICOM WG23)

K.H. Maier-HeinCTK Plugin Framework

K.H. Maier-HeinCTK Plugin FrameworkDynamic OSGi-based Framework

Enables service oriented architectures

Enables distributed/large-scale applications

K.H. Maier-HeinCTK Service RegistriyC++ implementation of the OSGi Service Layer:

Service descriptionService requesterService providerService registryBindFindPublishAPI is very close to the OSGi Service Layer specsK.H. Maier-HeinPlug-in structureMeta informationThird-partydependenciesUnique name

K.H. Maier-HeinPlugin FrameworkSimple and non-intrusiveThe API is surprisingly simple, services require no special interface

Reduced complexityFocus on interface/service, internals hidden

VersioningPlug-ins and their dependencies are versioned

K.H. Maier-HeinCommand Line InterfaceK.H. Maier-Hein

K.H. Maier-HeinCommand Line InterfaceIntegrating command line programs

Executables use XML to describe their input and output

Communication via standard input/output channels

ExamplesITK based registration programsCompiled Matlab codeSlicer CLI modules

Commandarguments

K.H. Maier-HeinSummaryMITK modular application development at different levels:

Toolkit: Use MITK shared libs + Services

Application Framework: Create dynamic and extensible applications using BlueBerry and CTK

MITK Workbench: An extensible end-user application for rapid prototypingK.H. Maier-HeinConclusionMITK (Diffusion) is a lot more than just a bunch of algorithms

CLI Modules supported by Slicer, GIMIAS, MITK, (MedInria) Very easy to adapt to the standardImmediate visibility through widely applied platforms

CTK and BlueBerry allow rich plugin-based applicationsEverybody profits from developmentsNobody wants to repeat implementations of e.g. DICOM (Diffusion) or XNAT interfaces

Enables and eases distribution and reproducibility of research results

K.H. Maier-Hein

Medical and Biological InformaticsGerman Cancer Research Center

K.H. Maier-Hein

MITK & CTK Plattform group

K.H. Maier-Hein

Computational Disease Analysis Group

MichaelJonas

K.H. Maier-HeinThank you!www.mitk.org

K.H. Maier-HeinPlugin FrameworkImplemented OSGi specifications in CTK

Log Service SpecificationProvides a general purpose message logger.Metatype Service SpecificationProvides a unified way to describe metadata about services.Configuration Admin Service SpecificationAllows to set the configuration information of deployed plugins.Event Admin Service SpecificationInter-plugin communication mechanism based on a event publish and subscribe model.

K.H. Maier-HeinOSGi Specifications

OSGi Core Specifications are smallOSGi Service Compendium defines many optional services:

K.H. Maier-HeinPlug-in structureMeta informationThird-partydependenciesUnique name

K.H. Maier-HeinOSGi meta informationmanifest_headers.cmake

set(Plugin-Name "A human readable plug-in name")set(Plugin-Version "x.x.x")set(Plugin-Vendor "A human readable vendor name")set(Plugin-ContactAddress Web page, email, etc.")set(Require-Plugin )K.H. Maier-HeinConclusionCosts

Increased complexity due to the dynamic nature of the systemServices can come and go as they want

Components are tied to the BlueBerry application framework

K.H. Maier-Hein

K.H. Maier-Hein33