Synopses & Reviews
As one of today's cloud computing services, Google App Engine does more than provide access to a large system of servers. It also offers you a simple model for building applications that scale automatically to accommodate millions of users. With Programming Google App Engine, you'll get expert practical guidance that will help you make the best use of this powerful platform. Google engineer Dan Sanderson shows you how to design your applications for scalability, including ways to perform common development tasks using App Engine's APIs and scalable services.
You'll learn about App Engine's application server architecture, runtime environments, and scalable datastore for distributing data, as well as techniques for optimizing your application. App Engine offers nearly unlimited computing power, and this book provides clear and concise instructions for getting the most from it right from the source.
- Discover the differences between traditional web development and development with App Engine
- Learn the details of App Engine's Python and Java runtime environments
- Understand how App Engine handles web requests and executes application code
- Learn how to use App Engine's scalable datastore, including queries and indexes, transactions, and data modeling
- Use task queues to parallelize and distribute work across the infrastructure
- Deploy and manage applications with ease
Written by a member of the Google team, this book explains how to build infinitely scalable web applications using Google App Engine and either the Python or Java runtime environment. You'll not only learn how to perform common development tasks using App Engine APIs and services, but also what types of web applications are best suited for Google's new development platform.
Programming Google App Engine introduces you to App Engine's tools, including the SDK and the Admin Console, with a simple application. You'll learn data modeling in App Engine data store, as well as schema migration, queries, and transactions. With this book, you will also:
Discover the difference between traditional web development and development with App Engine Learn details of App Engine's Python and Java runtime environments Understand how the App Engine handles web requests Get techniques for effectively using App Engine's distributed datastore Manage deployed applications and performance
Anyone building large web applications, growing a small company, or looking for a way to build infrastructure will want to explore the nearly unlimited computing power Google provides. Programming Google App Engine offers you clear and concise instruction right from the source -- it's the most authoritative book available on this exciting platform.
Written by the developers of Google App Engine, this book explains how to build web applications to take advantage of Google's immense network infrastructure. "Programming Google App Engine" teaches intermediate and advanced web developers how to build infinitely scalable applications with App Engine. Like Amazon's EC2, App Engine lets companies "rent" cloud computing resources. This book describes ways to perform common development tasks using App Engine APIs and services, and explains what kinds of web applications are best suited for App Engine and what kinds are not.
Build and Run Scalable Web Apps on Google's Infrastructure
About the Author
Dan Sanderson is a technical writer and software engineer at Google Inc. He has worked in the web industry for over 10 years as a software engineer and technical writer for Google, Amazon.com, and the Walt Disney Internet Group. He lives in Seattle, Washington. For more information about Dan, visit his website at http://www.dansanderson.com.
Table of Contents
Preface; Using This Book; Conventions Used in This Book; Using Code Samples; Safari® Books Online; How to Contact Us; Acknowledgments; Chapter 1: Introducing Google App Engine; 1.1 The Runtime Environment; 1.2 The Static File Servers; 1.3 The Datastore; 1.4 The Services; 1.5 Google Accounts; 1.6 Task Queues and Cron Jobs; 1.7 Developer Tools; 1.8 The Administration Console; 1.9 Things App Engine Doesn't Do...Yet; 1.10 Getting Started; Chapter 2: Creating an Application; 2.1 Setting Up the SDK; 2.2 Developing the Application; 2.3 Registering the Application; 2.4 Uploading the Application; 2.5 Introducing the Administration Console; Chapter 3: Handling Web Requests; 3.1 The App Engine Architecture; 3.2 Configuring the Frontend; 3.3 How the App Is Run; 3.4 Quotas and Limits; Chapter 4: Datastore Entities; 4.1 Entities, Keys, and Properties; 4.2 Introducing the Python Datastore API; 4.3 Introducing the Java Datastore API; 4.4 Property Values; 4.5 Keys and Key Objects; 4.6 Using Entities; Chapter 5: Datastore Queries; 5.1 Queries and Kinds; 5.2 Query Results and Keys; 5.3 GQL; 5.4 The Python Query API; 5.5 The Java Query API; 5.6 Introducing Indexes; 5.7 Automatic Indexes and Simple Queries; 5.8 Custom Indexes and Complex Queries; 5.9 Not-Equal and IN Filters; 5.10 Unset and Nonindexed Properties; 5.11 Sort Orders and Value Types; 5.12 Queries and Multivalued Properties; 5.13 Configuring Indexes; Chapter 6: Datastore Transactions; 6.1 Entities and Entity Groups; 6.2 What Can Happen in a Transaction; 6.3 Transactions in Python; 6.4 Transactions in Java; 6.5 How Entities Are Updated; 6.6 How Entities Are Read; 6.7 Batch Updates; 6.8 How Indexes Are Updated; Chapter 7: Data Modeling with Python; 7.1 Models and Properties; 7.2 Property Declarations; 7.3 Modeling Relationships; 7.4 Model Inheritance; 7.5 Queries and PolyModels; 7.6 Creating Your Own Property Classes; Chapter 8: The Java Persistence API; 8.1 Setting Up JPA; 8.2 Entities and Keys; 8.3 Entity Properties; 8.4 Embedded Objects; 8.5 Saving, Fetching, and Deleting Objects; 8.6 Transactions in JPA; 8.7 Queries and JPQL; 8.8 Relationships; 8.9 For More Information; Chapter 9: The Memory Cache; 9.1 The Python Memcache API; 9.2 The Java Memcache API; Chapter 10: Fetching URLs and Web Resources; 10.1 Fetching URLs in Python; 10.2 Fetching URLs in Java; 10.3 Asynchronous Requests in Python; Chapter 11: Sending and Receiving Mail and Instant Messages; 11.1 Enabling Inbound Services; 11.2 Sending Email Messages; 11.3 Receiving Email Messages; 11.4 Sending XMPP Messages; 11.5 Receiving XMPP Messages; Chapter 12: Bulk Data Operations and Remote Access; 12.1 Setting Up the Remote API for Python; 12.2 Setting Up the Remote API for Java; 12.3 Using the Bulk Loader Tool; 12.4 Using the Remote Shell Tool; 12.5 Using the Remote API from a Script; Chapter 13: Task Queues and Scheduled Tasks; 13.1 Task Queues; 13.2 Scheduled Tasks; Chapter 14: The Django Web Application Framework; 14.1 Installing Django; 14.2 Creating a Django Project; 14.3 The Request Handler Script; 14.4 The Django App Engine Helper; 14.5 Creating a Django Application; 14.6 Using App Engine Models With Django; 14.7 Using Django Unit Tests and Fixtures; 14.8 Using Django Forms; Chapter 15: Deploying and Managing Applications; 15.1 Uploading an Application; 15.2 Using Versions; 15.3 Managing Service Configuration; 15.4 Managing Indexes; 15.5 Browsing and Downloading Logs; 15.6 Inspecting the Datastore; 15.7 Application Settings; 15.8 Managing Developers; 15.9 Quotas and Billing; 15.10 Getting Help; Colophon;