GIS in the cloud: implementing a Web Map Service on Google App Engine Jon Blower Reading e-Science Centre University of Reading United Kingdom

Slides:



Advertisements
Similar presentations
A Roadmap of Open Source components for GI Web Services and Clients A Paul R Cooper MAGIC.
Advertisements

In Production Juan Marin. Agenda Introduction Reliability Availability Performance Data optimizations Runtime optimizations Measuring your environment.
Tableau Software Australia
University of Southampton Electronics and Computer Science M-grid: Using Ubiquitous Web Technologies to create a Computational Grid Robert John Walters.
A Google Cloud Technology-based Sensor Data Management System for KLEON Karpjoo Jeong Institute for Ubiquitous.
Google App Engine Cloud B. Ramamurthy 7/11/2014CSE651, B. Ramamurthy1.
InSAR Data and GeoServer IU QuakeSim Team October 26, 2011.
Exploring large marine datasets using an interactive website and Google Earth Jon Blower, Dan Bretherton, Keith Haines, Chunlei Liu, Adit Santokhee Reading.
OS Spring’03 Introduction Operating Systems Spring 2003.
Matt Bertrand Building GIS Apps in the Cloud. Infrastructure - Provides computer infrastructure, typically a platform virtualization environment, as a.
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
Google App Engine and Java Application: Clustering Internet search results for a person Aleksandar Kartelj Faculty of Mathematics,
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
22-Aug-15 | 1 |1 | Help! I need more servers! What do I do? Scaling a PHP application.
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
FOSS4G: 52°North WPS Behind the buzz of Cloud Computing - 52°North Open Source Geoprocessing Software in the Clouds FOSS4G 2009.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
What is Cloud Computing? Cloud computing is the delivery of computing capabilities as a service, making access to IT resources like compute power, networking.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
1 Distributed Systems : Server Load Balancing Dr. Sunny Jeong. Mr. Colin Zhang With Thanks to Prof. G. Coulouris,
Google App Engine(GAE) Ma, Zhichao Cloud.
Meet with the AppEngine Márk Gergely eu.edge. What is AppEngine? It’s a tool, that lets you run your web applications on Google's infrastructure. –Google's.
Ashish Patro MinJae Hwang Thanumalayan S. Thawan Kooburat.
An Introduction To Building An Open Standard Web Map Application Joe Daigneau Pennsylvania State University.
EXPOSE GOOGLE APP ENGINE AS TASKTRACKER NODES AND DATA NODES.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
Service Computation 2010November 21-26, Lisbon.
Cloud Use Cases, Required Standards, and Roadmaps Excerpts From Cloud Computing Use Cases White Paper
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
© Lindsay Bradford1 Scaling Dynamic Web Content Provision Using Elapsed-Time- Based Content Degradation Lindsay Bradford, Stephen Milliner and.
Server Virtualization
Introduction to Google App Engine. 2 Google App Engine Does one thing well: running web apps Simple app configuration Scalable Secure.
Enterprise Cloud Computing
Paperless Timesheet Management Project Anant Pednekar.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
My project  Small-Medium Enterprises (SMEs)  faces goods distribution problems  needs necessary resources, money and technical expertise, to purchase.
Google Map Engine Can export images to Map Engine from Earth Engine
1 Google App Engine APIs :Overview Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations
Using Google Maps and other OpenSource GIS software for displaying geospatial data Jon Blower, Dan Bretherton, Keith Haines, Chunlei Liu, Adit Santokhee.
GOOGLE APP ENGINE By Muktadiur Rahman. Contents  Cloud Computing  What is App Engine  Why App Engine  Development with App Engine  Quote & Pricing.
Web Technologies Lecture 13 Introduction to cloud computing.
Software Architecture in Practice Mandatory project in performance engineering.
1 NETE4631 Using Google Web Services Lecture Notes #6.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
Data Centers and Cloud Computing 1. 2 Data Centers 3.
Cofax Scalability Document Version Scaling Cofax in General The scalability of Cofax is directly related to the system software, hardware and network.
Cloud-based movie search web application with transaction service Group 14 Yuanfan Zhang Ji Zhang Zhuomeng Li.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Fault – Tolerant Distributed Multimedia Streaming Web Application By Nirvan Sagar – Srishti Ganjoo – Syed Shahbaaz Safir
Platform as a Service (PaaS)
Modeling Big Data Execution speed limited by: Model complexity
Platform as a Service (PaaS)
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Platform as a Service (PaaS)
Hadoop Aakash Kag What Why How 1.
Google App Engine Mandeep Singh (37926)
Hybrid Cloud Architecture for Software-as-a-Service Provider to Achieve Higher Privacy and Decrease Securiity Concerns about Cloud Computing P. Reinhold.
Platform as a Service.
Dr.S.Sridhar, Director, RVCT, RVCE, Bangalore
Andrew McCombs March 10th, 2011
Spatial Analysis With Big Data
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Google App Engine Danail Alexiev
Google App Engine Ying Zou 01/24/2016.
Presentation transcript:

GIS in the cloud: implementing a Web Map Service on Google App Engine Jon Blower Reading e-Science Centre University of Reading United Kingdom

Scalability is a major concern Web Map Services are quite “heavy” on the server Many infrastructures now moving into operational phase How to serve many simultaneous clients? – Tile caching is a widely-used option, but reduces flexibility Load is typically “bursty”, so we’d like to be able to scale the back end up and down

Cloud computing Hardware Operating System Application container Specific applications

Google App Engine overview Virtual application-hosting environment – Python, Java (servlets) Machines are brought up and taken down automatically Built-in services, including: – User authentication – Distributed memcache – Distributed persistent store – Image transformation Free within certain quotas

Aims of this project Develop a fully-functional GAE WMS for high-res global raster data – NASA Blue Marble composite image Efficient for tiling clients, but supports untiled access too Supports multiple coordinate reference systems Use Java FOSS Use resources efficiently to stay within free quotas

Development challenges Much harder than anticipated! (see here):here Coding restrictions – No local file output – Can’t spawn threads – Can’t access some Java packages (e.g. most of java.awt, all of javax.imageio) – Limited RAM Deployment issues – Uploading data

Blue Marble image courtesy of NASA Earth Observatory

Testing Three “modes”: – Fully-dynamic (all images generated from scratch) – Self-caching (duplicate requests are served from cache) – Static tiles (all images pre-generated) All images 256x256 pixels Apache JMeter scripts – Many client threads, requesting images in random order from preselected list – Single client machine  GAE is “black box” so can’t control all aspects of the experiments

Results: Throughput Fully-dynamic Self-caching Static tiles “Service not available” errors increase with load 

Results: Latency Fully-dynamic Self-caching Static tiles Unpredictable latency spikes! 

Some notes about quotas Outgoing bandwidth quota (1GB/day) runs out fastest – Hence serving JPEGs is more cost-effective than PNGs – Can serve 100, x256 JPEGs per day for free But it’s easy to code in such a way that some per-minute quotas are also exceeded – E.g. quota on output from the distributed data store Quotas can be increased!

Conclusions 1 Successfully implemented full WMS for raster images Significant usage at zero running costs Performance and scalability acceptable for many apps – But latency spikes are an issue Testing with distributed clients would be instructive

Conclusions 2: further potential? Hard to host lots of images in same instance using our method – Relies on storing data in local files, with a tight quota Restrictions on Java servlet environment make it hard to run standard software stacks – E.g. GeoServer Expansion to vector dataset is probably hard – Would need a spatial index on top of the distributed data store

Thank you! All code, full paper, results and more details about the experiments: