Daniel Gosch & Hannes Stornig. Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp.

Slides:



Advertisements
Ähnliche Präsentationen
Be.as WEB Technologie
Advertisements

Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Datenbanken Einführung.
Objektorientierte Datenbanken
Systemverwaltung wie es Ihnen gefällt.
Attribute Profile.
Kapitel 4 Datenstrukturen
Ruby on Rails im Überblick
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Objektorientierter Entwurf (OOD) Übersicht
Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Dynamische Datentypen
Indirekte Adressierung
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Information und Technik Nordrhein-Westfalen Single Sign On mit CAS Düsseldorf, Single Sign On für Webanwendungen am Beispiel von CAS.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
XDoclet ETIS SS05.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Access 2000 Datenbanken.
Projekt Web Engineering
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Diplomarbeit: Design und prototypische Implementierung eines archetypbasierten EHR Systems Anton Brass Helmholtz Zentrum München IBMI München,
FQTQ ShowCase Prototyp einer Applikation zur Beratungsunterstützung.
Space Based Computing VU SS08
Herzlich Willkommen… welcome… soyez la bienvenue….
Working With Persistent Objects
Vortrag D. Braun, Praktikum. Übersicht Pleopatra API Pleopatra Tools Twitter Demonstration Ausblick.
1. Die rekursive Datenstruktur Liste 1.1 Warteschlange (Queue)
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Nicolas Frings Maximilian Bernd Stefan Piernikarcyk
Daniel Gosch & Hannes Stornig
Bachelorarbeit Medizininformatik
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
1.2 Trennung von Struktur und Inhalt
Allgemeines zu Datenbanken
Inhaltsverzeichnis: 1. Telefonie mit analog und digital
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Vom Kontext zum Projekt V Carina Berning Sabrina Gursch Pierre Streicher Intelligente Dateisysteme.
Esprit Database Suite Eine leistungsfähige Java-Persistzenzschicht zur einfachen Programmierung von Datenbankapplikation.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Mobility Lösungen heute GOOD for Enterprise Tobias Esser GELSEN-NET Kommunikationsgesellschaft mbH Vertrieb Geschäftskunden / Systemgeschäft.
Mind the Gap Die semantische Lücke zwischen Objekten und Relationen.
Mehrbenutzerzugriff auf GIS-Daten
Systementwurf Dipl.-Inform. Med. Anton Brass Helmholtz Zentrum München IBMI München,
->Prinzip ->Systeme ->Peer – to – Peer
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Vortrag - Diplomarbeiten (HS I)
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
WINLearn Technische Umsetzung. Basistechnologie Oberfläche in HTML JSP (JavaServerPages) zur Datenauswertung Datenhaltung: Datenbank oder Filesystem JDBC.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Auftragserfassungssystem für Drehmomentaufnehmer Datenbank und Software Dennis Rollesbroich 1.
Comprehensive Information Base (CIB) – ein Prototyp zur semantischen Datenintegration Stefan Arts
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
SQL Basics Schulung –
Verteilte Anwendungen: J2EE
Von Wietlisbach, Lenzin und Winter
1. Die rekursive Datenstruktur Liste 1
Datenstrukturen und Softwareentwicklung
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Daniel Gosch & Hannes Stornig

Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp

Überblick Bachelorarbeit Anforderungsbeschreibung Anforderungen an das System DICOM Problembeschreibung Fragestellungen Software Prototyp

Detaillierter Überblick über einzelne Probleme und Fragestellungen Lösungsansätze zu konkreten Fällen präsentieren Grundlagenforschung für ein Framework Kritische Punkte im Entwicklungsprozess

Framework entwickeln Persistent Fehlerfrei Verarbeitung von DICOM Files Prozesse in Transaktionen gliedern Fehlverhalten -> Rollback Konsistenter Datenstand des Framework

Technische Ansprüche an die Infrastruktur Applikation Server (Glasfish 3.x) Java Development Kit 1.6 Relationale Datenbank Postgres 9.x

Überblick DICOM Allgemein Was ist DICOM DICOM File Problembeschreibung Fragestellungen Software Prototyp

Medizinische Bilder für Diagnostik Art der Bildgebung Organe, Skelett, Muskel, Blutgefäße Verfahren Röntgen Magnet Resonanz Tomographie Positronen Emissions Tomographie

Richtlinien für digitale Medien Standard für medizinische Bilder -> Bilder in einem einheitlichen Format speichern

Bild (Röntgen) / Bilderserie (MRT) Liste von Datenelementen Informationen zum Patienten Identifikationsnummer Informationen zur Aufnahme DICOM Standard definiert exakt welche Informationen enthalten sein müssen bzw. welche optional sind Jedes Bild verfügt über die notwendigen Informationen

Überblick DICOM Problembeschreibung Programmiersprache Persistenz Queue Datenbankanforderungen Performance Fragestellungen Software Prototyp

JAVA Enterprise Edition Funktionalität Klassenbibliotheken des Toolkits dcm4che2 Objektorientierte Programmiersprache GNU Lizenz Eigene Laufzeitumgebung -> verschiedenen Rechenarchitekturen einsetzbar

Java Persistence API (JPA) -> Speicherung der Daten in eine Datenbank Daten bleiben über die Ausführungszeit des Frameworks erhalten Java Transaktion API (JTA) –> Zugriff auf Daten Gewährleistet vollständige oder keine Übertragung der Daten Rollback im Fehlverhalten Konsistenter Datenstand

Datenstruktur FiFo (First in First out) Verfahren Erste Datei die in die Queue aufgenommen wird ist auch die erste die diese wieder verläst Konstante Reihenfolge add() pool() peek() Queue

ACID Richtlinien Transaktionen müssen Atomar -> ganz oder gar nicht Konsistenz -> definierte Integritätsbedingungen (Primärschlüssel / Fremdschlüssel) Isoliert -> Transaktionen Dauerhaft -> nach Transaktionsende persistent zur Verfügung stehen

DICOM Files mehrere 100 MB groß Persistierung in der Datenbank Schlechte Performance Speicherung auf sekundär Datenträger Surrogaten (Platzhalterobjekte) in der Datenbank Referenz auf DICOM File Bedarfsfall Informationen nachladen

Überlegungen: Mehrere Referenzen auf ein DICOM File Ein und dasselbe DICOM File kommt mehrmals vor Großer Speicherbedarf Wenn ein DICOM File in mehreren Queues Queue 1Queue 2Queue 3

Lösung: Nur beim ersten mal ins Filesystem schreiben Surrogat bekommen beim kopieren in eine weitere Queue nur mehr eine Referenz auf das DICOM File Queue 1Queue 2Queue 3

Wann darf ein DICOM File gelöscht werden? afterCompletion() Methode des Transaktions-Managers Methodenaufruf nach jeder abgeschlossenen, jedoch noch nicht beendeten Transaktion Überprüfung auf Referenz in der Datenbank auf ein DICOM File Falls NEIN -> Freigabe zur Löschung

Überblick DICOM Problembeschreibung Fragestellungen Data Queue (DQ) Processing Node (PN) Beziehungen zwischen PN und DQ Verarbeitungsgraph Helper Processing Node Transaktionsmanagement Software Prototyp

Datenhaltung -> Prinzip einer Queue Umsetzung dieser wird als Data Queue bezeichnet Prototyp -> DcmQueue Data Queue kümmert sich um Datenhaltung und Reihenfolge

Managed die Zugriffe auf die Data Queue Repräsentiert Geschäftslogik 2 Arten Producer -> Inputseitig => Erzeugung der Data Queue bzw. Surrogaten Consumer -> Outputseitig => Verwaltung und Löschung der Data Queue bzw. Surrogaten

Verschiedene Möglichkeiten Nutzen für unser Framework im Mittelpunkt 4 Fälle Vorteile Nachteile

Fall 1 Kardinalität 1 zu 0 PN steht mit keiner DQ in Verbindung -> nicht möglich Objekte an die DQ zu senden Output Input

Fall 2 Kardinalität 1 zu 1 Jede PN ist genau mit einer DQ verbunden Jede DQ ist genau mit einer PN verbunden Kommunikation zwischen PN und DQ möglich -> komplexes Verhalten nicht möglich Output Input

Fall 3 Kardinalität 0…n zu 0…n Jede PN steht mit beliebig vielen DQ in Verbindung Jede DQ steht mit beliebig vielen PN in Verbindung Komplexe Kommunikation möglich -> kann jedoch schnell unübersichtlich Ausmaß annehmen => komplexe Verfahren zur Datenbewältigung Output Input

Fall 4 Kardinalität 1 zu 0…n Jede PN kann mit beliebig vielen DQ in Verbindung stehen Jede DQ jedoch nur mit einer PN Ausreichende Kommunikation zwischen PN und DQ -> Verhinderung zu komplexer Strukturen Output Input

Anzahl der DQ welche durch PN repräsentiert werden hängt von der Art der PN ab Normalfall PN hat ein oder mehrere Input und Output DQ`s PN ist für den Datenfluss zwischen den einzelnen DQ verantwortlich Jede DQ hat dabei eine genau definierte Input als auch Outputseite und steht immer mit genau einer PN in Verbindung

Zwei Typen von PN haben nur eine Input- bzw. eine Outputseite Jene die sich am äußeren Rand des Verarbeitungsgraphen befinden Producer PN können Daten empfangen und in den Verarbeitungsgraphen einfügen Consumer PN können Daten aus dem Verarbeitungsgraphen in ein File System speichern

Vereinigung / Merging Objekte unterschiedlicher DQ`s werden durch die HPN auf eine DQ zusammengefasst

Verteilung / Sharing Objekte einer DQ werden durch die HPN auf mehrere DQ`s verteilt

Aufteilung / Splitting Ein Objekt wird durch die HPN an unterschiedliche DQ`s gesendet und unterschiedlich verarbeitet Bsp.: ein Objekt wird anonymisiert und pseudonymisiert

Container Managed Transaktion (CMT) EJB Container verwaltet automatisch Transaktionen innerhalb einer EJB Klasse oder Methode Entscheidet selbstständig wann eine Transaktion beginnt bzw. diese wieder beendet wird ohne explizite Declaration Transaktionskontext wird durch den EJB Container bestimmt Jede Methode läuft unter separater Transaktion

Im Falle eines Fehlers Rollback System Exeption, Exeptions welche speziell dafür vorgemerkt sind oder die Methode setRollbackOnly Jederzeit konsistenter Datenstand

Container steuert Transaktionen weitgehend selbst Mittels Callback auf Verhalten des Container Bieten Möglichkeiten Prozeduren durchzuführen die nicht automatisch vom Container durchgeführt werden

Überblick DICOM Problembeschreibung Fragestellungen Software Prototyp Überblick Interface DcmQueueProducerServiceRemote Interface DcmQueueConsumerServiceRemote Komponentendiagramm Sequenzdiagramm

Prototyp des Frameworks names DcmSPL Prototyp bietet Möglichkeit Warteschlange (Queue) erstellen Übergabe von DICOM Dummy Files an das Framework Persistierung der DICOM Dummy Files ins File System Übergibt Queue eine Referenz auf das DICOM Dummy File Bearbeitungsknoten können modular implementiert werden Konsistenten Datenstand

Inputseitig Methoden zur Erzeugung und Befüllung der DcmQueue creatDcmQueue() removeDcmQueue() addDcmFile() findDcmQueue()

Outputseitig Methoden zur Verwaltung der DcmQueue findDcmQueue() removeDcmQueue() removeDcmFile() findDcmFile() peekDcmFile() poolDcmFile()

EJB Client greift auf EJB`s des DcmSplService zu EJB werden mittels JPA und JTA in die relationale Datenbank geschrieben bzw. aus ihr gelesen

Erstellung einer neuen dcmQueue Client greift mittels Producer Remote Interface auf dcmQueueService zu dcmQueueService erzeugt neue dcmQueue Entity Manager persistiert diese in die Datenbank

Werner Eberling / Jan Leßner, Enterprise JavaBeans 3.1: Das EJB Praxisbuch für Ein- und Umsteiger in: Hanser Carl (Hg.) München / Wien 2011 Eric Jendrock, Ian Evans, Devika Gollapudi, Kim Haase, William Markito Oliveira, Chinmayee Srivathsa The Java EE 6 Tutorial Oracle USA 2012