190 likes | 381 Views
Interface Automata. 29-September-2011. Modeling Temporal Behavior of Component. Component behaves with Environment Traditional (pessimistic) approach Environment is free to behave as it wants to Two components are compatible if no environment leads them into an error state
E N D
Interface Automata 29-September-2011
Modeling Temporal Behavior of Component • Component behaves with Environment • Traditional (pessimistic) approach • Environment is free to behave as it wants to • Two components are compatible if no environment leads them into an error state • Optimistic approach of Interface Automata • Components designed with assumptions about environment • Two components are compatible if some environment can make both of them work together • In context of this course • Write code ONCE and know that it works
Interface Automata • Interaction specified by synchronizing input and output actions • Internal actions of concurrent automata are interleaved asynchronously • Input actions • Model methods that can be called • Receiving ends of communication channels • Output actions • Model method calls • Messages being transmitted • Exceptions • Component designed under environmental assumptions • i.e., an object works if methods called in specific order
Sample Automata • Internal state machineexternally invisible • Labels • msg? means message received • send! means action sent out • Dot/arrow on interface species in- or out-connection • Internal transitions are arrows between states based upon interface interactions • Let’s discuss possible valid/invalid interactions
Sample Interface Automata • User • Designed to be used only with message-transmission services that cannot fail
Comp User • Compose Comp with User • msg? and msg! collapsed to msg; • Error state 6 upon second failed nack? • Composition • Note how a “new” automatais created from thecomposition with its own In/Out actions • Handling errors • Why does 6 have no exitingarrows? • Declared “Illegal” state(s)
Interface Automata • Definition in paper • Review page 113 • Compatibility and Composition • All independent actions are asynchronous • All shared actions force automata to synchronize state transitions • Two automata P and Q are composable if • They don’t share states • There is no duplication of Input or Output actions • That is, “shared” means pairing Input with Output
Component Product • Review Definition (p114) • Legal environments • Steers away from Illegal states • How to specify? Use an Interface Automata! • Environment Automata E • E is composable with R and non-empty • Input of E is the output of R • Illegal(R, E) =
Example • Channel wraps error-prone send (ack/nack) with an error-free get_token / put_token to ensure delivery • Parse this from the graphics
Final Notation • Automata Product Composition: Comp User • Restricted Composition:Comp || User • Nice features of composition • Associative (P || Q) ||R == P || (R || Q) if either is defined • Some automata cannotbe composed in thisrestrictive way
Refinement • Consider relation between abstract and concrete version of a component • QuickComp (next slide) • Provides try-twice msg service • Provides try-once once service • Shouldn’t QuickComp be considered a refinement of Comp?
QuickComp • Comp QuickComp means QC refines C
Contravariance • Refined automata must allow for (possibly) more legal inputs and (possibly) fewer outputs • Weaken the pre-condition • Strengthen the post-condition • Notion of alternating simulation • Q refines P if • all input steps of P can be simulated by Q • all output steps of Q can be simulated by P • works because internal state transitions are invisible to external viewers • Captures a simple kind of subclassing • If Q refines P then implementation Q is able to provide more services than specification P • Q must be consistent with P on shared services
More definitions • Transitive: Q refines P and R refines Q • If P Q and Q R then P R • Reflexive: P refines P • P P • Refinement and compatibility are related • Replace P with Q if (a) P and Q are connected to the environment by same input/output; and (b) P Q
Refinement is Compositional • Is P||R S||T? • One need only check two smaller cases • Is P S? • Is R T? • Compositional reasoning is the key to dealing with large scale systems
Refinement and Composition • Given interface automata P, Q, and R where • Q and R are composable • InputQ OutputR InputP OutputR • If P and R are compatible and P Q • Q and R are compatible • P||R Q||R
Single-Threaded Interface Automata • Many compositions can be restricted to single-threaded • Client makes request (and then blocks); during this time client cannot alter state • Server receives request and once it has responded, it becomes quiescent and won’t alter state • See Figure 7