Absolutely Australia's Lowest Prices

Shop over 1.5 Million Toys in our Huge New Range

Essential App Engine

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
Product Details

Table of Contents

Introduction xix Acknowledgments xxviiAbout the Author xxix Part I: An App Engine Overview 1 Chapter 1: Setting Up a Development Environment 3Working with Eclipse Tools 3Deploying from the Command Line 14Summary 16 Chapter 2: Improving App Engine Performance 17Performing in the Cloud 17Measuring the Cost of Class Loading 18Avoiding Cold Startups 24Improving Performance in General 25Summary 27 Part II: Application Design Essentials 29 Chapter 3: Understanding the Anatomy of a Google App Engine Application 31Uploading Files for Dynamic Deployment 31Setting Up the Directory Structure 33Configuring the Administration Panel 41Summary 44 Chapter 4: Data Modeling for the Google App Engine Datastore 45Moving Away from Relational Storage 45Modeling Data 47Working with Data 52Summary 55 Chapter 5: Designing Your Application 57Gathering Requirements 57Choosing a Toolkit 58Making Design Choices 61Summary 65 Part III: User Interface Design Essentials 67 Chapter 6: Presenting the User Interface with HTML5 69Introducing HTML5 69Using Basic HTML5 Elements 70Drawing Images Using the Canvas 72Dragging and Dropping Items into Pages 74Improving Form Elements 76Detecting a User's Geolocation 77Storing Data on the Client Side 78Summary 83 Chapter 7: Fine-Tuning the Layout Using CSS3 85Selecting Elements Using CSS3 85Using New Graphical Effects in CSS3 92Summary 98 Chapter 8: Adding Static Interactions Using JavaScript 99Setting Up a Simplistic Example 99Cleaning Up HTML Using Unobtrusive JavaScript 102Reducing JavaScript Dependence by Progressively Enhancing the HTML 106Optimizing Performance Using Event Delegation 109Avoiding Global Variables 110Summary 112 Chapter 9: Adding Dynamic Interactions Using AJAX 113Using Classic AJAX without Frameworks 113Using Google App Engine's Channel API 120Summary 125 Part IV: Using Common App Engine APIs 127 Chapter 10: Storing Data in the Datastore and Blobstore 129Processing Data Synchronously 129Processing Data Asynchronously 136Setting Up Transactions 141Using Multitenancy to Introduce Namespaces 144Storing and Retrieving Large Files 146Uploading Bulk Data Using the Remote API 151Summary 153 Chapter 11: Sending and Receiving E-Mail 155Sending Confirmation E-Mails with HTML and Attachments 155Receiving E-Mail 161Considering Performance and Quota 167Summary 169 Chapter 12: Running Background Work with the Task Queue API and Cron 171Task Queuing 171Scheduling Tasks Using Cron 180Reading HTTP Headers 182Summary 185 Chapter 13: Manipulating Images with the App Engine Image Service 187Minimizing the Use of the Image API 187Reading and Writing Images 187Performing Simple Manipulations 195Performing Advanced Manipulations 198Summary 201 Chapter 14: Optimizing Performance Using the Memory Cache 203Using the Cache API for Basic Purposes 203Implementing a Caching Strategy 206Working with Fine-Grained Cache 209Maintaining a Cache 210Using Other Cache Utility Methods 213Using JSR 107 as an Alternative API 214Summary 214 Chapter 15: Retrieving External Data Using URL Fetch 215Reading URLs Using GET Requests 215Reading Results 218Adding Options to URL Fetch 219Posting Form Data 223Fetching URLs Asynchronously 224Consuming Web Services 226Considering Security 226Summary 227 Chapter 16: Securing a Web Application Using Google Accounts, OpenID, and OAuth 229Authenticating Users with Google Accounts 229Authenticating Users with OpenID 232Providing Access to Third Parties Using OAuth 235Securing URLs in web.xml 237Security Considerations 239Summary 240 Chapter 17: Sending and Receiving Messages Using XMPP 241Sending Messages Using XMPP 241Receiving Messages Using XMPP 244Receiving Subscriptions 246Receiving Presence 249Summary 251 Part V: Application Deployment 253 Chapter 18: Improving the Development Process 255Optimizing the Development Process for the Internet 255Thinking Like a Project Manager 256Reducing Overhead 256Improving Functionality 258Measuring Quality 260Optimizing Developer Productivity 261Summary 262 Chapter 19: Assuring Quality Using Measuring Tools 263Testing on a Production Environment 263Thinking Differently about Usability 265Checking Availability with the Capabilities API 265Logging Unexpected Behavior 269Profiling Continuously on Production 271Measuring User Response to Your Interface 273Summary 275 Chapter 20: Selling Your Application 277Determining How to Approach Sales 277Knowing Your Audience 277Reaching Your Audience 278Converting Prospects into Paying Customers 286Handling the Payment Process 286Summary 287 Index 289

About the Author

Adriaan de Jonge is an architect and online software development specialist at ANWB, the Dutch association for tourism, traffic, and roadside assistance. There, he works on Internet projects including developing sites that offer car and traffic information and sites that sell products, insurance, and vacations. De Jonge has worked in multiple roles, ranging from researcher and consultant to software architect, and has written several articles for IBM developerWorks on new Java, XML, Web, and content management technologies. He holds a degree in informatics and economics from Erasmus University in Rotterdam.


"An excellent book, filled with solid advice to write quality applications with Google App Engine." -Romin Irani, Director, Mind Storm Software

Look for similar items by category
People also searched for
How Fishpond Works
Fishpond works with suppliers all over the world to bring you a huge selection of products, really great prices, and delivery included on over 25 million products that we sell. We do our best every day to make Fishpond an awesome place for customers to shop and get what they want — all at the best prices online.
Webmasters, Bloggers & Website Owners
You can earn a 5% commission by selling Essential App Engine: Building High-Performance Java Apps with Google App Engine on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!
Authors / Publishers
Are you the Author or Publisher of a book? Or the manufacturer of one of the millions of products that we sell. You can improve sales and grow your revenue by submitting additional information on this title. The better the information we have about a product, the more we will sell!
Item ships from and is sold by Fishpond World Ltd.
Back to top