|
| 1 | +SECoP in person workshop at ESS - Wednesday |
| 2 | +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
| 3 | + |
| 4 | +.. sidebar:: participants |
| 5 | + |
| 6 | + * Georg Brandl |
| 7 | + * Peter Braun |
| 8 | + * Niklas Eckström |
| 9 | + * Enrico Faulhaber (remote) |
| 10 | + * Klaus Kiefer |
| 11 | + * Bastian Klemke (remote) |
| 12 | + * Alexander Zaft |
| 13 | + * Markus Zolliker |
| 14 | + |
| 15 | +.. contents:: Agenda |
| 16 | + :local: |
| 17 | + :depth: 3 |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | +1) Introduction, Demonstrations |
| 22 | +=============================== |
| 23 | + |
| 24 | +Niklas welcomes everyone at ESS. |
| 25 | + |
| 26 | +The minutes of last meeting are approved (with slight modifications from Georg) |
| 27 | +and merged. |
| 28 | + |
| 29 | +Spin |
| 30 | +---- |
| 31 | + |
| 32 | +Georg gives a short demonstration on SPIN, a tool for HMI for SE racks at MLZ: |
| 33 | + |
| 34 | +* web-based, svg+html. messages through websockets |
| 35 | +* Can connect to different protocols to read values |
| 36 | + |
| 37 | +Thorsten Bögershausen joins |
| 38 | + |
| 39 | +Bastian Klemke joins online |
| 40 | + |
| 41 | +* Georg walks us through the different features of SPIN |
| 42 | +* available on the MLZ forge, GitHub mirror can be discussed later when needed |
| 43 | +* Documentation is available here: https://forge.frm2.tum.de/public/doc/spin/master/ |
| 44 | + |
| 45 | +SECoP-Service |
| 46 | +------------- |
| 47 | + |
| 48 | +Peter shows his work on a "SECoP-Service" providing a Sample Environment |
| 49 | +web-gui built in the context of the ROCK-IT project |
| 50 | + |
| 51 | +* Generic GUI generated from the SECoP description |
| 52 | +* Similar principle to frappy, but easy if it has to be shown on multiple |
| 53 | + computers, since setup has to happen only once |
| 54 | +* implemented in elixir |
| 55 | +* has a database for saving historic data |
| 56 | +* it is probably a bit heavy for using as the "simple client" goal for |
| 57 | + outreach, since it needs to be deployed/administered. |
| 58 | +* The code is available at https://github.com/Bilchreis/secop_service |
| 59 | + |
| 60 | +Klaus shares some history of the ROCK-IT project |
| 61 | + |
| 62 | +1.5) Specification, Committee Work |
| 63 | +================================== |
| 64 | + |
| 65 | +Recap: Current Status and Open Issues |
| 66 | +------------------------------------- |
| 67 | + |
| 68 | +Georg opened a PR for including the approved Acquisition RFC into the |
| 69 | +specification. |
| 70 | + |
| 71 | +From the open issues, most will be discussed in their own sessions: |
| 72 | + |
| 73 | + * NeXus (Operando4NeXus on Friday) |
| 74 | + * Machine readable spec (Tomorrow) |
| 75 | + * rewrite of the website introduction (Tomorrow) |
| 76 | + |
| 77 | +Issue 13 had no movement but will still stay active |
| 78 | + |
| 79 | +Discussion: |
| 80 | + |
| 81 | +* Klaus gives a short preview for the discussion on Friday (Operando4NeXus) |
| 82 | +* Property datatypes (#30) |
| 83 | + |
| 84 | + * mostly a bug in frappy |
| 85 | + * in general, custom properties can decide on their own datatypes (even |
| 86 | + arbitrary json, although maybe not recommended), and it is hard to specify. |
| 87 | + * can be closed |
| 88 | + |
| 89 | +* Issue #6 can be closed, as it has been resolved (vocabulary for meaning extended) |
| 90 | + Klaus points out that more interaction with the NIAC is needed to convince them that we have |
| 91 | + a problem which needs a solution. (which may be the one we worked on). |
| 92 | + Since FairMat seems to be very interested on this topic, a sufficient momentum may be gained |
| 93 | + (summoning also people from Rock-IT, NF4DI, Daphne and so on). |
| 94 | + Biggest issue seems to introduce the needed flexibility into the static NeXus System. |
| 95 | + |
| 96 | +There are currently no open RFC's |
| 97 | + |
| 98 | + |
| 99 | +Interlude: New RFC's |
| 100 | +-------------------- |
| 101 | + |
| 102 | +Niklas made two RFC's for discussion and presents them: |
| 103 | + |
| 104 | +Addition of New Qualifiers for Protocol Extensions |
| 105 | + This RFC proposes extending the qualifiers for better integration with |
| 106 | + other protocols. One would be the post_change qualifier for the mqtt |
| 107 | + integration to transport the message type. The other would be the timestamp |
| 108 | + since the last write. |
| 109 | + |
| 110 | +For the first qualifier most are fine if its MQTT specific |
| 111 | +There is positive resonance on the timestamp for the last change of the target, |
| 112 | +but some disagreement about specifics (when the change command came in, writing |
| 113 | +to the hardware, when it was acknowledged by the hardware?) |
| 114 | + |
| 115 | +On further discussion, the problem is largely that the message type from mqtt |
| 116 | +is an update and not the changed like specified in SECoP. This can be solved |
| 117 | +with a custom qualifier for mqtt-backed clients. Niklas reports that this also |
| 118 | +represents the current state in octopy. |
| 119 | + |
| 120 | +As a side point, it has to be checked that custom qualifiers are specified to |
| 121 | +be starting with an underscore. |
| 122 | + |
| 123 | +Protocol-Specific Mappings for Accessibles |
| 124 | + a protocol_mappings section with dictionaries for supported protocols and |
| 125 | + suggested mappings for the client when transporting over that protocol. |
| 126 | + |
| 127 | +The mappings property causes some discussion because its meaning implementation |
| 128 | +specific and the clients can do something else that specified. There |
| 129 | +is some confusion on the direction of the translation. In the ESS case it will |
| 130 | +be both directions with EPICS and SECoP. The use case is mainly for tracing and |
| 131 | +debugging. |
| 132 | + |
| 133 | +Georg proposes an optional history/tracing list/parameter to solve Niklas' problem. |
| 134 | + |
| 135 | +There is a generally positive sentiment for something like this (also with |
| 136 | +proxying secnodes). |
| 137 | + |
| 138 | +Some proposed names: trace, history, trail, path, source, via, breadcrumbs, |
| 139 | +itinary, data_route. |
| 140 | + |
| 141 | +Niklas will modify his RFC's with the discussion and submit them to GitHub. |
| 142 | + |
| 143 | +Discussion: RFC process impressions |
| 144 | +----------------------------------- |
| 145 | + |
| 146 | +Klaus finds it a bit harder to check the open RFC's in contrast to the old list |
| 147 | +of issues. |
| 148 | + |
| 149 | +There is no outright negative sentiment, in general it works and we will monitor |
| 150 | +it. |
| 151 | + |
| 152 | +Peter notes it is good to have a written discussion. |
| 153 | + |
| 154 | +PS: We should all check our notification settings :) |
| 155 | + |
| 156 | + |
| 157 | +Discussion: SECoP version 2 |
| 158 | +--------------------------- |
| 159 | + |
| 160 | +Do we need a version 2 of SECoP? |
| 161 | + |
| 162 | +There were two changes that make it hard for older clients to connect to new |
| 163 | +SEC nodes: meaning and visibility. |
| 164 | + |
| 165 | +There are a few options: |
| 166 | + |
| 167 | +* Make a clean break (2.0 version) now and have a stricter process afterwards |
| 168 | +* small bump (1.1) and require clients to support both versions |
| 169 | + |
| 170 | +There should be a note to update to the clients to keep them compatible. |
| 171 | +Servers that are compliant to one version should not stop being that by a |
| 172 | +change we make. |
| 173 | + |
| 174 | +A note is made that well-written clients should degrade gracefully, but this |
| 175 | +can't be a requirement. |
| 176 | + |
| 177 | +Klaus argues that for the case that we have now we should do a major version |
| 178 | +bump. |
| 179 | + |
| 180 | +From a discussion between Georg and Markus: Laxer clients that don't check the |
| 181 | +version but deal with both variants are still fine. |
| 182 | + |
| 183 | +A rule should be that clients losing functionality, this should be a major |
| 184 | +change, if clients just miss out on functionality then its a minor change. |
| 185 | + |
| 186 | +Alexander asks if the backwards-compatible changes should to be collected into |
| 187 | +a 1.1 version? |
| 188 | + |
| 189 | +Conclusion: |
| 190 | + The version will have to be 2.0. It will not be released immediately. First |
| 191 | + we will check the personal to-do-lists and issues to check if there needs |
| 192 | + to be any other incompatible changes that could be swept into the major |
| 193 | + bump. The compatible changes will be reified into a version 1.1 and |
| 194 | + released. |
| 195 | + |
| 196 | +Thorsten Bögershausen has to leave. |
| 197 | + |
| 198 | + |
| 199 | +The meeting is closed at 18:00. |
| 200 | + |
| 201 | +Compatibility Policy |
| 202 | +-------------------- |
| 203 | + |
| 204 | +(from the agenda) |
| 205 | + |
| 206 | +see the discussion above, in summary, clients should not lose functionality |
| 207 | +between minor versions. |
0 commit comments