appointment maker 2 group d martin matusiak bas geertsema ingmar van der steen peter van dijk

11
Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Upload: anne-norton

Post on 20-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Appointment Maker 2 Group D

Martin MatusiakBas Geertsema Ingmar van der SteenPeter van Dijk

Page 2: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Create meeting

single PDA -> CS create<id, label, t, d, [id]>

broadcast PDA <- CS announce<label, t, d, exp_time>

Page 3: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Per PDA communicationPDA -> CS part<id, label>

PDA -> CS withdraw<label>

PDA -> CS free<t>

PDA <- CS req<t, d, label>

PDA <- CS book<t,d>

Page 4: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Transaction rules

PDAs should be online:PDAs going offline during transaction are

considered withdrawn.

After announce message, allow exp_time to receive part or withdraw before transaction starts.

All the participating PDA’s diaries in the transactions are locked until time t is found.

Page 5: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Message order

1. create

2. announce

3. req || free || part || withdraw

4. book

Page 6: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Keeping track of timeslots1 2 3 4

invited PDA1 x x

invited PDA2 x

invited PDA3 x

• CS stores derived knowledge about the timeslots from the req/free messages.

• PDA’s diary is locked during transaction, so this knowledge doesn’t expire.

• PDA1, PDA2, PDA3 were all included in the [id] parameter of the create message.

Page 7: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Handling withdrawal

1 2 3 4

invited PDA1 x x

invited PDA2 x

withdraws PDA3 x

PDA3 sends withdraw message -> use knowledge-base to find an earlier timeslot.

Page 8: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Handling joining

1 2 3 4

invited PDA1 x x

invited PDA2 x

joins PDA4 ? ? ? ?

• PDA4 was not part of [id] but we allow it to join.

• PDA4 sends part -> CS must now establish availability of PDA4.

Page 9: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Definitions

ts = requested start-slot of appointment

ta = calculated start-slot of appointment d = duration of appointment PDA = set of PDAs participating P(t) = all participating PDA’s at time t are

available for the given duration d

Page 10: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Joining and withdrawal

After joining, we should have:|PDA’| = |PDA| + 1

ta’ >= ta

Upon withdrawal, we should have:|PDA’| = |PDA| - 1

ta’ <= ta

Page 11: Appointment Maker 2 Group D Martin Matusiak Bas Geertsema Ingmar van der Steen Peter van Dijk

Invariantsbegin : |PDA| = 0 ta = ts

otherwise : |PDA| > 0 ta >= ts

),(Re),('Re: dtqdtqttPDA s

ta >= ts

d

)'(':' tPttt a

We don’t want the diaries to be changed:

There should be no appointment possibility before the calculated appointment time: