Home > Store

Essential App Engine: Building High-Performance Java Apps with Google App Engine, Rough Cuts

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Description

  • Copyright 2011
  • Dimensions: 7" x 9"
  • Pages: 400
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-13-248478-1
  • ISBN-13: 978-0-13-248478-7

This is the Rough Cut version of the printed book.

In Essential App Engine, Adriaan de Jonge shows Java developers how to rapidly build complex, productionquality, performance-driven cloud applications with Google App Engine. Using a start-to-finish case study and extensive Java example code, De Jonge covers the entire lifecycle, from application design and data modeling through security, testing, and deployment.

De Jonge introduces breakthrough techniques for creating applications that respond within two seconds, even on cold startup, and allow server responses in hundreds of milliseconds or less throughout the rest of the session. He also demonstrates how to avoid common mistakes that can dramatically reduce cloud application performance and scalability. He thoroughly covers state-of-the-art user interface development and shows how to make the most of Google App Engine’s extensive set of APIs. Coverage includes

  • Setting up a development environment that makes it easy to continually address performance
  • Understanding the anatomy of a Google App Engine application
  • Making the right technical setup and design choices for each new application
  • Efficiently modeling data for App Engine’s NoSQL data storage
  • Recognizing when to avoid OR-mapping and pass datastore entities directly to HTML templates
  • Finding alternatives to frameworks and libraries that impair App Engine performance
  • Using JavaScript and AJAX on the client side of your cloud applications
  • Improving browser performance and reducing resource consumption via better use of HTML5 and CSS3
  • Taking advantage of key App Engine APIs: datastore, blobstore, mail, task scheduling, memory caching, URL retrieval, and messaging
  • Securing cloud-based Web applications with Google Accounts, OpenID, and OAuth
  • Improving your cloud development, quality assurance, and deployment processes
  • Targeting, marketing, and selling cloud solutions, from planning to payment handling

Sample Content

Table of Contents

Introduction xix

Acknowledgments xxvii

About the Author xxix

Part I: An App Engine Overview 1

Chapter 1: Setting Up a Development Environment 3

Working with Eclipse Tools 3

Deploying from the Command Line 14

Summary 16

Chapter 2: Improving App Engine Performance 17

Performing in the Cloud 17

Measuring the Cost of Class Loading 18

Avoiding Cold Startups 24

Improving Performance in General 25

Summary 27

Part II: Application Design Essentials 29

Chapter 3: Understanding the Anatomy of a Google App Engine Application 31

Uploading Files for Dynamic Deployment 31

Setting Up the Directory Structure 33

Configuring the Administration Panel 41

Summary 44

Chapter 4: Data Modeling for the Google App Engine Datastore 45

Moving Away from Relational Storage 45

Modeling Data 47

Working with Data 52

Summary 55

Chapter 5: Designing Your Application 57

Gathering Requirements 57

Choosing a Toolkit 58

Making Design Choices 61

Summary 65

Part III: User Interface Design Essentials 67

Chapter 6: Presenting the User Interface with HTML5 69

Introducing HTML5 69

Using Basic HTML5 Elements 70

Drawing Images Using the Canvas 72

Dragging and Dropping Items into Pages 74

Improving Form Elements 76

Detecting a User’s Geolocation 77

Storing Data on the Client Side 78

Summary 83

Chapter 7: Fine-Tuning the Layout Using CSS3 85

Selecting Elements Using CSS3 85

Using New Graphical Effects in CSS3 92

Summary 98

Chapter 8: Adding Static Interactions Using JavaScript 99

Setting Up a Simplistic Example 99

Cleaning Up HTML Using Unobtrusive JavaScript 102

Reducing JavaScript Dependence by Progressively Enhancing the HTML 106

Optimizing Performance Using Event Delegation 109

Avoiding Global Variables 110

Summary 112

Chapter 9: Adding Dynamic Interactions Using AJAX 113

Using Classic AJAX without Frameworks 113

Using Google App Engine’s Channel API 120

Summary 125

Part IV: Using Common App Engine API

Updates

Submit Errata

More Information