230 likes | 307 Views
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 sreiff@dcs.gla.ac.uk.
E N D
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 sreiff@dcs.gla.ac.uk
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/
Overview • Motivation and Background • The Hybrid Approach • Definitions • Feature Interference • The Feature Manager • Solution Space • Open Questions and Further Work
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 controlonline feature manager
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]
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,-)]]
Feature Interference Definition:Feature Interference n features F1…Fn with alphabets a1…an 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.
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 … • …
Solution Space (2) • The combinations are sets of all possible overlapping interleavings • Here we will consider overlapping interleavings of just 2 traces • [example]
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)]
Pruning: Simple Rules • No useful behaviour is provided by: • consecutive announcement messages without an intermediate input • tones and announcements after onhook • The message t can be removed from traces • Duplicate traces can be removed • [Example]
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 ,-)
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
Any Questions? References: http://www.dcs.gla.ac.uk/research/hfig http://www.dcs.gla.ac.uk/˜sreiff
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
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]
oi2 First(tj) denotes the first message in a trace.