[Os-project-managers] Fork in the Road

Kipp Martin kmartin at chicagobooth.edu
Sat Dec 3 17:32:26 EST 2011


Hi Gus:

>
> 1. We allow the server, as we do now, to modify the OSrL file. This
> violates encapsulation.
>
> 2. We let the server return a second file (OSpL). This also violates
> encapsulation, and I do not like it because in addition it introduces
> side effects into the solve() method.
>
> 3. We enforce encapsulation but let the server write its own OSrL file.
> The only way I see that happening is by allowing the OSrL files to have
> nesting, i.e., a form of recursion. I think this is overkill, since we
> ever only write output in *two* places, the server, and the solver. I
> believe we very explicitly ruled out the possibility of daisy-chaining
> one server onto another, which would allow the server to pass a remote
> solve() on to the remote solver. So it seems we do not gain much, but we
> pay a heavy price. Parsing a recursive result file is orders of
> magnitude harder and more complicated than parsing a flat one.
>
> 4. We implement two new methods, local_solve() and remote_solve(). Both
> are private, and both are called from inside solve() to hide the
> complexity from the user. remote_solve() returns an OSpL string that
> contains an embedded OSrL string. This will look very much like what we
> have now. local_solve(), however, returns an OSrL string. So in order to
> make both conformal to the solve() command that sits outside, we have a
> wrapper around the local_solve() method whose only function it is to
> provide an (empty) OSpL around the OSrL file. This preserves
> encapsulation, avoids side-effects, and provides a unified face to the
> user. The drawback is that solve() returns OSpL instead of OSrL, but I
> consider that minor, and we could get around it by shifting some of the
> names around. (Is there any letter in the alphabet that we could
> sacrifice for this?) To me this is the cleanest solution by far.


Among the four listed above, I agree that option 4. it is the cleanest. 
However, before the three of us meet on Wednesday, I need to spend some 
time on couch, wine glass in hand, meditating on this.

I am off to the wine store now.


Cheers

-- 
Kipp Martin
Professor of Operations Research
and Computing Technology
Booth School of Business
University of Chicago
5807 South Woodlawn Avenue
Chicago, IL 60637
773-702-7456
kmartin at chicagobooth.edu
http://www.chicagobooth.edu/faculty/bio.aspx?person_id=12825325568
http://projects.coin-or.org/OS

Sent without Blackberry, Droid, iPhone, or any other
wireless device.
-- 


More information about the Os-project-managers mailing list