Google App Engine Chien-Chung Shen

Slides:



Advertisements
Similar presentations
CSE534 – Fundamentals of Computer Networks Lecture 11: HTTP/Web (The Internet’s first killer app) Based on slides from Kurose + Ross, and Carey Williamson.
Advertisements

HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP) Computer Networks Computer Networks Spring 2012 Spring 2012.
9/16/2003-9/18/2003 The Application Layer and Java Programming September 16-18, 2003.
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
Web, HTTP and Web Caching
1 K. Salah Module 2.1: Application Layer Application-level protocols provide high-level services –Web and HTTP –DNS –Electronic mail –Remote login –FTP.
2/9/2004 Web and HTTP February 9, /9/2004 Assignments Due – Reading and Warmup Work on Message of the Day.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
PL-IV- Group A HTTP Request & Response Header
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
Google App Engine Danail Alexiev Technical Trainer SoftAcad.bg.
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.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
FTP (File Transfer Protocol) & Telnet
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Mail (smtp), VoIP (sip, rtp)
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
2: Application Layer1 CS 4244: Internet Software Development Dr. Eli Tilevich.
Application Layer 2 Figures from Kurose and Ross
Rensselaer Polytechnic Institute Shivkumar Kalvanaraman, Biplab Sikdar 1 The Web: the http protocol http: hypertext transfer protocol Web’s application.
20-1 Last time □ NAT □ Application layer ♦ Intro ♦ Web / HTTP.
Week 11: Application Layer1 Web and HTTP First some jargon r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,…
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Introduction 1 Lecture 6 Application Layer (HTTP) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering.
2: Application Layer1 Web and HTTP First some jargon Web page consists of base HTML-file which includes several referenced objects Object can be HTML file,
2: Application Layer1 Chapter 2 Application Layer Part 2: Web & HTTP These slides derived from Computer Networking: A Top Down Approach, 6 th edition.
MCS 270 Spring 2014 Object-Oriented Software Development.
1 HTTP EECS 325/425, Fall 2005 September Chapter 2: Application layer r 2.1 Principles of network applications m app architectures m app requirements.
Application Layer 2-1 Chapter 2 Application Layer 2.2 Web and HTTP.
CIS679: Lecture 13 r Review of Last Lecture r More on HTTP.
1-1 HTTP request message GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr request.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
Dr. Philip Cannata 1 The Web and HTTP. Dr. Philip Cannata 2 Application Layer 2-2 Chapter 2 Application Layer Computer Networking: A Top Down Approach.
Application Layer 2-1 Lecture 4: Web and HTTP. Web and HTTP First, a review… web page consists of objects object can be HTML file, JPEG image, Java applet,
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
CITA 310 Section 2 HTTP (Selected Topics from Textbook Chapter 6)
Advance Computer Networks Lecture#05 Instructor: Engr. Muhammad Mateen Yaqoob.
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
Overview of Servlets and JSP
IT 424 Networks2 IT 424 Networks2 Ack.: Slides are adapted from the slides of the book: “Computer Networking” – J. Kurose, K. Ross Chapter 2: Application.
Introduction 1-1 Lecture 5 Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CS3516: These slides.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
COMP2322 Lab 2 HTTP Steven Lee Jan. 29, HTTP Hypertext Transfer Protocol Web’s application layer protocol Client/server model – Client (browser):
Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment Bapi Chatterjee Prajith R G.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
Simple Web Services. Internet Basics The Internet is based on a communication protocol named TCP (Transmission Control Protocol) TCP allows programs running.
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking HTTP 0.
Web Servers & CGI. World Wide Web (www) w3 The World Wide Web (abbreviated as WWW or W3, commonly known as the web) is a system of interlinked hypertext.
2: Application Layer 1 Chapter 2 Application Layer These ppt slides are originally from the Kurose and Ross’s book. But some slides are deleted and added.
Platform as a Service (PaaS)
Application Layer Dr. Adil Yousif Lecture 2 CS.
Platform as a Service (PaaS)
Block 5: An application layer protocol: HTTP
Application layer 1 Principles of network applications 2 Web and HTTP
COMP2322 Lab 2 HTTP Steven Lee Feb. 8, 2017.
Internet transport protocols services
Session 4 INST 346 Technologies, Infrastructure and Architecture
Application HTTP.
Google App Engine Ying Zou 01/24/2016.
CS 5565 Network Architecture and Protocols
Application Layer Part 1
Chapter 2 Application Layer
Presentation transcript:

Google App Engine Chien-Chung Shen

Google App Engine Overview What is Google App Engine? – runtime platform that provides web application hosting, data storage, and high-speed networking – infrastructure (datacenters) available at Google their servers + storage Why it is GREAT? – Does one thing well: running web apps App Engine handles HTTP(S) requests, nothing else – Simple app configuration – Everything is built to scale Automatic Scaling to Application Needs – Secure – pay for what you use

Google App Engine Features Google App Engine makes it easy to build an application that runs reliably, even under heavy load and with large amounts of data – dynamic web serving, with full support for common web technologies – persistent storage with queries, sorting and transactions – automatic scaling and load balancing – APIs for authenticating users and sending using Google Accounts – a fully featured local development environment that simulates Google App Engine on your computer

The Runtime Environment Java environment – Java 7 Virtual Machine (JVM) – Java Servlet standard interface for interacting with the application server Python Environment – Python 2.7 Go PHP Java or python? – Python: powerful python syntax, library, shorter code – Java: can use Java Data Objects (JDO) and Java Persistence API (JPA)

Google App Engine Architecture

The Sandbox Applications run in a secure environment that provides limited access to the underlying OS – Benefit? will NEVER affect other applications on the same server – Cannot spawn additional processes or threads – Cannot make arbitrary network connections – Only read its own code and resource files and cannot create or modify files Examples of the limitations of the secure sandbox – An application can only access other computers on the Internet through the provided URL fetch and services. Other computers can only connect to the application by making HTTP (or HTTPS) requests on the standard ports – Applications cannot write to the file system in any of the runtime environments

Datastore App Engine provides a distributed NoSQL data storage service that features a query engine and transactions – datastore is not like a traditional relational database Data objects have a set of properties Queries can retrieve entities of a given kind filtered and sorted by the values of the properties – datastore entities are "schemaless." The structure of data entities is provided by and enforced by your application code – datastore provides ACID (Atomicity, Consistency, Isolation, Durability) transactions using optimistic concurrency control – datastore implements transactions across its distributed network using "entity groups."

Google Accounts App Engine supports integrating an app with Google Accounts for user authentication – your application can allow a user to sign in with a Google account, and access the address and displayable name associated with the account – lets the user start using your application faster – no need to create a new account – can judge whether the current user is a registered administrator for the application, which make it easy to implement admin-only areas of your site

App Engine Services App Engine provides a variety of services that enable you to perform common operations when managing your application – URL Fetch – Mail – Memcache high performance in-memory key-value cache that is accessible by multiple instances of your application – Image Manipulation – Extensible Messaging and Presence Protocol (XMPP) for real-time communication such as instant messaging – Task Queues keep track of tasks to handle in the background

HTTP request message two types of HTTP messages: request, response HTTP request message: – ASCII (human-readable format) request line (GET, POST, HEAD commands ) header lines carriage return, line feed at start of line indicates end of header lines GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO ,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n carriage return character line-feed character

HTTP request message: general format request line header lines body method sp cr lf version URL cr lf value header field name cr lf value header field name ~ ~ ~ ~ cr lf entity body ~ ~ ~ ~

Application Layer2-12 Uploading form input POST method: web page often includes form input input is uploaded to server in entity body URL method: uses GET method input is uploaded in URL field of request line:

Method types HTTP/1.0: GET POST HEAD – asks server to leave requested object out of response HTTP/1.1: GET, POST, HEAD PUT – uploads file in entity body to path specified in URL field DELETE – deletes file specified in the URL field

HTTP response message status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/ OK\r\n Date: Sun, 26 Sep :09:20 GMT\r\n Server: Apache/ (CentOS)\r\n Last-Modified: Tue, 30 Oct :00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=ISO \r\n \r\n data data data data data... Right click on a page to view page source!!!

HTTP response status codes 200 OK – request succeeded, requested object later in this msg 301 Moved Permanently – requested object moved, new location specified later in this msg (Location:) 400 Bad Request – request msg not understood by server 404 Not Found – requested document not found on this server 505 HTTP Version Not Supported  status code appears in 1st line in server-to-client response message.  some sample codes :

Trying out HTTP (client side) for yourself 1. Telnet to your favorite Web server: opens TCP connection to port 80 (default HTTP server port) at cis.poly.edu. anything typed in sent to port 80 at cis.poly.edu telnet cis.poly.edu type in a GET HTTP request: GET /~ross/ HTTP/1.1 Host: cis.poly.edu by typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP server 3. look at response message sent by HTTP server! Redirection:

App Engine Request Handling Architecture

HTTP Location HTTP Location header field is returned in responses from an HTTP server under two circumstances: – To ask a web browser to load a different web page (URL redirection) – To provide information about the location of a newly created resource

Demos In go_appengine/demos counter delay guestbook helloworld logviewer mandelbrot moustachio –