230 likes | 311 Vues
This research explores using hybrid techniques to detect and resolve feature interactions in telecommunication services through an online feature manager. It introduces the concept of the solution space and provides examples of the resolution process. The study aims to refine the pruning process and determine the best resolution for feature interference.
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.