Google App Engine Google APIs OAuth Facebook Graph API

Slides:



Advertisements
Similar presentations
Behzad Samin 0 An End-to-End Overview of a RESTful Web Service.
Advertisements

Attie Naude 14 May 2013 Windows Azure Mobile Services.
Google App Engine Cloud B. Ramamurthy 7/11/2014CSE651, B. Ramamurthy1.
DESIGNING A PUBLIC KEY INFRASTRUCTURE
 Java  Python  Bigtable(Bt) is a distributed storage system for managing structured data that is designed to scale to a very large size.  Query Language.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Nikolay Tomitov Technical Trainer SoftAcad.bg.  What are Amazon Web services (AWS) ?  What’s cool when developing with AWS ?  Architecture of AWS 
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
Understanding and Managing WebSphere V5
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
Google App Engine and Java Application: Clustering Internet search results for a person Aleksandar Kartelj Faculty of Mathematics,
Creating a Hello App Using Google App Engine. What are Google apps? Apps is an abbreviation for application. An app is a piece of software. It can run.
Introduction to Google AppEngine Development in Java Philippe Beaudoin (Track Sponsor)
Platform as a Service (PaaS)
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
By: Devesh Sharma.  Why Cloud Computing? ◦ Traditional Business Applications  Expensive  Complicated  Difficult to manage  Idea behind Cloud Computing.
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
Project Rickshaw SEARCH - FIND - GO. Project Rickshaw TEAM MEMBERS KEVIN AUGUSTINO – MATT FOX – DAVID MOORE SPONSORS KARASU TECHNOLOGIES - ERIK PAUL -
IT 210 The Internet & World Wide Web introduction.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Prof. A.R. Rele. What Is Google App Engine? Google App Engine lets users run web applications on Google's infrastructure. App Engine applications are.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
The powerful capabilities of JBoss Middleware as cloud based services on OpenShift. Build applications. Integrate with other systems Orchestrate using.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Google App Engine Chien-Chung Shen
Cloud Operating System Unit 11 Sever Technology II M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,
Google App Engine(GAE) Ma, Zhichao Cloud.
VENUE: AFE BABALOLA HALL, UNIVERSITY OF LAGOS PRESENTATION BY: MR AMOS EMMANUEL CHIEF SOFTWARE ARCHITECT, PROGRAMOS SOFTWARE CHAIRMAN,
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
Meet with the AppEngine Márk Gergely eu.edge. What is AppEngine? It’s a tool, that lets you run your web applications on Google's infrastructure. –Google's.
© 2012 Autodesk Implementing Cloud-Based Productivity Solutions with the AutoCAD® ObjectARX® API Ravi Krishnaswamy Senior Software Architect.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
MCS 270 Spring 2014 Object-Oriented Software Development.
Chapter 6 Server-side Programming: Java Servlets
1 Welcome to CSC 301 Web Programming Charles Frank.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Welcome to Azure App Services! Amie Seisay
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
FCM Workflow using GCM.
Intro to Datazen.
Paperless Timesheet Management Project Anant Pednekar.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Building consumer apps with Azure AD B2C
ICM – API Server & Forms Gary Ratcliffe.
ICM – API Server Gary Ratcliffe. 2 Agenda Webinar Programme API Server Overview JSON-RPC iCM API Service API Server and Forms New services under.
Welcome to Azure App Services! Amie Seisay
TOPIC 7.0 LINUX SERVICES AND CONFIGURATION. ROOT USER Root user is called “super user” because it has power far beyond those of mortal user. As root,
Web Technologies Lecture 13 Introduction to cloud computing.
1 Server Business Logic & OAuth Beta Overview October 4, 2010 Alan Hantke Product Development Server Business Logic Intuit Partner Platform Diane Weiss.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Trimantra Software Solution Offshore Software Development Outsourcing Company Visit :
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Using Google’s Cloud – for Developers Part 5 of 6 Programming the Google Cloud with Java APIs Lynn Langit.
Google App Engine. Contents Overview Getting Started Databases Inter-app Communications Modes.
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Node.js Express Web Applications
Google App Engine Mandeep Singh (37926)
Platform as a Service.
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Google App Engine B. Ramamurthy Based on the material available at
Google App Engine Danail Alexiev
Google App Engine Ying Zou 01/24/2016.
Storing and Accessing G-OnRamp’s Assembly Hubs outside of Galaxy
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Presentation transcript:

Google App Engine Google APIs OAuth Facebook Graph API Twitter Bootstrap Google Developer Group Presentation & Workshop @ Albertian Institute of Science & Technology – 19th October 2013 Shashidhar Gurumurthy shashidhar.gurumurthy@gmail.com https://cloud.google.com/

Agenda Session Objectives App Engine Overview Environment Setup App Engine Services OAuth Google APIs Facebook APIs References Play on shashi-demo.appspot.com

Session Objectives Describe App Engine & its offerings Get you started on App Engine development using Java Usage of commonly used App Engine services OAuth Working with Google APIs Working with Facebook APIs Help you develop your first App Engine application and use few Google & Facebook APIs

Session Objectives – Prerequisites Familiarity with Servlet development using a Servlet container such as Tomcat is assumed Some familiarity with Eclipse IDE That’s it… that’s all you need to get started on developing awesome apps with Google App Engine. Objectives

Session Objectives – What’s not covered Google App Engine applications can be written in Python and Go programming languages as well. This session uses Java. All Services provided are not covered due to time constraints Objectives

So… what is Google App Engine Overview Google App Engine lets you: Run web applications on Google’s infrastructure Easy to build, maintain and scale No servers to maintain – just upload your application Costs nothing to get started: All applications get a free limit on resources When billing is enabled for an application, free limits are raised but you still pay only for resource usage above free levels Applications run in a secure environment with limited access to underlying operating system Applications can only access other computers on the internet through provided URL Fetch and Email services Applications cannot write to the file systems Application code only runs in response to a web request, queued task or a scheduled task

The Java Runtime Environment Overview Java runtime environment uses Java 6 (Java 7 support is experimental with SDK 1.7.5+) App Engine Java SDK supports Java 5 or 6 Java Servlet and JSPs The SDK provides implementations of Java Data Objects (JDO) & Java Persistence API (JPA) interfaces for interaction with App Engine Datastore JavaMail API can be used to send mail with App Engine Mail service java.net.HTTP APIs access the App Engine URL Fetch service

Development Workflow Overview App Engine SDK includes tools for local emulation of App Engine services SDK includes tools for uploading application to App Engine The App Engine admin console is the web-based interface for managing applications running on the App Engine. Use it to: Create new apps Configure domain names Change which version of application is live Examine logs Browse application datastore View Memcache App Engine Console

App Engine Information on web Environment Setup Setup Install Java SDK (1.7 or 1.6) – 1.7 is experimental and available on App Engine SDK 1.7.5+ only If using Eclipse, install Google Plugin for Eclipse If not using Eclipse, download App Engine Java SDK In this case you will also need Apache Ant to enable you to interact with App Engine via command line interface – we will not cover this case. Setup details: https://developers.google.com/appengine/docs/java/gettingstarted/installing App Engine Information on web

Services – Users Services App Engine applications can authenticate using one of three methods: Google Accounts Accounts on Google Apps Domains OpenID identifier – federated authentication Application can access a signed in user’s email address (or OpenID identifier) The app can detect whether the current user is an administrator

Services – Datastore Services The App Engine Datastore is a schemaless object datastore The Datastore holds data objects known as entities Each entity is identified by its kind which categorizes the entity for the purpose of queries, and a key that uniquely identifies it within its kind The Datastore can execute multiple operations in a single transaction While the Datastore interface has similar features as traditional relational databases, it differs in the way it describes relationships between data objects Entities of the same kind can have different properties

Services – Java Datastore API The App Engine Java SDK provides a low-level Datastore API with simple operations on entities The SDK also includes implementation of the Java Data Objects (JDO) and Java Persistence API (JPA) interfaces for modeling and persisting data App Engine Datastore service is a large area of study We will briefly review JDO for persisting and querying entities

Services – Scheduled Tasks The App Engine Cron Service allows scheduling of tasks that operate at defined times or regular intervals A Cron job will invoke a URL using an HTTP GET request at a given time of day A cron.xml file in WEB-INF directory of the application controls cron The Admin Console allows you to view the state of your cron jobs The dev appserver does not automatically run the cron jobs

Services – Mail App Engine applications can send email messages Apps can receive emails at various addresses Apps send messages using the Mail service Apps receive messages in the form of HTTP requests initiated by App Engine and posted to the app The Mail service Java API supports the JavaMail interface for sending email messages The development server does not send email messages

Services – URL Fetch Services App Engine applications can fetch resources and communicate with other hosts over the internet using HTTP & HTTPS requests Apps use URL Fetch service to make requests The URL Fetch service uses Google’s network infrastructure for efficiency and scaling purposes Apps use java.net.URLConnection and related classes to make connections

Services – Task Queues Services Applications can perform work outside of a user request. The application adds tasks to task queues to be executed later Two types of queues: Push Queues function within App Engine environment. Configure a queue and add tasks to it. App Engine handles the rest. Pull Queues allows consumers inside or outside of App Engine environment to process tasks In this case application needs to scale workers based on processing volume

Services – Google Cloud Storage The Google Cloud Storage offers another method for your application to store and serve data Similar to AWS S3 Access via a RESTful API as well as Cloud Storage Java API for Google App Engine

Services – Memcache Distributed in-memory data cache Speed up common datastore queries If many requests make the same query with the same parameters, app can cache the results in memcache

Services – Multitenancy Multitenancy refers to a software architecture whereby one instance of an application serves many client organization Namespaces API allows you to compartmentalize Google App Engine data App Engine supports Namespaces in the following APIs Datastore Memcache Task Queue

Services – Google Cloud Endpoints Consists of tools, libraries and capabilities to generate endpoints and client libraries from an App Engine backend to simplify client access to that back end. Introduced in Feb 2013 with SDK 1.7.5

Services – Others App Identity Identifying itself Asserting identity to Google APIs and other systems Blobstore: Datastore allows blobs of max 1M. For storing larger objects, use Blobstore Channel: Use to create persistent connection to send messages to Javascript client in real time. Images: Manipulate image data using dedicated image service Logs: Provides access to request and application logs OAuth: Use App Engine application as OAuth service provider Capabilities, Search, Prospective Search & XMPP (IM)

Google APIs & OAuth Google provides access to many of its services via APIs You can use these APIs within your applications Most of the APIs require authenticated access; OAuth provides the authentication mechanism OAuth also provides a mechanism to gain access to private data via scoped authorization Steps to use Google API: Define a project on Google API console Select the required services Create OAuth client id ( & secret) Use the OAuth flow to get access token Send Access token in request header of the HTTP call to Google API OAuth Playground Google APIs Console

Google OAuth Flow (for Web Server Applications)

Facebook API Usage Similar access mechanism as Google API Uses OAuth for authorization Steps to use Facebook API: Define a Facebook App on developers.facebook.com This gives you App ID & App Secret Use the App ID & App Secret along with required permissions to get access token Send Access token as request parameter in the HTTP call to Facebook API Facebook Developers

What else do I need? Something to make the UI look better Frameworks for responsive client Best ones to start with jQuery Twitter Bootstrap Some More Mustache Templates jQuery Mobile

Demo – Sample Starter Applications Starter Apps which you can use to begin developing App Engine application using Google APIs or Facebook APIs Google API used – Calendar API to get Calendar list Facebook API used – Get logged in user’s profile How to use? To learn, copy/paste piece by piece into a new App Engine project OR Import whole project and enhance / modify

Environment Setup Create App Engine Project & Deploy Use Google and/or Let’s Play Environment Setup Create App Engine Project & Deploy Use Google and/or Facebook API In Your Project

References Google App Engine Home: https://developers.google.com/appengine/ App Engine Java Home: https://developers.google.com/appengine/docs/java/overview App Engine Admin Console: https://appengine.google.com/ Google APIs Console: https://code.google.com/apis/console Google OAuth documentation & flow: https://developers.google.com/accounts/docs/OAuth2 OAuth Playground: https://developers.google.com/oauthplayground/ Facebook Developers: https://developers.facebook.com Demo Source Code: Google APIs starter project: http://commondatastorage.googleapis.com/sessionmaterials/AppEngineStartupProj ect.zip Google + Facebook APIs starter project: http://commondatastorage.googleapis.com/sessionmaterials/AppEnginePlusFaceb ookStartupProject.zip