View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0008339 | 10000-003: Address Space | Spec | public | 2022-09-20 21:49 | 2023-06-20 18:07 |
Reporter | Matthias Damm | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | acknowledged | Resolution | open | ||
Summary | 0008339: Features needed for locking functionality | ||||
Description | There are different use cases where one object in the server address space 'locks' change access (Write, Method Call) for a list (network) of nodes. What is currently missing is the indication of the 'locked' state of the affected nodes and the relation to the owning lock object. Based on previous discussions, the best way to indicate the 'locked' state is a new Locked flag in the AccessRestrictions attribute. The relation can be indicated by a non hierarchical HasLockOwner reference from the locked node to the object that owns the lock. | ||||
Tags | No tags attached. | ||||
Commit Version | |||||
Fix Due Date | |||||
related to | 0005508 | acknowledged | 10000-014: PubSub | AccessLevel (writer capability) undefined for TargetVariables |
|
I don't think adding this to AccessRestrictionType is the right thing to do. Currently all the bits defined for this type are very static in nature. Introducing a very dynamic 'locked' status seems wrong. |
|
EVERY OPC UA Service call (Browse, Read, Write, Call...) must check
Therefore I do not understand the comment about 'static'. The values of these attributes may change infrequently but they can all change. But the check with these attributes must be done for most OPC UA Services for every single Service call. RolePermissions is related to Roles and does not fit with the locking. If we do not want to introduce another attribute, AccessRestrictions is the only option. |
|
A Server needs to check before an operation is performed - that should be considered "normal" because the responsibility for access checks lies with the server, and the check must be made at the instant the client request is received. For a client to do the checking before it attempts an operation is sub-optimal because I'd prefer a solution where the client subscribes for notifications that are reported when changes in locking occurred. This mechanism can be extended to include other changes in otherwise static attributes, such as a change in engineering units. There may still be a race but at least it eliminates an unnecessary attribute read |
|
From the description it is not obvious why the 'locked' state has to be in a standard attribute. Do we expect that Clients read this and then do not execute certain calls? See also David's "sub-optimal" note. Is it expected that the LockingService defined in Part 100 also adds the "HasLockOwner" references? has to be optional only to avoid a breaking change. |
|
This needs to be designed in conjuction with an entire feature. |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-09-20 21:49 | Matthias Damm | New Issue | |
2022-09-20 21:49 | Matthias Damm | Relationship added | related to 0005508 |
2022-09-27 16:07 | Jim Luth | Assigned To | => Jeff Harding |
2022-09-27 16:07 | Jim Luth | Status | new => assigned |
2023-05-04 19:17 | Jeff Harding | Status | assigned => feedback |
2023-05-04 19:17 | Jeff Harding | Note Added: 0019288 | |
2023-05-05 07:08 | Matthias Damm | Status | feedback => assigned |
2023-05-05 07:08 | Matthias Damm | Note Added: 0019290 | |
2023-06-15 19:25 | David Levine | Note Added: 0019489 | |
2023-06-20 15:46 | Karl Deiretsbacher | Note Added: 0019574 | |
2023-06-20 17:43 | Jim Luth | Target Version | 1.05.03 RC1 => |
2023-06-20 17:45 | Jim Luth | Status | assigned => acknowledged |
2023-06-20 17:45 | Jim Luth | Note Added: 0019575 | |
2023-06-20 17:45 | Jim Luth | Assigned To | Jeff Harding => |