Download EPICS Version 4 Development Plan

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Microsoft Access wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Serializability wikipedia , lookup

IMDb wikipedia , lookup

SQL wikipedia , lookup

Oracle Database wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Ingres (database) wikipedia , lookup

Functional Database Model wikipedia , lookup

Open Database Connectivity wikipedia , lookup

PL/SQL wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Relational model wikipedia , lookup

Concurrency control wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Transcript
EPICS Version 4 – Development Plan
V4 Team – presented by Bob Dalesio
EPICS Meeting
October 12, 2010
1
BROOKHAVEN SCIENCE ASSOCIATES
Outline
•
•
•
•
Version 3 recap
Version 4
High Level Application Architecture
Conclusions
2
BROOKHAVEN SCIENCE ASSOCIATES
Version 3
•
•
•
•
•
•
•
•
Started at GTA in 1985 at LANL as a tool set used to develop a space based
accelerator. Developed core: channel access and process database, SNL, EDD/DM,
save/restore, archive.
In 1989 several international and domestic labs showed interest to use it. Collaboration
made with APS. EPICS release shows up in 1991 with process database rewritten to
clarify the interface to hardware and new record types. Channel access continues to
mature.
Data types in Channel Access stay the same.
Record structure stays the same – flat records with metadata in an imperfect state.
The metadata for alarm, display, and control provide good interface for engineer clients
Limitations on large data sets reflected in limited applications and creative use of
waveform record.
Successfully applied to many applications (warts and all) proving the concept
Produced 124 man years of useful software – which is 10% or less of what was actually
written.
3
BROOKHAVEN SCIENCE ASSOCIATES
EPICS Version 3 Architecture
Production
HLA Client
MMLT Client
Matlab, SDDS,
Python
Control System
Studio
Channel
Archiver
CAC
CAC
CAC
CAC
CAC
Ethernet
Data Types:
Dbr_Time_(Double, Enum, Long, String) time stamp, alarm status, alarm severity
Dbr_Ctrl_(Double, Enum, Long, String) above plus display, alarm, and control parameters
Also arrays – one dimension that were overloaded for everything else such as images in areaDetector
Distributed
Front-Ends
CAS
CAS
Diag Database
Physical Device
CAS
CAS
CAS
CAS
PS Database
RF Database
Vac Database
Util Database
Diag & PS
Physical Device
Physical Device
Physical Device
Physical Device
Diamond
Simulation
4
BROOKHAVEN SCIENCE ASSOCIATES
PV Manager Aggregates V3 into V4 Types
Production
HLA Client
MMLT Client
CAC
CAC
Matlab, SDDS,
Python
CAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
Ethernet
Multi-Channel Arrays – complete
Tables – complete
Statistical Samples – complete
Multi-dimensional arrays – not complete
Images – Incomplete
XML/HTTP
Channel
Finder Svr
SQL
RDB
Distributed
Front-Ends
CAS
CAS
Diag Database
Physical Device
CAS
CAS
CAS
CAS
PS Database
RF Database
Vac Database
Util Database
Diag & PS
Physical Device
Physical Device
Physical Device
Physical Device
Diamond
Simulation
5
BROOKHAVEN SCIENCE ASSOCIATES
V4 Serves V3 Data Types
Production
HLA Client
CAC
PVAC
MMLT Client
CAC
Matlab, SDDS,
Python
CAC
PVAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
Ethernet
XML/HTTP
Channel
Finder Svr
SQL
RDB
Distributed
Front-Ends
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
6
CAS PVAS
CAS PVAS
CAS PVAS
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Orbit Service Uses Multi-Channel Arrays
Production
HLA Client
CAC
PVAC
MMLT Client
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
Ethernet
XML/HTTP
PVAS
Gather Service
Xml/http
SQL
CAC
Serves orbit,
magnets,
any array of channels
Distributed
Front-Ends
CAS PVAS
Channel
Finder Svr
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
7
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Orbit Service Uses Multi-Channel Arrays
Production
HLA Client
CAC
PVAC
MMLT Client
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
Ethernet
XML/HTTP
PVAS
Gather Service
Xml/http
SQL
CAC
Serves orbit,
magnets,
any array of channels
Distributed
Front-Ends
CAS PVAS
Channel
Finder Svr
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
8
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Archiver Modified to Support V4
Production
HLA Client
CAC
PVAC
MMLT Client
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
PVAC
Ethernet
XML/HTTP
PVAS
Gather Service
Xml/http
SQL
CAC
Serves orbit,
magnets,
any array of channels
Distributed
Front-Ends
CAS PVAS
Channel
Finder Svr
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
9
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Use PVManager as a V4 Service
Production
HLA Client
CAC
PVAC
MMLT Client
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
PVAC
Ethernet
PVAS
XML/HTTP
PVAS
PVManager
Service
Gather
Service
CAC
CAC
Xml/http
SQL
Serves orbit,
Serves Tables
Mutti-channel arrays magnets,
any array of channels
Statistics
Distributed
Front-Ends
CAS PVAS
Channel
Finder Svr
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
10
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Provide Configuration Data as V4 Service
Production
HLA Client
CAC
MMLT Client
PVAC
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
C
F
C
Channel
Archiver
CAC
PVAC
Ethernet
PVAS
Configuration
Data
PVManager
Service
Gather
Service
SQL
CAC
CAC
Serves
Alignment
Magnet Conv
Distributed
Front-Ends
XML/HTTP
PVAS
IRMIS
PVAS
Xml/http
SQL
Serves orbit,
Serves Tables
Mutti-channel arrays magnets,
any array of channels
Statistics
CAS PVAS
Channel
Finder Svr
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
11
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Connect CSS to V4 with Channel Finder Svc
Production
HLA Client
CAC
MMLT Client
PVAC
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
PVAC
Channel
Archiver
CAC
PVAC
Ethernet
PVAS
Configuration
Data
PVManager
Service
Gather
Service
SQL
CAC
CAC
Serves
Alignment
Magnet Conv
Distributed
Front-Ends
PVAS
PVAS
IRMIS
PVAS
Xml/http
SQL
Serves orbit,
Serves Tables
Mutti-channel arrays magnets,
any array of channels
Statistics
CAS PVAS
Channel
Finder Svr
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
12
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Build Application Specific Services
Production
HLA Client
CAC
MMLT Client
PVAC
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
PVAC
Channel
Archiver
CAC
PVAC
Ethernet
PVAS
PVAS
Configuration
Data
PVManager
Service
Gather
Service
SQL
CAC
CAC
Serves
Alignment
Magnet Conv
Distributed
Front-Ends
IRMIS
PVAS
Xml/http
PVAC PVAS
Channel
Finder Svr
UnitConv.,
Bump, etc..
SQL
Serves orbit,
Serves Tables
Mutti-channel arrays magnets,
any array of channels
Statistics
CAS PVAS
PVAS
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
13
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Out of Scope – V4 Database/Drivers
Production
HLA Client
CAC
MMLT Client
PVAC
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
PVAC
Channel
Archiver
CAC
PVAC
Ethernet
PVAS
PVAS
Configuration
Data
PVManager
Service
Gather
Service
SQL
CAC
CAC
Serves
Alignment
Magnet Conv
Distributed
Front-Ends
IRMIS
PVAS
Xml/http
PVAC PVAS
Channel
Finder Svr
UnitConv.,
Bump, etc..
SQL
Serves orbit,
Serves Tables
Mutti-channel arrays magnets,
any array of channels
Statistics
CAS PVAS
PVAS
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
14
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Extend the V3 Records for New Data
Production
HLA Client
CAC
MMLT Client
PVAC
CAC
Matlab, SDDS,
Python
PVAC
CAC
Control System
Studio
PVManager
CAC
PVAC
Channel
Archiver
CAC
PVAC
Ethernet
PVAS
PVAS
Configuration
Data
PVManager
Service
Gather
Service
SQL
CAC
CAC
Serves
Alignment
Magnet Conv
Distributed
Front-Ends
IRMIS
PVAS
Xml/http
PVAC PVAS
Channel
Finder Svr
UnitConv.,
Bump, etc..
SQL
Serves orbit,
Serves Tables
Mutti-channel arrays magnets,
any array of channels
Statistics
CAS PVAS
PVAS
CAS PVAS
CAS PVAS
CAS PVAS
Diag Database
PS Database
RF Database
Vac Database
Util Database
Physical Device
Physical Device
Physical Device
Physical Device
Physical Device
15
CAS PVAS
RDB
CAS PVAS
Diag & PS
Diamond
Simulation
BROOKHAVEN SCIENCE ASSOCIATES
Version 4
•
•
•
•
•
•
•
Marty “retires” to dedicate his time to creating a hierarchical data type / database implementation
in 2006.
Some SBIR funding provides additional resources (read Matej Sekoranja at Cosylab) to develop
a network transport layer. 2009.
A second developer creates a version 3 set of records in 2009.
2009-2010 The NSLS High Level Application team (Nikolay Malitsky and Guobao Shen)
independently evaluate many platforms for high level physics applications and determine that
PVAccess and PVData appear the most promising.
2010 meeting at BNL with Greg White (SLAC), James Roland (Diamond), and those named
above to develop the limited set of PVData to be implemented in PVData and PVAccess.
Going forward NSLS II is dedicated to providing a Client/Server environment for new applications
that we have not supported well in the past:
•
Multi-dimensional arrays, Images, Statistical Data, Tables, ........
A PVAccess plug-in for version 3 databases will also be developed to allow high level clients to
have one interface to both versions.
16
BROOKHAVEN SCIENCE ASSOCIATES
Conclusions
• The interfaces look like a very straight forward fit for improving the
architecture of applications such as: areaDetector, Matlab Middle
Layer Toolkit, SDDS, XAL, GDA, MDS+, other application areas?
• LSII is committed to applying this technology to physics applications.
• Low level applications are not yet compelling
• With each expansion of this development team, the code went
through very significant refactoring.
• We are in the stage of development most similar to the transition from
GTACS to EPICS (early, immature, risky, changeable).
• New structures are easy to create – but we plan to carefully limit
these to general and useful structures. (this is the opposite of
introspection)
17
BROOKHAVEN SCIENCE ASSOCIATES