coos - coordination support for mobile collaborative applications

26
CooS Coordination Support for Mobile Collaborative Applications Mário Henrique Cruz Torres iMinds Distrinet - KULeuven December 2012

Upload: mario-torres

Post on 24-Apr-2015

194 views

Category:

Technology


1 download

DESCRIPTION

I present the COOS library, which can be used to create mobile collaborative applications.

TRANSCRIPT

Page 1: COOS - Coordination Support for Mobile Collaborative Applications

CooSCoordination Support for Mobile Collaborative Applications

Mário Henrique Cruz Torres

iMinds Distrinet - KULeuvenDecember 2012

Page 2: COOS - Coordination Support for Mobile Collaborative Applications

Key Message

Mobile Collaborative Applications are the future

Page 3: COOS - Coordination Support for Mobile Collaborative Applications

Mobile Collaborative Apps

users interact to achieve either their own, or joint objectives

location is a first class citizen

mix of crowd-sourcing, location services, mobile sensing

users are an active component of the system, so called human-in-the-loop

Page 4: COOS - Coordination Support for Mobile Collaborative Applications

Research

Collaborative traffic routing 1

Search and Rescue 2

Public transportation optimization 3

Remote sensing 4

Dynamic Task Allocation 5

1 - “SignalGuru: leveraging mobile phones for collaborative traffic signal schedule advisory” 20102 - “Overseer: a mobile context-aware collaboration and task management system for disaster response” Luqman 20103 - “Towards a new mobility concept for cities: architecture and programming of semi-autonomous electric vehicles” Rocha 20074 - “Task-Oriented Systems for Interaction with Ubiquitous Computing Environments “ Vo 20105 - “Dynamic task allocation and coordination in cooperative multi-agent environments” Suarez 2011

Page 5: COOS - Coordination Support for Mobile Collaborative Applications

Problem

How to organize a group of workers who are geographically spread but have to perform actions together?

https://www.youtube.com/watch?v=0fluKWYRC_w

Page 6: COOS - Coordination Support for Mobile Collaborative Applications

Almost there...

Google Maps Coordinate

Page 7: COOS - Coordination Support for Mobile Collaborative Applications

Why?User Inter-Communication Joint Goal

Facebook

Foursquare

Uber

Milk.ly

Waze

Open Garden

Google Maps Coordinate

✖✖

✖✖✖

Page 8: COOS - Coordination Support for Mobile Collaborative Applications

Key Challenges

Dynamically determine collaboration partners

Collaboration scale

Manage the interactions between collaboration partners

Coordinate collaboration partners actions

Page 9: COOS - Coordination Support for Mobile Collaborative Applications

Coordination Challenges

Modeled as a task assignment problem

Known as “Minimum Latency Problem” - NP-hard

Similarities with the TSP

Minimize waiting time to perform each task

“A simple and effective metaheuristic for the Minimum Latency Problem “- Melo Silva 2012

Page 10: COOS - Coordination Support for Mobile Collaborative Applications

CooS

Key: Mobile phone

Coordination on Clouds

Local ComponentsApplications

Page 11: COOS - Coordination Support for Mobile Collaborative Applications

CooS

Page 12: COOS - Coordination Support for Mobile Collaborative Applications

Mobile Device [1..*]CloudMobile Device

Cloud Mobile Device [1..*]Mobile Device

Key: UML 2.0

requestCollaboration() Request

CollaborationEvent

select participants

CollaborationRequested

Event collaborationCall()

CoordinationEvent

coordinationCall()

retrieve coordination

context

CoordinationEvent

CooS MiddlewareComponent

CooS ClientComponent

«Initiator»Application

«Participant»Application

CooS ClientComponent

«Participant»Application

CooS ClientComponent

Cloud Mobile Device [1..*]Mobile Device

Key: UML 2.0

select participants

retrieve coordination

context

CooS MiddlewareComponent

CooS ClientComponent

«Initiator»Application

«Participant»Application

CooS ClientComponent

requestCollaboration()

collaborationCall()

CoordinationEvent

CollaborationRequested

Event

RequestCollaboration

Event

coordinationCall()

CoordinationEvent

Key: UML 2.0

select participants

retrieve coordination

context

CooS MiddlewareComponent

CooS ClientComponent

«Initiator»Application

«Participant»Application

CooS ClientComponent

requestCollaboration

(...)

collaborationCall(...)

CoordinationEvent

CollaborationRequested

Event

RequestCollaboration

Event

coordinationCall(...)

CoordinationEvent

Mobile DeviceCloud

loop

Key: UML 2.0

CooS MiddlewareComponent

«Participant»Application

CooS ClientComponent

registerAsParticipant(...)

timer

getLocation(...)

Location UpdateEvent

CooS InteractionCommunication pattern, Initiator

Page 13: COOS - Coordination Support for Mobile Collaborative Applications

Fitting Everything Togethervar coos = new Coos(serverUrl, deviceId, locationCallback);coos.requestCollaboration( {applicationPayload: ‘something’}, {lat: 39.900255, lng: 116.402687}, function(collaborationOutcome) {                       alert(“collaborate here”)                      } );

coos.registerAsParticipant( locationCallback, participantCallback );         

Page 14: COOS - Coordination Support for Mobile Collaborative Applications

CooS requires location and handles the coordination protocol

CooS Applications

Page 15: COOS - Coordination Support for Mobile Collaborative Applications

Location-based coordination protocolCoordination

Page 16: COOS - Coordination Support for Mobile Collaborative Applications

PrototypeTeamEnhancerApp, PassengerApp, TaxiApp

Page 17: COOS - Coordination Support for Mobile Collaborative Applications

Profiling Setup

server: Intel i5-2400 CPU @ 3.10 GHz, 4 GiB of RAM, executing an Ubuntu O.S. with the Linux kernel 2.6.35-32.

clients siege the server using Siege (http://www.joedog.org/siege-home)

HTTP POST request of 392 bytes each (header+CooS payload)

Page 18: COOS - Coordination Support for Mobile Collaborative Applications

40

60

80

●●

●●

●●

●●

500 1000 1500 2000 2500Transaction Rate (transactions/s)

CPU

Loa

d (%

)

ProfilingCPU Load - at server side

Page 19: COOS - Coordination Support for Mobile Collaborative Applications

0

5

10

15

●●

● ●●

●●

● ●●

500 1000 1500 2000 2500Transaction Rate (transactions/s)

Long

est T

rans

actio

ns (s

)

ProfilingLongest transactions

Page 20: COOS - Coordination Support for Mobile Collaborative Applications

0

2

4

6

8

● ● ● ● ●

● ●●

● ●

500 1000 1500 2000 2500Transaction Rate (transactions/s)

Faile

d Tr

ansa

ctio

ns (1

0E−3

%)

ProfilingFailed Transactions

Page 21: COOS - Coordination Support for Mobile Collaborative Applications

Coordination EvaluationAssigning workers to tasks in Belgium

Truck Icon: SimonChild, from The Noun Project

Page 22: COOS - Coordination Support for Mobile Collaborative Applications

ProfilingDeployment View

Page 23: COOS - Coordination Support for Mobile Collaborative Applications

Coordination Evaluation500 workers

5000 machines

Mean time to repair a machine set to 1 hour

Standard deviation time to repair a machine set to 4 hours

Average moving speed set to 20 km/h

80% of tasks require only one worker

Page 24: COOS - Coordination Support for Mobile Collaborative Applications

0

20

40

60

80

100

0 5 10 15 20Radius (Km)

Com

plet

ed T

asks

(%)

Coordination EvaluationCompleted tasks

Page 25: COOS - Coordination Support for Mobile Collaborative Applications

0

5

10

15

20

25

30

1.10 1.15 1.20 1.25

density

variableRadius10Radius15Radius20

Coordination EvaluationUser Interruption

Page 26: COOS - Coordination Support for Mobile Collaborative Applications

Lessons Learned & Open Issues

At the technical level. Concetps survive, but perhaps we need to test other languages that could be better (e.g. AmbientTalk)

Assigning tasks collaboratively is feasible. Is it good?

Compare collaborative solutions with meta-heuristic solutions

Compare to other collaborative solutions, from Multi-Agent Systems domain, for instance