the nexus reloaded tony lam bragg institute data acquisition team nobugs 06
Post on 19-Dec-2015
213 views
TRANSCRIPT
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