Experimental Physics and Industrial Control System
|
All,
There will be a preliminary meeting next week at the APS to
discuss
what goes into a future versions of EPICS. I have attached what
is
hopefully a comprehensive list of what *might* be added to
Channel
Access. I expect this list to be drastically reduced in size
after
the pruning shears are brought out.
Any time you can spare for comments is greatly appreciated.
Jeff
__________________________________________________________
Jeffrey O. Hill Mail [email protected]
LANL MS H820 Voice 505 665 1831
Los Alamos NM 87545 USA Fax 505 665 5107
Title: CA Functional Requirements and Potential New Features
Channel Access Potential Upgrades and Essential Preexisting Features
Jeff Hill
Please send comments to johill_at_lanl.gov
Potential Upgrades
Essential Preexisting Features
Existing Features that might not be Preserved
Note that this is an attempt at a comprehensive list. Lists of this type
will need to be pruned and prioritized. Which of these end up in the next, or
any, release of EPICS will of course need to be carefully considered.
- Device Orientation
- Browsible device hierarchy
- Implies a name service upgrade for
hierarchical names
- Access security limited client browsing of public and private
device components????
- "Process Entity" is the message passing equivalent of a "Process
Variable"
- Device interface introspection
- Public and private data
- Application extensible meta-data
- Public and private methods
- Request data capsule
- Response data capsule
- Application extensible meta-data
- Data Acquisition (expanded event set)
- New built-in event types
- Limits change
- Enumerated state set change
- Client plug-in specified subscription
- Application extensible event set
- Application extensible subscription update meta-data set
- Server plug-in specified event
- Application extensible event set
- Application extensible event capsule meta-data set
- Client application specified trigger conditions for subscription
updates
- Time based
- Maximum period
- Minimum period
- Fixed period
- Triggered when a client specified "calc" _expression_ with
channel mapped inputs changes from false to true
- Trigger on % change
- Trigger when a set of PVs change in some client specified
way
- Combinations of the above
- Client application specifies event queue length
- Allows GUI client to specify a queue length of one
- Within limits of course
- Limited by access security?
- Multi-Property synchronized reads,
writes, events
- Atomic multi-PV read and write
- Multi-property write request
- Application extensible meta-data
- Mapping between property names and target field in the
records
- Such mappings might cross record boundaries
- Synchronized read / write
- Client application specified trigger
- Triggered when a client specified "calc" _expression_ with
channel mapped inputs changes from false to true
- Absolute time occurs
- Delay expires
- Multi-dimensional arrays
- Requests specify starting position and size in each dimension
- Storage specifies size in each dimension
- Improved memory management
- Eliminate need for EPICS_CA_MAX_ARRAY configuration
- Eliminate internal interfaces and implementations requiring that
entire array fits in contiguous storage
- Access Security
- "Confirmation Required" access modifier
- Specified in the IOC's access security configuration
- In addition to read and write access modifiers
- This is a hint to interactive client application
- Pop a "carefully consider this action before proceeding"
dialog whenever a write is attempted
- Kerberos (or some equivalent) based authentication
- SSH tunneling
- Access security integration with name server
- Limited access to name space?????
- Programming API
- Support for process passive and maximize severity
- Implemented using application extensible meta-data and or
channel naming convention
- Application extensible meta-data
- Unified server and client library programming interfaces
- Client specifies caching or queuing behavior as an attribute of the
channel or the channel naming convention?
- Circuit priorities based on channel
priority
- Specify TCP quality of service (QOS) parameters
- Map client side application specified channel priority ranges
to IP TOS field
- IP Precedence based (legacy routers)
- DiffServ Code Point based (modern DSCP routers)
- Multicasting allows tightly
coupled control system domains to cross IP subnets
- Environment variable specifying the multicast group identifier
- Muticasted beacons
- Cross subnets (reduced configuration labore)
- Eliminates need for CA Repeater
- Multicasted search requests
- Cross subnets (reduced configuration labore)
- Eliminates problems with unicasted searches being selectively
received by multiple servers on the same host
- Resolving resource names to server
addresses
- Compatibility with industry standard naming service
- Use of industry standard interfaces desirable
- Industry standard (open source) name server implementation
desirable
- Site specific freedom to choose among several competing
industry standard name server implemtations even better
- Some applications will access many thousands of resources
- Performance and efficiency are important
- Transparent load balancing may be required for large systems
- Incoming client circuit is routed to the name server
with less load
- Or possibly caching ala DNS
- Does this imply a hierarchical implementation ala DNS
- Name resolution is a critical component
- Redundancy required
- Zone transfers keep redundant name servers in sync?
- Resource name hierarchies
- For device orientation
- Defines default mapping for incomplete names
- Record name, but not field name, supplied
- This implies "magnetCurrent.VAL"
- Magnet name, but not magnet property name, supplied
- This implies "magnet.current.VAL" ???
- For specifying hierarchy root when a server (or a server
plug-in) starts up
- An application description might be instanciated several
ways
- /operations/linac/magnets/
- /test/linac/magnets/
- /simulation/linac/magnets
- Hierarchies shall not impose address boundary rules
- A magnet device instance may be hosted in more than one
server
- Auto Configuration - plug-and-play capabilities
- Integrate servers developed off-site w/o configuring central
authority
- Name server contacts CA server and asks it for a list of
all resource names
- Possibly auto triggered when name server sees a new CA
server beacon
- Detect name space collisions during installation
- No specialized configuration (no IP address entry)
- For client to locate resource's server
- For client to locate name resolution server
- Client Queries
- Query Request Specification
- Clients can request a comprehensive list of resource names
from a server
- Request can specify a starting point in the hierarchy
and a hierarchy depth
- Response to this query is hierarchical
- For example
- List of all magnet device instances
- List of all records names (and types) in a
magnet device
- List of all ai record instances
- List of all fields in an ai record
- Clients can request of course the address of only one named
resource
- Wildcarded queries
- Clients can subscribe for resource address state change
updates
- Query Interface
- Identical protocol
- For querying names in a CA server?
- For querying names in a name server?
- This allows nested control system domains
- This is thinking about architectural implications
for scaling and isolation
- Architectural implications for the CA
gateway
- Also identical programming API for the above?
- Client side name resolution cache
- Scaling and Isolation Upgrades
- Tightly coupled control system domains that cross subnets
- Multicasting and or advanced name services
- No single point of failure
- Managed scaling with increasing outside load
- Transparent multiple parallel gateway based load balancing
- Incoming client circuit is routed to the gateway with less
load
- Built-In Server Diagnostic PVs
- number of clients
- number of channels
- events per second
- beacon periodicity
- state of health
- Compatibility
- Backwards compatibility
- Client server architecture and internet transport
- Past versions of the CA protocol
- At large installations it will not be possible (or prudent)
to migrate all IOCs to a new version during a maintenance
period
- Compatibility with commonly used 32 and 64 bit architectures
- Compatibility with UNIX, RTEMS, vxWorks, and Windows
- Channel Oriented Application Programmer Interface (API)
- Backward compatible legacy CA client API
- Thread safe interface
- Support for single-threaded clients
- Preemptive callback switch
- File descriptor based scheduling
- Efficiency
- Memory management
- Small channel and subscription footprint size
- Free list based memory management
- Event based publish and subscribe
- Streaming Process Variable IO
- Message batching
- Asynchronous response notification
- Avoidance of centralized bottle necks
- Performance
- Multiple channel create throughput
- Multiple subscription create throughput
- Multiple channel name to server address resolution throughput
- Multiple channel connect throughput
- Single read request round trip latency
- Single write notify request round trip latency
- Multiple read request throughput
- Multiple write request throughput
- Multiple write notify request throughput
- Subscription update throughput
- Fault Tolerance
- Proper server degradation under load
- Prioritized request and event dispatch in the server
- Client specified priority
- Event queue decouples priority space of event poster from
priority space of event dispatch
- Connection management
- Channel availability state change communication
- API with features that encourage fault tolerant client
applications
- Connect / disconnect notification
- Client library times out unresponsive channels, but does not
timeout and disconnect unresponsive circuits
- Burst of CPU or network saturation must not beget
increasing load
- Avoidance of single points of failure
- Server shall not lock up if one of its clients is not reading from
its TCP circuit
- Scaling and Isolation
- Gateway based isolation interposed between tightly coupled control
system domains
- Gateway strictly controls (load limits) interactions
- Ease of use
- Minimal (no) topology configuration required for simple systems
- Off site developed components (IOCs) easily integrated
- Current version of the server side API employing GDD may be
deprecated
|
- Navigate by Date:
- Prev:
RE: Maximum of a waveform record Kim, Kukhee
- Next:
RE: CA Wish List, and Essential Preexisting Features List Liyu, Andrei
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
<2005>
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Maximum of a waveform record Andrew Johnson
- Next:
RE: CA Wish List, and Essential Preexisting Features List Liyu, Andrei
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
<2005>
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 02 Sep 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|