[Os-project-managers] Fork in the Road
Horand Gassmann
Horand.Gassmann at Dal.Ca
Sun Dec 4 08:37:28 EST 2011
Horand Gassmann <Horand.Gassmann at dal.ca> wrote:
> Kipp Martin <kmartin at chicagobooth.edu> wrote:
>
>> Hi Gus:
>>
>>>
>>> Let me add another thought. This whole discussion has been extremely
>>> stimulating, and it has made me realize that there is a fundamental
>>> difference between input and output methods as far as encapsulation is
>>> concerned. We do not have the same problem with the OSoL format, because
>>> we can always pass the entire OSoL file down the line. The server reads
>>> its pieces, but it does not have to "decapsulate" the parts that need to
>>> go to the server. You pay the price of a bit of redundancy, because what
>>> the server passes to the solver has information we know to be useless,
>>> but that is trivial. It's the return path that is hard.
>>
>> Aha! You say: "You pay the price of a bit of redundancy, because what
>> the server passes to the solver has information we know to be useless,
>> but that is trivial."
>>
>> Then solver writers need to know what is useless, i.e. what they
>> should and should not try to read. If I am a solver developer I
>> would assume that I should be processing ALL of the OSoL file. I am
>> pretty irritated if I get useless information. This is what I keep
>> coming back to: OSoL should only contain information relevant to
>> the solver and OSrL should only be information coming back from the
>> solver. We had things correct with version 1.0 and then really
>> screwed up in going to 2.0. Indeed, I would favor a modification to
>> your previous option 4 in that when we do a remote_solve() we
>> package the OSoL inside OSpL, then strip out the OSoL and send it
>> to the solver.
>
> I would accept that as a friendly amendment.
>
>> Having OSpL information inside OSrL and OSoL is fundamentally wrong
>> in my opinion.
>
>> My Mantra: "OSoL should only contain information relevant to the
>> solver and OSrL should only be information coming back from the
>> solver."
I had a look this morning at OSpL, and it seems that if we go the
route of a modified option 4, with OSpL containing OSoL being sent to
the server, then we are going to have a hard time shoehorning the
return file (containing process information and an OSrL file) into the
same OSpL framework. According to Jun`s thesis, OSwL (for "write
process information") is available. (So is OSzL --- for "this is the
last change of this kind we will ever make"...)
So I would modify Option 4 yet again slightly:
solve() receives on OSpL file. The server (or perhaps a local layer
prior to sending the stuff to the solver) can act on the
process-related bits and strips out the OSoL file contained in it,
which it passes to the solver. The solver returns OSrL, which the
server (or the front end to the local solve) packages inside a schema
file (with a yet-to-be-determined name) and then returns to the user.
This is symmetric, encapsulating, and clean.
Cheers
gus
More information about the Os-project-managers
mailing list