Download presentation
Presentation is loading. Please wait.
Published byEricka Matlock Modified over 10 years ago
1
CommUnity on the Move Coordination in Distributed and Mobile Systems José Luiz Fiadeiro joint work with Antónia Lopes University of Lisbon
2
Architectures for Mobility University of Munich University of Pisa University of Florence University of Lisbon ISTI-CNR ATX Software SA IST-2001-32747 Architectures for Mobility Jan 02 – Apr 05
3
Motivation Mobility A new factor of complexity in the development of software systems Software Architectures Have contributed to the taming of the complexity of developing software systems by separating Coordination from Computation and promoting Connectors as first-class citizens.
4
Motivation Architecture-based approaches A Y Y A B B C Computation Coordination A Y X Compositionality wrt refinement Y Y B B X C C wrt evolution
5
Architectural Descriptions in Example. A simple sender-receiver system bsender Sync breceiver design bsender is out ob:bit prv w:array(N,bit), k:nat, rd:bool do neww:k=N w: array(N,bit) k:=0 [] newb: rd k<N rd:=true ob:=word[k] k:=k+1 [] send:rd rd:=false ob sendnewbneww design breceiver is in ib:bit out w:array(N,bit), k:nat prv recw:array(N,bit), rd:bool do rec:k<N recw[k]: ib k:=k+1 rd:=false [] savew: rd k=N rd:=true w:=recw [] neww:rd k=N rd:=false k:=0 ib recsavewneww
6
Categorical semantics in Example. A simple sender-receiver system design sync is in i:bit do ac:true skip breceiver bsender cable ob i send ac cable i ib ac rec Diagram in a category of designs Semantics given by the colimit
7
Colimit semantics design sync-send-rec is out b:bit, w r :array(N,bit), k r :nat prv rd r, rd s : bool, recw r, w s :array(N,bit), k s :nat do sendrec:rd s k r <N rd s :=false word r [k r ]: b k r :=k r +1 rd r :=false [] savew: rd r k r =N rd r :=true w r :=word [] rneww:rd r k r =N rd r :=false k r :=0 [] sneww:k s =N w s : array(N,bit) k s :=0 [] newb: rd s k s <N rd s :=true b:=w s [k s ] k s :=k s +1
8
Key ideas for Mobility New forms of coordination that have emerged in mobile computing sa transient interaction and remote evaluation can be modelled through connectors Distribution can be separated from Coordination and Computation Distribution connectors can be offered as architectural primitives Location-aware architectural models can be developed incrementally through the refinement of higher-level descriptions that abstract from mobility
9
Motivation Architecture-based approaches A Y X C C Y A B B C Computation Coordination A Y X Distribution G F F G F Architectural Approach to Mobility : Goal
10
Making designs location-aware Designs are defined in terms of extended signatures channels and action names location variables (input, output) typed over Loc with a distinguished and located actions x@l Position where the value is available Position where code is executed enabling condition state changes g@l : G(g) R(g) g@{l 1,l 2,...} On the move…
11
Making designs location-aware Example. A mobile bit receiver that once a word defining a location is received, moves to that location design mobreceiver is outloc l in ib:bit out w@l:array(N,bit), k@l:nat prv recw@l:array(N,bit), rd@l:bool do rec@l:k<N recw[k]: ib k:=k+1 rd:=false [] savew@l: rd k=N rd:=true w:=recw [] neww@l:rd k=N rd:=false k:=0 l:=if(loc?(w),loc(w),l)
12
Making designs location-aware Example. A fixed sender i.e. placed at a fixed position design mobsender is outloc l out ob@l:bit prv w@l:array(N,bit), k@l:nat, rd@l:bool do neww@l:k=N w: array(N,bit) k:=0 [] newb@l: rd k<N rd:=true ob:=w[k] k:=k+1 [] send@l:rd rd:=true
13
Making architectures location-aware Example. A location-aware version of the sender-receiver system with the previous mobile receiver and a fixed sender mobreceiver mobsender cable ob i send ac i ib ac rec Categorical Diagram design sync is in i:bit do ac:true skip
14
Making architectures location-aware design mobsys is outloc l s, l r out b@l s :bit, w r @l r :array(N,bit), k r @l r :nat prv rd r @l r, rd s @l s : bool, recw r @l r, w s @l s :array(N,bit), k s @l s :nat do sendrec@l s :rd s rd s :=false @l r :k r <N word r [k r ]: b k r :=k r +1 rd r :=false [] savew@l r : rd r k r =N rd r :=true w r :=word [] rneww@l r :rd r k r =N rd r :=false k r :=0 l r :=if(loc?(w r ),loc(w r ),l r ) [] sneww@l s :k s =N w s : array(N,bit) k s :=0 [] newb@l s : rd s k s <N rd s :=true b:=w s [k s ] k s :=k s +1
15
CommUnity with Distribution: The Space of Mobility Explicit representation, but we do not assume any specific notion: Location variables have sort Loc, a special data type The space is constituted by the set of possible values of Loc Mobility is associated to the movement of channels and actions (unit of mobility)
16
CommUnity with Distribution: Semantics The semantics of CommUnity designs is defined in terms of An algebra U for the data types An infinite sequence of pairs of binary relations over U Loc (bt i,reach i ) i N n bt m : n and m are positions in touch with each other n reach m : position n is reachable from m Coordination among components takes place only when they are in touch with each other Movement of a component to a new position is possible only when this position is reachable from the current one
17
addition of mobility aspects… Superposition of distribution/mobility concerns is intrusive Distribution and mobility aspects of the system are not explicitely represented in the architecture; they cannot be refined or evolved independently of the architectural elements mobsender Sync mobreceiver
18
Making designs location-aware design mobsender is outloc l out ob@l:bit prv w@l:array(N,bit), k@l:nat, rd@l:bool do neww@l:k=N w: array(N,bit) k:=0 [] newb@l: rd k<N rd:=true ob:=w[k] k:=k+1 [] send@l:rd rd:=true design bsender is out ob:bit prv w:array(N,bit), k:nat, rd:bool do neww:k=N w: array(N,bit) k:=0 [] newb: rd k<N rd:=true ob:=word[k] k:=k+1 [] send:rd rd:=false design fixed is outloc l cable2
19
Making designs location-aware design mobreceiver is outloc l in ib:bit out w@l:array(N,bit), k@l:nat prv recw@l:array(N,bit), rd@l:bool do rec@l:k<N recw[k]: ib k:=k+1 rd:=false [] savew@l: rd k=N rd:=true w:=recw [] neww@l:rd k=N rd:=false k:=0 l:=if(loc?(w),loc(w),l) design breceiver is in ib:bit out w:array(N,bit), k:nat prv recw:array(N,bit), rd:bool do rec:k<N recw[k]: ib k:=k+1 rd:=false [] savew: rd k=N rd:=true w:=recw [] neww:rd k=N rd:=false k:=0 design move_to is outloc l in w:array(bit,N) do move@l: l:=if(loc?(w),loc(w),l) cable3 move neww l w
20
Externalisation of distribution breceiver bsender cable ob i send ac i ibit ac rec design sync is in i:bit do ac:true skip cable2 design fixed is outloc l l cable3 move neww l w design move_to is outloc l in w:array(bit,N) do move@l: l:=if(loc?(w),loc(w),l)
21
Conclusions Architecture-based approaches A Y X C C Y A B B C Computation Coordination A Y X Compositionality wrt refinement wrt evolution Distribution G F F G F Architectural Approach to Mobility
22
Conclusions Furthermore, our approach -supports an incremental development (associativity) of location-aware architectural models ; this makes it easier to cope with the increase of complexity and promotes reuse -there are principled-ways of making models location- aware ; in this process designers can be assisted through libraries with location and distribution connectors modelling standard solutions
23
Other Work within Making primitives for mobility available in the UML Operational semantics in KLAIM Reconfiguration with Hypergraph Rewriting Refinement in Tyle Logic Model-checking
24
www.fiadeiro.org/jose/CommUnity
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.