The NeXus Reloaded Tony Lam Bragg Institute Data Acquisition Team NOBUGS 06.

23
The NeXus Reloaded Tony Lam Bragg Institute Data Acquisition Team NOBUGS 06
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of The NeXus Reloaded Tony Lam Bragg Institute Data Acquisition Team NOBUGS 06.

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 Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. 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 Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. 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 Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Software TechnologyConcepts

Domain Concepts

Software TechnologyConcepts

Domain Concepts

mental workof developers

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 Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Grand Unified Model (GUM)

NeXus based GUM

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Component based

Well defined interfaces

Model driven (NeXus)

GUM Server Infrastructure

• Instrument Control Model ServerWraps devices in control system to “models”

• Experiment Control Batch ManagerBatched operation on the model serverSupport command line control via network

• Archive & Retrieval Data Access ManagerRetrieves data set from server in NeXus object!

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Model Server

• EJB3 + Hibernate for persistence• Multi-client event notification

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Common architectural design pattern in OO analysis and design: BCE(D)

NeXus component / instrument modelModel ServerClient

*cf Model-View-Controller pattern

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Client-Server System

GumTree Reloaded

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

NOBUGS 04 NOBUGS 06

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Plug-in Loader (OSGi)

Plug-in Based Architecture

Application

Plug-in =

Extensions Plug-ins

Extensible Application GumTree

Instrument specific logic

GumTree Rich Client

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. 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 workbenchBased on Eclipse Rich Client Platform (RCP)A reusable platform for different type of scientific

applications (eg DANSE, Pipestrain)

• Additional scientific support:SDO Data conversionVisualisation ToolkitScripting within applicationCollaboratory (Collaborative Laboratory Environment)1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. 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 Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. 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 Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

GumTree NeXus Instrument Extension (GumNIX)

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Instrument Control

Data AnalysisData Access

Experiment Workflow

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration

Dawn of A New Era

http://gumtree.sf.net

[email protected] 1. Practices for Building Quality Software 2. NeXus as Domain Model3. Grand Unified Model Returns 4. GUM Server Infrastructure5. GumTree ISEE Workbench 6. Collaboration