Powerpoint file

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]
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
[2]
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
[3]
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
[4]
Example Features (1)

(dial, id, id, n)
(o_inform, id, a,
"Call Forwarded")
(forward_call, id, n, a)
(offhook, id, id, -)

(onhook, id, id, -)
(onhook, id, id, -)
(announce, id, id, "screened")

(announce, id, id, "PIN?")
Inform about Forwarding
(onhook, id, id, -)
Terminating Call
Screening
(dial, id, id, n)
(forward_call, id, n, a)
(i_alert, a, b , -)
(announce, id, id, "wrong PIN")
Teenline
FIW’00 : Glasgow, 16 -19 May 2000
Call Forwarding
Unconditional
[5]
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
FIW’00 : Glasgow, 16 -19 May 2000
[6]
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
[7]
Feature Interference
Definition: Feature Interference
n features F1…Fn with alphabets a1…an interfere iff
i, j : ((1  i, j  n )  (i  j )) 
( a  ai  (b  a j : a  b))
In words: Features interfere iff they have either a common
input message or one feature’s output message is the other
features input message.
FIW’00 : Glasgow, 16 -19 May 2000
[8]
Resolution Process
GENERAL RULES
Te rm inating Call Scre ening:
{(+,dial,n)(-,announce,screened)
(+,onhook,-);
(+,dial,n)(-,tau)}
CONSTRUCT
Construct (TL, TCS ) 
16
TL  TCS  ( Overlap (tTL , j , tTCS ,k ))
i 1
Exam ple overlapping
interle aving:
Te enline :
{(+,offhook,-)(-,announce,
PIN?)(+,onhook,-);
(+,offhook,-)(-,tau);
(+,offhook,-)(-,announce,PIN?)
(+,dial,n)(-,tau);
(+,offhook,-)(-,announce,PIN?)
(+,dial,n)(-,announce,wrongPIN)
(+,onhook,-)}
TCS1  (+,dial,n) (-,announce,screened)
(+,onhook,-)
TL4  (+,offhook,-)(-,anno unce,PIN?)
(+,dial,n) (-,announce,wrongPIN)
(+,onhook,-)
t  oi 2(TCS1 , TL4 )
t  concat (( , offhook)(  announce, PIN ?),
f (1,1, TCS1 , TL4 )),
int ((-,announ ce,screened)(+,onhook,-),
(-,announce,wrongPIN)(+,onhook,-))
f (1,1, TCS1 , TL4 ))  (, dial )
int can return 4 diffreent values, hence we obtain
4 different traces t, with the common prefix
(, offhook)( announce, PIN ?)(, dial )
and the endings :
Output
Input
 (-,announce,wrongPIN)(+,onhook,-)
(-,announce,screened)(+,onhook,-),
 (-,announce,screened)(+,onhook,-)
(-,announce,wrongPIN)(+,onhook,-),
Generated in
Offline Phase
from Scenarios
 (-,announce,screened)(-,announ ce,wrongPIN)
(+,onhook,-)(+,onhook,-)
 (-,announce,wrongPIN)(-,announ ce,screened)
(+,onhook,-)(+,onhook,-)
FIW’00 : Glasgow, 16 -19 May 2000
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,-)
1) Announcement messages that occur after each
other in a trace without an input message
inbetween do not provide any meaningful
behaviour to the user.
2) T ones and announcements played to a user
after an onhook is received will never be received.
3) T he unobservable message t au can be removed
from 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)
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,-)
Feature Manager
[9]
Solution Space (1)
• What is it?
– A set of all traces that can be generated from the
features individual traces
– simple example:
f f f f f f f f f
1
2
3
f2 f3
• 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 …
… 16 -19 May 2000
FIW’00–: Glasgow,
1
2
f1 f3
3
1
f1 f2
2
3
f2 f 3
f3
f1 f3
f 2 f3
f1 f2
f1 f 2
f1
[10]
Solution Space (2)
• The combinations are sets of all possible
overlapping interleavings
• Here we will consider overlapping
interleavings of just 2 traces
b
b1
bi-1 bi
bi+j-1
bm
Prefix
a
oi2(a,b)
•
b1
bi-1
a1
aj
f
an
int
[example]
FIW’00 : Glasgow, 16 -19 May 2000
[11]
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
[12]
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
[13]
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
[14]
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
[15]
Conclusion
components
theory
of
interactions
legacy
sw itch
feature
manager
model
components
FIW’00 : Glasgow, 16 -19 May 2000
legacy
sw itch
feature
manager
[16]
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
[17]
Relations between Messages
• Name equivalent, event type and values are equal
ab
• Equal , name equivalent and IO aspect are equal
ab
• Inverses, name equivalent and IO aspect not equal
a  b
FIW’00 : Glasgow, 16 -19 May 2000
[18]
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
 Extract (Prune (Construct ( F1...Fn ))), e)

if F1...Fn interfere

FM (e, F1...Fn )  
Extract ( F1  ...  Fn ))), e)

otherwise

• [Explain individual subfunctions]
FIW’00 : Glasgow, 16 -19 May 2000
[19]
Construct
Construct( F1...Fn )  SingF ( F1... Fn )  MultF ( F1... Fn )
SingF ( F1... Fn )
MultF ( F1...Fn )


n
F
i
i 1
F1 *...* Fn *n!
 overlap(t
gj
,..., thk )
i 1
We assume the following conditions :
g  h and g,h  { 1..n} and j  { 1.. Fg } and k  { 1.. Fh }
FIW’00 : Glasgow, 16 -19 May 2000
[20]
oi2
Let ai be minimal and 1  i,j  2 and i  j.
Let T(t1,t2 )  {t | t is an overlappin g interleavi ng of t1 and t2 }
s.th. T is maximal.
{}
a :(  a, a ai ) a  First (t j )
oi 2(t1, t2 )  
T (t1, t2 ) otherwise
First(tj) denotes the first message in a trace.
FIW’00 : Glasgow, 16 -19 May 2000
[21]
Overlapping Interleaving
We substitute a  a1...an for t1 and b1...bm for t2 .
Let concat be a function concatenat ing sequences.
Let i be the first occurence of the longest prefix of a occuring in b.
Let j be the length of that prefix.
Definition :
A trace t is an overlappin g interleavi ng of t1 and t2 iff
t  concat (b1...bi 1 , f (i, j, a, b), int( a j 1...an , b j i ...bm ))
FIW’00 : Glasgow, 16 -19 May 2000
[22]
f() and int()
bx
f ( x,1, a, b)  
bx a1
if a1  bx
if a1  bx
concat ( f ( x, y  1, a , b), a y 1 )
concat ( f ( x, y  1, a , b), a , b
y 1
x  y 1 )


f ( x , y , a , b)  
concat ( f ( x, y  1, a , b), b
x  y 1 , a y 1 )



if a y 1  bx  y 1
if a y 1  bx  y 1 and
a y-1 is an output message
if a y 1  bx  y 1 and
bx  y-1 is an output message
int (s1,...,sn ), an interleavi ng of sequences s1,...,sn with length s1 , ..., sn respective ly,
is a new sequence S
n
* whose length is  si ,
i 1
* a:(a  S)  (a  s1  ...  a  sn ),
* which preserves the relative order of the elements.
FIW’00 : Glasgow, 16 -19 May 2000
[23]