540 likes | 554 Views
Explore the benefits and challenges of implementing Spatial Cloud Computing (SC2) on AppEngine, using a variety of technologies and tools such as JavaGeoModel and Java Topology Suite. See the proof of concept (POC) by RMSI on the Google AppEngine platform and discover future enhancements. Learn about the potential growth of Cloud GIS and how it can revolutionize the industry.
E N D
The Case for 3D Singapore Terence Tan Infocomm Development Authority of Singapore
Spatial Cloud Computing on AppEngine Desktop GIS, Web GIS, is Cloud the next Step? Prabuddha Ghosh 20th Jan 2011 GeoSpatialWorld2011 Developers Forum
Outline The What and Why of Spacial Cloud Computing (SC2) Challenges and solutions of SC2 on AppEngine CloudGIS
What is the Cloud? NIST Definition : http://csrc.nist.gov/groups/SNS/cloud-computing/index.html • 5 Characteristics of Cloud Computing • 3 Service Models • 4 Deployment Models
Cloud Characteristics • On-demand self-service • Broad network access • Resource pooling • Rapid elasticity • Measured Service
Cloud Service Models • Cloud Software as a Service (SaaS). • Cloud Platform as a Service (PaaS). • Cloud Infrastructure as a Service (IaaS).
Cloud Deployment Models • Private cloud. • Community cloud. • Public cloud. • Hybrid cloud.
Comparing Cloud & Data Centers (Source Communications of the ACM)
What is Spatial Cloud Computing SC2? • Cloud Computing with Geography added • 90% of business data has a Geographical component
Why SC2 for Clients • On Demand Scalability • Low upfront Cost • No IT costs • High security • Latest software • Opex instead of Capex
Why SC2 for IGSV • Sell to new categories of customers • Concentrate on core competency • Monthly revenues • Fast to market • Support massive scaling with low upfront cost
How to do SC2 ? Challenges and Solutions of SC2 on AppEngine
What is Appengine? • Google Cloud Platform • Python & Java • Self Service Administration • Integration with Google APIs (GALGWT)
What is the DataStore • Not an RDBMS. • Scalable • NoSQL based pseudo HashMap • JDO/JPA support
Other Supporting components • GWT • GALGWT ( maps, charts, reports) http://code.google.com/p/gwt-google-apis/ • JavaApiForKML http://code.google.com/p/javaapiforkml/ • Apache Commons FileUploading etc • JTS (For spatial analysis) • Any Other Java component on whitelist http://code.google.com/appengine/docs/java/jrewhitelist.html
Structure of an Appengine Application • UI- GWT/GXT/SmartGWT (Flex is an option) /Client Directory • Middleware (Java based POJOs) /server directory • Database – Google Bigtable based Datastore • .gwt.xml file Module descriptor • Web.xml, appengine-generated.xml , datastore-indexes.xml, local_db.bin • Main html Page
Tools for working with AppEngine • Google plug-in for Eclipse • AppEngine Datastore • Appspot • SVN/ Subclipse/ Googlecode • Appcfg.sh+ Ant • Local Admin (ah_admin)
Major Challenges • Appengine DataStore does not have Spatial Indexing • Loading Data to Appstore from any machine in the world as Java Appengine does not have good bulk upload tools • Supporting GIS functionalities without reinventing the wheel
Solutions • We can use JavaGeoModel an existing open source project which supports creation of spatial indexes using Geohashing feature. • Use Apache Commons Framework and JavaAPIforKML for handling the data upload task • Use Java Topology Suite for GIS processing
CloudGIS POC RMSI in the Cloud
Where we are? • POC created on Google Appengine platform • Work started for a telecom sector client using this platform
Functionalities available now • Can load KML data to Appengine from any computer • Can do proximity searches using the DataStore Geohashes • Display the same using Google Maps and make available Google Maps Based Tools • Can do Attribute Based Search, LatLong Search, Geocoded Search, Administrative Boundary Based Drill Down Search.
Future Work • Support formats besides KML • Integrate Administration with AppEngine Admin Panel • Create Pay as you go Billing (using AppEngines existing billing engine) • Expose more JTS functionalities • Utilize TaskQueues for running background reports • Port to VMForce when VMForce is in General Availability (port to Spring in preparation) • Support user created data
In Conclusion • We saw what is SC2 and why it makes sense • We talked about AppEngine and how to use AppEngine for a SC2 implementation • And we had a look at an implementation of an SC2 application for Tower Location Planning
Something to Think About • Cloud Computing in India to grow from a from a $50 million industry in 2009 to a $15 billion industry by 2013. (Source Communications of the ACM). How much will be Cloud GIS??
Thank You!! Questions?