EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20202021  2022  2023  2024  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: GitHub Software Releases in support of EPICS Web Applications
From: "Cobb, Tom \(DLSLtd,RAL,LSCI\) via Tech-talk" <tech-talk at aps.anl.gov>
To: Simon Rees <simon.rees at psi.ch>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 8 Jul 2020 15:17:03 +0000
Hi All,
There are a lot of these now.  I'll update my list here: https://github.com/JeffersonLab/epics2web/wiki/Similar-Projects
I thought I'd add an "us too" comment. A couple of years we developed a web interface for PandABox (and Malcolm, our continuous scanning framework). Here's some screenshots showing the kind of widgets we added:


This gave us experience with React, Redux and websockets, and an appreciation of how much you can accomplish in a browser now. We were then introduced to WebJive:


This started us looking at GraphQL (with subscriptions over websockets). We've built a prototype to try and get some experience with it:


We are happy with the utilities and library support that GraphQL gives us, and we've found Typescript to be good too. The uni-directional flow that React and Redux gives us is a helpful design pattern, but we're not particularly settled on a framework at the moment. Svelte looks interesting, especially its claim to be the lightest framework. Our prototype gives acceptible performance, but the virtual dom diffing may be a factor performance-wise in the kind of applications we are building.
From time to time I have gone looking for some kind of GUI designer for the web (a la MEDM/EDM/caQtDM) but so far I didn't find anything that seems to hit the simplicity versus flexibility sweet-spot. Or at least none that does it in a technologically-agnostic way.
This strikes us as the most difficult thing to get right. It's fairly simple to layout some components programmatically, but the editor is pretty essential when making large numbers of these screens. WebJive has made some progress in this area with a Dashboard creator that allows absolute positioned fixed sized widgets, but creating any kind of editor that understands responsive layouts while still giving a drag and drop interface seems like a big ask. We're very interested in developments in this area.

Thanks,
Tom

From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Simon Rees via Tech-talk <tech-talk at aps.anl.gov>
Sent: 03 July 2020 20:50
Cc: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: GitHub Software Releases in support of EPICS Web Applications
 
Dear Ryan

Many thanks for your earlier comments / questions which I will
try to address below.

Best regards

Simon


1. About PSI CA Library

 > Should we combine / merge / abandon the JCA / CAJ library?
 > Looks like no one is really maintaining the old library
 > and in fact it appears some of the original CAJ developers
 > are working on the newer "ca" library.

One significant difference between the JCA/CAJ and PSI CA
libraries is that the PSI CA library implements only the CA
CLIENT-SIDE functionality. So without significant effort it
cannot play the role of a CA Server. My efforts so far have
been limited to consolidating what exists rather than adding
new things. The initial goal was to eliminate the warnings
emitted by my (IntelliJ) IDE and to bring the build system and
CI integration up-to-date. So far I refactored code mostly
around the CA Repeater and monitor notification engine, writing
many tests to try to reassure myself that the changes did not
(hopefully !) break anything.

Regarding the internal LMAX Disruptor technology, I was never
able to demonstrate measurable test results which proved that
this technology brought significant gains (given the scenario
in which we were using it).  So a configurable, common-or-garden
Java blocking queue implementation was introduced a couple of CA
releases ago, and now, in the latest release, the LMAX Disruptor
was finally retired.

2. About Wica-HTTP

 > There are a lot of these now.  I'll update my list here:
 > https://github.com/JeffersonLab/epics2web/wiki/Similar-Projects
 >
 > A comparison might be useful. One thing that jumps out
 > is that you use Server Side Events (SSE).  These weren't
 > really an option a few years ago due to Internet Explorer
 > not supporting them.   Now that Microsoft Edge uses
 > Chromium under the hood that's no longer an issue.

Thanks for the link to the list, which I wasn't previously aware
of. Of course everything is a trade-off, each technology
bringing with it plusses and minuses, those who love using it
and those who emphatically don't. 'Twas ever thus, I guess.

One aspect of the Wica-HTTP backend that's perhaps worth
mentioning: by basing the server on Java's Spring Boot framework
the intention was to eliminate the need to write lots of code,
but to use the effort saved to write useful tests. Hopefully,
in this respect we have been at least partially successful.

3. About Wica-JS Server

 > Looks like you've got to be web developer to use this
 > library?  Maybe a builder interface like EDM/CSS is in
 > the works?  For example:
 > https://github.com/JeffersonLab/puddysticks
 > <https://github.com/JeffersonLab/puddysticks>
 >       
 > GitHub - JeffersonLab/puddysticks: Control panels made easy
 > <https://github.com/JeffersonLab/puddysticks>
 > Control panels made easy.

Thanks for the links which I will look at. Whilst it's almost
trivial with Wica to create simple HTML pages rendered with live
EPICS data, it's a much harder proposition to create web pages
that work on multiple mobile/tablet/desktop platforms and which
provide the sophistication and (mostly !) pleasant user
experience that the modern web delivers.

 From time to time I have gone looking for some kind of GUI
designer for the web (a la MEDM/EDM/caQtDM) but so far I didn't
find anything that seems to hit the simplicity versus
flexibility sweet-spot. Or at least none that does it in a
technologically-agnostic way.

One technology that we are tracking closely at PSI is the
ongoing evolution of the web components world:
https://en.wikipedia.org/wiki/Web_Components

The WC standard potentially opens up the possibility of
creating GUI tools that do not tie one to committing fully
to a front-end technology that may quickly go out of
fashion. I am still hoping that something may emerge, but
then I have been hoping that for quite some time now !

 

-- 

This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
 


Replies:
Re: GitHub Software Releases in support of EPICS Web Applications Bruno Martins via Tech-talk
References:
Re: GitHub Software Releases in support of EPICS Web Applications Ryan Slominski via Tech-talk
Re: GitHub Software Releases in support of EPICS Web Applications Simon Rees via Tech-talk

Navigate by Date:
Prev: Re: Asyn/StreamDevice for HP3458A through Agilent E5810 LAN/GPIB Gateway Ralph Lange via Tech-talk
Next: RE: Re: Epics iocInit() Mark Rivers via Tech-talk
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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: GitHub Software Releases in support of EPICS Web Applications Simon Rees via Tech-talk
Next: Re: GitHub Software Releases in support of EPICS Web Applications Bruno Martins via Tech-talk
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  <20202021  2022  2023  2024 
ANJ, 08 Jul 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·