We have a solution for the requirement for low performance readouts that we
use for this exact problem. In fact it is just about exactly what Andrew
outlined, except it is not specific for the ALS but allows the cgi-bin
client to define the channel names to be read.
It consists of a server that makes the necessary CA connections, and a
native perl-based client library that the cgi-bin includes to get data from
the server. CA Connections are managed (shared, timed out, etc) for all
clients. The perl (and soon a C library) clients don't have to be in
"CA-range", only the server does. There is no writing, this is a readonly
service.
The client api for data collection is a group based. It has calls for add
channel to group, get group (to private cache), and read channel
data/status from cache. The network activity is two-phase - a 'define
group' that occurs the first time the group data is requested, and a 'get
group' that gathers the whole dataset across the wire. It is udp based so
the cost and maintenance of connections is not problematic. There are
retries and timeouts to make the service reliable.
We are currently running the server (solaris unix) from inetd, so it starts
up when clients are active. If no clients are active for awhile it times
out the CA connections and eventually shuts down itself.
This system is fairly new but has been in test/production at the ALS for a
few months. Loren Shalz ([email protected]) has done the programming for me.
At this point we don't have a distribution setup, but if other sites are
interested we can possibly set up an alpha-beta release in a week or so.
Alan K Biocca
Advanced Light Source
[email protected]
At 02:36 PM 11/24/99 -0600, you wrote:
Paul Sichta wrote:
>
> I would like to make a few PV's available (read-only) to our collaborators
> through a web browser, strictly low performance. What approach has been
> used for this? Do I need to program in Java and use JCA ? Or, are there
> unix/scripting tools that can be applied?
The obvious and simplistic method is to write a cgi script that uses the
caget & caGet script level commands. However there are performance
reasons to avoid doing this - every time anyone requests the relevent
information the web server calls this which then does a CA broadcast name
request, makes the connection, gets the value and then drops it again.
For low performance and low usage this will provide up-to-date
information, but it does load your IOCs and it requires that the
web-server be able to make direct CA connections to them.
It is probably better to write a CA client which monitors the relevent PVs
and can either be contacted by the cgi script somehow at request time, or
which periodically updates a file which the web-server makes available.
We use this approach at APS for graphical information about the current
machine status, beam history etc, which is refreshed at 60 second
intervals. It has the advantage that the web-server doesn't need direct
access to your controls network, the updates can be pushed out through a
firewall to the server outside, but does add a slight delay to the data.
- Andrew
--
Complexity comes for free, Simplicity you have to work for.
- References:
- PV's on the www Paul Sichta
- Re: PV's on the www Andrew Johnson
- Navigate by Date:
- Prev:
RE: PV's on the www Eric Boucher
- Next:
Re: PV's on the www Ron Chestnut
- 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
2025
- Navigate by Thread:
- Prev:
Re: PV's on the www Andrew Johnson
- Next:
RE: PV's on the www Eric Boucher
- 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
2025
|