Stephan Reiff University of Glasgow Hybrid Techniques for Detecting and Resolving Feature Interactions in Telecommunication Services Resolution Choices for an Online Feature Manager FIW’00: Glasgow, May 2000
[2] 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
FIW’00 : Glasgow, May 2000[3] Overview Motivation and Background The Hybrid Approach Definitions Feature Interference The Feature Manager Solution Space Open Questions and Further Work
FIW’00 : Glasgow, May 2000[4] 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, May 2000[5] Example Features (1)
FIW’00 : Glasgow, May 2000[6] 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 [Show examples]
FIW’00 : Glasgow, May 2000[7] 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, May 2000[8] Definition: Feature Interference n features F 1 …F n with alphabets 1 … n interfere iff In words: Features interfere iff they have either a common input message or one feature’s output message is the other features input message. Feature Interference
FIW’00 : Glasgow, May 2000[9] Resolution Process
FIW’00 : Glasgow, May 2000[10] Solution Space (1) What is it? –A set of all traces that can be generated from the features individual traces –simple example: 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 … –…
FIW’00 : Glasgow, May 2000[11] Solution Space (2) The combinations are sets of all possible overlapping interleavings Here we will consider overlapping interleavings of just 2 traces [example]
FIW’00 : Glasgow, May 2000[12] 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, May 2000[13] 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, May 2000[14] 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, May 2000[15] 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, May 2000[16] Conclusion
FIW’00 : Glasgow, May 2000[17] Any Questions? References:
FIW’00 : Glasgow, May 2000[18] Relations between Messages Name equivalent, event type and values are equal Equal, name equivalent and IO aspect are equal Inverses, name equivalent and IO aspect not equal
FIW’00 : Glasgow, May 2000[19] 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 [Explain individual subfunctions]
FIW’00 : Glasgow, May 2000[20] Construct
FIW’00 : Glasgow, May 2000[21] oi2 First(t j ) denotes the first message in a trace.
FIW’00 : Glasgow, May 2000[22] Overlapping Interleaving
FIW’00 : Glasgow, May 2000[23] f() and int()