Cargando…

Programming Google App Engine /

Google App Engine makes it easy to create a web application that can serve millions of people as easily as serving hundreds, with minimal up-front investment. With Programming Google App Engine , Google engineer Dan Sanderson provides practical guidance for designing and developing your application...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Sanderson, Dan
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Sebastopol, CA : O'Reilly, 2012.
Edición:2nd ed.
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)

MARC

LEADER 00000cam a2200000Ia 4500
001 OR_ocn816351290
003 OCoLC
005 20231017213018.0
006 m o d
007 cr cnu---unuuu
008 121107s2012 caua ob 001 0 eng d
040 |a UMI  |b eng  |e pn  |c UMI  |d N$T  |d YDXCP  |d COO  |d DEBSZ  |d TEFOD  |d OCLCO  |d FMG  |d IDEBK  |d REB  |d NLE  |d TEFOD  |d EBLCP  |d OCLCQ  |d OCLCO  |d OCLCF  |d OCLCO  |d OCLCQ  |d OCLCO  |d NRC  |d OCLCQ  |d BRL  |d CEF  |d UAB  |d UKAHL  |d CNCEN  |d OCLCQ  |d AAA  |d OCLCO  |d OCLCQ 
019 |a 856993203  |a 859894603  |a 1105764888 
020 |a 9781449359249  |q (electronic bk.) 
020 |a 1449359248  |q (electronic bk.) 
020 |a 9781449359232  |q (electronic bk.) 
020 |a 144935923X  |q (electronic bk.) 
020 |a 9781449398262 
020 |a 144939826X 
020 |z 144939826X 
024 8 |a 9781449314095 
029 1 |a AU@  |b 000050240049 
029 1 |a DEBSZ  |b 378289799 
029 1 |a NZ1  |b 14872037 
029 1 |a AU@  |b 000066233387 
029 1 |a AU@  |b 000073551307 
035 |a (OCoLC)816351290  |z (OCoLC)856993203  |z (OCoLC)859894603  |z (OCoLC)1105764888 
037 |a CL0500000173  |b Safari Books Online 
037 |a BD724C53-F757-44BE-92DE-85D538DF511F  |b OverDrive, Inc.  |n http://www.overdrive.com 
050 4 |a QA76.76.A65 
072 7 |a COM  |x 060160  |2 bisacsh 
082 0 4 |a 006.76  |2 23 
049 |a UAMI 
100 1 |a Sanderson, Dan. 
245 1 0 |a Programming Google App Engine /  |c Dan Sanderson. 
250 |a 2nd ed. 
260 |a Sebastopol, CA :  |b O'Reilly,  |c 2012. 
300 |a 1 online resource :  |b illustrations 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
347 |a text file 
588 0 |a Print version record. 
504 |a Includes bibliographical references and index. 
520 |a Google App Engine makes it easy to create a web application that can serve millions of people as easily as serving hundreds, with minimal up-front investment. With Programming Google App Engine , Google engineer Dan Sanderson provides practical guidance for designing and developing your application on Google's vast infrastructure, using App Engine's scalable services and simple development model. Through clear and concise instructions, you'll learn how to get the most out of App Engine's nearly unlimited computing power. This second edition is fully updated and expanded to cover Python 2.7 and Java 6 support, multithreading, asynchronous service APIs, and the use of frameworks such as Django 1.3 and webapp2. Understand how App Engine handles web requests and executes application code Learn about new datastore features for queries and indexes, transactions, and data modeling Create, manipulate, and serve large data files with the Blobstore Use task queues to parallelize and distribute computation across the infrastructure Employ scalable services for email, instant messaging, and communicating with web services Track resource consumption, and optimize your application for speed and cost effectiveness. 
542 |f Copyright © 2012 Dan Sanderson  |g 2012 
505 0 |a 1.Introducing Google App Engine -- The Runtime Environment -- The Static File Servers -- The Datastore -- Entities and Properties -- Queries and Indexes -- Transactions -- The Services -- Namespaces -- Google Accounts, OpenID, and OAuth -- Task Queues and Cron Jobs -- Developer Tools -- The Administration Console -- Things App Engine Doesn't Do... Yet -- Getting Started -- 2.Creating an Application -- Setting Up the SDK -- Installing the Python SDK -- Installing the Java SDK -- Developing the Application -- The User Preferences Pattern -- Developing a Python App -- Developing a Java App -- The Development Console -- Registering the Application -- The Application ID and Title -- Setting Up a Domain Name -- Google Apps and Authentication -- Uploading the Application -- Using Two-Step Verification -- Introducing the Administration Console -- 3.Configuring an Application -- The App Engine Architecture -- Configuring a Python App -- Runtime Versions -- Configuring a Java App -- Domain Names -- App IDs and Versions -- App IDs and Versions in Python -- App IDs and Versions in Java -- Multithreading -- Request Handlers -- Request Handlers in Python -- Request Handlers in Java -- Static Files and Resource Files -- Static Files in Python -- Static Files in Java -- Secure Connections -- Secure Connections in Python -- Secure Connections in Java -- Authorization with Google Accounts -- Authorization in Python -- Authorization in Java -- Environment Variables -- Inbound Services -- Custom Error Responses -- Administration Console Custom Pages -- More Python Features -- Python Libraries -- Built-in Handlers -- Includes -- Java Servlet Sessions -- 4.Request Handlers and Instances -- The Runtime Environment -- The Sandbox -- Quotas and Limits -- The Python Runtime Environment -- The Java Runtime Environment -- The Request Handler Abstraction -- Introducing Instances -- Request Scheduling and Pending Latency -- Warm-up Requests -- Resident Instances -- The Instances Console -- Instance Hours and Billing -- Instance Classes -- 5.Datastore Entities -- Entities, Keys, and Properties -- Introducing the Python Datastore API -- Introducing the Java Datastore API -- Property Values -- Strings, Text, and Blobs -- Unset Versus the Null Value -- Multivalued Properties -- Keys and Key Objects -- Using Entities -- Getting Entities Using Keys -- Inspecting Entity Objects -- Saving Entities -- Deleting Entities -- Allocating System IDs -- The Development Server and the Datastore -- 6.Datastore Queries -- Queries and Kinds -- Query Results and Keys -- GQL -- The Python Query API -- The Query Class -- GQL in Python -- Retrieving Results -- Keys-Only Queries -- The Java Query API -- Building the Query -- Fetching Results with PreparedQuery -- Keys-Only Queries in Java -- Introducing Indexes -- Automatic Indexes and Simple Queries -- All Entities of a Kind -- One Equality Filter -- Greater-Than and Less-Than Filters -- One Sort Order -- Queries on Keys -- Kindless Queries -- Custom Indexes and Complex Queries -- Multiple Sort Orders -- Filters on Multiple Properties -- Multiple Equality Filters -- Not-Equal and IN Filters -- Unset and Nonindexed Properties -- Sort Orders and Value Types -- Queries and Multivalued Properties -- A Simple Example -- MVPs in Python -- MVPs in Java -- MVPs and Equality Filters -- MVPs and Inequality Filters -- MVPs and Sort Orders -- Exploding Indexes -- Query Cursors -- Cursors in Python -- Cursors in Java -- Projection Queries -- Projection Queries in Python -- Projection Queries in Java -- Configuring Indexes -- Index Configuration for Python -- Index Configuration for Java -- 7.Datastore Transactions -- Entities and Entity Groups -- Keys, Paths, and Ancestors -- Ancestor Queries -- What Can Happen in a Transaction -- Transactional Reads -- Eventually Consistent Reads -- Transactions in Python -- Transactions in Java -- How Entities Are Updated -- How Entities Are Read -- Batch Updates -- How Indexes Are Updated -- Cross-Group Transactions -- 8.Datastore Administration -- Inspecting the Datastore -- Managing Indexes -- The Datastore Admin Panel -- Accessing Metadata from the App -- Querying Statistics -- Querying Metadata -- Index Status and Queries -- Entity Group Versions -- Remote Controls -- Setting Up the Remote API for Python -- Setting Up the Remote API for Java -- Using the Remote Shell Tool -- Using the Remote API from a Script -- 9.Data Modeling with Python -- Models and Properties -- Property Declarations -- Property Value Types -- Property Validation -- Nonindexed Properties -- Automatic Values -- List Properties -- Models and Schema Migration -- Modeling Relationships -- One-to-Many Relationships -- One-to-One Relationships -- Many-to-Many Relationships -- Model Inheritance -- Queries and PolyModels -- Creating Your Own Property Classes -- Validating Property Values -- Marshaling Value Types -- Customizing Default Values -- Accepting Arguments -- 10.The Java Persistence API -- Setting Up JPA -- Entities and Keys -- Entity Properties -- Embedded Objects -- Saving, Fetching, and Deleting Objects -- Transactions in JPA -- Queries and JPQL -- Relationships -- For More Information -- 11.The Memory Cache -- Calling Memcache from Python -- Calling Memcache from Java -- Keys and Values -- Setting Values -- Setting Values that Expire -- Adding and Replacing Values -- Getting Values -- Deleting Values -- Locking a Deleted Key -- Atomic Increment and Decrement -- Compare and Set -- Batching Calls to Memcache -- Memcache Batch Calls in Python -- Memcache Batch Calls in Java -- Memcache and the Datastore -- Handling Memcache Errors -- Memcache Administration -- Cache Statistics -- Flushing the Memcache -- 12.Large Data and the Blobstore -- Accepting User Uploads -- Web Forms and MIME Multipart Data -- Blobstore Upload Requests -- Handling Uploads in Python -- Handling Uploads in Java -- Using BlobInfo Entities -- Using BlobInfo Entities in Python -- Using BlobInfo Entities in Java -- Serving Blobstore Values -- Serving Blobstore Values in Python -- Serving Blobstore Values in Java -- Deleting Blobstore Values -- Reading Blobstore Values -- Fetching Byte Ranges -- Reading Values with Streams -- A Complete Example -- A Blobstore Example in Python -- A Blobstore Example in Java -- 13.Fetching URLs and Web Resources -- Fetching URLs in Python -- Fetching URLs in Java -- Outgoing HTTP Requests -- The URL -- The HTTP Method and Payload -- Request Headers -- HTTP Over SSL (HTTPS) -- Request and Response Sizes -- Request Deadlines -- Handling Redirects -- Response Objects -- 14.Sending and Receiving Email Messages -- Sending Email Messages -- Sending Email from the Development Server -- Sender Addresses -- Recipients -- Attachments -- Sending Email in Python -- Sending Email in Java -- Receiving Email Messages -- Receiving Email in Python -- Receiving Email in Java -- 15.Sending and Receiving Instant Messages with XMPP -- Inviting a User to Chat -- Sending Invitations in Python -- Sending Invitations in Java -- Sending Chat Messages -- Sending Chat Messages in Python -- Sending Chat Messages in Java -- Receiving Chat Messages -- Receiving Chat Messages in Python -- Receiving Chat Messages in Java -- Handling Error Messages -- Managing Presence -- Managing Subscriptions -- Managing Presence Updates -- Probing for Presence -- Checking a Google Talk User's Status -- 16.Task Queues and Scheduled Tasks -- Configuring Task Queues -- Enqueuing a Task -- Enqueuing a Task in Python -- Enqueuing a Task in Java -- Task Parameters -- Payloads -- Task Names -- Countdowns and ETAs -- Push Queues -- Task Requests -- Processing Rates and Token Buckets -- Retrying Push Tasks -- Pull Queues -- Enqueuing Tasks to Pull Queues -- Leasing and Deleting Tasks -- Retrying Pull Queue Tasks -- Transactional Task Enqueueing -- Transactional Tasks in Python -- Transactional Tasks in Java -- Task Chaining -- Task Queue Administration -- Deferring Work -- Deferring Work in Python -- Deferring Work in Java -- Scheduled Tasks -- Configuring Scheduled Tasks -- Specifying Schedules -- 17.Optimizing Service Calls -- Calling Services Asynchronously -- Asynchronous Calls in Python -- Asynchronous Calls in Java -- Visualizing Calls with AppStats -- Installing AppStats for Python -- Installing AppStats for Java -- Using the AppStats Console -- 18.The Django Web Application Framework -- Using the Bundled Django Library -- Creating a Django Project -- Hooking It Up to App Engine  
505 0 |a -- Creating a Django App -- Using Django Templates -- Using Django Forms -- The django-nonrel Project -- 19.Managing Request Logs -- Writing to the Log -- Logging in Python -- Logging in Java -- Viewing Recent Logs -- Downloading Logs -- Logs Retention -- Querying Logs from the App -- Querying Logs in Python -- Querying Logs in Java -- Flushing the Log Buffer -- 20.Deploying and Managing Applications -- Uploading an Application -- Using Versions -- Managing Service Configuration -- Application Settings -- Managing Developers -- Quotas and Billing -- Getting Help. 
590 |a O'Reilly  |b O'Reilly Online Learning: Academic/Public Library Edition 
630 0 0 |a Google Apps. 
630 0 7 |a Google Apps.  |2 fast  |0 (OCoLC)fst01783175 
650 0 |a Application software  |x Development. 
650 0 |a Web site development  |x Computer programs. 
650 6 |a Logiciels d'application  |x Développement. 
650 6 |a Sites Web  |x Développement  |x Logiciels. 
650 7 |a COMPUTERS  |x Web  |x Web Programming.  |2 bisacsh 
650 7 |a Application software  |x Development.  |2 fast  |0 (OCoLC)fst00811707 
650 7 |a Web site development  |x Computer programs.  |2 fast  |0 (OCoLC)fst01173244 
776 0 8 |i Print version:  |a Sanderson, Dan.  |t Programming Google App Engine.  |d Sebastopol, CA : O'Reilly, 2012  |z 9781449398262  |w (OCoLC)757148493 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781449314095/?ar  |z Texto completo (Requiere registro previo con correo institucional) 
938 |a Askews and Holts Library Services  |b ASKH  |n AH24420147 
938 |a Askews and Holts Library Services  |b ASKH  |n AH24420148 
938 |a ProQuest Ebook Central  |b EBLB  |n EBL1042922 
938 |a EBSCOhost  |b EBSC  |n 495832 
938 |a ProQuest MyiLibrary Digital eBook Collection  |b IDEB  |n cis28409221 
938 |a YBP Library Services  |b YANK  |n 9891988 
994 |a 92  |b IZTAP