hybrid techniques for detecting and resolving feature interactions in telecommunication services
DESCRIPTION
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]. - PowerPoint PPT PresentationTRANSCRIPT
Stephan ReiffUniversity of Glasgowhttp://www.dcs.gla.ac.uk/~sreiff
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
FIW’00 : Glasgow, 16 -19 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
• http://www.dcs.gla.ac.uk/research/hfig/
FIW’00 : Glasgow, 16 -19 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, 16 -19 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, 16 -19 May 2000 [5]
Example Features (1)
(i_alert, a, b, -)
(forward_call, id, n, a)
Call ForwardingUnconditional
(dial, id, id, n)
(announce, id, id, "screened")
(onhook, id, id, -)
Terminating CallScreening
(forward_call, id, n, a)
(o_inform, id, a,"Call Forwarded")
Inform about Forwarding
(offhook, id, id, -)
(announce, id, id, "PIN?")
(onhook, id, id, -)
Teenline
(dial, id, id, n)
(announce, id, id, "wrong PIN")
(onhook, id, id, -)
FIW’00 : Glasgow, 16 -19 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, 16 -19 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, 16 -19 May 2000 [8]
Definition: Feature Interference
n features F1…Fn 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
)) :((
))(),1((:,
bajbia
jinjiji
FIW’00 : Glasgow, 16 -19 May 2000 [9]
Resolution Process
Terminating Call Screening:
{(+,dial,n)(-,announce,screened) (+,onhook,-); (+,dial,n)(-,tau)}
Teenline:
{(+,offhook,-)(-,announce, PIN?)(+,onhook,-); (+,offhook,-)(-,tau); (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,tau); (+,offhook,-)(-,announce,PIN?) (+,dial,n)(-,announce,wrongPIN) (+,onhook,-)}
GENERAL RULES
1) Announcement messages that occur after eachother in a trace without an input messageinbetween do not provide any meaningfulbehaviour to the user.2) Tones and announcements played to a userafter an onhook is received will never be received.3) The unobservable message tau can be removedfrom 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)
CONSTRUCT
Example overlappinginterleaving:
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,-)
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,-)
Output Input
Feature Manager
Generated inOffline Phase
from Scenarios
)) , ( (
) , (16
1, ,
ik TCSj TLt t OverlapTCSTL
TCSTL Construct
k,-) -)(+,onhoo(+,onhook,
d) ce,screene)(-,announ e,wrongPIN(-,announc
k,-) -)(+,onhoo(+,onhook,
N) ce,wrongPI)(-,announe,screened (-,announc
,-) )(+,onhook e,wrongPIN(-,announc
,-) )(+,onhooke,screened (-,announc
,-) )(+,onhooke,screened (-,announc
,-) )(+,onhook e,wrongPIN(-,announc
dial PIN announce offhook
dial TL TCS f
,-)) )(+,onhook e,wrongPIN(-,announc
k,-) d)(+,onhooce,screene((-,announ
TL TCS f
PIN announce offhook concatt
TL TCSoi t
-) (+,onhook,
) e,wrongPIN(-,announc(+,dial,n)
unce,PIN?),-)(-,anno (+,offhookTL
-) (+,onhook,
) e,screened (-,announc(+,dial,n)TCS
,
,
: endings theand
) , ?)( , )( , (
prefix common with the t, traces different 4
obtain we hence values, diffreent 4 return can int
) , ( )) , , 1, 1(
, int
)), , , 1, 1(
?), , )( , ((
) , ( 2
4 1
4 1
4 1
4
1
)),((
),(16
1,,
ikTCSjTL ttOverlapTCSTL
TCSTLConstruct
k,-)-)(+,onhoo(+,onhook,
d)ce,screene)(-,announe,wrongPIN(-,announc
k,-)-)(+,onhoo(+,onhook,
N)ce,wrongPI)(-,announe,screened(-,announc
,-))(+,onhooke,wrongPIN(-,announc
,-))(+,onhooke,screened(-,announc
,-))(+,onhooke,screened(-,announc
,-))(+,onhooke,wrongPIN(-,announc
dialPINannounceoffhook
dialTLTCSf
,-)))(+,onhooke,wrongPIN(-,announc
k,-)d)(+,onhooce,screene((-,announ
TLTCSf
PINannounceoffhookconcatt
TLTCSoit
-)(+,onhook,
)e,wrongPIN(-,announc(+,dial,n)
unce,PIN?),-)(-,anno(+,offhookTL
-)(+,onhook,
)e,screened(-,announc(+,dial,n)TCS
,
,
:endings theand
),?)(,)(,(
prefix common with the t,tracesdifferent 4
obtain wehence values,diffreent 4return can int
),()),,1,1(
,int
)),,,1,1(
?),,)(,((
),(2
41
41
41
4
1
FIW’00 : Glasgow, 16 -19 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 …
– …
f1 f2 f3 f1 f2 f3 f1 f2 f3
f2 f3 f1 f2f1 f3 f2 f3 f1 f2f1 f3
f3 f3 f2f2 f1f1
FIW’00 : Glasgow, 16 -19 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]
a
b
a 1
b 1
a j a n
b i b i+j-1 b m
Prefix
b i-1
oi2(a,b) b 1 b i-1 intf
FIW’00 : Glasgow, 16 -19 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, 16 -19 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, 16 -19 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, 16 -19 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, 16 -19 May 2000 [16]
Conclusion
model
theoryof
interactions
componentslegacyswitch
featuremanager
componentslegacyswitch
featuremanager
FIW’00 : Glasgow, 16 -19 May 2000 [17]
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 [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
ba
ba
ba
FIW’00 : Glasgow, 16 -19 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]
otherwise
interfere ... if
)))),...(Extract
)))),...(Construct(Prune(Extract
)...,( 1
1
1
1n
n
n
n
FF
eFF
eFF
FFeFM
FIW’00 : Glasgow, 16 -19 May 2000 [20]
Construct
!**...*
11
11
111
1
),...,()...(
)...(
)...()...()...(
nFF
ihkgjn
n
iin
nnn
n
ttoverlapFFMultF
FFFSingF
FFMultFFFSingFFFConstruct
}F.. {k}F..{j ..n}{g,h hg hg 1 and 1 and 1 and
:conditions following theassume We
FIW’00 : Glasgow, 16 -19 May 2000 [21]
oi2
otherwisettT
tFirstaaaattoi ji
),(
)(),:({}),(2
21
21
maximal. is T s.th.
} and of nginterleavi goverlappin an is |{Let
. and 21 and minimal be Let
2121 tttt),tT(t
jii,ji
First(tj) denotes the first message in a trace.
FIW’00 : Glasgow, 16 -19 May 2000 [22]
Overlapping Interleaving
))...,...int(),,,,(,...( 111 mijnji bbaabajifbbconcatt
iff and of nginterleavi goverlappin an is traceA
:
21 ttt
Definition
prefix. that of length thebeLet
. in occuring ofprefix longest theof occurencefirst thebe Let
sequences. ingconcatenat functiona beconcat Let
.for and for substitute We 2111
j
bai
t...bbt...aaa mn
FIW’00 : Glasgow, 16 -19 May 2000 [23]
f() and int()
messageoutput an is
and if),),,,1,((
messageoutput an is
and if),),,,1,((
if)),,,1,((
),,,(
if
if),,1,(
1
1111
1
1111
111
11
1
y-x
yxyyyx
y-
yxyyxy
yxyy
xx
xx
b
baabbayxfconcat
a
bababayxfconcat
baabayxfconcat
bayxf
baab
babbaxf
elements. theoforder relative thepreserves which*
, *
, is length whose*
1
1
)sa ... s(aS)a:(a
s
n
n
ii
S
s, ..., s ,...,ss),...,s(s nnn
sequencenew a is
ly,respective length with sequences of nginterleavi an ,int 111