emergent software services

68
TICSw @ncardoz Emergent Software Services Nicolás Cardozo [email protected] Amsterdam November 2 nd 2016

Upload: nicolas-cardozo-alvarez

Post on 22-Jan-2018

203 views

Category:

Services


0 download

TRANSCRIPT

TICSw @ncardoz

Emergent Software Services

Nicolás [email protected]

Amsterdam November 2nd 2016

What this is all about2

What this is all about2

forward!

What this is all about2

forward!

pull push

What this is all about3

Env1 Env2

What this is all about3

Env1 Env2

What this is all about3

Env1 Env2

What this is all about3

Env1 Env2

What this is all about3

Env1 Env2

4 Why should we care

4

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)

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

ServiceS=compose(Serviceweather,Servicebike,Servicetraffic,Serviceroute)

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)

Mordor7

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

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

Composing services14

Servicerouting

Servicenoise

q-value

Serviceless-cool-noise

q-value

Composing services14

Servicerouting

Servicenoise

q-value

push service

Serviceless-cool-noise

q-value

Ok, I’ll buy that. But does it work?

15

Color Palette 16

R

G

B

255

50

0

Color Palette 16

R

G

B

255 30

50 100

0 238

Color Palette 16

R

G

B

255 30

=

255

50 100 150

0 238 238

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 Palette18

C

Y

M

K

∔ ∔/

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

20

P2

P1

20

P2

P1

20

P2

P1

20

P2

P1

20

P2

P1

20

P2

P1

20

P2

P1

20

P2

P1

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 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

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

23

Extracting semantics24

How to give mining to composed services

‣ Semantic definitions

‣ Linguistic creation of meaning

‣ RDF in semantic web

‣ Viewpoints

Choice??!!25

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

27

@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”

@ncardoz

28

Questions?

✓ 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”