The Owl Positioning System's Architecture OwlPS {{OWLPS_VERSION}} 11 January 2013 %%% % Man title & section: %!postproc(man): "^(\.TH.*) 1 " ".TH owlps 7 " % Fix .TH, add NAME section and TABLE OF CONTENTS title: %!postproc(man): "^(\.TH.*)$" "\1 OwlPS\ User\ Manual\n.SH NAME\nowlps-architecture - The Owl Positioning System's Architecture\n\n.SH TABLE OF CONTENTS" % Add the table of contents: %!options(man): --toc % Man "links": %!preproc(man): "(owlps)\.t2t" "**\1**(7)" %!preproc(man): "(owlps-deployment)\.t2t" "**\1**(7)" %!preproc(man): "(owlps-[^ ]*)\.t2t" "**\1**(1)" %!preproc(man): "(owlps-[^ ]*\.h)" "**\1**(3)" %%% + Architecture and protocol overview + OwlPS' architecture is composed of several modules, which communicate through a four-step protocol, from the positioning request transmitted by the mobile terminal to the treatment of the position computed by the positioning server: + positioning request transmission, + signal strength measurement, + aggregation of the measurements corresponding to the request, + position computation. Each step of this protocol corresponds to a different module: : **The mobile terminals** A mobile terminal can be any Wi-Fi-enabled device, such as a laptop, a smartphone, a PDA, a hand-held gaming console, etc. The mobile terminals transmit positioning requests which consist in a bunch of UDP packets, thanks to the //OwlPS Client// module – see owlps-client.t2t. : **The capture points** (CPs) Capture points capture the packets transiting on the radio network and filter them, in order to extract the positioning requests transmitted by the mobile terminals. From each request, they extract the main information needed to compute the mobile terminal's position, i.e. the signal strength, and send the information to the aggregation server. They run the //OwlPS Listener// module; a capture point can be any device with a Wi-Fi interface whose driver offers a support for //Radiotap// – see owlps-listenerd.t2t. : **The aggregation server** The aggregation server collects all the information from the capture points, aggregates them (according to the mobile terminal's MAC address and the request timestamp, that together form a unique identifier), and forwards them to the positioning server. This is done by the //OwlPS Aggregator// module, which can run on a fairly modest hardware – see owlps-aggregatord.t2t. : **The positioning server** The positioning server, or computation server, takes as an input the data from the aggregation server, and outputs the computed positions, thanks to the //OwlPS Positioner// module, described in detail in owlps-positionerd.t2t. + Coordinate system + OwlPS uses a coordinate system relative to the deployment area. The coordinates can be negative, and the origin can be set to any point, according to the constraint of the deployment area. As a convention, we generally set the origin at the South-West corner of the area, in order to avoid negative coordinates, but that is not a requirement. All the coordinates are in metres, and it is also mandatory that all the distance measurements provided in the positioning server's configuration be in metres – see owlps-positionerd.t2t. = See also = owlps.t2t, owlps-client.t2t, owlps-listenerd.t2t, owlps-aggregatord.t2t, owlps-positionerd.t2t