Automating Business                         with Google APIs                              David HodgeThursday, March 7, 13
Thursday, March 7, 13
Thursday, March 7, 13
Thursday, March 7, 13
Thursday, March 7, 13
Dave & Bediako                        We automate business processes                          using cloud computing and   ...
IAAS and PAAS                        - Amazon, Google, Microsoft                        - DevOps, NoOps, OOPs             ...
Google Docs Drive                        • Google Docs API deprecated                        • Google Drive Polyglot API -...
Google Spreadsheets                                 API                        • Spreadsheets, Worksheets, List Row, Cell ...
Google Spreadsheets                                 API                        • Gotchas                        • Queries ...
Google Apps Scripts                        • Javascript cloud scripting language                        • Automate workflow...
Google App EngineThursday, March 7, 13
Google App Engine        BackendsThursday, March 7, 13
Google App Engine        Backends          Storing           DataThursday, March 7, 13
Google App Engine        Backends               Blobstore          Storing           DataThursday, March 7, 13
Google App Engine                              App        Backends                       Blobstore                        ...
Google App Engine                                                   Google                              App               ...
Google App Engine                                                      Google                              App            ...
Google App Engine                                                      Google                              App            ...
Google App Engine                                                       Google                              App           ...
Google App Engine                                                       Google                              App           ...
Google App Engine                                                       Google                              App           ...
Google App Engine                                                       Google                              App           ...
Google App Engine                                                       Google                              App           ...
Google App Engine                                                          Google                              App        ...
Google App Engine                                                          Google                              App        ...
Google App Engine                                                          Google                              App        ...
Google App Engine                                                          Google                              App        ...
Google App Engine                                                          Google                              App        ...
Google App Engine                                                          Google                              App        ...
Google App Engine                                                          Google                              App        ...
One does not simply                 Automate using Google                         APIsThursday, March 7, 13
How we build software                        A Customer                        has a nick name                        has ...
Current processes manual   and paper based for recording   line items for accounts   receivable and accounts   payable.Thu...
Customer Widgets                          SpreadsheetsThursday, March 7, 13
Widget Maker                        SpreadsheetsThursday, March 7, 13
Evolution One - Cron                          <?xml version="1.0" encoding="UTF-8"?>                          <cronentries...
Evolution Two -                                 Backends                        • Use Backends to process long lived      ...
Evolution Two -                                 Backends                        • Dynamic vs Resident - Dynamic Backends  ...
Evolution Two -                                     Backends                                                   <?xml versi...
Task Queues work discretely on a                        unit of work                        Push - processes tasks based o...
Task Push Config                         <queue-entries>                           <queue>                             <nam...
Task Queue Headers                • X-AppEngine-QueueName, the name of the queue (possibly default)                • X-App...
Task Push Queues           import com.google.appengine.api.taskqueue.Queue;           import com.google.appengine.api.task...
Automation Achieved                                              Google                         Receivable Line    Spreads...
Experiment                         Evolve                          ArchitectureThursday, March 7, 13
Support                        • Google Plus Hangouts                        • Google Forums                        • Fell...
Some More Tips                        • Python: Bulk Loader Tool to download/                          upload data - good ...
“Using no way as a way, having no limitation as limitation.”              - Bruce LeeThursday, March 7, 13
Official White House Photo by Pete SouzaThursday, March 7, 13
David Hodge                        @davezen1Thursday, March 7, 13
Upcoming SlideShare
Loading in …5
×

Business Process Automation with Google App Engine and Google Data APIs

1,260
-1

Published on

Google App Engine provides a cloud computing platform for running scalable web applications and provides many APIs to help orchestrate business processes. Google Data APIs provides several ways to interact with Google's services. This talk will explore ways to automate business processes using Google App Engine specific APIs such as Task Queues and Backends coupled with Google Data APIs, specifically Google Docs and Google Spreadsheets.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,260
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Business Process Automation with Google App Engine and Google Data APIs

  1. 1. Automating Business with Google APIs David HodgeThursday, March 7, 13
  2. 2. Thursday, March 7, 13
  3. 3. Thursday, March 7, 13
  4. 4. Thursday, March 7, 13
  5. 5. Thursday, March 7, 13
  6. 6. Dave & Bediako We automate business processes using cloud computing and machine learning.Thursday, March 7, 13
  7. 7. IAAS and PAAS - Amazon, Google, Microsoft - DevOps, NoOps, OOPs - Beware single point of failure - read SLAsThursday, March 7, 13
  8. 8. Google Docs Drive • Google Docs API deprecated • Google Drive Polyglot API - .NET, Java, Dart, Go, GWT, Java, Javascript, Objective- C, PHP, Python, Ruby • ReSTful API - create and manage documentsThursday, March 7, 13
  9. 9. Google Spreadsheets API • Spreadsheets, Worksheets, List Row, Cell • Create, Delete, Share • List Based Feeds vs Cell Based Feeds • Updating multiple cells with BatchThursday, March 7, 13
  10. 10. Google Spreadsheets API • Gotchas • Queries - age > 25 and height < 175Thursday, March 7, 13
  11. 11. Google Apps Scripts • Javascript cloud scripting language • Automate workflows • Customize spreadsheets • Schedule Tasks • Save data using Spreadsheets, JDBC, ScriptDBThursday, March 7, 13
  12. 12. Google App EngineThursday, March 7, 13
  13. 13. Google App Engine BackendsThursday, March 7, 13
  14. 14. Google App Engine Backends Storing DataThursday, March 7, 13
  15. 15. Google App Engine Backends Blobstore Storing DataThursday, March 7, 13
  16. 16. Google App Engine App Backends Blobstore Identity Storing DataThursday, March 7, 13
  17. 17. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing DataThursday, March 7, 13
  18. 18. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities DataThursday, March 7, 13
  19. 19. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel DataThursday, March 7, 13
  20. 20. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints DataThursday, March 7, 13
  21. 21. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints Data ImagesThursday, March 7, 13
  22. 22. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints Data Images LogsThursday, March 7, 13
  23. 23. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints Data Images Logs MailThursday, March 7, 13
  24. 24. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints Data Images Logs Mail MemcacheThursday, March 7, 13
  25. 25. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints Data Images Logs Mail Memcache MultitenancyThursday, March 7, 13
  26. 26. Google App Engine Google App Blobstore Cloud Backends Identity Storage Storing Capabilities Channel Endpoints Data Images Logs Mail Memcache Multitenancy OAuthThursday, March 7, 13
  27. 27. Google App Engine Google App Prospective Blobstore Cloud Backends Identity Search Storage Storing Capabilities Channel Endpoints Data Images Logs Mail Memcache Multitenancy OAuthThursday, March 7, 13
  28. 28. Google App Engine Google App Prospective Blobstore Cloud Backends Identity Search Storage Storing Capabilities Channel Endpoints Search Data Images Logs Mail Memcache Multitenancy OAuthThursday, March 7, 13
  29. 29. Google App Engine Google App Prospective Blobstore Cloud Backends Identity Search Storage Storing Capabilities Channel Endpoints Search Data Task Images Logs Mail Queues Memcache Multitenancy OAuthThursday, March 7, 13
  30. 30. Google App Engine Google App Prospective Blobstore Cloud Backends Identity Search Storage Storing Capabilities Channel Endpoints Search Data Task Images Logs Mail Queues Memcache Multitenancy OAuth UsersThursday, March 7, 13
  31. 31. Google App Engine Google App Prospective Blobstore Cloud XMPP Backends Identity Search Storage Storing Capabilities Channel Endpoints Search Data Task Images Logs Mail Queues Memcache Multitenancy OAuth UsersThursday, March 7, 13
  32. 32. One does not simply Automate using Google APIsThursday, March 7, 13
  33. 33. How we build software A Customer has a nick name has a full name has a date of birth has a social security number which is sensitive can be viewed or created or changed by a customer service representative An Order belongs to a Customer has a description can be viewed or created or changed by a customer service representative An Order Line Item is audited belongs to an Order has a description has a price which is a number can be viewed or created or changed by a customer service representative Dictation + Airlift on Google App EngineThursday, March 7, 13
  34. 34. Current processes manual and paper based for recording line items for accounts receivable and accounts payable.Thursday, March 7, 13
  35. 35. Customer Widgets SpreadsheetsThursday, March 7, 13
  36. 36. Widget Maker SpreadsheetsThursday, March 7, 13
  37. 37. Evolution One - Cron <?xml version="1.0" encoding="UTF-8"?> <cronentries>    <cron>     <url>/accounting/receivable</url>     <description>Process widgets sold for accounting line items</description>     <schedule>every day 12:30</schedule>     <timezone>America/New_York</timezone>   </cron>   <cron>     <url>/accounting/payable</url>     <description>Process line items for widget making workers</description>     <schedule>every day 03:30</schedule>     <timezone>America/New_York</timezone>   </cron> </cronentries>Thursday, March 7, 13
  38. 38. Evolution Two - Backends • Use Backends to process long lived requests - No Request Deadlines • Higher CPU up to 4.8GHz and Memory limits - up to 1GB • Also using Spreadsheet BatchThursday, March 7, 13
  39. 39. Evolution Two - Backends • Dynamic vs Resident - Dynamic Backends become alive only on request and are turned off when idleThursday, March 7, 13
  40. 40. Evolution Two - Backends <?xml version="1.0" encoding="UTF-8"?> <cronentries>    <cron> <backends>     <url>/accounting/receivable</url>  <backend name="accounting">     <description>Process widgets sold for accounting line items</description>    <options>     <schedule>every 20 minutes</schedule>      <dynamic>true</dynamic>     <timezone>America/New_York</timezone>      <fail-fast>true</fail-fast> <target>accounting</target>     <class>B8</class>   </cron>    </options>   <cron>  </backend>     <url>/accounting/payable</url> </backends>     <description>Process line items for widget making workers</description>     <schedule>every 40 minutes</schedule> backends.xml     <timezone>America/New_York</timezone> <target>accounting</target>   </cron> </cronentries> cron.xmlThursday, March 7, 13
  41. 41. Task Queues work discretely on a unit of work Push - processes tasks based on rate configuration, auto scales Pull - allows for specific time and timeframe to runThursday, March 7, 13
  42. 42. Task Push Config <queue-entries>   <queue>     <name>fooqueue</name>     <rate>1/s</rate> <bucket-size>40</bucket-size>     <max-concurrent-requests>1</max-concurrent-requests>     <retry-parameters>       <task-retry-limit>7</task-retry-limit>       <task-age-limit>2</task-age-limit>     </retry-parameters>   </queue>   <queue>     <name>barqueue</name>     <rate>1/s</rate>     <retry-parameters>       <min-backoff-seconds>10</min-backoff-seconds>       <max-backoff-seconds>200</max-backoff-seconds>       <max-doublings>0</max-doublings>     </retry-parameters>   </queue>   </queue-entries> queue.xmlThursday, March 7, 13
  43. 43. Task Queue Headers • X-AppEngine-QueueName, the name of the queue (possibly default) • X-AppEngine-TaskName, the name of the task, or a system-generated unique ID if no name was specified • X-AppEngine-TaskRetryCount, the number of times this task has been retried; for the first attempt, this value is 0. This number includes attempts where the task failed due to a lack of available instances and never reached the execution phase. • X-AppEngine-TaskExecutionCount, the number of times this task has previously failed during the execution phase. This number does not include failures due to a lack of available instances. • X-AppEngine-TaskETA, the target execution time of the task, specified in microseconds since January 1st 1970.Thursday, March 7, 13
  44. 44. Task Push Queues import com.google.appengine.api.taskqueue.Queue; import com.google.appengine.api.taskqueue.QueueFactory; import static com.google.appengine.api.taskqueue.TaskOptions.Builder.*; //Discrete job for processing single widget to write customer line item     Queue queue = QueueFactory.getDefaultQueue();     queue.add(withUrl("/widgetorderforcustomerjob").param("widgetKey", key)); //Discrete job for processing single widget to write vendor line item     queue.add(withUrl("/widgetorderforvendorjob").param("widgetKey", key));Thursday, March 7, 13
  45. 45. Automation Achieved Google Receivable Line Spreadsheet Invoices Items Job Line Items Per Client Google App Google Docs Engine Google Payable Line Spreadsheet Payments Items Job Line Items Per VendorThursday, March 7, 13
  46. 46. Experiment Evolve ArchitectureThursday, March 7, 13
  47. 47. Support • Google Plus Hangouts • Google Forums • Fellow DevelopersThursday, March 7, 13
  48. 48. Some More Tips • Python: Bulk Loader Tool to download/ upload data - good for any flavor of GAE • Get involved - NoOps doesn’t mean you don’t have to know your technology stack • https://github.com/LucidTechnics/google- apps-util • https://code.google.com/p/googleappengine/ wiki/WillItPlayInJavaThursday, March 7, 13
  49. 49. “Using no way as a way, having no limitation as limitation.” - Bruce LeeThursday, March 7, 13
  50. 50. Official White House Photo by Pete SouzaThursday, March 7, 13
  51. 51. David Hodge @davezen1Thursday, March 7, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×