EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Proposals for the Next Generation CA
From: Benjamin Franksen <[email protected]>
To: [email protected]
Date: Wed, 13 Dec 2000 13:53:04 +0100
Re: Proposals for the Next Generation CA

Hello Pete,

> ...
> It is unimaginable to attempt to convince our scientists in
> the year 2001 to scan the X-ray monochromator from 12678766 to 9348754
> theta motor pulses rather than 8.8 keV to 9.2 keV.  Dreadful.
> 
> Why should each and every client have to make these conversions?
> What is a client/server system for?
> Just because our servers are a generation old, (mutter, mutter, ...).

Noooo, of course not!

I am NOT talking about conversion from raw machine / device data to
engineering units. This is usually done by the records and their device
supports (or maybe by some sequencer task on the IOC) and has nothing at
all to do with CA.

I am talking about those conversions that automatically take place
whenever a client, for example, requests a string from such a floating
point value and the (current) server applies an implicit conversion from
double to string, before it sends this string over the network to the
client.

The command line tool 'camonitor' is a good example. Look at the source
code, it's quite a small programm. It would be just as simple with my
proposed changes, only the conversion would be done in the client side
CA library, not on the server side.

> >(f) Writing server tools will be simplified drastically (this is one of
> >the reasons I began to think about this).
> 
> Not simplified in many cases.
> A major philosophical difference here, as follows:
> 
> When the programmer takes the easy way out, to simplify,
> for whatever purpose, the work then falls to the user of
> the software.  So, what was quite a bit of work for one
> person now falls to many to repeat over and over.
> 
> It is the point of software to simplify complex tasks.
> Otherwise, why bother with it at all?

As I said above, with regard to the client or server code it is
completely irrelevant on which side, client or server, the conversion
takes place, since it is done automatically inside the library in both
cases (if the client wants, that is).

Let me explain this point:

I do not mean that the work gets easier because someone else does the
work, so I don't have to do it. I say it gets easier because I wouldn't
have to re-invent the wheel that someone else has *already invented*.

When you write a server tool with the current version of the portable
cas, you are practically forced to write half of the ioc core again (I'm
exaggerating to make the point), because you have to provide all the
usual pv attributes from inside the pv. Well, at least if you want to
make it work, for example, with a display manager like medm. And you
cannot say to the client: sorry, I have no suitable attribute of this
type, because if you return 'no support for this application type' the
whole request fails.

And even if you could, and the server library would invent some default
value to send back to the client in this case, it would be of no use,
because the client may actually *need* some non-default value, for
*some* of the attributes, but it may not need *all* of them to display
*anything*.

[Please note that currently an ioc will return a valid answer to any
request (of whatever type) and for any record field that is readable for
the client.]

One of the assumptions I made, when I stated that writing a server tool
would become easier, is that clients will chose more selectively which
attributes they really need, which they would liek to have but do not
really need. And in the future, more advanced clients can develop
suitable fallback strategies, in case some attribute is not available.

For instance, a display manager that normally requests the severity of
each pv (in order to change display color accordingly), may chose to
assume that the severity is ok and display the value, even if such a
thing as severity is not available. Or if it needs a graphic limit, that
is not available, it may prompt the user to supply some value, or to
input te name of some other channel that provides a suitable value for
this attribute, etc...

So the server tool may provide only a subset of what would be desirable
in a perfect world.

Have I made myself clearer?

Ben


References:
Re: Proposals for the Next Generation CA Pete R. Jemian

Navigate by Date:
Prev: RE: Proposals for the Next Generation CA Jeff Hill
Next: Re: Proposals for the Next Generation CA Ned Arnold
Index: 1994  1995  1996  1997  1998  1999  <20002001  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: Proposals for the Next Generation CA Pete R. Jemian
Next: RE: Proposals for the Next Generation CA Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  <20002001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·