2. 2
Agenda
Background and Assumptions
Front-end
Back-end
Design Alternatives
Design Choice
Good to have
3. 3
Background
TCIA MySQL database is the data source.
Users are downloading “series” or data of
higher granularity.
Collection
– Patients ← same patient
• Studies ← meta data
– Series ← meta data
» Images ← raw file
8. 8
Front-end / Back-end
CXF/JAX-RS RESTful APIs.
– GET
– Follow the existing REST APIs in downloading.
9. 9
Back-end
A Pub-Sub Solution
– Update subscriptions for new downloads.
– Publish and store the new updates for the
subscribers
• Till they log in again.
Database integration and query management
– TCIA data store is a MySQL database.
10. 10
Back-end: Alternatives
The Pub-Sub solution
– CXF/JMS Transport [1]
– With Hazelcast [2]
Database integration and query management
– Hazelcast distributed queries
– Using CXF
– [1] https://cxf.apache.org/docs/jms-transport.html
– [2] http://java.dzone.com/articles/publish-and-subscribe
11. 11
Combinations
Entirely Hazelcast
– Except for CXF/JAX-RS RESTful invocations
Entirely CXF
– With CXF/JMS for Pub/Sub
CXF and Hazelcast
– CXF/JAX-RS and CXF/JMS
– Hazelcast distributed queries
– Apache Camel for integration
– Way too many components (?)
13. 13
Why?
Simplicity
– Pub-Sub and query management - both handled
by Hazelcast.
– Pub-Sub query updates could be stored
seamlessly in-memory and in database.