2002 2003 2004 <2005> 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 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: ICALEPCS and EPICS iocCore V4 |
From: | Steve Lewis <[email protected]> |
To: | [email protected] |
Date: | Mon, 17 Oct 2005 12:40:29 -0700 |
At 2:14 PM -0400 2005/10/17, Kay-Uwe Kasemir wrote:
But back to the technical aspect, did NIF just pick the wrong interfaces and thus each change requires 2-6? Is the other OO framework talk mostly by people who have never actually tried it on the scale of NIF?
Well, there are several aspects here. Because of the need for Ada language bindings, there were few choices of CORBA vendors; none offered Dynamic Invocation Interface. So a change of interface is a very early binding.
There was one Java program that could access tier-1 (IOC) interfaces as well as tier-2; when started at the command line, it dynamically parsed *ALL* the IDL in the shop. You were then presented with a pick list of 300-400 callable interfaces: you filled in the IN parameters and back came the OUTs. (It took about 15 minutes to start on a Sunblade 1000.)
The problem was that each object designer created whatever interfaces they saw fit to support use cases as they came along. So in addition to the "interesting" ones (like commands), every get/set for every attribute required a semi-custom interface. What took the place of the motor record, for example, had about 50 interfaces...
So the interfaces were not "wrong", but in a model where one requirement -> one interface, then new interfaces (commands + attributes) are an ongoing reality.
Adding new attributes to the motor record affects only a sophisticated sequencers, say, that need to manipulate them; it does not affect displays, archivers, alarm handlers, striptool, etc, etc, as long as the list of channels is administratively dealt with properly, as Kay suggests. That's very late binding.