Lecture IV: REST Web Service with Google App Engine CS 4593 Cloud-Oriented Big Data and Software Engineering.

Slides:



Advertisements
Similar presentations
Lecture13 Intro. to Google App Engine Keke Chen Based on Guido van Rossums presentation.
Advertisements

Google App Engine Cloud B. Ramamurthy 7/11/2014CSE651, B. Ramamurthy1.
 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.
The Geant4 physics validation repository
B.Sc. Multimedia ComputingMedia Technologies Database Technologies.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
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.
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.
Google App Engine Google APIs OAuth Facebook Graph API
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.
Google App Engine Guido van Rossum Stanford EE380 Colloquium, Nov 5, 2008.
Cross Platform Mobile Backend with Mobile Services James
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.
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,
Web 2.0: Concepts and Applications 6 Linking Data.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
1 NETE4631 Using Google Web Services and Using Microsoft Cloud Services Lecture Notes #7.
Google App Engine(GAE) Ma, Zhichao Cloud.
11/16/2012ISC329 Isabelle Bichindaritz1 Web Database Application Development.
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.
EXPOSE GOOGLE APP ENGINE AS TASKTRACKER NODES AND DATA NODES.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
MCS 270 Spring 2014 Object-Oriented Software Development.
Designing Web Applications Thaddeus Diamond CPSC 112.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Searching Business Data with MOSS 2007 Enterprise Search Presenter: Corey Roth Enterprise Consultant Stonebridge Blog:
Chapter 6 Server-side Programming: Java Servlets
Introduction to Google App Engine. 2 Google App Engine Does one thing well: running web apps Simple app configuration Scalable Secure.
Enterprise Cloud Computing
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Intro to Datazen.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
Paperless Timesheet Management Project Anant Pednekar.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
My project  Small-Medium Enterprises (SMEs)  faces goods distribution problems  needs necessary resources, money and technical expertise, to purchase.
1 Google App Engine APIs :Overview Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations
1 Google App Engine APIs :Overview Feb – March, 2010 Patrick Chanezon Developer Advocate Google Developer Relations
GOOGLE APP ENGINE By Muktadiur Rahman. Contents  Cloud Computing  What is App Engine  Why App Engine  Development with App Engine  Quote & Pricing.
Information Systems in Organizations 5.2 Cloud Computing.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Google Apps and Tools for the Classroom
1 NETE4631 Using Google Web Services Lecture Notes #6.
Yue Zhou. Overall of cloud computing Definition of Could Computing Characteristics and Advantages Type of Services Current Leaders: Google, Amazon, Microsoft,
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
DreamFactory for Microsoft Azure Is an Open Source REST API Platform That Enables Mobilization of Data in Minutes across Frameworks and Storage Methods.
Google App Engine. Contents Overview Getting Started Databases Inter-app Communications Modes.
Platform as a Service (PaaS)
Amazon Web Services (aws)
CSE 704 Data Center Computing Intro
Platform as a Service (PaaS)
Platform as a Service (PaaS)
Google App Engine Mandeep Singh (37926)
Amazon Storage- S3 and Glacier
Cloud Data platform (Cloud Application Development & Deployment)
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.
Cloud computing mechanisms
Agenda Need of Cloud Computing What is Cloud Computing
Introduction to Google App Engine
Presentation transcript:

Lecture IV: REST Web Service with Google App Engine CS 4593 Cloud-Oriented Big Data and Software Engineering

Outline Course Project Google App Engine Google Development Console Google Custom Search API 2

Course Project Topic –Keyword trends analysis services for a certain topic Platform –Google App Engine –Any programming language supported by GAE Collaboration –Work individually –Hopefully you are not working on the same idea, but it is fine if you happen work on one by accident 3

Course Project Requirements –Develop a web service based on Google Search API to follow the weekly trends of keywords on a certain topic –Search one or multiple websites each day with Google Search API free quota and record the query results during a period of time (hopefully more than a week) –Perform statistics on query results to provide daily keywords frequency and the trends of the week 4

Course Project Requirements –Provide at least two web services: one for the keyword frequency of each day, and the other for trend of the week –Provide output as either JSON or XML –The developed web service should be deployed on Google App Engine 5

Course Project Advanced Requirements –You are going to choose the topic and the website to search, but the results should be meaningful (searching a static website for a week will not give you any different results) –Provide HTML presentation for the web services 6

Course Project Additional Information –Feel free to use additional free web services to support your task –Searching a more volatile website often provides you more interesting results, e.g., searching "Obama" in CNN or NY Times. 7

Course Project Evaluation –fetching and recording Google Search API results (2.5 points) –extracting keywords (2.5 points) –presentation of daily results (2.5 points) –presentation of weekly results (2.5 points) –The advanced features will be evaluated by quality. 8

Course Project Deliverables –Demo –Code –Commends and User Guide –Blackboard Due date –Demo: Oct. 5th –Code: Oct. 4th 9

Outline Course Project Google App Engine Google Development Console Google Custom Search API 10

Google App Engine: Overview Google App Engine (GAE) is a PaaS cloud computing platform for developing and hosting web applications in Google-managed data centers. Google App Engine lets you run web applications on Google's infrastructure. –Easy to build. –Easy to maintain. –Easy to scale as the traffic and storage needs grow 11

infrastructure vs. platform - What is “The Platform”? Platform: same for all applications Libraries: shared by multiple applications Application-specific code infrastructure: hidden by platform

Scaling Low-usage apps: many apps per physical host High-usage apps: multiple physical hosts per app Stateless APIs are trivial to replicate Datastore built on top of Bigtable; designed to scale well –Abstraction on top of Bigtable –API influenced by scalability No joins Recommendations: denormalize schema; precompute joins 13

Google App Engine: Overview Free –1GB storage –1 virtual machine instance –5 million page views / month –10 applications / Google account 14

Preserving Fairness Through Quotas Everything an app does is limited by quotas, for example: –request count, bandwidth used, CPU usage, datastore call count, disk space used, s sent If you run out of quota that particular operation is blocked (raising an exception) until replenished 15

Preserving Fairness Through Quotas Free quotas are tuned so that a well-written app (light CPU/datastore use) can survive The point of quotas is to be able to support a very large number of small apps (analogy: baggage limit in air travel) Large apps can request raised quotas Three types of quotas –Free Quota –Billed Limits –Safety Limits 16

Google App Engine: Programming Languages Java –App Engine runs JAVA apps on a JAVA 7 virtual machine (currently supports JAVA 6 as well). –Uses JAVA Servlet standard for web applications: WAR (Web Applications ARchive) directory structure. Servlet classes Java Server Pages (JSP) Static and data files Deployment descriptor (web.xml) Other configuration files 17

Google App Engine: Programming Languages Python –Uses WSGI (Web Server Gateway Interface) standard. –Python applications can be written using: Webapp2 framework Django framework Any python code that uses the CGI (Common Gateway Interface) standard 18

Google App Engine: Programming Languages PHP –Local development servers are available to anyone for developing and testing local applications. –Only whitelisted applications can be deployed on Google App Engine. ( 19

Google App Engine: Programming Languages Go –Go is an Google’s open source programming environment. –Tightly coupled with Google App Engine. –Applications can be written using App Engine’s Go SDK. 20

Google App Engine: Data Storage App Engine Data Store –NoSQL schema-less object based data storage, with a query engine and atomic transactions. –Data object is called a “Entity” that has a kind (~ table name) and a set of –properties (~ column names). –JAVA JDO/ JPA interfaces and Python datastore interfaces. 21

Google App Engine: Data Storage Google Cloud Store –RESTful service for storing and querying data. –Fast, scalable and highly available solution. –Provides Multiple layers of redundancy. All data is replicated to multiple data centers. –Provides different levels of access control. –HTTP based APIs. 22

Google App Engine: Services Google Services –URL Fetch –Mail –Memcache 23

Google App Engine: Security Sandboxes –All hosted applications run in a secure environment that provides limited access to the underlying operating system. –Sandbox isolates the application in its own secure, reliable environment that is independent of hardware, operating system and physical location of a web server. 24

Google App Engine: Security Sandboxes: Limitations –Application can only interact with other computers over internet using URL fetch, , and HTTP/ HTTPS requests on the standard ports –Applications cannot write to local file system in any of the runtime environments. –Application code runs only in response to a web request, a queued task or a scheduled task and must return the response data within 60 seconds. 25

Google App Engine: Demo Create a project on Google App Engine –At Initialize the environment of Restlet + eclipse + GAE –Tutorial at – framework/guide/2.3/introduction/first-steps/first- applicationhttp://restlet.com/technical-resources/restlet- framework/guide/2.3/introduction/first-steps/first- application –Download Restlet-GAE, GAE SDK, and Eclipse-GAE plugin 26

Google App Engine: Demo Deployment of Applications –Follow e?_ga= Google Search API –Generate your search engine –Manage API usages – 27

Google Map API Provide Map Services –Http: –Android –IOS –JavaScript Parameters –Center –Zoom –Size –Language 28

Google Map API Pricing –Free Quota: 2500 / day –Bill Quota: 1000 / $0.5 –Safety Quota: 100, 000 / day 29

Google Place API Searching for places around certain map location Usage Example –Finding all food places within 500 miles from (long,lat) – earch/json?location=long,lat&radius=500&types=food &name=cruise&key=API_KEYhttps://maps.googleapis.com/maps/api/place/nearbys earch/json?location=long,lat&radius=500&types=food &name=cruise&key=API_KEY Place ID –A ID of a place that can be used later (e.g., Costco at I UTSA Boulevard) 30

Google Place API Parameters –Type: food, airport, hospital, … – shttps://developers.google.com/places/supported_type s Pricing –Free quota: 1000/day –Free up to 150,000/day with credit card info 31

{ "geometry" : { "location" : { "lat" : , "lng" : } }, … "name" : "Rhythmboat Cruises", "opening_hours" : { "open_now" : true }, "photos" : […], "place_id" : "ChIJyWEHuEmuEmsRm9hTkapTCrk", "scope" : "GOOGLE", "types" : [ "travel_agency", "restaurant", "food", "establishment" ], "vicinity" : "Pyrmont Bay Wharf Darling Dr, Sydney" }, Google Place API: response

Google+ API Intro Usages Parameters Pricing 33

Google+ API A series of APIs working with Google+ –People: Get public profiles with query or user ID –Activities: List activities of a user or searching activities with query –Comments: List comments of an activity or searching comments with query –Moments: Retrieve, insert or delete moments Usage – –10,000/day free quota 34

Google Translation API Translate strings to other languages Parameters –source –target –q(query) Pricing –$20 for 1M characters –50M / day limit 35

Youtube Data API Provide various supports to retrieve and manage data from Youtube Some important services –Video: List, search, Insert, Delete, Rate, … –Playlist: Insert, delete, List, … –Captions: List, insert, update, download, delete, … 36

Youtube Data API Parameters –Part –videoCategoryId –myRating Pricing –Unit based quota calculation –Services with different parameters may cost different quota – quota_cost –50M unit / day, and 30K unit / second, always free 37

Facebook Graph API A web API library for Facebook social network Provide support for various platforms –RESTful –IOS –Android –JavaScript –PHP 38

Facebook Graph API Usages –Provide similar functions to google+ APIs –List friends, List events, Fetch comments, … –Uploading videos, photos, … Pricing –Free –Need to contact Facebook for more than 100M API calls per day 39

MediaWiki API API to get information from Wikipedia programmatically –Entry: Parameters –Action: query, modules –Titles: specify the query –Limit: max results –Section: retrieve from which section Pricing –Free: with unofficial limits 40

Bing API Search API from Microsoft Root: – Parameters –Query –NewsCategory –Sources: web, image, video, news, … 41

Bing API Pricing –5000 / month free –After it: 10K/month for $20 42

Summary Google App Engine Application Deployment on Google App Engine Popular free Web Services 43