click here for POSD home page |
The basic idea of POSD is that any notation that is used to represent the structure of complex heterogeneous systems must treat the interactions between systems as first class citizens. That is to say the interactions between systems must be recognised as subsystems shared between the interacting systems and must be given the same compositional potential as the interacting systems.
In presenting the implications of this idea other parts of this presentation have been constrained in two ways.
Firstly they have only talked about graphical notations. However the basic idea of POSD is equally applicable to textual notations.
Secondly they have only considered static representations of the structure of systems. They have not represented change in these structures. This would for instance involve one system being able to acquire the capability to interact with a second system and being able to acquire this capability from a third system.
The following example in pi-calculus demonstrates the main idea of POSD as far as this is possible in pi-calculus but removes the two restrictions. The subject of the example was suggested by Bent and Lone Thomsen.
The example is probably only useful to those familiar with pi-calculus though the pi-calculus notation is defined as it is used in the example. A paper "the polyadic pi-calculus: a tutorial" written by Robin Milner is available on the web.
The example problem can be referred to as the binding problem because it is concerned with how one system, the first system, binds itself to a second system by means of a mechanism provided by a third system. Once they are bound the first and second systems can interact with each other.
In the example the third system is the headquarters of a bank, the second system is a local branch of that bank, and the first system is a customer of that branch. The headquarters of the bank gives some capability to the local branch and its customer to enable them to interact in a more powerful way.
The following piece of pi-calculus shows the first, very simple, version of
the example
|
|
|
|
|
|
|
CASE 1 - MOST SIMPLE CASE
WITH NAME PASSING USING MINIMAL PI-CALCULUS
system = C{t,p} | B{t',f} | H{p',f',e,e'}
H{p',f',e,e'} = p'e .
f'e' . H{p',f',e,e'}
C{t,p} = p(y) . CE{t,p,y} + CO{t,p}
B{t',f} = f(z')
. BE{t',f,z'} + BO{t',f}
CE{t,p,e} = .....e.....
BE{t',f,e'} =
.....e'.....
where the notation is defined by
think of this as meaning
However this merely allows the head quarters to give simple links (such as
the email link) to the customer and the local branch. What if it wants to give
them more complex behaviours - for instance the ability to provide financial
advice. This is achieved by the next piece of pi-calculus code.
|
CASE 2 - NEXT MOST SIMPLE CASE
WITH PASSING OF PAIR OF PROCESSES USING HIGHER ORDER PI-CALCULUS
system = C{t,p} | B{t',f} | H{p',f',E,E'}
H{p',f',E,E'} = p' .
[E] f' . [E'] H{p',f',E,E'}
C{t,p} = p . (LY) CE{t,p,Y} + CO{t,p}
B{t',f}
= f . (LZ') BE{t',f,Z'} + BO{t',f}
CE{t,p,E} = E | CER{t,p}
BE{t',f,E'}
= E' | BER{t',f}
where the notation is defined by
think of this as meaning
However E will need to interact with E' and with CER. How does it do this?
This next piece of pi-calculus fills this gap.
|
|
|
CASE 3 - NEXT MOST SIMPLE CASE
WITH PASSING OF PAIR OF PARAMETERISED PROCESSES USING HIGHER ORDER
PI-CALCULUS
system = C{t,p} | B{t',f} | H{p',f',(Lu)(Lv)E,(Lw)(Lx)E'}
H{p',f',(Lu)(Lv)E,(Lw)(Lx)E'}
= p' . [(Lu)(Lv)E] f' . [(Lw)(Lx)E'] H{p',f',(Lu)(Lv)E,(Lw)(Lx)E'}
C{t,p} =
p . (LY) CE{t,p,Yt} + CO{t,p}
B{t',f} = f . (LZ') BE{t',f,Z't'} + BO{t',f}
CE{t,p,(Lu)(Lv)Et}
= v(m)((Lu)(Lv)Etm | CER{t,p,m'})
BE{t',f,(Lw)(Lx)E't'} =
v(n)((Lw)(Lx)E't'n) | BER{t',f,n'}
where the notation is defined by
think of this as meaning
However t t', p p', and f f' may need to be complex interactions like E E'
and may need to be acquired from various third parties.
CASE 4 - MOST GENERAL VERSION
system = C{T,P} | B{T',F} | H{P',F',(LU)(LV)E,(LW)(LX)E'}
H{P',F',(LU)(LV)E,(LW)(LX)E'}
= P'{(LU)(LV)E}; F'{(LW)(LX)E'}; H{P',F',(LU)(LV)E,(LW)(LX)E'}
C{T,P} =
P{Y} ; CE{T,P,YT} + CO{T,P}
B{T',F} = F{Z'} ; BE{T',F,Z'T'} + BO{T',F}
CE{T,P,(LU)(LV)ET}
= v(M)((LU)(LV)ETM) | CER{T,P,M'})
BE{T',F,(LW)(LX)E'T'} =
v(N)((LW)(LX)E'T'N) | BER{T',F,N'})
This just takes the primitive interactions t t', p p', and f f' and replaces them with more complex interactions TT', PP', and FF'. There would need to be extra code to show how these were acquired but then there should have been extra code earlier to show how t p f m n etc were acquired from telephone companies, IT departments, etc.
However there are a number of iffy bits in this code
Firstly the sequential combinator P;Q has had to be used in place of p.Q. This could mean the same as it does in CSP but it might be more complicated. It might just mean P invokes Q but does not necessarily terminate when Q starts.
Secondly the pairing of P'(L(X3,X4)) and P(X1) must mean that that the abstraction L(X3,X4) is transmitted from the head quarters to the customer by the interaction of P' and P.
Thirdly what does the restriction v(M)P mean. It probably means hide all of M's events within P.
last revision: 21st June 1997