emergent software services
TRANSCRIPT
4
Software systems are not isolated, they interact and influence each other2.
1. Complexity of systems is increasing (data, connections)
Why should we care
4
Software systems are not isolated, they interact and influence each other2.
1. Complexity of systems is increasing (data, connections)
3. Users’ expectancy for personalization and interaction increases
Why should we care
Pervasive services5
Sbike
Sweather
Straffic Sroute
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Pervasive services5
Sbike
Sweather
Straffic Sroute
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Pervasive services5
What if components disappear
Knowledge about services in the network is required
Sbike
Sweather
Straffic Sroute
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Disappearing components6
[Chen et al. goal-driven service composition in mobile pervasive computing. TSC 2016]
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Disappearing components6
[Chen et al. goal-driven service composition in mobile pervasive computing. TSC 2016]
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Disappearing components6
[Chen et al. goal-driven service composition in mobile pervasive computing. TSC 2016]
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Disappearing components6
[Chen et al. goal-driven service composition in mobile pervasive computing. TSC 2016]
ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)
Enhanced routing for smarter cities8
Peopleassensors
Airqualitysensors
…
Noisesensors
[Nallur et al. Smart route planning using open data and participatory sensing. OSS 2015]
Enhanced routing for smarter cities8
Peopleassensors
Airqualitysensors
…
Noisesensors
[Nallur et al. Smart route planning using open data and participatory sensing. OSS 2015]
Enhanced routing for smarter cities8
Peopleassensors
Airqualitysensors
…
Noisesensors
[Nallur et al. Smart route planning using open data and participatory sensing. OSS 2015]
Definition of service components9
varnoise=newService({inputs:[],outputs:[[e1,nw1],[e2,nw2],...],qos:{"priority":1},serviceInterface:{service:function(){_.each(this.graph.edges,function(e){client.get('fwk',function(err,reply){this.outputs.push[e,reply];});});}},combinator:function(serviceStates){_.each(serviceStates,function(state){_.each(state.data,function(edge,w){_.map(this.graph.edges,function(e){if(e.id==edge.id)e.weight.push(w);});});},this);returnthis.graph;}});
Components interaction10
Service1Service2 Spontaneous discovery of services
Type2Outputs:{O21,
O22,…
}Inputs:{I21,
I22,…
}
Type1Outputs:{O11,
O12,…
}Inputs:{I11,
I12,…
}
Components interaction10
Service1Service2 Spontaneous discovery of services
Type2Outputs:{O21,
O22,…
}Inputs:{I21,
I22,…
}
Type1Outputs:{O11,
O12,…
}Inputs:{I11,
I12,…
}
when(Service1ofType2)thencompose(Service1,Service2)
Components interaction10
Service1Service2 Spontaneous discovery of services
Type2Outputs:{O21,
O22,…
}Inputs:{I21,
I22,…
}
Type1Outputs:{O11,
O12,…
}Inputs:{I11,
I12,…
}
if(Outputs1⊆Inputs2)thencompose(Service1,Service2)when(Service1ofType2)thencompose(Service1,Service2)
Components interaction10
Service1Service2 Spontaneous discovery of services
Type2Outputs:{O21,
O22,…
}Inputs:{I21,
I22,…
}
Type1Outputs:{O11,
O12,…
}Inputs:{I11,
I12,…
}
if(Outputs1⊆Inputs2)thencompose(Service1,Service2)when(Service1ofType2)thencompose(Service1,Service2)
pushService1+Service2
Components interaction11
varnoise=newService({inputs:[],outputs:[[e1,nw1],[e2,nw2],...],qos:{"priority":1},serviceInterface:{service:function(){_.each(this.graph.edges,function(e){client.get('fwk',function(err,reply){this.outputs.push[e,reply];});});}},combinator:function(serviceStates){_.each(serviceStates,function(state){_.each(state.data,function(edge,w){_.map(this.graph.edges,function(e){if(e.id==edge.id)e.weight.push(w);});});},this);returnthis.graph;}});
discovery elements
Components interaction12
varrouting=newService({inputs:[origin,destination,weightingData],outputs:path,qos:{"priority":function(p){returnp>=2;}},conditions:function(interface,state){returnthis.qos.priority(state.priority);},serviceInterface:{service:function(){//buildthepathusingtheA*algorithm//EdgesinthecitygraphareweightedwithweightingDatareturnastar.runAlgorithm();}},
});
Composing services13
varnoise=newService({inputs:[],outputs:[[e1,nw1],[e2,nw2],...],qos:{"priority":1},serviceInterface:{service:function(){_.each(this.graph.edges,function(e){client.get('fwk',function(err,reply){this.outputs.push[e,reply];});});}},combinator:function(serviceStates){_.each(serviceStates,function(state){_.each(state.data,function(edge,w){_.map(this.graph.edges,function(e){if(e.id==edge.id)e.weight.push(w);});});},this);returnthis.graph;}});
Service combination
Composing services13
varnoise=newService({inputs:[],outputs:[[e1,nw1],[e2,nw2],...],qos:{"priority":1},serviceInterface:{service:function(){_.each(this.graph.edges,function(e){client.get('fwk',function(err,reply){this.outputs.push[e,reply];});});}},combinator:function(serviceStates){_.each(serviceStates,function(state){_.each(state.data,function(edge,w){_.map(this.graph.edges,function(e){if(e.id==edge.id)e.weight.push(w);});});},this);returnthis.graph;}});
Service combination
Composing services14
Servicerouting
Servicenoise
q-value
push service
Serviceless-cool-noise
q-value
Color Palette 17
1
estimate 0 1 2 3 4 5 6 7 8 9 10
label 0 1 2 3 4 5 6 7 8 9 10
actual 0 1 3 5 10 15 19 24 29 34 43
Table 1
1
10
100
1000
10000
100000
1000000
1 2 3 4 5 6 7 8 910
No.
of e
mer
gent
ser
vice
s
No. of available services
1
10
100
0 2 4 6 8 10
No.
of e
mer
gent
ser
vice
s
No. of available service components
estimate
values
n+1
Color Palette19
1
estimate 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 47 50
label 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 47 50
actual 0 1 6 7 12 17 22 28 35 39 44 49 56 63 67 72 77 81 85 89 93 98 103 107 112 118 126 130 138 142 144 149 153 158 161 164 171 175 327 481 646 1053 1810 3206 4167 4997
Table 1
1
10
100
1000
10000
100000
1000000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 44 50
No.
of e
mer
gent
ser
vice
s
No. of available services
1
10
100
1000
10000
0 10 20 30 40 50
No.
of e
mer
gent
ser
vice
s
No. of available service components
estimate
values
n+1
21N
o. o
f em
erge
nt s
ervi
ces
1
10
100
1000
10000
100000
1000000
10000000
No. of available service components1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
valueslower boundupper bound
�6
Poker hand
nP5nC5
22
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
Enhanced routing for smarter cities
22
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
Enhanced routing for smarter cities
22
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
Enhanced routing for smarter cities
22
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
Enhanced routing for smarter cities
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
10. Jogging routing
11. Biking routing12. Noise jogging routing13. Jogging biking routing
22
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
Enhanced routing for smarter cities
Mordor
Available Services:
1. Routing2. Noise
Home automation servicesResource servicesUser preference servicesNavigation services
3. Noise routing4. Air routing5. Noise air routing
6. Air7. Air noise routing8. Noise air9. Air noise
10. Jogging routing
11. Biking routing12. Noise jogging routing13. Jogging biking routing
Duathlon
Extracting semantics24
How to give mining to composed services
‣ Semantic definitions
‣ Linguistic creation of meaning
‣ RDF in semantic web
‣ Viewpoints
Choice??!!25
The paradox of choice
✓ Classification by service type
✓ Using previously used services
‣ Learning from users’ behavior
‣ Filtering pointless compositions
Acceptance26
Tolerance
‣ Comprehensive user empirical studies
‣ Techniques to be explored:
‣ Services explanation
‣ Improving the definition of conditions
for filtering
@ncardoz
28
✓ Shifting the service computing model from a pull-based model to a push-based model
Required developers’ knowledge about the environment
Exploit more service components
“Service availability”