Client, is a unique company that has built digital indoor maps for many shopping malls, airports, college campuses, hospitals, museums, business campuses, conferences, and many more public facilities. They create the indoor venue maps and navigation content that for locations-based solutions around the world. The Software as Service platform built by Client, adds significant value to consumers, venue tenants, visitors, product companies with shelf space and it is accessible on demand, from anywhere in the world on any mobile device.
Since launching publicly in September 2010, Client has mapped hundreds of thousands of buildings/venues throughout the world and has millions of subscribers using its service directly or through the partner eco-system. As a start-up in the early days of its existence, Client was looking for a partner to develop key components of its system and assist in the hosting of the application with a cloud provider for secure access from multiple countries.
Key business requirements were:
➢ Develop a scalable and Open Restful API for third party integration with client
➢ Ensure secure access to the Maps geo spatial database through encryption/decryption
➢ Geospatial queries should be responded within 20 Millisecond from access point of the internet
➢ Deployment of the platform on the cloud should be automated (from a central location)
➢ Tech stack is Linux/Java/JS/PostgreSQL/PostGIS
Choice of Cloud platform:
The choice of the hosting platform and optimizing the various components on that was the biggest decision as a SaaS provider for public access. The robustness and scalability of the platform, options for compute, memory, storage, bandwidth, multiple zones and open APIs were critical factors. Newt Global recommended that among all the options commercially available at that time, AWS presented the best environment to meet most of the requirements.
After considerable thought and a series of PoCs, it was decided to have a high availability solution with MCSS and MCUS, Map Repositories in two zones and allow access to the MCSS and Map repository from multiple zones. The application was planned to be deployed with the database as a cluster of read replicas with each instance of the application server connecting to one of these read replicas.
Design highlights to improve secure response:
For security purposes, the geospatial information of Client had to be encrypted at rest. When the database is deployed, a RAM disk is allocated, mounted and a table space is created on it. This table space is used to store the decrypted geospatial information, so that it can be indexed. The geospatial queries were converted to stored procedures which were loaded during database deployment.
Updating the databases were achieved by invoking appropriate stored procedures with necessary parameters and credentials that internally used db_link to connect to a remote database
Ansible workstation is the center orchestration layer from which all the playbooks for every component of the application stack were run. All the instances of the entiresolution are residing in AWS cloud. Playbooks are created for each module of the application stack
The playbooks were responsible for installing the dependencies, configuring them and installing the latest code to the instance. The only pre-requisite for the playbooks to work is that the SSH key pair between the nodes and the Ansible workstation needs to be set properly.
Following AWS Services were consumed:
✓ AWS EC2, ELB, RDS, IAM, EBS, VPC and Ansible Automation
Client launch its services after production trials, to multiple geographies in ASEAN and USA regions, simultaneously. A business model was initially launched around revenue from advertising through tenants in a building/mall/venue to consumers with access to Client maps application.
In recent times, the open Rest API support and guaranteed response times have encouraged the company to develop a partner eco-system to consume the indoor maps for other location based services.