SlideShare a Scribd company logo
1 of 46
1
Petrozavodsk, Apr 2013
Location Based Services and Geo-tagging.
Geo2tag platform introduction.
2
Petrozavodsk, Apr 2013
Agenda
● Architecture overview
● Installation process
● Source code overview
● JSON interface
● Client libraries
– http_requests
– Jgeo
● Qt example
● Android example
3
Petrozavodsk, Apr 2013
Location Based Services
● LBS = using geographical context
– Indoor services
– Mobile healthcare
– City information
● Transport
● Traffic
● ...
4
Petrozavodsk, Apr 2013
Geo-tagging
● Def: the process of adding geographical
identification metadata to various media:
– Photo, video
– Web-pages,
– SMS, QR-codes
– files
5
Petrozavodsk, Apr 2013
Terminology
● Tag – tuple <t, L, B, H, data>,
– t – time
– B,L,H – coordinates
– data – text data ~1K
● Channel – classifier for group of tags
6
Petrozavodsk, Apr 2013
Main features of tagging system
● Access to tags
● Classification
● Filtering
● Session and User management
● Massive data processing
7
Petrozavodsk, Apr 2013
Features
● Current
– Basic geo-tagging
– Plain and spacial filtration
– Load balancing across Databases and web
servers
● Will be published in 2013
– Exporters (wikimapia, google maps, OSM,
4square)
– Channel aggregation
– Multi-service databases
8
Petrozavodsk, Apr 2013
Installation (test system)
● Visit http://build64.geo2tag.org/
● Add line to /etc/apt/sources.list
– deb http://build64.geo2tag.org/ geo2tag main
● Install packages
– sudo apt-get update
– sudo apt-get install –reinstall geo2tag
● Check installation
– http://<url>/service/version
– http://<url>/service/build
9
Petrozavodsk, Apr 2013
Channels and tags
LBS Platform
Канал
Channel
Channel
Channel
Channel
Tag
- time
- coordinates
- data (link)
Filtration
- time
- radius
- figure (2D or 3D)
Tag
Tag
Tag
10
Petrozavodsk, Apr 2013
Geo2tag architecture
Queryengine
Session manager
HP
database
BLOBs
cache
Indexer
Cluster/cloud
infrastructure
backend
clients
Libraries:
jgeo, http_reqs
Session cache
web
android
web
Qt-based
embedded
JSON
System cache
11
Petrozavodsk, Apr 2013
Resources
● Main site http://geo2tag.org
● Tracker https://geo2tag.atlassian.net/
● Sources https://github.com/OSLL/geo2tag
● Support: geo2tag-support@osll.spb.ru
● CI server: pulse.geo2tag.org
12
Petrozavodsk, Apr 2013
JSON/REST API
Command:
– Service URL
– Function
– Parameters
Example
http://debug.geo2tag.org/service?{json}
– Json: '{"login":"User","password":"pwd@"}
13
Petrozavodsk, Apr 2013
RESTful API
● REST = Representational State Transfer
– 2000 by Roy Fielding
– The model of http (v 1.0)
– HTTP POST is being used for
communication.
14
Petrozavodsk, Apr 2013
Goals of REST
● Scalability of component interactions
● Generality of interfaces
● Independent deployment of components
● encapsulate legacy systems
15
Petrozavodsk, Apr 2013
Java script Object Notation
● Text-based, Object-oriented, data
interchange format.
● Structure:
– A collection of name/value pairs
– Ordered list of values.
16
Petrozavodsk, Apr 2013
Grammar
● Begin-array – [ left square bracket
● Begin-object – { left curly bracket
● End-array – ] right square bracket
● End-object – } right curly bracket
● Name-separator – : colon
● Value-separator – ; , comma
17
Petrozavodsk, Apr 2013
Examples
{
"Image": {
"Width": 800,
"Height": 600,
"Title": "View from 15th Floor",
"Thumbnail": {
"Url": "http://www.example.com/image/481989943",
"Height": 125,
"Width": "100"
},
"IDs": [116, 943, 234, 38793]
}
18
Petrozavodsk, Apr 2013
Geo2tag REST API
Based on JSON objects interchange
● Command:
– URI
● Service URL
● Function
– Parameters: JSON object
Example
URI http://debug.geo2tag.org/service/login
– Params (Json): '{"login":"User","password":"test"}
19
Petrozavodsk, Apr 2013
Session token
client server
/version
{“errno”: 0, “version” : “1.02”}
/login {“login” : “user”, “password”:”pwd”}
{“errno”: 0, “auth_token” : “765888876588”}
/loadTags {“auth_token” : “765888876588”,
“latitude”:23.0, ”longitude”:12.0, “radius”: 5}
{“errno”: 0, ...}
20
Petrozavodsk, Apr 2013
Invoking by curl
$ curl -d '{"login":"User","password":"test"}'
http://debug.geo2tag.org/service/login
21
Petrozavodsk, Apr 2013
Live example
(curl)
22
Petrozavodsk, Apr 2013
Command security
● Plain commands (version, build,...)
● Session management
– login
– closeSession
● Authorized commands
– With session token
23
Petrozavodsk, Apr 2013
Session workflow
● Check version
● Acquire session token
● … R/W tags, channels
● Close session
24
Petrozavodsk, Apr 2013
Login
● /login
– login
– password
25
Petrozavodsk, Apr 2013
User management
● /addUser
– login
– password
– Email
● /deleteUser
– login
26
Petrozavodsk, Apr 2013
Channel Management
● /addChannel
– name
– description
– url
– radius
● /owned
● /subscribe
● /subscribed
27
Petrozavodsk, Apr 2013
Working with tags
● /writeTag
– channel
– description
– {coordinates}
– time
– title
● /loadTags
– latitude
– longitude
– radius
–
28
Petrozavodsk, Apr 2013
Qt interface
(http_requests)
29
Petrozavodsk, Apr 2013
Qt interface
(demo application)
30
Petrozavodsk, Apr 2013
java interface
(jgeo)
31
Petrozavodsk, Apr 2013
Practice: Android
32
Petrozavodsk, Apr 2013
Demo: LoginActivity
33
Petrozavodsk, Apr 2013
Demo: RequestSender
34
Petrozavodsk, Apr 2013
Demo: login()
35
Petrozavodsk, Apr 2013
Demo: Chat Activity
36
Petrozavodsk, Apr 2013
Demo: Activity Transition
37
Petrozavodsk, Apr 2013
Demo: Location Updating
38
Petrozavodsk, Apr 2013
Demo: availableChannels()
39
Petrozavodsk, Apr 2013
Demo: subscribeChannel()
40
Petrozavodsk, Apr 2013
Demo: Channel chooser
41
Petrozavodsk, Apr 2013
Demo: writeTag()
42
Petrozavodsk, Apr 2013
Demo: loadTags()
43
Petrozavodsk, Apr 2013
Demo: TagsView updating
44
Petrozavodsk, Apr 2013
Demo: background updating
45
Petrozavodsk, Apr 2013
Practice: Qt
46
Petrozavodsk, Apr 2013
Contacts
geo2tag-maintainer@fruct.org

More Related Content

Viewers also liked

Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin
OSLL
 
Lbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tagLbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tag
OSLL
 
Access to CAS Riak with Erlang
Access to CAS Riak with ErlangAccess to CAS Riak with Erlang
Access to CAS Riak with Erlang
OSLL
 
Smart-m3 Security Model
Smart-m3 Security Model Smart-m3 Security Model
Smart-m3 Security Model
OSLL
 

Viewers also liked (20)

NA_EXER_LAYER_MASK_COMP
NA_EXER_LAYER_MASK_COMPNA_EXER_LAYER_MASK_COMP
NA_EXER_LAYER_MASK_COMP
 
Na word
Na wordNa word
Na word
 
O período regencial
O período regencialO período regencial
O período regencial
 
Estructura HTML III
Estructura HTML IIIEstructura HTML III
Estructura HTML III
 
Na acrobat pdf
Na acrobat pdfNa acrobat pdf
Na acrobat pdf
 
Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin Geo2tag performance evaluation, Zaslavsky, Krinkin
Geo2tag performance evaluation, Zaslavsky, Krinkin
 
Slidesharepresentation introphoto
Slidesharepresentation introphotoSlidesharepresentation introphoto
Slidesharepresentation introphoto
 
Lbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tagLbs for transport monitoring based on geo2tag
Lbs for transport monitoring based on geo2tag
 
Access to CAS Riak with Erlang
Access to CAS Riak with ErlangAccess to CAS Riak with Erlang
Access to CAS Riak with Erlang
 
Na opening photos acrobat
Na opening photos acrobatNa opening photos acrobat
Na opening photos acrobat
 
A 1ª guerra mundial
A 1ª guerra mundialA 1ª guerra mundial
A 1ª guerra mundial
 
A crise de 1929 prof nélia-2016
A crise de 1929 prof nélia-2016A crise de 1929 prof nélia-2016
A crise de 1929 prof nélia-2016
 
Governo rodrigues alves
Governo rodrigues alvesGoverno rodrigues alves
Governo rodrigues alves
 
Exer._Mask_Variations
Exer._Mask_VariationsExer._Mask_Variations
Exer._Mask_Variations
 
O imperialismo definições
O imperialismo   definiçõesO imperialismo   definições
O imperialismo definições
 
Smart-m3 Security Model
Smart-m3 Security Model Smart-m3 Security Model
Smart-m3 Security Model
 
Size and resolution1
Size and resolution1Size and resolution1
Size and resolution1
 
Advices
AdvicesAdvices
Advices
 
Catalogo de conceptos clinica.xlsx
Catalogo de conceptos clinica.xlsxCatalogo de conceptos clinica.xlsx
Catalogo de conceptos clinica.xlsx
 
Na pp
Na ppNa pp
Na pp
 

Similar to Fruct13 geo2tag-training

Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...
Ari Jolma
 

Similar to Fruct13 geo2tag-training (20)

NoSQL Now 2013 Presentation
NoSQL Now 2013 PresentationNoSQL Now 2013 Presentation
NoSQL Now 2013 Presentation
 
Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...Geospatial web services using little-known GDAL features and modern Perl midd...
Geospatial web services using little-known GDAL features and modern Perl midd...
 
Writing infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQLWriting infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQL
 
Upstream consultancy and Ceph RadosGW/S3 - Javier Munhoz
Upstream consultancy and Ceph RadosGW/S3 - Javier MunhozUpstream consultancy and Ceph RadosGW/S3 - Javier Munhoz
Upstream consultancy and Ceph RadosGW/S3 - Javier Munhoz
 
Upstream Consultancy and Ceph RadosGW/S3 (AMTEGA Ceph Day 2018)
Upstream Consultancy and Ceph RadosGW/S3 (AMTEGA Ceph Day 2018)Upstream Consultancy and Ceph RadosGW/S3 (AMTEGA Ceph Day 2018)
Upstream Consultancy and Ceph RadosGW/S3 (AMTEGA Ceph Day 2018)
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
RESTful services on IBM Domino/XWork (ICON UK 21-22 Sept. 2015)
RESTful services on IBM Domino/XWork (ICON UK 21-22 Sept. 2015)RESTful services on IBM Domino/XWork (ICON UK 21-22 Sept. 2015)
RESTful services on IBM Domino/XWork (ICON UK 21-22 Sept. 2015)
 
AWS_Data_Pipeline
AWS_Data_PipelineAWS_Data_Pipeline
AWS_Data_Pipeline
 
Pgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonaldPgrouting_foss4guk_ross_mcdonald
Pgrouting_foss4guk_ross_mcdonald
 
FIWARE Tech Summit - Quantum Leap - A FIWARE Ttme-series DB
FIWARE Tech Summit - Quantum Leap - A FIWARE Ttme-series DBFIWARE Tech Summit - Quantum Leap - A FIWARE Ttme-series DB
FIWARE Tech Summit - Quantum Leap - A FIWARE Ttme-series DB
 
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
 
Your Database Cannot Do this (well)
Your Database Cannot Do this (well)Your Database Cannot Do this (well)
Your Database Cannot Do this (well)
 
Introducing Datawave
Introducing DatawaveIntroducing Datawave
Introducing Datawave
 
Vishnu_Gowthem_Resume
Vishnu_Gowthem_ResumeVishnu_Gowthem_Resume
Vishnu_Gowthem_Resume
 
Things to do with OpenStreetMap
Things to do with OpenStreetMapThings to do with OpenStreetMap
Things to do with OpenStreetMap
 
Dynamics 365 CRM Javascript Customization
Dynamics 365 CRM Javascript CustomizationDynamics 365 CRM Javascript Customization
Dynamics 365 CRM Javascript Customization
 
EC-WEB: Validator and Preview for the JobPosting Data Model of Schema.org
EC-WEB: Validator and Preview for the JobPosting Data Model of Schema.orgEC-WEB: Validator and Preview for the JobPosting Data Model of Schema.org
EC-WEB: Validator and Preview for the JobPosting Data Model of Schema.org
 
Visualizing Web Data Query Results
Visualizing Web Data Query ResultsVisualizing Web Data Query Results
Visualizing Web Data Query Results
 
WWW2012 Tutorial Visualizing SPARQL Queries
WWW2012 Tutorial Visualizing SPARQL QueriesWWW2012 Tutorial Visualizing SPARQL Queries
WWW2012 Tutorial Visualizing SPARQL Queries
 
RESTful application with JAX-RS and how to expose and test them
RESTful application with JAX-RS and how to expose and test themRESTful application with JAX-RS and how to expose and test them
RESTful application with JAX-RS and how to expose and test them
 

More from OSLL

More from OSLL (20)

SLAM Constructor Framework for ROS
SLAM Constructor Framework for ROSSLAM Constructor Framework for ROS
SLAM Constructor Framework for ROS
 
Студентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работеСтудентам и не только. Как выступить с докладом по своей научной работе
Студентам и не только. Как выступить с докладом по своей научной работе
 
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
Full Automated Continuous Integration and Testing Infrastructure for Maxscale...
 
MOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern EducationMOOCs Virtual Lab in Modern Education
MOOCs Virtual Lab in Modern Education
 
Работа с геоданными в MongoDb
Работа с геоданными в MongoDbРабота с геоданными в MongoDb
Работа с геоданными в MongoDb
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2TagImplementation of the new REST API for Open Source LBS-platform Geo2Tag
Implementation of the new REST API for Open Source LBS-platform Geo2Tag
 
Microservice architecture for Geo2Tag
Microservice architecture for Geo2TagMicroservice architecture for Geo2Tag
Microservice architecture for Geo2Tag
 
[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool[MDBCI] Mariadb continuous integration tool
[MDBCI] Mariadb continuous integration tool
 
Block-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contraBlock-level compression in Linux. Pro et contra
Block-level compression in Linux. Pro et contra
 
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
Fast Artificial Landmark Detection for indoor mobile robots AIMAVIG'2015
 
Обзор файловой системы GlusterFS
Обзор файловой системы GlusterFSОбзор файловой системы GlusterFS
Обзор файловой системы GlusterFS
 
Обзор Btrfs
Обзор BtrfsОбзор Btrfs
Обзор Btrfs
 
Обзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы CephОбзор архитектуры [файловой] системы Ceph
Обзор архитектуры [файловой] системы Ceph
 
Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015Linuxvirt seminar-csc-2015
Linuxvirt seminar-csc-2015
 
Обзор Linux Control Groups
Обзор Linux Control GroupsОбзор Linux Control Groups
Обзор Linux Control Groups
 
Raspberry Pi robot with ROS
Raspberry Pi robot with ROSRaspberry Pi robot with ROS
Raspberry Pi robot with ROS
 
Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)Пространства имен Linux (linux namespaces)
Пространства имен Linux (linux namespaces)
 
Кратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русскиКратчайшее введение в docker по-русски
Кратчайшее введение в docker по-русски
 
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux ContainersVirtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
Virtual-HSM: Virtualization of Hardware Security Modules in Linux Containers
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Strategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering TeamsStrategic AI Integration in Engineering Teams
Strategic AI Integration in Engineering Teams
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 

Fruct13 geo2tag-training