SlideShare a Scribd company logo
SDK
      AppEngine ja night 9 BeerTalk2
              @tagomoris
tagomoris
                   TAGOMORI Satoshi /
                                         Twitter: @tagomoris
                              E-mail: tagomoris@gmail.com
                      Blog: http://d.hatena.ne.jp/tagomoris/

Projects:

  GAETestBase: code.google.com/p/appengine-test-helper

  simpleoauth-gae: code.google.com/p/simpleoauth-gae
SDK
• AppEngine

• Low level API   ProtocolBuffer

•

•                         ……(

•
SDK
AppEngine
• Python, Java

    •       API

        •                  RPC

    • Service

•

    • MultiQuery   batch put
MakeSyncCall
appspot   MSC


SDK
Google   Python
•

    •

    •

•

    •



•
MakeSyncCall
MakeSyncCall

                                                             MakeCall make_call

                                        9                       _MakeSyncCall


                                (7                  )
                      google.appengine.api.apiproxy_stub.ApiProxyStub
                         google.appengine.api.apiproxy_stub_map
                google.appengine.api.apiproxy_stub_map.ApiProxyStubMap
                             google.appengine.runtime.apiproxy
                 google.appengine.api.datastore_file_stub.DatastoreFileStub
           google.appengine.datastore.datastore_sqlite_stub.DatastoreSqliteStub
google.appengine.api.images.images_not_implemented_stub.ImageNotImplementedServiceStub
               google.appengine.ext.remote_api.remote_api_stub.RemoteStub
          google.appengine.ext.remote_api.remote_api_stub.RemoteDatastoreStub
•

•
ext.db



                              Taskqueue              Users                   Datastore

     ProtocolBuffer                     Memcache                UrlFetch




MakeSyncCall                                ApiProxyStubMap                ApiProxyStubMap

                             ApiProxy



DatastoreFileStub     DatastoreSqliteStub      CapabilityStub                   ServiceStub
ext.db



                              Taskqueue              Users                   Datastore

     ProtocolBuffer                     Memcache                UrlFetch




MakeSyncCall                                ApiProxyStubMap                ApiProxyStubMap

                             ApiProxy



DatastoreFileStub     DatastoreSqliteStub      CapabilityStub                   ServiceStub
Python
MakeAsyncCall



 Java
Google
• import

  import google.appengine.ext.db.*
  Model.get(...)



  from google.appengine.ext import db
  db.Model.get(...)
Google
  •

# google/appengine/api/datastore.py
def _FindTransactionFrameInStack():
      ....
_CurrenyTransactionKey = _FindTransactionFrameinstack


# google/appengine/ext/db/__init__.py
run_in_transaction = datastore.RunInTransaction
...
RunInTransaction = run_in_transaction
1. demos/guestbook/guestbook.py

2. google/appengine/ext/db/__init__.py

3. google/appengine/api/datastore.py

4. google/appengine/api/apiproxy_stub_map.py

5. google/appengine/runtime/apiproxy.py
App engine ja night 9 beertalk2

More Related Content

PDF
Ractor's speed is not light-speed
PPTX
Gobblin on-aws
PDF
PharoDAYS 2015: Pharo Status - by Markus Denker
PDF
Mobius: C# Language Binding For Spark
PDF
Kubernetes and Prometheus
PDF
Pulsarctl & Pulsar Manager
PDF
Introduction to Akka-Streams
PDF
Beyond Fault Tolerance with Actor Programming
Ractor's speed is not light-speed
Gobblin on-aws
PharoDAYS 2015: Pharo Status - by Markus Denker
Mobius: C# Language Binding For Spark
Kubernetes and Prometheus
Pulsarctl & Pulsar Manager
Introduction to Akka-Streams
Beyond Fault Tolerance with Actor Programming

What's hot (20)

PDF
Pharo Status ESUG 2014
PPTX
How fluentd fits into the modern software landscape
PDF
Flink Forward San Francisco 2018: Steven Wu - "Scaling Flink in Cloud"
PDF
Reflection in Pharo5
PDF
Apache Camel in the belly of the Docker whale
PDF
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
PDF
Flink Forward Berlin 2017: Patrick Lucas - Flink in Containerland
PPTX
Apache development with GitHub and Travis CI
PPTX
Serverless and Servicefull Applications - Where Microservices complements Ser...
PDF
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
PDF
Scalable Spark deployment using Kubernetes
PDF
The Kubernetes Operator Pattern - ContainerConf Nov 2017
PDF
Fluentd - Flexible, Stable, Scalable
PDF
kubernetes 101
PDF
Monitoring a Kubernetes-backed microservice architecture with Prometheus
PDF
Deep Dive Into Kafka Streams (and the Distributed Stream Processing Engine) (...
PPTX
Auto-Generating Language-Specific Wrappers for Rust Libraries
KEY
Celery
PDF
NetflixOSS Open House Lightning talks
PDF
[Spark Summit 2017 NA] Apache Spark on Kubernetes
Pharo Status ESUG 2014
How fluentd fits into the modern software landscape
Flink Forward San Francisco 2018: Steven Wu - "Scaling Flink in Cloud"
Reflection in Pharo5
Apache Camel in the belly of the Docker whale
Monitoring, the Prometheus Way - Julius Voltz, Prometheus
Flink Forward Berlin 2017: Patrick Lucas - Flink in Containerland
Apache development with GitHub and Travis CI
Serverless and Servicefull Applications - Where Microservices complements Ser...
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Scalable Spark deployment using Kubernetes
The Kubernetes Operator Pattern - ContainerConf Nov 2017
Fluentd - Flexible, Stable, Scalable
kubernetes 101
Monitoring a Kubernetes-backed microservice architecture with Prometheus
Deep Dive Into Kafka Streams (and the Distributed Stream Processing Engine) (...
Auto-Generating Language-Specific Wrappers for Rust Libraries
Celery
NetflixOSS Open House Lightning talks
[Spark Summit 2017 NA] Apache Spark on Kubernetes
Ad

Similar to App engine ja night 9 beertalk2 (20)

PDF
Bpstudy20101221
KEY
PyCon AU 2012 - Debugging Live Python Web Applications
KEY
Django deployment with PaaS
PDF
Testing Your Application On Google App Engine
PDF
Testing your application on Google App Engine
KEY
GAE_20100112
PDF
Firebase analytics event_201607
PDF
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
PDF
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
PPTX
Googleappengineintro 110410190620-phpapp01
PDF
Deploy a PHP App on Google App Engine
PDF
Launch Arguments & NSUserDefaults by Franck Lefebvre
PDF
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
PPTX
Google Cloud Platform
PDF
Google App Engine for Java v0.0.2
PDF
Google I/O 2021 Recap
PDF
Google app-engine-with-python
PDF
Heroku pycon
PDF
WebNet Conference 2012 - Designing complex applications using html5 and knock...
PDF
Play Framework on Google App Engine
Bpstudy20101221
PyCon AU 2012 - Debugging Live Python Web Applications
Django deployment with PaaS
Testing Your Application On Google App Engine
Testing your application on Google App Engine
GAE_20100112
Firebase analytics event_201607
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Backend, app e internet das coisas com NodeJS no Google Cloud Platform
Googleappengineintro 110410190620-phpapp01
Deploy a PHP App on Google App Engine
Launch Arguments & NSUserDefaults by Franck Lefebvre
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
Google Cloud Platform
Google App Engine for Java v0.0.2
Google I/O 2021 Recap
Google app-engine-with-python
Heroku pycon
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Play Framework on Google App Engine
Ad

More from SATOSHI TAGOMORI (20)

PDF
Good Things and Hard Things of SaaS Development/Operations
PDF
Maccro Strikes Back
PDF
Invitation to the dark side of Ruby
PDF
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
PDF
Make Your Ruby Script Confusing
PDF
Hijacking Ruby Syntax in Ruby
PDF
Lock, Concurrency and Throughput of Exclusive Operations
PDF
Data Processing and Ruby in the World
PDF
Planet-scale Data Ingestion Pipeline: Bigdam
PDF
Technologies, Data Analytics Service and Enterprise Business
PDF
Ruby and Distributed Storage Systems
PDF
Perfect Norikra 2nd Season
PDF
Fluentd 101
PDF
To Have Own Data Analytics Platform, Or NOT To
PDF
The Patterns of Distributed Logging and Containers
PDF
How To Write Middleware In Ruby
PDF
Modern Black Mages Fighting in the Real World
PDF
Open Source Software, Distributed Systems, Database as a Cloud Service
PDF
Fluentd Overview, Now and Then
PDF
How to Make Norikra Perfect
Good Things and Hard Things of SaaS Development/Operations
Maccro Strikes Back
Invitation to the dark side of Ruby
Hijacking Ruby Syntax in Ruby (RubyConf 2018)
Make Your Ruby Script Confusing
Hijacking Ruby Syntax in Ruby
Lock, Concurrency and Throughput of Exclusive Operations
Data Processing and Ruby in the World
Planet-scale Data Ingestion Pipeline: Bigdam
Technologies, Data Analytics Service and Enterprise Business
Ruby and Distributed Storage Systems
Perfect Norikra 2nd Season
Fluentd 101
To Have Own Data Analytics Platform, Or NOT To
The Patterns of Distributed Logging and Containers
How To Write Middleware In Ruby
Modern Black Mages Fighting in the Real World
Open Source Software, Distributed Systems, Database as a Cloud Service
Fluentd Overview, Now and Then
How to Make Norikra Perfect

Recently uploaded (20)

PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
A Presentation on Artificial Intelligence
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Hindi spoken digit analysis for native and non-native speakers
Group 1 Presentation -Planning and Decision Making .pptx
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Programs and apps: productivity, graphics, security and other tools
Accuracy of neural networks in brain wave diagnosis of schizophrenia
cloud_computing_Infrastucture_as_cloud_p
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
OMC Textile Division Presentation 2021.pptx
Tartificialntelligence_presentation.pptx
Encapsulation theory and applications.pdf
A Presentation on Artificial Intelligence
Chapter 5: Probability Theory and Statistics
Enhancing emotion recognition model for a student engagement use case through...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf

App engine ja night 9 beertalk2

  • 1. SDK AppEngine ja night 9 BeerTalk2 @tagomoris
  • 2. tagomoris TAGOMORI Satoshi / Twitter: @tagomoris E-mail: tagomoris@gmail.com Blog: http://d.hatena.ne.jp/tagomoris/ Projects: GAETestBase: code.google.com/p/appengine-test-helper simpleoauth-gae: code.google.com/p/simpleoauth-gae
  • 3. SDK • AppEngine • Low level API ProtocolBuffer • • ……( •
  • 4. SDK
  • 5. AppEngine • Python, Java • API • RPC • Service • • MultiQuery batch put
  • 7. appspot MSC SDK
  • 8. Google Python • • • • • •
  • 10. MakeSyncCall MakeCall make_call 9 _MakeSyncCall (7 ) google.appengine.api.apiproxy_stub.ApiProxyStub google.appengine.api.apiproxy_stub_map google.appengine.api.apiproxy_stub_map.ApiProxyStubMap google.appengine.runtime.apiproxy google.appengine.api.datastore_file_stub.DatastoreFileStub google.appengine.datastore.datastore_sqlite_stub.DatastoreSqliteStub google.appengine.api.images.images_not_implemented_stub.ImageNotImplementedServiceStub google.appengine.ext.remote_api.remote_api_stub.RemoteStub google.appengine.ext.remote_api.remote_api_stub.RemoteDatastoreStub
  • 12. ext.db Taskqueue Users Datastore ProtocolBuffer Memcache UrlFetch MakeSyncCall ApiProxyStubMap ApiProxyStubMap ApiProxy DatastoreFileStub DatastoreSqliteStub CapabilityStub ServiceStub
  • 13. ext.db Taskqueue Users Datastore ProtocolBuffer Memcache UrlFetch MakeSyncCall ApiProxyStubMap ApiProxyStubMap ApiProxy DatastoreFileStub DatastoreSqliteStub CapabilityStub ServiceStub
  • 15. Google • import import google.appengine.ext.db.* Model.get(...) from google.appengine.ext import db db.Model.get(...)
  • 16. Google • # google/appengine/api/datastore.py def _FindTransactionFrameInStack(): .... _CurrenyTransactionKey = _FindTransactionFrameinstack # google/appengine/ext/db/__init__.py run_in_transaction = datastore.RunInTransaction ... RunInTransaction = run_in_transaction
  • 17. 1. demos/guestbook/guestbook.py 2. google/appengine/ext/db/__init__.py 3. google/appengine/api/datastore.py 4. google/appengine/api/apiproxy_stub_map.py 5. google/appengine/runtime/apiproxy.py