SlideShare a Scribd company logo
Java Applications on Google App Engine




Narinder Kumar
www.xebiaindia.com
Easy to build, easy to maintain,
         easy to scale
Current Web Application LifeCycle
         Management
➢   Prepare
➢   Deploy
➢   Scale
➢   Maintain / Monitor
➢   Upgrade

    Difficult and Expensive
Google App Engine ?
What is Google App Engine
➢   Yet another Cloud Computing Platform
➢   Hosts your Web Applications on Google
    Infrastructure
➢   Formally launched in April'08 with Python
➢   Java Support enabled in April'09
Java on Google App Engine
➢   Platform as a Service (PaaS)
    ➢   Hardware, Connectivity
    ➢   Operating System
    ➢   JVM
    ➢   Servlet Container
    ➢   SDK
    ➢   API's for accessing Google Infrastructure
        Services
Key Features
➢   No need to install or maintain your own stack
➢   Scaling on Demand
➢   Google's proven infrastructure for you
➢   Pay as you Go, Free to get started
Architecture
Typical Application Building Blocks
      Industry Standard APIs : JPA/JDO, JCache,JavaMail



                Google Specific API Interfaces




                    Google Infrastructure
Platform
➢   JVM 5 or later
➢   Servlet 2.5 Container, Jetty & Jasper (can
    change)
    ➢   HTTP Session
    ➢   JSP
➢   SandBox Environment
➢   Google Services API
Getting Started
➢   Google Account & Mobile Phone

➢   Download and install SDK

➢   Plugin for your IDE / Command Line
DEMO OF HELLO-WORLD
Summary
➢   SDK includes
    ➢   Dev AppServer
    ➢   Disk based version of DataStore
    ➢   Simulation of Google User Service
➢   Deployment
    ➢   https://appengine.google.com
    ➢   Application hosted at <app-id>.appspot.com or
        Custom Domain
Configuration
➢   appengine-web.xml
    ➢   Application Name and Version
    ➢   Logger
    ➢   Static Files
    ➢   Resource Files
    ➢   System Properties & Environment Variables
    ➢   SSL
    ➢   Session
    ➢   Inbound Services
Data Manipulation
➢   Underlying Storage is BigTable
➢   JDO or JPA or DataStore API
➢   JDO & JPA implemention by DataNucleus
    Access Platform
➢   jdoconfig.xml or persistence.xml
➢   datastore-indexes.xml
           Let's try with a simple scenario
Data Manipulation Constraints
➢   Max 1000 rows per request
➢   Not Allowed while Using JPA
    ➢   Owned Many-to-many relations
    ➢   Join, group by, having...
➢   Only JOINED and MAPPED_SUPERCLASS
    during Inheritance
➢   Restrictions on Queries
RDBMS vs DataStore
 RDBMS     DATASTORE           JPA            JDO
DataBase   DataStore   @Entity         @PersistanceCapa
Table      Kind                        ble
Row        Entity      @Id             @PrimaryKey
Row ID     Key         @GeneratedVal   @Persistent
Column     Property    ue
                       find(...)       getObjectById(...)
Other Google Services
➢   URL Fetch
➢   Memcache
➢   User Service
➢   Mail
➢   Image
➢   XMPP
Additional Services
➢   Cron

➢   AOP Like Interface

➢   Task Queues
Managing & Monitoring
➢   Dashboard

➢   Reporting

➢   Manage different versions

➢   Logs
Developer's Toolkit
➢   IDE Plugins
➢   Ant supported, Maven on the way
➢   Testing Facilities
➢   XML Validation
Quotas & Billing
➢   Billable Quotas & Fixed Quotas
➢   Per-minute Quotas
➢   Resources
    ➢   Requests
    ➢   CPU
    ➢   Bandwidth (In/Out)
    ➢   Google Services
Current Pricing
➢   Very Generous
➢   CPU : 6.5 hours / day, $0.10 / hour later
➢   Bandwidth In/Out : 1 GB / day, $0.10/$0.12
    GB later
➢   Stored Data : 1 GB
➢   Emails : 2000/day
How to Manage / Monitor Costs
➢   QuotaService
➢   Profiling Tool
➢   Application behaviour when Resources are
    finished
➢   AdminConsole
Constraints
➢   Restricted JVM
    ➢   Threads
    ➢   File System Writes
    ➢   ClassLoader, JNI,...
➢   Read Only File System
➢   DataStore : Only choice for persistence
➢   Requests limited to max 30 seconds
Limitations
➢   No Server Push
➢   Request & Response Size Max 10 MB
➢   Max Files < 3000
➢   Max Size of Application Files < 150 MB
Supported Languages &
               Frameworks
➢   Groovy & Grails
➢   JRuby on Rails (with some build and config modifications)
➢   Scala & Lift (no Scala Actors)
➢   Wicket
➢   Blaze-DS
➢   Struts,...
Powered By Google App Engine
Competitors
➢   SaaS / PaaS / IaaS

➢   Azure Sevices

➢   Force.com

➢   Amazon Web Service
Java Support On Google App Engine
References & Credits
➢   Of-course Google
    (http://code.google.com/appengine/)

➢   Google IO 2009 Sessions

➢   Dzone RefCardz

More Related Content

PDF
Serverless Architecture GCP In Production
PDF
Google App Engine Introduction
PDF
Google cloud platform Introduction - 2014
PDF
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(下)
PDF
code lab live Google Cloud Endpoints [DevFest 2015 Bari]
PPTX
Google cloud infrastructure workshop
PDF
CloudDesignPatterns
PPTX
MicroServices with Containers, Kubernetes & ServiceMesh
Serverless Architecture GCP In Production
Google App Engine Introduction
Google cloud platform Introduction - 2014
JCConf 2015 - 輕鬆學google的雲端開發 - Google App Engine入門(下)
code lab live Google Cloud Endpoints [DevFest 2015 Bari]
Google cloud infrastructure workshop
CloudDesignPatterns
MicroServices with Containers, Kubernetes & ServiceMesh

What's hot (19)

PDF
Serverless and Design Patterns In GCP
PPTX
Magento Cloud - Introduction
PDF
JAMstack WTJ
PPTX
Kubernetes for machine learning
PDF
Embracing the modern web using a Headless CMS with GatsbyJS CMS Philly
PPTX
JAMStack
PDF
Aliaba Cloud Singapore Meetup- ECS Deep Dive
PPTX
Cloud Native and CNCF
PDF
Cloud sql datasheet
PDF
Drupal, GraphQL, Views, View Modes and Gatsby for a US Gov site CMS Philly
PPTX
JAMStack
PPT
Google app engine introduction
PDF
How We Benefited from Cloud
ODP
Stateful applications on kubernetes
PDF
Mondra achitect
PDF
An overview of BigQuery
PPTX
Using Google's Cloud - for Developers
PPTX
Google app engine
PDF
Google Cloud Platform at Vente-Exclusive.com
Serverless and Design Patterns In GCP
Magento Cloud - Introduction
JAMstack WTJ
Kubernetes for machine learning
Embracing the modern web using a Headless CMS with GatsbyJS CMS Philly
JAMStack
Aliaba Cloud Singapore Meetup- ECS Deep Dive
Cloud Native and CNCF
Cloud sql datasheet
Drupal, GraphQL, Views, View Modes and Gatsby for a US Gov site CMS Philly
JAMStack
Google app engine introduction
How We Benefited from Cloud
Stateful applications on kubernetes
Mondra achitect
An overview of BigQuery
Using Google's Cloud - for Developers
Google app engine
Google Cloud Platform at Vente-Exclusive.com
Ad

Similar to Java Support On Google App Engine (20)

PDF
Google Developer Days Brazil 2009 - Java Appengine
PPT
Google App Engine for Java
PPTX
Google appenginejava.ppt
PDF
Google App Engine for Java v0.0.2
PDF
Google App Engine for Java
PDF
Introduction to Google's Cloud Technologies
PDF
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
PDF
Google App Engine
PPTX
Google Cloud Platform
PPT
Developing Java Web Applications In Google App Engine
PDF
Javaedge 2010-cschalk
PPT
Google App Engine - Java Style
PDF
Google App Engine - September 17 2009
PDF
Google App Engine
PPT
The 90-Day Startup with Google AppEngine for Java
PDF
Cannibalising The Google App Engine
KEY
Appengine Nljug
PDF
Google app-engine-cloudcamplagos2011
PPTX
Google app engine
PDF
Introduction to Google Cloud Platform Technologies
Google Developer Days Brazil 2009 - Java Appengine
Google App Engine for Java
Google appenginejava.ppt
Google App Engine for Java v0.0.2
Google App Engine for Java
Introduction to Google's Cloud Technologies
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Google App Engine
Google Cloud Platform
Developing Java Web Applications In Google App Engine
Javaedge 2010-cschalk
Google App Engine - Java Style
Google App Engine - September 17 2009
Google App Engine
The 90-Day Startup with Google AppEngine for Java
Cannibalising The Google App Engine
Appengine Nljug
Google app-engine-cloudcamplagos2011
Google app engine
Introduction to Google Cloud Platform Technologies
Ad

More from Xebia IT Architects (20)

PPTX
Using Graph Databases For Insights Into Connected Data.
PPT
Use Cases of #Grails in #WebApplications
PPT
When elephants dance , enterprise goes mobile !
PDF
DevOps demystified
PDF
Exploiting vulnerabilities in location based commerce
PDF
Modelling RESTful applications – Why should I not use verbs in REST url
PDF
Scrumban - benefits of both the worlds
PDF
#Continuous delivery with #Deployit
PDF
Continuous integration using thucydides(bdd) with selenium
PPTX
Battlefield agility
PPTX
Fish!ing for agile teams
PDF
Xebia-Agile consulting and training offerings
PPT
Xebia e-Commerce / mCommerce Solutions
PPT
Growth at Xebia
PPTX
A warm and prosperous Happy Diwali to all our clients
PDF
"We Plan to double our headcount" - MD, Xebia India
PPT
Agile 2.0 - Our Road to Mastery
PPTX
Agile FAQs by Shrikant Vashishtha
PPTX
Agile Team Dynamics by Bhavin Chandulal Javia
PPTX
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir
Using Graph Databases For Insights Into Connected Data.
Use Cases of #Grails in #WebApplications
When elephants dance , enterprise goes mobile !
DevOps demystified
Exploiting vulnerabilities in location based commerce
Modelling RESTful applications – Why should I not use verbs in REST url
Scrumban - benefits of both the worlds
#Continuous delivery with #Deployit
Continuous integration using thucydides(bdd) with selenium
Battlefield agility
Fish!ing for agile teams
Xebia-Agile consulting and training offerings
Xebia e-Commerce / mCommerce Solutions
Growth at Xebia
A warm and prosperous Happy Diwali to all our clients
"We Plan to double our headcount" - MD, Xebia India
Agile 2.0 - Our Road to Mastery
Agile FAQs by Shrikant Vashishtha
Agile Team Dynamics by Bhavin Chandulal Javia
Practicing Agile in Offshore Environment by Himanshu Seth & Imran Mir

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Approach and Philosophy of On baking technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPT
Teaching material agriculture food technology
PDF
Modernizing your data center with Dell and AMD
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
DOCX
The AUB Centre for AI in Media Proposal.docx
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Per capita expenditure prediction using model stacking based on satellite ima...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
A Presentation on Artificial Intelligence
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Chapter 3 Spatial Domain Image Processing.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Approach and Philosophy of On baking technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Teaching material agriculture food technology
Modernizing your data center with Dell and AMD
Diabetes mellitus diagnosis method based random forest with bat algorithm
The AUB Centre for AI in Media Proposal.docx

Java Support On Google App Engine

  • 1. Java Applications on Google App Engine Narinder Kumar www.xebiaindia.com
  • 2. Easy to build, easy to maintain, easy to scale
  • 3. Current Web Application LifeCycle Management ➢ Prepare ➢ Deploy ➢ Scale ➢ Maintain / Monitor ➢ Upgrade Difficult and Expensive
  • 5. What is Google App Engine ➢ Yet another Cloud Computing Platform ➢ Hosts your Web Applications on Google Infrastructure ➢ Formally launched in April'08 with Python ➢ Java Support enabled in April'09
  • 6. Java on Google App Engine ➢ Platform as a Service (PaaS) ➢ Hardware, Connectivity ➢ Operating System ➢ JVM ➢ Servlet Container ➢ SDK ➢ API's for accessing Google Infrastructure Services
  • 7. Key Features ➢ No need to install or maintain your own stack ➢ Scaling on Demand ➢ Google's proven infrastructure for you ➢ Pay as you Go, Free to get started
  • 9. Typical Application Building Blocks Industry Standard APIs : JPA/JDO, JCache,JavaMail Google Specific API Interfaces Google Infrastructure
  • 10. Platform ➢ JVM 5 or later ➢ Servlet 2.5 Container, Jetty & Jasper (can change) ➢ HTTP Session ➢ JSP ➢ SandBox Environment ➢ Google Services API
  • 11. Getting Started ➢ Google Account & Mobile Phone ➢ Download and install SDK ➢ Plugin for your IDE / Command Line
  • 13. Summary ➢ SDK includes ➢ Dev AppServer ➢ Disk based version of DataStore ➢ Simulation of Google User Service ➢ Deployment ➢ https://appengine.google.com ➢ Application hosted at <app-id>.appspot.com or Custom Domain
  • 14. Configuration ➢ appengine-web.xml ➢ Application Name and Version ➢ Logger ➢ Static Files ➢ Resource Files ➢ System Properties & Environment Variables ➢ SSL ➢ Session ➢ Inbound Services
  • 15. Data Manipulation ➢ Underlying Storage is BigTable ➢ JDO or JPA or DataStore API ➢ JDO & JPA implemention by DataNucleus Access Platform ➢ jdoconfig.xml or persistence.xml ➢ datastore-indexes.xml Let's try with a simple scenario
  • 16. Data Manipulation Constraints ➢ Max 1000 rows per request ➢ Not Allowed while Using JPA ➢ Owned Many-to-many relations ➢ Join, group by, having... ➢ Only JOINED and MAPPED_SUPERCLASS during Inheritance ➢ Restrictions on Queries
  • 17. RDBMS vs DataStore RDBMS DATASTORE JPA JDO DataBase DataStore @Entity @PersistanceCapa Table Kind ble Row Entity @Id @PrimaryKey Row ID Key @GeneratedVal @Persistent Column Property ue find(...) getObjectById(...)
  • 18. Other Google Services ➢ URL Fetch ➢ Memcache ➢ User Service ➢ Mail ➢ Image ➢ XMPP
  • 19. Additional Services ➢ Cron ➢ AOP Like Interface ➢ Task Queues
  • 20. Managing & Monitoring ➢ Dashboard ➢ Reporting ➢ Manage different versions ➢ Logs
  • 21. Developer's Toolkit ➢ IDE Plugins ➢ Ant supported, Maven on the way ➢ Testing Facilities ➢ XML Validation
  • 22. Quotas & Billing ➢ Billable Quotas & Fixed Quotas ➢ Per-minute Quotas ➢ Resources ➢ Requests ➢ CPU ➢ Bandwidth (In/Out) ➢ Google Services
  • 23. Current Pricing ➢ Very Generous ➢ CPU : 6.5 hours / day, $0.10 / hour later ➢ Bandwidth In/Out : 1 GB / day, $0.10/$0.12 GB later ➢ Stored Data : 1 GB ➢ Emails : 2000/day
  • 24. How to Manage / Monitor Costs ➢ QuotaService ➢ Profiling Tool ➢ Application behaviour when Resources are finished ➢ AdminConsole
  • 25. Constraints ➢ Restricted JVM ➢ Threads ➢ File System Writes ➢ ClassLoader, JNI,... ➢ Read Only File System ➢ DataStore : Only choice for persistence ➢ Requests limited to max 30 seconds
  • 26. Limitations ➢ No Server Push ➢ Request & Response Size Max 10 MB ➢ Max Files < 3000 ➢ Max Size of Application Files < 150 MB
  • 27. Supported Languages & Frameworks ➢ Groovy & Grails ➢ JRuby on Rails (with some build and config modifications) ➢ Scala & Lift (no Scala Actors) ➢ Wicket ➢ Blaze-DS ➢ Struts,...
  • 28. Powered By Google App Engine
  • 29. Competitors ➢ SaaS / PaaS / IaaS ➢ Azure Sevices ➢ Force.com ➢ Amazon Web Service
  • 31. References & Credits ➢ Of-course Google (http://code.google.com/appengine/) ➢ Google IO 2009 Sessions ➢ Dzone RefCardz