A Formal Model and Composition Language for Context-Aware Service Protocols A Formal Model and Composition Language for Context-Aware Service Protocols Javier Cubo, Carlos Canal, Ernesto Pimentel, Gwen Sala¨ un University of M´ alaga, Spain Presented by John Plaice The University of New South Wales CASTA, August 24, 2009
A Formal Model and Composition Language for Context-Aware Service Protocols Introduction Introduction A model is developed for context-aware distributed objects in which the context is a set of shared global variables, the semantics uses synchronous rendez-vous, and the dependencies between shared actions can be rendered explicit. A semi-automatic mechanism is defined for creating these dependencies. These is a case study for going on the road again.
A Formal Model and Composition Language for Context-Aware Service Protocols Definitions Values, Types, Operators Values, Types, Operators ◮ Let Type ( ∋ t ) be a set of types. For a given type t ∈ Type , we write Val t for the set of possible values for t . We write Val = � t ∈ Type Val t . ◮ Let Op ( ∋ f ) be a set of operators. An operator signature Σ over Op is a mapping Σ ∈ Op → Type + × Type defining the types for each of the operators allowed in expressions. ◮ Let x ∈ X be a set of variables. Then the set of valid expressions of signature Σ over X is written Σ( X ).
A Formal Model and Composition Language for Context-Aware Service Protocols Definitions Contexts Contexts ◮ A context attribute A ∈ A is a string. Examples are language , temperature , etc. ◮ A context signature T is a mapping T : A → Type × Bool × Bool , with T ( A ) = ( t A , s A , p A ), where ◮ t A is the type of A ; ◮ s A determines if A is static (true) or dynamic; ◮ p A determines if A is public (true) or private. ◮ A context C of type T is a mapping C : A → Val with C ( A ) ∈ Val t A , as above.
A Formal Model and Composition Language for Context-Aware Service Protocols Definitions Context-Aware Transition Systems Context-Aware Transition Systems ◮ A context-aware label ℓ is one of: ◮ τ (internal action); ◮ ?( B , a , ( x 1 , . . . , x n )) (reception of message); ◮ !( B , a , ( E 1 , . . . , E n )) (emission of message); where B means Boolean expression and a is a message name. ◮ An atomic context-aware protocol P is a 6-tuple ( p , L , S , s I , S F , φ ) where: ◮ p is the name of the protocol; ◮ L is a set of transition labels, as above; ◮ S is a set of states; ◮ s I is the initial state; ◮ S F is the set of correct final states; ◮ φ : S × L → S is a transition function.
A Formal Model and Composition Language for Context-Aware Service Protocols Definitions Composing Context-Aware Protocols Composing Context-Aware Protocols Context-aware protocols can be built up through expressions: P ::= P atomic | P . P | P + P | P � D P where D is a data dependency of the form ( p 1 , ℓ 1 ) < ( p 2 , ℓ 2 ), implying that label ℓ 1 in protocol p 1 must be executed before label ℓ 2 in protocol p 2 .
A Formal Model and Composition Language for Context-Aware Service Protocols Semantics Multiple protocols Operational semantics of multiple protocols � s i , E i � a ! E � s j , E j � a ? x → � s ′ i , E i � → � s ′ j , E j � � � i , j ∈ 1 .. n i � = j E ′ j = E j † x �→ [ [ E ] ] E j � a ! E � � � . . . , � s i , E i � , . . . � s j , E j � , . . . → . . . , � s ′ i , E i � , . . . � s ′ j , E ′ j � , . . . � s i , E i � τ → � s ′ i , E i � i ∈ 1 .. n � τ � � � . . . , � s ′ . . . , � s i , E i � , . . . → i , E i � , . . .
A Formal Model and Composition Language for Context-Aware Service Protocols Semantics Protocol composition Operational semantics of composition language ℓ 1 → � s ′ � � � s 1 , E 1 � 1 , E 1 � ( p 1 , ℓ 1 ) < ( p 2 , ℓ 2 ) ∈ D D ′ = remove � ¬ in a loop ( s 1 , ℓ 1 , φ 1 ) ( p 1 , ℓ 1 ) , D ) ℓ 1 � s 1 , E 1 � � D � s 2 , E 2 � → � s ′ 1 , E 1 � � D ′ � s 2 , E 2 � ℓ 1 → � s ′ � � � s 1 , E 1 � 1 , E 1 � ( p 1 , ℓ 1 ) < ( p 2 , ℓ 2 ) ∈ D in a loop ( s 1 , ℓ 1 , φ 1 ) ℓ 1 � s 1 , E 1 � � D � s 2 , E 2 � → � s ′ 1 , E 1 � � D � s 2 , E 2 �
A Formal Model and Composition Language for Context-Aware Service Protocols Detecting dependencies Detecting dependencies ◮ Algorithm 1: Find possible dependencies (semantic matching); ◮ User: Manually selects among the results of Algorithm 1; ◮ Algorithm 2: Transitive closure of the user’s choices.
A Formal Model and Composition Language for Context-Aware Service Protocols Concluding remarks Concluding remarks ◮ An example is developed with users in cars being driven down the road and interacting with services provided through their mobile devices. ◮ Users must decide what dependencies are relevant, may end up providing inconsistent or incomplete dependency sets. ◮ Future work involves handling dynamic composition specifications.
Recommend
More recommend