The NeXus Reloaded Tony Lam Bragg Institute Data Acquisition Team NOBUGS 06
Face the Technical Challenges My users have never satisfied! Gap between user domain and technology domain My system is too hard to maintain! Technology is changing too fast! Bad software design Integration issue of legacy systems The drive to reduce complexity is at the heart of software development [McConnell 2004] 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
Service Oriented Architecture Model Driven Development I hate buzz!!! Agile Rocks! Aspect Oriented Programming
Unifying Foundation Ivar Jacobson (co-founder of UML and RUP) has summarised into five “best technical practices” Component Based Model Based Iterative and Incremental Use Case Driven Architecture Centric 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
Model Based Approach Understand the problem domain Analysis and Simulation Communicate with stakeholders Talk in their language! Inject expert knowledge into the design Domain knowledge is the key assert of your system! 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
NeXus as Domain Model NeXus data: snapshot of instrument state A skeleton of the scientific domain model (cf engineering domain) Unifies data acquisition and data analysis 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Grand Unified Model (GUM)
NeXus based GUM 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Component based Well defined interfaces Model driven (NeXus)
GUM Server Infrastructure Instrument Control Model Server Wraps devices in control system to “models” Experiment Control Batch Manager Batched operation on the model server Support command line control via network Archive & Retrieval Data Access Manager Retrieves data set from server in NeXus object! 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
Model Server EJB3 + Hibernate for persistence Multi-client event notification 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Common architectural design pattern in OO analysis and design: BCE(D) NeXus component / instrument model Model ServerClient *cf Model-View-Controller pattern
1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Client-Server System
GumTree Reloaded 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration NOBUGS 04NOBUGS 06
1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Plug-in Loader (OSGi) Plug-in Based Architecture Application Plug-in = Extensions Plug-ins Extensible ApplicationGumTree
Instrument specific logic GumTree Rich Client 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Cross domain application framework ( Eclipse RCP ) Scientific specific application framework ( GumTree Platform ) Nexus domain specific application framework ( GumNIX ) Cross OS framework ( Java VM )
Integrated Scientific Experiment Environment (ISEE) A generic scientific workbench Based on Eclipse Rich Client Platform (RCP) A reusable platform for different type of scientific applications (eg DANSE, Pipestrain) Additional scientific support: SDO Data conversion Visualisation Toolkit Scripting within application Collaboratory (Collaborative Laboratory Environment) 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
Service Data Object Service Data Object (SDO) is all about the Data Transfer Object (DTO) pattern for SOA It’s proposed by IBM and BEA, and now it has become JSR-235 It is widely used to propagate data across different tiers in its J2EE architecture (runs on SOAP) An intermediated format to convert internal application data from one domain to another (via EMF implementation) 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
Data Visualisation GumTree is capable of displaying 1D, 2D and 3D data with various rendering engine: SWT, OpenGL, Swing / AWT based plot (ISAW), ActiveX,.NET 1D 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
GumTree NeXus Instrument Extension (GumNIX) 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration Instrument Control Data AnalysisData Access Experiment Workflow
1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration
Dawn of A New Era 1. Practices for Building Quality Software2. NeXus as Domain Model 3. Grand Unified Model Returns4. GUM Server Infrastructure 5. GumTree ISEE Workbench6. Collaboration