2. • Brief background on our customers
• Our software stack and how we got there
• Business models
• Simplicity
• Field applications, online and offline
OVERVIEW
3. Photo by whalt - http://flic.kr/p/7D7rd
Figure 11: Conduits in an Undergr
Underground utility boxes are the structures that provide a
conduits, examples of underground utility boxes include m
configurations of underground utility boxes can be created
seen below and to its right the butterfly diagram managed
19.Customers: utilities
and telcos
Photo by ☺ Lee J Haywood - http://flic.kr/p/7iX7f5
8. SAMPLE CUSTOMER
• Large communications company with 6 million subscribers across
~20 states
• 23 geographic regions created for offline use – from one common
master database
• Offline databases vary from 136MB to 22GB
• Incremental updates applied to all offline databases nightly
• 5000 online users, ~400 offline users active so far, growing to 2000
• Weekly features updated ~2.3m total, ~250,000 largest region
23. DEMO OVERVIEW
This presentation features screen shots that step through a demo of Ubisense
myWorld for damage assessment.The demo features two separate users:
Operations center user, with overview of
situation, including data from all field users
Damage assessor with laptop in the field,
capturing damage assessment data
25. Damage Assessor in Field
Currently online
(wireless)
WiFi is on
Damage assessment user in the field, currently in
online mode (with wireless connection)
26. Damage Assessor in Field
Create damage pointDamage assessor creates damage assessment point in
the field
27. Damage Assessor in Field
Damage point is created in local database and
displayed on map on laptop
28. Operations Center
Syncs to operations center within ~1 minute, damage point
displayed and overview map updated
29. Damage Assessor in Field
Offline
WiFi is off
Back in the field, we are now in offline mode (wireless
connection is lost). Google Map has disappeared here.
30. Damage Assessor in Field
Now we are displaying OpenStreetMap as an offline map
instead of Google (which can’t be used offline)
31. Damage Assessor in Field
In offline mode, we can continue to display maps, select
objects, and search for assets
32. Damage Assessor in Field
We can also continue to create damage points while in
offline mode (which are stored locally)
33. Damage Assessor in Field
We have now created two more damage points offline
34. Operations Center
Back in the operations center, we still just see the single
damage point at the moment
35. Damage Assessor in Field
Online
WiFi is on
Now the field laptop has a network connection again and is
back online, so the damage data can sync
36. Operations Center
The data has synced and so we now see three damage
points back in the operations center.
40. Operations Center
Operations Center also gets immediate visibility of photo (assuming user online)
Photos can also be emailed in from any smart phone
41. OFFLINE REQUIREMENTS
• Cross platform
• Android, iOS,Windows 7 onwards (and web)
• Need ability to sync large datasets (gigabytes) for some
situations
• In other situations may be able to use smaller datasets (for
single job, like walking an electrical circuit)
42. DATABASE SYNC
• Sync of bulk GIS data
• Initially read only for short term applications
• Typically want to do nightly over non-cellular connection
• Time critical data like damage assessment
• Want to sync as soon as possible (two way)
• Needs to connect / disconnect / sync transparently
45. ARCHITECTURE 1
LAPTOP REPLICA
PostGIS
Mapfish
Windows (or Linux or Mac) only
Use identical software stack to main
server
Need custom replication - haven’t
found PostgreSQL replication for
sometimes disconnected model
Pros: Simplest to implement
Cons: Laptop only, heavyweight
46. REPLICA CONCEPT
Master database
Local database
Potentially multiple
gigabytes
(raster tiles)
Incremental update
is important
Full or partial
(spatial) replica
47. ARCHITECTURE 2
CORDOVA REPLICA
• Have our web application running offline
on Android and iOS
• Replaced PostGIS with SQLite - for geometry and attributes,
and also tiles
• Wrote JavaScript wrappers to replace (basic) MapFish services
offline
• Refactored code so small number of classes contain differences
between online and offline - tile and database access
50. CAUTION WITH IOS
• Apple terms and conditions regarding approval and software
distribution can be a major pain
• All code, and all changes, need to be reviewed by Apple - even
for testing (this has tightened up recently, since they bought
TestFlight)
• If you need custom apps for individual customers there is a
separate Enterprise Developer Program orVolume Purchase
Program, which each have their own complications
51. “ADVANCED HYBRID”
APPROACH
Higher level HTML & JavaScript code
Includes myWorld core, plus any
applications and customizations
Sync common code package to each
device as needed
Use Cordova to create single executable for
each platform (Electron on Windows 7)
Low level code
Handles data storage and access using
SQLite, and Web View which is a container
for HTML & JavaScript code
52. ARCHITECTURE 3
HTML5 OFFLINE
• Cache smaller amounts of data using
HTML5 offline capabilities
• More dynamic and easier to deploy
than bulk replication
53. HTML5 SUMMARY
• Tried various approaches including caching individual tiles,
caching mbTiles files and reading then with sql.js, caching
geoJSON
• LargeLocalStorage was a useful library
• Worked reasonably well for small data volumes
• But a number of issues including limitations on data size,
inconsistency across browsers, general flakiness, and inability to
manage offline data directly within the application
54. OFFLINE SUMMARY
• It will be great when we have universal wireless coverage!
• Today, offline is still harder than you would hope
• Large scale robust sync for enterprises is not rocket science,
but a lot of detailed work to do well
• HTML5 caching has a lot of promise, is workable in some
scenarios today, but still not quite fully baked
• We have gone with Cordova which gives you much more
control over local storage, and most of the benefits of HTML5
55. OVERALL SUMMARY
• We have built a very robust enterprise web and mobile
geospatial product based on open source foundations
including PostGIS, GeoServer, Leaflet, SpatiaLite and Cordova
• We have completed large implementations in several top 10
utility and telecommunications companies, in conservative IT
environments
• Our experience with all the open source technology we’ve
used has been great