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 de
Essential App Engine: Building High-Performance Java Apps with Google App Engine
β Scribed by Adriaan De Jonge
- Publisher
- Addison-Wesley Professional
- Year
- 2011
- Tongue
- English
- Leaves
- 343
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
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 performanceUnderstanding the anatomy of a Google App Engine applicationMaking the right technical setup and design choices for each new applicationEfficiently modeling data for App Engineβs NoSQL data storageRecognizing when to avoid OR-mapping and pass datastore entities directly to HTML templatesFinding alternatives to frameworks and libraries that impair App Engine performanceUsing JavaScript and AJAX on the client side of your cloud applicationsImproving browser performance and reducing resource consumption via better use of HTML5 and CSS3Taking advantage of key App Engine APIs: datastore, blobstore, mail, task scheduling, memory caching, URL retrieval, and messagingSecuring cloud-based Web applications with Google Accounts, OpenID, and OAuthImproving your cloud development, quality assurance, and deployment processesTargeting, marketing, and selling cloud solutions, from planning to payment handling
β¦ Table of Contents
Contents......Page 10
Introduction......Page 20
Acknowledgments......Page 28
About the Author......Page 30
I: An App Engine Overview......Page 32
Working with Eclipse Tools......Page 34
Deploying from the Command Line......Page 45
Summary......Page 47
Performing in the Cloud......Page 48
Measuring the Cost of Class Loading......Page 49
Avoiding Cold Startups......Page 55
Improving Performance in General......Page 56
Summary......Page 58
II: Application Design Essentials......Page 60
Uploading Files for Dynamic Deployment......Page 62
Setting Up the Directory Structure......Page 64
Configuring the Administration Panel......Page 72
Summary......Page 75
Moving Away from Relational Storage......Page 76
Modeling Data......Page 78
Working with Data......Page 83
Summary......Page 86
Gathering Requirements......Page 88
Choosing a Toolkit......Page 89
Making Design Choices......Page 92
Summary......Page 96
III: User Interface Design Essentials......Page 98
Introducing HTML5......Page 100
Using Basic HTML5 Elements......Page 101
Drawing Images Using the Canvas......Page 103
Dragging and Dropping Items into Pages......Page 105
Improving Form Elements......Page 107
Detecting a Userβs Geolocation......Page 108
Storing Data on the Client Side......Page 109
Summary......Page 114
Selecting Elements Using CSS3......Page 116
Using New Graphical Effects in CSS3......Page 123
Summary......Page 129
Setting Up a Simplistic Example......Page 130
Cleaning Up HTML Using Unobtrusive JavaScript......Page 133
Reducing JavaScript Dependence by Progressively Enhancing the HTML......Page 137
Optimizing Performance Using Event Delegation......Page 140
Avoiding Global Variables......Page 141
Summary......Page 143
Using Classic AJAX without Frameworks......Page 144
Using Google App Engineβs Channel API......Page 151
Summary......Page 156
IV: Using Common App Engine APIs......Page 158
Processing Data Synchronously......Page 160
Processing Data Asynchronously......Page 167
Setting Up Transactions......Page 172
Using Multitenancy to Introduce Namespaces......Page 175
Storing and Retrieving Large Files......Page 177
Uploading Bulk Data Using the Remote API......Page 182
Summary......Page 184
Sending Confirmation E-Mails with HTML and Attachments......Page 186
Receiving E-Mail......Page 192
Considering Performance and Quota......Page 198
Summary......Page 200
Task Queuing......Page 202
Scheduling Tasks Using Cron......Page 211
Reading HTTP Headers......Page 213
Summary......Page 216
Reading and Writing Images......Page 218
Performing Simple Manipulations......Page 226
Performing Advanced Manipulations......Page 229
Summary......Page 232
Using the Cache API for Basic Purposes......Page 234
Implementing a Caching Strategy......Page 237
Working with Fine-Grained Cache......Page 240
Maintaining a Cache......Page 241
Using Other Cache Utility Methods......Page 244
Summary......Page 245
Reading URLs Using GET Requests......Page 246
Reading Results......Page 249
Adding Options to URL Fetch......Page 250
Posting Form Data......Page 254
Fetching URLs Asynchronously......Page 255
Considering Security......Page 257
Summary......Page 258
Authenticating Users with Google Accounts......Page 260
Authenticating Users with OpenID......Page 263
Providing Access to Third Parties Using OAuth......Page 266
Securing URLs in web.xml......Page 268
Security Considerations......Page 270
Summary......Page 271
Sending Messages Using XMPP......Page 272
Receiving Messages Using XMPP......Page 275
Receiving Subscriptions......Page 277
Receiving Presence......Page 280
Summary......Page 282
V: Application Deployment......Page 284
Optimizing the Development Process for the Internet......Page 286
Reducing Overhead......Page 287
Improving Functionality......Page 289
Measuring Quality......Page 291
Optimizing Developer Productivity......Page 292
Summary......Page 293
Testing on a Production Environment......Page 294
Checking Availability with the Capabilities API......Page 296
Logging Unexpected Behavior......Page 300
Profiling Continuously on Production......Page 302
Measuring User Response to Your Interface......Page 304
Summary......Page 306
Knowing Your Audience......Page 308
Reaching Your Audience......Page 309
Handling the Payment Process......Page 317
Summary......Page 318
A......Page 320
B......Page 322
C......Page 323
D......Page 324
E......Page 326
F......Page 327
G......Page 328
I......Page 329
J......Page 330
L......Page 331
M......Page 332
P......Page 333
Q......Page 334
S......Page 335
T......Page 338
W......Page 339
X......Page 340
Y......Page 341
π SIMILAR VOLUMES
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 de
<p>This practical guide shows intermediate and advanced web and mobile app developers how to build highly scalable Java applications in the cloud with Google App Engine. The flagship of Google's Cloud Platform, App Engine hosts your app on infrastructure that grows automatically with your traffic, m
Google App Engine is one of the key technologies to emerge in recent years to help you build scalable web applications even if you have limited previous experience. If you are a Java programmer, this book offers you a Java approach to beginning Google App Engine. You will explore the runtime environ
I'm disappointed in the lack of effort the authors did in compiling this book. They do seem to know the material, but the examples are largely just pages and pages of code that are not very well explained, and not very well tailored for a learning environment. For example, I consider Google's onli
<p><p>Google App Engine is one of the key technologies to emerge in recent years to help you build scalable web applications even if you have limited previous experience. If you are a Java programmer, this book offers you a Java approach to beginning Google App Engine. You will explore the runtime e