Google & the Cloud. GData, Mashup Editor, AppEngine. Gregor Hohpe Software Engineer Google, Inc. All rights reserved,

Similar documents
webapp2 Documentation

Hons. B.Sc. Degree in Software Engineering/Development. Web and Cloud Development

Web 2.0, Social Programming, and Mashups (What is in for me!) Social Community, Collaboration, Sharing

All About Open & Sharing

Leveraging the Social Web for Situational Application Development and Business Mashups

Rob Weir, IBM 1 ODF and Web Mashups

Web 2.0 Attacks Explained

Database Driven Web 2.0 for the Enterprise

7401ICT eservice Technology. (Some of) the actual examination questions will be more precise than these.

Google GCP-Solution Architects Exam

Jaesun Han (NexR CEO & Founder)

Nick Terkay CSCI 7818 Web Services 11/16/2006

Front End Programming

Web 2.0 Tutorial. Jacek Kopecký STI Innsbruck

App Engine Web App Framework

App Engine Web App Framework

Atom: From Blogging to Data, Web (Services) 2.0

Static Webpage Development

Semantic Integration Platform for Web Widgets Communication

Advanced Joomla! Dan Rahmel. Apress*

Applikationen im Browser Webservices ohne Grenzen

ITP 342 Mobile App Development. APIs

Chapter 19: Twitter in Twenty Minutes

CS4HS Using Google App Engine. Michael Parker

Building Scalable Web Apps with Python and Google Cloud Platform. Dan Sanderson, April 2015

Whirlwind Tour of Web Mashups. Sophia Liu November 19, 2008

User Interaction: jquery

Like It Or Not Web Applications and Mashups Will Be Hot

한재선 KAIST 정보미디어경영대학원겸직교수 & NexR 대표이사

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Getting started with Convertigo Mobilizer

Building Python web app on GAE

CS50 Quiz Review. November 13, 2017

OU Mashup V2. Display Page

1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

DotNetNuke. Easy to Use Extensible Highly Scalable

Web 2.0, AJAX and RIAs

Web 2.0. Agenda. What you will need to have handy for this class. Social Software Applications for Libraries. Day 1. Day 2

Web Standards Mastering HTML5, CSS3, and XML

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Restful Interfaces to Third-Party Websites with Python

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise

Web development using PHP & MySQL with HTML5, CSS, JavaScript

2nd Year PhD Student, CMU. Research: mashups and end-user programming (EUP) Creator of Marmite

Online Newspaper using Mashup

20486-Developing ASP.NET MVC 4 Web Applications

10267A CS: Developing Web Applications Using Microsoft Visual Studio 2010

Beginning ASP.NET. 4.5 in C# Matthew MacDonald

Blog site (cont.) theme, 202 view creations, 205 Browser tools, 196 Buytaert, Dries, 185

The TELAR Mobile Mashup Platform for Nokia Internet Tablets

Web Architecture Review Sheet

WEBSITE INSTRUCTIONS

HTML 5 and CSS 3, Illustrated Complete. Unit M: Integrating Social Media Tools


Developing ASP.Net MVC 4 Web Application

Shankersinh Vaghela Bapu Institue of Technology

Oracle APEX 18.1 New Features

COURSE 20486B: DEVELOPING ASP.NET MVC 4 WEB APPLICATIONS

20486: Developing ASP.NET MVC 4 Web Applications (5 Days)

Extended Identity for Social Networks

Oracle Service Cloud Integration for Developers Ed 1

Developing ASP.NET MVC 4 Web Applications

Developing Solutions for Google Cloud Platform (CPD200) Course Agenda

How APEXBlogs was built

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

ITP 140 Mobile Technologies. Mobile Topics

WEBSITE INSTRUCTIONS. Table of Contents

XML Processing & Web Services. Husni Husni.trunojoyo.ac.id

AngularJS AN INTRODUCTION. Introduction to the AngularJS framework

Makbul Khan. Nikhil Sukul

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Oracle Service Cloud Integration for Develope

Rapid Development with Django and App Engine. Guido van Rossum May 28, 2008

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

ibreathesports Inc. Apurva Alok Bernardo Silva

Plumbing the Web. Narayanan Shivakumar. Google Distinguished Entrepreneur & Director

Overview

SERVICE-ORIENTED COMPUTING

Developing Ajax Applications using EWD and Python. Tutorial: Part 2

FAQs. Business (CIP 2.2) AWS Market Place Troubleshooting and FAQ Guide

Administration Guide

Developing ASP.NET MVC 5 Web Applications. Course Outline

MAIL PLUGIN FOR IBM MASHUP CENTER

WebCenter Interaction 10gR3 Overview

WeChat Adobe Campaign Integration - User Guide

SIR Area 2 Computer & Technology Group. All Things. By Neil Schmidt January 21, CAT Web Site: a2cat.sirinc2.org

Without Django. applying django principles to non django projects

20486: Developing ASP.NET MVC 4 Web Applications

SharePoint Server 2016 Feature Comparison* Accessibility Standards Support Yes Yes. Asset Library Enhancements/Video Support Yes Yes.

1 CUSTOM TAG FUNDAMENTALS PREFACE... xiii. ACKNOWLEDGMENTS... xix. Using Custom Tags The JSP File 5. Defining Custom Tags The TLD 6

Web 2.0 Käyttöliittymätekniikat

JBPM Course Content. Module-1 JBPM overview, Drools overview

Introduction to Web 2.0 Data Mashups

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

PHP. MIT 6.470, IAP 2010 Yafim Landa

Oracle Service Cloud Integration for Developers Ed 1

Content Management Features & Benefits

Building Mashups. Craig Knoblock. University of Southern California. Thanks to Rattapoom Tuchinda

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Cross Video Gallery 6.6 User Guide

Transcription:

Google & the Cloud GData, Mashup Editor, AppEngine Gregor Hohpe Software Engineer www.eaipatterns.com 2008 Google, Inc. All rights reserved, 2008 Google, Inc. All rights reserved, 2 1

Web 2.0 From the Horse s (Tim s) Mouth 1. Web as Platform 2. Harnessing Collective Intelligence 3. Data is the next Intel Inside 4. End of the Software Release Cycle 5. Lightweight Programming Models 6. Software Above the Level of a Single Device 7. Rich User Experiences 2008 Google, Inc. All rights reserved, 3 Services in the Cloud Application Services Sales Force Social NW Accounting Photo SalesForce Core Business Services Calendar Mail Currency Geo Spreadsheet Payment GData Presentation & Transformation Mashup Editor Scraping Transformation Aggregation Infrastructure Services Storage Computing Relay Indexed Data Queue Pub-Sub 2008 Google, Inc. All rights reserved, 4 2

Mashup Anatomy Google Mashup Editor QED Wiki JavaScript Libraries Microsoft Popfly Yahoo! Pipes Snaplogic Microsoft Popfly IBM Damia Dapper Openkapow Snaplogic (not meant to be complete nor a recommendation) 2008 Google, Inc. All rights reserved, 5 Google s Entries into the Game Front-end Google Mashup Editor AJAX development framework and a set of tools that enable developers to quickly and easily create simple web applications and mashups. Data Sources Google Data API s Standard protocol for reading and writing data on the web, base on Atom 1.0 and RSS 2.0 syndication formats, plus the Atom Publishing Protocol. AppEngine Google App Engine lets you run your web applications on Google's infrastructure. 2008 Google, Inc. All rights reserved, 6 3

Google Data API s Atom and RSS Atom Publishing Protocol Google GData extensions Optimistic concurrency based on version numbers AuthSub authentication scheme Google Apps Google Base Blogger Google Calendar Google Code Search Google Contacts Google Health Google Notebook Google Spreadsheets Picasa Web Albums Google Documents List YouTube 2008 Google, Inc. All rights reserved, 7 Google Data API s Example: Simple Calendar Feed (next) Neat example: Google Spreadsheet as database (article by Jeff Scudder in Python Magazine) Client Libraries: Java,.Net, PHP, Python, Objective-C, JavaScript (http://code.google.com/apis/gdata/clientlibs.html) 2008 Google, Inc. All rights reserved, 8 4

Calendar Feed 2008 Google, Inc. All rights reserved, 9 Calendar Feed <entry> <id>http://www.google.com/calendar/feeds/ </id> <published>2007-08-19t19:29:25.000z</published> <updated>2007-09-28t17:56:20.000z</updated> <name>gregor's Conferences</name> <gd:comments> <gd:feedlink href='http://www.google.com/calendar/feeds/ '/> </gd:comments> <gd:eventstatus value='http://schemas.google.com/g/2005#event.confirmed'/> <gd:transparency value='http://schemas.google.com/g/2005#event.transparent'/> <gd:when starttime='2007-10-23' endtime='2007-10-27'/> <gd:who rel='http://schemas.google.com/g/2005#event.organizer' valuestring='gregor&apos;s Conferences email= @group.calendar.google.com'/> <gd:where valuestring='keystone Resort, Colorado'/> </entry> 2008 Google, Inc. All rights reserved, 10 5

Google Mashup Editor AJAX development framework Rich rendering off data feeds using templates Tags Library for data display and entry: List, map, calendar, template Browser-based IDE One click deployment Event model for rich user interactivity Feeds or user entered data (by application / by user) 2008 Google, Inc. All rights reserved, 11 Simple GME Example 2008 Google, Inc. All rights reserved, 12 6

Mashup Editor Application Source <gm:page title="where is Gregor?" authenticate="false"> <h1>where is Gregor?</h1> <table width="900"> <tr valign="top"> <td width="300"> <gm:list id="mylist" sort="title"> <gm:handleevent src="mymap"/> <gm:sort name="title" ref="atom:title"/> </gm:list> </td> <td class="mainpanel"> <gm:map id="mymap" data="${mylist}" infotemplate="itemtemplate geolocationref="gd:where/@valuestring"> <gm:handleevent src="mylist"/> </gm:map> </td> </tr> </table> <gm:template id="itemtemplate"> <div> <b><gm:link ref="atom:content" labelref="atom:title"/></b><br/> <gm:text ref="gd:when/@starttime"/><br/> <gm:text ref="gd:where/@valuestring"/> </div> </gm:template> </gm:page> 2008 Google, Inc. All rights reserved, 13 Google AppEngine Your code on Google infrastructure Python source code Develop locally, deploy to Cloud API support for User login and identity Persistent state URL Fetch Mail Python libraries Django Templates http://appgallery.appspot.com/ 2008 Google, Inc. All rights reserved, 14 7

Demo App: Event Feedback 2008 Google, Inc. All rights reserved, 15 CGI Handlers Webapp - WSGI library (Web Server Gateway Interface) Register handlers for URLs def main(): application = webapp.wsgiapplication( [('/', MainPage), ('/form', CommentForm), ('/add', AddComment) ], debug=true) wsgiref.handlers.cgihandler().run(application) fetcher.py application: fetcher version: 1 runtime: python handlers: - url: /stylesheets static_dir: stylesheets - url: /.* script: fetcher.py app.yaml 2008 Google, Inc. All rights reserved, 16 8

Data Access Models ( schema) and Entities No RDBMS, but SQL-like syntax class Comment(db.Model): author = db.userproperty() eventkey = db.stringproperty() comment = db.stringproperty(multiline=true) date = db.datetimeproperty(auto_now_add=true) comments = db.gqlquery( "SELECT * FROM Comment WHERE eventkey='%s'" % id) for c in comments: if c.comment: self.response.out.write(c.comment) comment = Comment() comment.author = users.get_current_user() comment.comment = self.request.get('content') comment.eventkey = self.request.get('id') comment.put() Declare Query Insert / Update 2008 Google, Inc. All rights reserved, 17 Templates Outputting HTML with code is tedious and ugly Based on Django <html> <body> {% for greeting in greetings %} {% if greeting.author %} <b>{{ greeting.author.nickname }}</b> wrote: {% else %} An anonymous person wrote: {% endif %} {% endfor %} <a href="{{ url }}">{{ url_linktext }}</a> </body> </html> 2008 Google, Inc. All rights reserved, 18 9

Some Reflection New Programming Models Declarative within HTML DOM tree Data pipeline (Yahoo! Pipes) New era of Copy-paste development If it does not have a URL, is not cool Development as a social network Some problems not (yet) going away Encodings, Unicode, entities XPath lurking behind Authentication schemes 2008 Google, Inc. All rights reserved, 19 More Info Products code.google.com/apis code.google.com/gme code.google.com/appengine pipes.yahoo.com Market Watch / Directories programmableweb.com readwriteweb.com Events Google Developer Day Mashup Camp Blog www.eaipatterns.com/ramblings.html googledataapis.blogspot.com/ Gregor Hohpe Bobby Woolf Addison-Wesley 2003 2008 Google, Inc. All rights reserved, 20 10