• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Google App Engine
 

Google App Engine

on

  • 2,330 views

 

Statistics

Views

Total Views
2,330
Views on SlideShare
2,302
Embed Views
28

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 28

http://www.tikalk.com 15
http://www.slideshare.net 12
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Google App Engine Google App Engine Presentation Transcript

    • Google AppEngine for Java enterprise applications Andrew Skiba Tikal
    • Introduction
      • You have a typical Java web application
        • JSP and Servlets frontend
        • Hibernate, JPA or JDBC backend
        • Spring configuration
      • Created long before it was known about AppEngine
      • What it takes to deploy to Google servers?
    • Welcome to Pet Clinic
    • App Engine for Java
      • Data storage
      • Web application support
      • Other services
      • JVM programming languages
      • Development tools
      • Production tools
    • It's not the same Java
      • Not full JRE support
        • No file system access
        • No sockets
        • No process or thread creation
        • No graphics
        • No JDBC
      • Most of JavaEE features are not supported
        • No EJB, JCA, JMS, JNDI
      • Sun's COSO Simon Ph ipps slams App Engine's Java Support
    • Datastore
      • Interface to BigTable
      • Motivation
        • Google web indexing, Google Earth, Google Finance
        • Big data with complicated structure
        • Serialize?
          • RDBMS don't like BLOBs
        • BigTable!
          • "sparse, distributed, persistent multi-dimensional sorted map"
          • Very different from RDBMS – no JOINs, no aggregations
    • Datastore APIs
      • Low level API
        • Exposes all features of Datastore
        • Google proprietary
        • Easy to use for new project
      • JPA
        • With some limitations
        • Needs class "enhancement" build step
      • JDO
        • Will Google resurrect this spec?
    • Web application on AppEngine
      • Servlets are supported
        • Servlet filters are supported
        • Response time outs
        • Streaming responses are limited
      • JSP, JSTL, tag libraries are supported
      • Good old web.xml (with limitations)
      • HTTPS is supported
      • Security constraints supported with serious limitations
    • Google Web Toolkit
      • Develop a desktop application (Swing-like API)
      • Debug a desktop application
      • Deploy an AJAX web application
      • Fully supported on AppEngine
    • More services
      • Memcache
        • JCache (javax.cache)
        • Low-level API
      • Mail
        • java.mail
        • Low-level API
      • URL fetch
        • java.net
        • Low-level API
    • ... and more services
      • Google Authentication
        • Only google accounts
        • Very limited access control
          • Admin
          • Registered user
          • Anonymous
      • Scheduled tasks
        • cron.xml
        • Handled by servlets
    • ... and even more services
      • Image API
        • Resize, crop, "I feel lucky"
        • Is necessary because Java 2D is not supported
      • XMPP API
      • Task Queue API
        • experimental
    • Other programming languages
        Supported
      • JRuby
      • Scala
      • Jython (finally: Python on AppEngine :-)
      • Groovy
        • Grails support for Datastore
      • Rhino (JavaScript)
        Supported
      • Quercus (PHP)
      • BeanShell
      • CAL
    • Development tools
      • Eclipse plugin
        • Create projects
        • Debug locally
        • Validate
        • Deploy
      • Development server
        • Implements or simulates all services
      • GWT runner
    • Development tools
      • SDK
        • CLI tools for Windows and *nix
        • Libraries
      • Unit testing
        • Supported, with some overhead
      • Ant tasks
        • Enhancing JDO and JPA classes
        • Run development server
        • Deploy
    • Dashboard
      • Main
        • Dashboard
        • Quota Details
        • Logs
        • Cron Jobs
        • Task Queues
      • Datastore
        • Indexes
        • Data Viewer
    • Dashboard
      • Administration
        • Application Settings
        • Developers
        • Versions
        • Admin Logs
      • Billing
        • Billing Settings
        • Billing History
    • Porting PetClinic to AppEngine
    • Porting PetClinic to AppEngine
      • Removed Hibernate, JDBC, TopLink and JPA code
      • Implemented DAL using low level DataStore API
        • Reminds writing JDBC code
        • Java DataStore API much less effective than Python one
        • Surprisingly works from the first shot
      • Removed AspectJ code
        • Could be rewritten using AOP alliance API
      • Removed Log4j file appenders
    • Considerations
      • Porting costs
      • Not full Java spec support
      • Response timeouts
      • Authentication only by Google accounts
      • Limited background jobs
      • Very different database
      • Backup
      • No guarantee on availability
        • On July 2, 2009 AppEngine was down for 6 hours
      • Billing
      • Vendor lock in
        • Proprietary APIs
        • Unusual database
    • Links
      • Google AppEngine community
      • http://code.google.com/appengine/community.html
      • Project demos
      • http://code.google.com/p/googleappengine/source/browse/#svn/trunk/java/demos
      • Will it play in AppEngine?
      • http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine
      • JRE white list
      • http://code.google.com/appengine/docs/java/jrewhitelist.html
      • BigTable white paper
      • http://labs.google.com/papers/bigtable-osdi06.pdf
    • Questions?