Pluribus Arrival Time Notification System Ingmar Brouns Peter van Keeken Lennart Kats Huanwen Qu.
-
Upload
flora-palmer -
Category
Documents
-
view
212 -
download
0
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?