RE: The future of CSP?

From: marcel.boosten_at_email.domain.hidden
Date: 2001-08-23 08:41:48


Hi everyone,

Gerald describes many different ways in which objects are
used to implement many different concepts. I do not want to
either agree or disagree with Gerald, but instead state the
following:

     OO is an implementation technique, which has had
     effect on software architecture.

     CSP is a design technique, which has had effect also
     at the implementation level.

Currently, there is an overfocus on CSP at the implementation
level, and an underfocus on CSP at the architectural level.
CSP should exploit aspects of OO at the implementation level.

Do you agree?

Cheers,
     Marcel

"Gerald Hilderink" <g.h.hilderink_at_home.nl> on 2001/08/23 09:17:16

Please respond to <g.h.hilderink_at_home.nl>

To: Marcel Boosten/BST/MS/PHILIPS_at_EMEA2
        <tjoccam_at_crash.cts.com>
        <java-threads_at_ukc.ac.uk>
        <occam-com_at_ukc.ac.uk>
cc:
Subject: RE: The future of CSP?
Classification:

Marcel,

Sounds familiar!

Processes are NOT objects. Processes can be implemented with objects,
sure. Processes are entities that are never very-well understood by the
OO community. They call them 'active' objects and treat usually them as
'passive' objects. Even events are objects in OO. I belief, an event is
NOT an object, but it is an occurrence at run-time (in time and space).
Events should not be implemented as objects otherwise we never will know
the real meaning of an event. Messages that are created at those events,
yes, they are objects. Oh, channels are objects as well.

Look at Java: a Thread is an object . isn't that funny! :)

What is an 'idea', is that an object?

Gerald.

> -----Original Message-----
> From: marcel.boosten_at_philips.com [mailto:marcel.boosten_at_philips.com]
> Sent: donderdag 23 augustus 2001 8:35
> To: tjoccam_at_crash.cts.com; java-threads_at_ukc.ac.uk; occam-com_at_ukc.ac.uk
> Subject: Re: The future of CSP?
>
>
> Hi,
>
> Larry wrote:
> > I want to express my sympathy with Gordon Hutchison's
> > point of view. I too am just programming, trying
> > to get things to work, and finding occam concepts
> > and emulation indispensable to this. How many others
> > in our circumstances have no way of knowing this?
>
> In my function as Software Architect, I use CSP-based
> concepts (as well as concepts) to define the architecture of
> relatively complex applications that need to be fitted into
> even larger applications. Larry and Gordon also use CSP to
> obtain overview, to design...
>
> In my work, I once in a while see Software Architectures,
> defined 5 to 15 years ago: huge applications with upto
> several million lines of code.
>
> I claim that the only OO designs that have turned out to be
> maintainable, and that are still valid, have got a strong
> Process architecture.
>
> To state this even more cruel:
>
> Many OO people think that all classnames should be Nouns: typically
> refering to relatively dead data objects, which contain complex
> methods: complex functions on the instance variables.
>
> This does not work. Good software architectures contain a balance
> between relatively simple "Data classes", and "Process classes" that
> operate on instances of a number of data classes. The data classes
> are with some fantasy comparable to "channels containing messages".
>
> CSP rules!
>
> Has anyone similar experiences?
>
> Marcel
>
>
>
>
>
> Lawrence Dickson <tjoccam_at_crash.cts.com> on 2001/08/22 19:13:48
>
> To: CSPUG_at_JISCMAIL.AC.UK
> gordon_hutchison_at_uk.ibm.com
> java-threads_at_ukc.ac.uk
> occam-com_at_ukc.ac.uk
> cc: (bcc: Marcel Boosten/BST/MS/PHILIPS)
> Subject: Re: The future of CSP?
> Classification:
>
>
>
> All,
>
> I want to express my sympathy with Gordon Hutchison's
> point of view. I too am just programming, trying
> to get things to work, and finding occam concepts
> and emulation indispensable to this. How many others
> in our circumstances have no way of knowing this?
>
> My email answering tool is also crude...
>
> Larry Dickson
>
> From owner-occam-com-out_at_ukc.ac.uk Wed Aug 22 06:15:02 2001
> To: java-threads_at_ukc.ac.uk, occam-com_at_ukc.ac.uk, CSPUG_at_JISCMAIL.AC.UK
> MIME-Version: 1.0
> X-Mailer: Lotus Notes Release 5.0.7 March 21, 2001
> From: "Gordon Hutchison" <gordon_hutchison_at_uk.ibm.com>
> Date: Wed, 22 Aug 2001 14:13:46 +0100
> X-MIMETrack: Serialize by Router on d06ml006/06/M/IBM(Release
> 5.0.6 |December 14, 2000) at 22/08/2001 14:13:58,
> Serialize complete at 22/08/2001 14:13:58
> Content-Type: text/plain; charset="us-ascii"
> Precedence: bulk
>
> I am afraid I do not have a very good tool for 'replying' to
> posts neatly
> -
> none the less I am responding to:
>
> <start>
> A E Lawrence wrote:
> >
> > Gordon Hutchison wrote:
> > >
> > > (Note I have copied CSPUG_at_JISCMAIL.AC.UK - we need one place for
> > > this like "comp.X.processalgebra"perhaps)
> > >
> > > I was quite interested in the references from Adrian
> Lawrence to CSP
> > > models that tried to describe more about which actual event is
> > > accepted/fired rather that the set of possible
> > > events in the ready set. CSPP etc.
> >
> > If you are concerned with the model itself, rather than
> mapping onto
> > real world events I see no reason why what you suggest
> below might not
> > work. For me. at least, my Acceptances seems more intuitive
> and much
> > closer in spirit to the Failures style. Your suggestion is
> a bit more
> > operational. Not that that is a problem.
> >
> > Acceptances does allow me to capture several sorts of
> useful priority
> > (e-priority and p-priority), and now, thanks to Bill Roscoe's
> > suggestion, neutrality in the form of "compliant" processes.
> >
> > > This seems less 'clean' to me to model what actually will be
> > > accepted
> in
> > > the model itself.
> > >
> > > Could one not take a 'standard' CSP model plus a set of rules
> (meta-model)
> > > that relate to the
> > > "firing engine" (eg given this ready set of events - probably
> decorated
> > > in some
> > > way by the participating processes) that results in a
> subsetting of
> the
> > > traces.
> > > I am thinking along the lines of controlling the selection of the
> > > next event into the combined trace possibly based on both
> the types
> > > of events and the processes involved.
> > >
> > > This might be a cleaner road to a refinement order from
> > > possibilities
> to
> > > actualities? CSP models
> > > often have 'governing' type process added just to control event
> selection
> > > in this way.
>
> I don't really know enough about operational semantics, but
> would the approach above give you a simple way of defining
> fixed points for recursion? Acceptances does rather well in
> that area, including unbounded behaviour. <end>
>
> I guess you are right, my view of the CSP world is very
> operational (I am just a jobbing programmer you see so tend
> to think of CSP in terms of its operational semantics - or
> more exactly the operational semantics of the few wmodels I
> have written and how they relate to the software I am
> modelling. I do this generally because I want to check
> something eg search for some timing window; or prove
> something - like some 'optimization' of a locking algorithm
> is really a refinement; or sort out in my head some
> concurrent behaviour.
>
> I am attracted to the idea of being able to factor a
> prioritized model into a vanilla CSP model and another chunk
> (that in my operational world view would affect the 'firing
> rules' - what a programmer like me might wrongly think as the
> thing analogous to the scheduler).
>
> where prioritized_model = vanilla_model operatorP meta_model
>
> and then if one worked carefully on the meanings then by
> definition the priorized_model would always be a refinement
> (under the semantics) of the vanilla_model, the meta_model
> just selecting the subset of traces/failures.
>
> Plainly my thinking is rather wooly to discuss at this level
> (so I will have to do some revision :-) )
>
> I am drawn to this idea that just as one cannot always (ie
> NEVER) rely on the OS schedular to save one from being found
> out when writing concurrent programs with races/timing
> windows but testing well. (It somehow knows how to apply the
> most fiendish combination of thread progression ONCE the code
> has left your machine.)
>
> I think there is something, probably a much smaller thing
> than addressed by Acceptances, in a form of prioritisation
> that provides for a strict refinement of a non-prioritised
> version of a model that can be easily split out and which
> represents the semantics of some software + the behaviour of
> its (read operating system) environment - eg which waiting
> locker will get a OS mutex - the OS chooses
>
> based on priority,time-of-arrival,priority-inheritance etc
> but we do not want such things to clutter every individual
> model rather we want some re-usable meta-model?
>
> Would this be useful?
>
>
>
> Gordon Hutchison
> IBM Java Technology Centre,
> IBM Hursley, UK.
> Notes: Gordon Hutchison/UK/IBM
> Internet: gordon_hutchison_at_uk.ibm.com
> Phone: (+44)/(0) 1962 815646 (Internal IBMUK-245646)
>
>


Original text of this message

This archive was generated by hypermail 2.1.7 on 2004-10-31 20:03:59 GMT
© Copyright WoTUG
All rights reserved