Upload
sanne
View
29
Download
0
Tags:
Embed Size (px)
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 Presentation
Citation preview
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