Hybrid Techniques for Detecting and Resolving Feature Interactions in Telecommunication Services Resolution Choices for an Online Feature Manager FIW’00: Glasgow, 16 -19 May 2000 Stephan Reiff University of Glasgow http://www.dcs.gla.ac.uk/~sreiff [email protected] Work, Project and Partners • Joint work with Prof. Muffy Calder • Project (EPSRC funded): Hybrid Techniques for Detecting and Resolving Feature Interactions in Telecommunication Services • Partners: – University of Strathclyde, Glasgow – Citel – Mitel • http://www.dcs.gla.ac.uk/research/hfig/ FIW’00 : Glasgow, 16 -19 May 2000 [2] Overview • • • • • • • Motivation and Background The Hybrid Approach Definitions Feature Interference The Feature Manager Solution Space Open Questions and Further Work FIW’00 : Glasgow, 16 -19 May 2000 [3] Motivation and Background • Motivation • Feature Interaction Problem • Legacy and Proprietary Systems – Extension needed – Knowledge about internal behaviour unavailable/unreliable • Background • Work by Marples,Magill and Tsang; all have shortcomings • We use Marples and Magill’s approach • Hybrid? Use offline analysis to find general rules ... … to control online feature manager FIW’00 : Glasgow, 16 -19 May 2000 [4] Example Features (1) (dial, id, id, n) (o_inform, id, a, "Call Forwarded") (forward_call, id, n, a) (offhook, id, id, -) (onhook, id, id, -) (onhook, id, id, -) (announce, id, id, "screened") (announce, id, id, "PIN?") Inform about Forwarding (onhook, id, id, -) Terminating Call Screening (dial, id, id, n) (forward_call, id, n, a) (i_alert, a, b , -) (announce, id, id, "wrong PIN") Teenline FIW’00 : Glasgow, 16 -19 May 2000 Call Forwarding Unconditional [5] Definitions • Messages – IO-aspect(event, source, destination, value) – relations between messages: – equal, inverse and name equivalent • Alphabet – Set of messages (partitioned into Input and Output messages) • Trace – non-empty, finite sequence of messages (starting with an input message) • Feature – non empty set of traces over a minimal alphabet FIW’00 : Glasgow, 16 -19 May 2000 [6] Example Features (2) iaf = [[+(forwardcall,id,n,a)-(oinform,id,a,"Call Forwarded")]] cfu = [[+(ialert, a, b,-)-(forwardcall,id,n,a)]] tl = [[+(offhook, id, id,-)-(announce,id,id,"PIN?") +(onhook, id, id,-)], [+(offhook,id,id,-)-(tau)], [+(offhook,id,id,-)-(announce,id,id,"PIN?") +(dial,id,id,n)-(tau)], [+(offhook,id,id,-)-(announce,id,id,"PIN?") +(dial,id,id,n)-(announce,id,id, "wrong PIN") +(onhook,id,id,-)]] FIW’00 : Glasgow, 16 -19 May 2000 [7] Feature Interference Definition: Feature Interference n features F1…Fn with alphabets a1…an interfere iff i, j : ((1 i, j n ) (i j )) ( a ai (b a j : a b)) In words: Features interfere iff they have either a common input message or one feature’s output message is the other features input message. FIW’00 : Glasgow, 16 -19 May 2000 [8] Resolution Process GENERAL RULES Te rm inating Call Scre ening: {(+,dial,n)(-,announce,screened) (+,onhook,-); (+,dial,n)(-,tau)} CONSTRUCT Construct (TL, TCS ) 16 TL TCS ( Overlap (tTL , j , tTCS ,k )) i 1 Exam ple overlapping interle aving: Te enline : {(+,offhook,-)(-,announce, PIN?)(+,onhook,-); (+,offhook,-)(-,tau); (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau); (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrongPIN) (+,onhook,-)} TCS1 (+,dial,n) (-,announce,screened) (+,onhook,-) TL4 (+,offhook,-)(-,anno unce,PIN?) (+,dial,n) (-,announce,wrongPIN) (+,onhook,-) t oi 2(TCS1 , TL4 ) t concat (( , offhook)( announce, PIN ?), f (1,1, TCS1 , TL4 )), int ((-,announ ce,screened)(+,onhook,-), (-,announce,wrongPIN)(+,onhook,-)) f (1,1, TCS1 , TL4 )) (, dial ) int can return 4 diffreent values, hence we obtain 4 different traces t, with the common prefix (, offhook)( announce, PIN ?)(, dial ) and the endings : Output Input (-,announce,wrongPIN)(+,onhook,-) (-,announce,screened)(+,onhook,-), (-,announce,screened)(+,onhook,-) (-,announce,wrongPIN)(+,onhook,-), Generated in Offline Phase from Scenarios (-,announce,screened)(-,announ ce,wrongPIN) (+,onhook,-)(+,onhook,-) (-,announce,wrongPIN)(-,announ ce,screened) (+,onhook,-)(+,onhook,-) FIW’00 : Glasgow, 16 -19 May 2000 0: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau) 1: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN)(-,tau) (+,onhook,-) 2: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (+,onhook,-)(-,tau) 3: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau)(-,announce,wrong PIN) (+,onhook,-) 4: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened) (+,onhook,-)(-,tau) 5: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened)(-,tau) (+,onhook,-) 6: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau)(-,announce,screened) (+,onhook,-) 7: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (-,announce,screened) (+,onhook,-)(+,onhook,-) 8: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (+,onhook,-)(-,announce,screened) (+,onhook,-) 9: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened) (-,announce,wrong PIN)(+,onhook,-) (+,onhook,-) 10: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened) (+,onhook,-)(-,announce,wrong PIN) (+,onhook,-) 11: (+,offhook,-)(-,announce,PIN?) (+,onhook,-) 12: (+,offhook,-)(-,tau) 13: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (+,onhook,-) 14: (+,dial,n)(-,tau) 15: (+,dial,n)(-,announce,screened) ( +,onhook,-) 1) Announcement messages that occur after each other in a trace without an input message inbetween do not provide any meaningful behaviour to the user. 2) T ones and announcements played to a user after an onhook is received will never be received. 3) T he unobservable message t au can be removed from traces. 4) Duplicates of traces can be removed PRUNING apply rule 1 ... ... to remove traces 7 and 9. apply rule 2 ... ... to remove traces 8 and 10. apply rule 3 ... ...to traces 4, 5 and 6. apply rule 3 ... ... to t races 1, 2 and 3. apply rule 4 ... ... and remove traces 1, 2, 3 (= 13) apply rule 4 ... ... and remove traces 4 and 5 (= 6) 0: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau) 1: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN)(-,tau) (+,onhook,-) 2: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (+,onhook,-)(-,tau) 3: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau)(-,announce,wrong PIN) (+,onhook,-) 4: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened) (+,onhook,-)(-,tau) 5: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened)(-,tau) (+,onhook,-) 6: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau)(-,announce,screened) (+,onhook,-) 7: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (-,announce,screened) (+,onhook,-)(+,onhook,-) 8: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (+,onhook,-)(-,announce,screened) (+,onhook,-) 9: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened) (-,announce,wrong PIN)(+,onhook,-) (+,onhook,-) 10: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,screened) (+,onhook,-)(-,announce,wrong PIN) (+,onhook,-) 11: (+,offhook,-)(-,announce,PIN?) (+,onhook,-) 12: (+,offhook,-)(-,tau) 13: (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrong PIN) (+,onhook,-) 14: (+,dial,n)(-,tau) 15: (+,dial,n)(-,announce,screened) ( +,onhook,-) Feature Manager [9] Solution Space (1) • What is it? – A set of all traces that can be generated from the features individual traces – simple example: f f f f f f f f f 1 2 3 f2 f3 • How do we obtain it? – Add all traces of just one feature – Add all combinations of traces of 2 features – Add all combinations of traces of 3 … … 16 -19 May 2000 FIW’00–: Glasgow, 1 2 f1 f3 3 1 f1 f2 2 3 f2 f 3 f3 f1 f3 f 2 f3 f1 f2 f1 f 2 f1 [10] Solution Space (2) • The combinations are sets of all possible overlapping interleavings • Here we will consider overlapping interleavings of just 2 traces b b1 bi-1 bi bi+j-1 bm Prefix a oi2(a,b) • b1 bi-1 a1 aj f an int [example] FIW’00 : Glasgow, 16 -19 May 2000 [11] Examples for oi2 • Example 1: t1 = {(+a-b+c)} t2 = {(+x-a-b)} oi2(t1, t2) = {(+x-a+a-b+c)} • Example 2: t3 = {(+d-e)} t4 = {(+d-f)} oi2(t1, t2) = {(+d-e-f), (+d-f-e)} • [Question: Why keep -a+a?] • [Answer: Examples (CFB + BC with busy and BC + CND with free)] FIW’00 : Glasgow, 16 -19 May 2000 [12] Pruning: Simple Rules • No useful behaviour is provided by: – consecutive announcement messages without an intermediate input – tones and announcements after onhook • The message can be removed from traces • Duplicate traces can be removed • [Example] FIW’00 : Glasgow, 16 -19 May 2000 [13] An Example >>> printshort(fm("xxx",fiwtl,fiwtcs)) These features interfere,finding resolution ... 0 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,tau ) 1 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,wrong PIN )(-,tau )(+,onhook ,-) 2 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,wrong PIN )(+,onhook ,-)(-,tau ) 3 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,tau )(-,announce,wrong PIN )(+,onhook ,-) 4 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,screened )(+,onhook ,-)(-,tau ) 5 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,screened )(-,tau )(+,onhook ,-) 6 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,tau )(-,announce,screened )(+,onhook ,-) 7 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,wrong PIN )(-,announce,screened ) (+,onhook ,-)(+,onhook ,-) 8 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,wrong PIN )(+,onhook ,-) (-,announce,screened )(+,onhook ,-) 9 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,screened )(-,announce,wrong PIN ) (+,onhook ,-)(+,onhook ,-) 10 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,screened )(+,onhook ,-) (-,announce,wrong PIN )(+,onhook ,-) 11 : (+,offhook ,-)(-,announce,PIN? )(+,onhook ,-) 12 : (+,offhook ,-)(-,tau ) 13 : (+,offhook ,-)(-,announce,PIN? )(+,dial,n )(-,announce,wrong PIN )(+,onhook ,-) 14 : (+,dial,n )(-,tau ) 15 : (+,dial,n )(-,announce,screened )(+,onhook ,-) FIW’00 : Glasgow, 16 -19 May 2000 [14] Open Questions and Next Steps • We need to refine pruning – What are bad resolutions? – What is a/the best resolution? – Is there always a best resolution? • Can we combine construction and pruning? • What is the complexity? – How well does the approach scale up? • Is an observable approach sufficient? • Use Process Algebra? – New Operator(s) for Construct and Prune FIW’00 : Glasgow, 16 -19 May 2000 [15] Conclusion components theory of interactions legacy sw itch feature manager model components FIW’00 : Glasgow, 16 -19 May 2000 legacy sw itch feature manager [16] Any Questions? References: http://www.dcs.gla.ac.uk/research/hfig http://www.dcs.gla.ac.uk/˜sreiff FIW’00 : Glasgow, 16 -19 May 2000 [17] Relations between Messages • Name equivalent, event type and values are equal ab • Equal , name equivalent and IO aspect are equal ab • Inverses, name equivalent and IO aspect not equal a b FIW’00 : Glasgow, 16 -19 May 2000 [18] A functional View of the FM • The feature manager has to construct the solution space and extract the best solution from it. • Definition: Feature Manager Extract (Prune (Construct ( F1...Fn ))), e) if F1...Fn interfere FM (e, F1...Fn ) Extract ( F1 ... Fn ))), e) otherwise • [Explain individual subfunctions] FIW’00 : Glasgow, 16 -19 May 2000 [19] Construct Construct( F1...Fn ) SingF ( F1... Fn ) MultF ( F1... Fn ) SingF ( F1... Fn ) MultF ( F1...Fn ) n F i i 1 F1 *...* Fn *n! overlap(t gj ,..., thk ) i 1 We assume the following conditions : g h and g,h { 1..n} and j { 1.. Fg } and k { 1.. Fh } FIW’00 : Glasgow, 16 -19 May 2000 [20] oi2 Let ai be minimal and 1 i,j 2 and i j. Let T(t1,t2 ) {t | t is an overlappin g interleavi ng of t1 and t2 } s.th. T is maximal. {} a :( a, a ai ) a First (t j ) oi 2(t1, t2 ) T (t1, t2 ) otherwise First(tj) denotes the first message in a trace. FIW’00 : Glasgow, 16 -19 May 2000 [21] Overlapping Interleaving We substitute a a1...an for t1 and b1...bm for t2 . Let concat be a function concatenat ing sequences. Let i be the first occurence of the longest prefix of a occuring in b. Let j be the length of that prefix. Definition : A trace t is an overlappin g interleavi ng of t1 and t2 iff t concat (b1...bi 1 , f (i, j, a, b), int( a j 1...an , b j i ...bm )) FIW’00 : Glasgow, 16 -19 May 2000 [22] f() and int() bx f ( x,1, a, b) bx a1 if a1 bx if a1 bx concat ( f ( x, y 1, a , b), a y 1 ) concat ( f ( x, y 1, a , b), a , b y 1 x y 1 ) f ( x , y , a , b) concat ( f ( x, y 1, a , b), b x y 1 , a y 1 ) if a y 1 bx y 1 if a y 1 bx y 1 and a y-1 is an output message if a y 1 bx y 1 and bx y-1 is an output message int (s1,...,sn ), an interleavi ng of sequences s1,...,sn with length s1 , ..., sn respective ly, is a new sequence S n * whose length is si , i 1 * a:(a S) (a s1 ... a sn ), * which preserves the relative order of the elements. FIW’00 : Glasgow, 16 -19 May 2000 [23]
© Copyright 2024 Paperzz