Pluribus Arrival Time Notification System Ingmar Brouns Peter van Keeken Lennart Kats Huanwen Qu.

Post on 31-Dec-2015

212 views 0 download

Transcript of Pluribus Arrival Time Notification System Ingmar Brouns Peter van Keeken Lennart Kats Huanwen Qu.

Pluribus Arrival Time Notification System

Ingmar BrounsPeter van Keeken

Lennart KatsHuanwen Qu

Component Architecture

Bus

Sender Receiver

R&S system

Sender Receiver Sender Receiver

Bus stand

Dispatcher

BusCentralized

Decentralized 1

Peer 2 Peer Bus

Integrated Bus

Decentralized 2

Server

Bus Server

Bus Server Bus Stand

Stand

Stand

Stand

Sender & Receiver

Form the communication layer Other entities need not be aware of

the communication mechanism used

Component distribution is therefore transparent to main components

Receiver Overloading

Receivers have a limited number of communication slots

If all slots are taken, receiver will not accept connection requests

Sender will retry connecting after a timeout

Bus unit

Given Bus_ID Input

from GPS: GPS_Location, UTC result passed back by R&S:

Trigger_Location Output: GPS_Location, UTC, Bus_ID

triggered by: time out trigger location

Bus Tracking

Why a trigger location?

Essential:

1. Where is the bus on the route?

2. Where is the bus between stations?

Only regular GPS information is not enough it should have a context.

Bus TrackingEssential: 1. Where is the bus on the route?

Just the difference of two GPS locations is not enough

Road

Bus Stand

Bus route

12

So notifying depends on reaching a critical point, the Bus Stand in this case!

Bus Tracking

Essential: 2. Where is the bus between stations?

So again notifying preferably should happen on reaching a critical point!

1

23

!!!Bus Stand Bus Stand

R&S System

Input: GPS_Location, UTC, Bus_ID

Output For each bus stand:

(Std_ID, Bus_ID, Line_Nr, Arr_Time)

Specified by other teams

Dispatcher

Given addressOf:: Std_ID Address

Input: (Std_ID, Bus_ID, Line_Nr, Arr_Time)

Output (to addressOf each Std_ID): (Line_Nr, Bus_ID, Arr_Time)

Bus stand

Given: UTC offset Set of arrival times

AT = {(Bus_ID, Line_Nr,Arr_Time)} initially empty

Input: (Bus_ID, Line_Nr, Arr_Time) Output:

AT = {(b,l,a + offset)| (b,l,a) AT : b != Bus_ID /\ l != Line_Nr}

+ {(Bus_ID, Line_Nr, Arr_Time) | Arr_Time != Never }

Bus Stand

Elements of AT will be displayed in chronological order.

If there are no updates for a certain amount of time, “Out of order” will be displayed.

Communication component

Communication Component

Connection Manager

Buffer Strategy

Connection endpoint

Abstract communication component. Sender/Receiver are instances Sender: Connection Manager does connection

request when buffer is flushed. Terminates connection after result has been obtained.

Receiver: Connection Manager sets up connection on connection request

Communication component

When a receiver gets a request from a sender, it will pass the result of that request back over the existing connection.

A sender will pass the result back to the originally calling component.

Communication component

Communication Component

Sender Manager

Buffer Strategy

Connection endpoint

Sender

Some Component

Receiver

request

request Result request

Result request

request Result request

Communication component

Communication Component

Receiver Manager

Connection endpoint

Receiver

Some Component

Sender

request

request Result request

Result request

request Result request

(GPSLoc, UTC, Busid)

Sender

Buffering Buffer

R&S

For each bus stand output: (Stdid, Busid, Lineid, ArrTime)

(Stdid, Busid, Lineid, ArrTime)

StdId StdId StdId StdId

Time-Out flushes containersExcept when empty

Connection endpoint

(Stdid, Busid, Lineid, ArrTime)

Receiver

Buffer Strategy example

Questions?