CTK Plugin Framework

Download Report

Transcript CTK Plugin Framework

MITK Diffusion
(under the hood)
Klaus H. Maier-Hein (Ph.D.)
Computational Disease Analysis Group
Medical and Biological Informatics
K.H. Maier-Hein
K.H. Maier-Hein
Reproducibility
• anything less than
the release of source
programs is
intolerable for results
that depend on
computation
K.H. Maier-Hein
Different levels of interoperability
Different user-groups use and extend our software
• Department
• Research Center (Physics, Radiology)
• „Sonderforschungsbereich“ (special research area)
• Collaborators / “the world”
MITK supports data- and code interoperability
• Code: “component-based” approaches
• Data: Nifty/Nrrd, DICOM (Q/R), XNAT, (NITRC) …
K.H. Maier-Hein
Data interoperability
Centralized data management
resource to support multiple
investigators and research studies
• Different Interfaces
• REST, Webinterface, -applets, DICOM q/r
• Very flexible
• Upload, view, search, meta-data, manage access
• Support by Slicer, NiftyView, CTK (soon available)
• Data infrastructure of choice for SFB Heidelberg
K.H. Maier-Hein
Code interoperability
• Scientists don’t “waste” time on software architecture
• Requirements are still demanding
• Re-usability
• Interoperability
• Collaboration
• Clinical application
• MITK uses component technology
to minimize the effort
K.H. Maier-Hein
K.H. Maier-Hein
THE BLUEBERRY APPLICATION
FRAMEWORK
K.H. Maier-Hein
K.H. Maier-Hein
The MITK Workbench
Views
Editors
K.H. Maier-Hein
What 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 coupling
 Reuse/recombine already existing plug-ins
 Flexible application layout
 „views“ and „perspectives“
 Written for and included in MITK (but independent)
K.H. Maier-Hein
CTK Plugin Framework
K.H. Maier-Hein
CTK
CTK is an international initiative to provide a shared code base for reusable components and interoperability technology.
• Plugin Framework
• Command Line Modules
• Widgets
• DICOM support
• Application Hosting (DICOM WG23)
K.H. Maier-Hein
CTK Plugin Framework
K.H. Maier-Hein
CTK Plugin Framework
 Dynamic OSGi-based
Framework
 Enables service oriented
architectures
 Enables distributed/large-
scale applications
K.H. Maier-Hein
CTK Service Registriy
C++ implementation of the OSGi Service Layer:
Publish
Service
registry
Find
Service
description
Service
provider
Bind
Service
requester
• API is very close to the OSGi Service Layer specs
K.H. Maier-Hein
Plug-in structure
Unique name
Meta information
Third-party
dependencies
K.H. Maier-Hein
Plugin Framework
• Simple and non-intrusive
The API is surprisingly simple, services require no special
interface
• Reduced complexity
Focus on interface/service, internals hidden
• Versioning
Plug-ins and their dependencies are versioned
K.H. Maier-Hein
Command Line Interface
K.H. Maier-Hein
K.H. Maier-Hein
Command Line Interface
• Integrating command line
programs
• Executables use XML to
describe their input and output
• Communication via standard
input/output channels
Examples
• ITK based registration programs
• Compiled Matlab code
• Slicer CLI modules
Command
arguments
K.H. Maier-Hein
Summary
MITK – 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 prototyping
K.H. Maier-Hein
Conclusion
• MITK (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 standard
• Immediate visibility through widely applied platforms
• CTK and BlueBerry allow rich plugin-based applications
• Everybody profits from developments
• Nobody 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 Informatics
German Cancer Research Center
K.H. Maier-Hein
MITK & CTK Plattform group
K.H. Maier-Hein
Computational Disease Analysis Group
Jonas
Michael
Thank you!
www.mitk.org
K.H. Maier-Hein
Plugin Framework
Implemented OSGi specifications in CTK
 Log Service Specification
Provides a general purpose message logger.
 Metatype Service Specification
Provides a unified way to describe metadata about services.
 Configuration Admin Service Specification
Allows to set the configuration information of deployed
plugins.
 Event Admin Service Specification
Inter-plugin communication mechanism based on a event
publish and subscribe model.
K.H. Maier-Hein
OSGi Specifications
 OSGi Core Specifications are
small
 OSGi Service Compendium
defines many optional services:
K.H. Maier-Hein
Plug-in structure
Unique name
Meta information
Third-party
dependencies
K.H. Maier-Hein
OSGi meta information
manifest_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 <list-of-plugin-symbolic-names>)
K.H. Maier-Hein