Slideshare.net (beta)

 

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 1 (more)

Google Apis for the Enterprise

From chanezon, 1 month ago

Many bridges, using different technologies<br />- No new SOAP API plan more

1615 views  |  0 comments  |  1 favorite  |  35 downloads  |  2 embeds (Stats)
 

Tags

google apis enterprise enterprise20 web20 web webservices rest dgata gwt

more

 
 

Groups / Events

 

 
Embed
options

More Info

This slideshow is Public
Total Views: 1615
on Slideshare: 1519
from embeds: 96

Slideshow transcript

Slide 1: APIs Google pour l'Entreprise Les pieds sur terre... ...et la tete dans les nuages Patrick Chanezon, Google, chanezon@google.com July 2nd 2008 API Evangelist

Slide 2: Google APIs Evangelist: Patrick Chanezon • Paris - San Francisco • API Evangelist - OpenSocial • Checkout, AdWords • Software plumber • Java geek… in scripting rehab: Ruby, JavaScript, PHP, Python • Open Source: ROME, AdWords (Java, C#, Ruby), OSSGTP • Sun: Blogs, Portals, eCommerce • Netscape/AOL: LDAP, Calendar, App Servers, CMS, MyNetscape (RSS) • More on my blog http://wordpress.chanezon.com • Links and slides at http://del.icio.us/chanezon/

Slide 3: Agenda Google APIs Buzzwords & Definitions API: Platforms and Bridges API technologies: SOAP, REST and Ajax Google APIs for Enterprise Mashups • Enterprise o Enterprise OneBox • Geo o Maps o Earth • Apps: GData API for Calendar, Docs, Spreadsheet, Document List, User Provisioning • AdWords • Open Source o Gears o GWT http://code.google.com/apis/ http://code.google.com/enterprise/

Slide 4: Google APIs (Circa November 2006, Mainz) Why are we doing do it? • Our mission: “Organize the world’s information and make it universally accessible and useful” o We can’t organize it all ourselves 14 Google APIs on http://code.google.com… and counting! • Google Data • Enterprise API APIs o Calendar • Homepage API API • Maps API • Related Links • AdWords API • Sitemaps • Blogger API • Talk (XMPP) • Data APIs • Toolbar API • Desktop SDK • Web Search • Earth (KML) API

Slide 5: Google APIs (Circa May 2007, Buenos Aires) Why are we doing do it? Our mission: “Organize the world’s information and make it universally accessible and useful” We can’t organize it all ourselves 32 Google APIs on http://code.google.com… and counting! • Checkout API • Enterprise APIs • Data API • Homepage API o 8 services • YouTube API • Maps API • Sitemaps • AdWords API • Talk (XMPP) • Ajax Search API • Toolbar API • Ajax Feed API • Google Web • Desktop SDK Toolkit • …

Slide 6: Google APIs (Circa September 2007, San Francisco) Why are we doing do it? Our mission: “Organize the world’s information and make it universally accessible and useful” We can’t organize it all ourselves 37 Google APIs on http://code.google.com/apis… and counting! • Checkout API • Enterprise APIs • Data API • Homepage API o 8 services • YouTube API • Maps API • Sitemaps • AdWords API • Talk (XMPP) • Ajax Search API • Toolbar API • Ajax Feed API • Google Web • Desktop SDK Toolkit • …

Slide 7: Google APIs (Circa April 2008, Redwood City) Why are we doing do it? Our mission (it has not changed): “Organize the world’s information and make it universally accessible and useful” We can’t organize it all ourselves N Google APIs on http://code.google.com/apis… and counting! Let’s script it so that I can reuse this slide wget http://code.google.com/more/ -q -O - | grep products-short-desc | wc -l 55 Including 3 Platforms

Slide 8: Google APIs Today (July 2008, Paris) Why are we doing do it? Our mission (it has not changed): “Organize the world’s information and make it universally accessible and useful” We can’t organize it all ourselves N Google APIs on http://code.google.com/apis… and counting! I had to modify my script since april: http://wordpress.chanezon.com/?p=60 var window = new Object(); load('http://code.google.com/js/codesite_product_dictionary.js'); print(window['CODESITE_productDictionary'].products.keys.length); 61 Including 4 Platforms

Slide 9: Google APIs Trends

Slide 10: Google APIs Grandfather Nelson Minar Created APIs at Google Search API 2002 AdWords API 2005 2006, blog post “Why SOAP Sucks” http://tinyurl.com/ykdy32

Slide 11: Buzzwords & Definitions SOA Loose Coupling Identity APIs SOAP/WSDL Composition SSO BI REST Pipes Provisioning Workflow Ajax RSS, Atom HTTP Portals Mashups Orchestration XML WSRP SOBA Governance Javascript Situational Software Web 2.0 Open Source JSON Social Networks Wiki SaaS, MaaS Microformats

Slide 12: Buzzwords & Definitions SOA Loose Coupling Identity APIs SOAP/WSDL Composition SSO BI REST Pipes Provisioning Workflow Ajax RSS, Atom HTTP Portals Mashups Orchestration XML WSRP SOBA Governance Javascript Situational Software Web 2.0 Open Source JSON Social Networks Wiki SaaS, MaaS Microformats

Slide 13: Tag Clouds for Mashups: Enterprise?

Slide 14: API Metaphor Bridges User - Search results (Ajax Search) User - Maps (Maps) User - Data (Gdata) Ajax Buyers - Sellers (Checkout) Advertiser Ads (AdWords) Publishers - Ads (AdSense) Build your own bridge (Google Web Toolkit) REST SOAP

Slide 15: API Metaphor Bridges User - Search results (Ajax Search) User - Maps (Maps) User - Data (Gdata) Ajax Buyers - Sellers (Checkout) Advertiser Ads (AdWords) Publishers - Ads (AdSense) Build your own bridge (Google Web Toolkit) REST SOAP

Slide 16: API Metaphor Bridges User - Search results (Ajax Search) User - Maps (Maps) User - Data (Gdata) Ajax Buyers - Sellers (Checkout) Advertiser Ads (AdWords) Publishers - Ads (AdSense) Build your own bridge (Google Web Toolkit) REST SOAP

Slide 17: API Metaphor Bridges User - Search results (Ajax Search) User - Maps (Maps) User - Data (Gdata) Buyers - Sellers (Checkout) Ajax Advertiser Ads (AdWords) Publishers - Ads (AdSense) Build your own bridge (Google Web Toolkit, Gears, App Engine) REST SOAP

Slide 18: Don Isidro as a metaphor for Web Services Detective, rational mind, knows a lot, infers the rest Algorithms People look for his advice on issues Visit him in prison Get answers, can get going with their lives

Slide 19: Google APIs for Enterprise Google Mini & Search Appliances Regular OneBox

Slide 20: Enterprise Onebox

Slide 21: Enterprise OneBox API XML module file Specifies a trigger: keywords or regexp A provider: where to get the info, as XML Security: auth for the provider Templates: XSLT <onebox type="external"> <name>directory_example</name> <description>This is a sample OneBox that queries for phone directory information</description> <security userAuth="none"/> <trigger triggerType="keyword">directory</trigger> <providerURL>http://directory.corp.acme.com/phonebook</providerURL> <resultsTemplate>{xslt template} <resultsTemplate/> </onebox>

Slide 22: Google Maps API What is it? • Put Google Maps on your site for free, just like Frappr.com, housingmaps.com and chicagocrime.org • Overlay custom content, write custom functionality • Free to all web sites that are free to consumers (including commercial web sites) • V1 in june 2005, V2 in April 2006 • Maps for Enterprise o Behind the firewall mashups o Phone support o Geocoding backend for many locations

Slide 23: So how does Maps do work?

Slide 24: Maps JavaScript architecture CSS positioned map tiles with a cropped at the map border

Slide 25: Maps JavaScript architecture + + = + =

Slide 26: What you can do with the Google Maps API Switch between maps • “Map”, “Satellite” and “Hybrid” modes supported by default Overlays • Markers o Custom icons, shapes, etc • Polylines o e.g., driving directions lines • Custom overlays “Info window”, tabbed • You know, that cool window with the shadow underneath it Customizability • Custom map controls, overlays, and map types Overview map • New GOverviewMapControl control displays an attractive and collapsible map in the corner of the screen Support for a subset of KML (Google Earth data format)

Slide 27: Emphasis on Simplicity // Center the map on Westin Hotel in San Francisco var map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(37.787742,-122.408295), 13); // Add 10 markers to the map at random locations var bounds = map.getBounds(); var southWest = bounds.getSouthWest(); var northEast = bounds.getNorthEast(); var lngSpan = northEast.lng() - southWest.lng(); var latSpan = northEast.lat() - southWest.lat(); for (var i = 0; i < 10; i++) { var point = new GLatLng(southWest.lat() + latSpan * Math.random(), southWest.lng() + lngSpan * Math.random()); map.addOverlay(new GMarker(point)); }

Slide 29: A few cool Google Maps applications Maps Demo Gallery http://code.google.com/apis/maps/documentation/demogallery.html Useful/Cool • http://del.icio.us/chanezon/ajaxian+google+maps+app+cool Technically interesting • http://del.icio.us/chanezon/ajaxian+google+maps+app+tech

Slide 30: Maps API Web Resources • http://code.google.com/ • http://www.google.com/apis/maps • Google-Maps-API Developer Forum: http://groups.google.com/group/Google-Maps-API?lnk=li • Maps API blog: http://googlemapsapi.blogspot.com/ • Mike William’s tutorials: http://www.econym.demon.co.uk/googlemaps/ • http://del.icio.us/chanezon/google+maps

Slide 31: Maps API Books • The Ajaxians book: Pragmatic Ajax o implement your own Map UI in a day… then you have to do the server side:-) • The O’Reilly ones: o Google Maps Hacks o Mapping Hacks

Slide 32: Google Earth: KML • The Google Earth team don’t do 2D slides • Let’s do the presentation in KML:-) • http://www.chanezon.com/pat/presos/earth/flatland.kmz

Slide 33: Google Ajax APIs

Slide 34: Standard REST Plumbing for Google APIs Each service wants their own Data API: standardize on a common REST Plumbing • APIs = Plumbing "If I had my life to live over again, I'd be a plumber.” Albert Einstein

Slide 35: Google Data API REST API, Based on Atom and the Atom Publishing Protocol + Google namespaced service specific Data + AuthSub + Optimistic Concurrency "The release of atom power has changed everything except our way of thinking…” Albert Einstein

Slide 36: First Google Data API: Calendar GET, POST, PUT, DELETE Calendar Entries Released in April 2006 “...the solution to this problem lies in the heart of mankind. If only I had known, I should have become a watchmaker." Albert Einstein

Slide 37: 20 AtomPub based Data APIs From Videos to Spreadsheets "The secret to creativity is knowing how to hide your sources. Albert Einstein

Slide 38: quotes... “'Google Data APIs Protocol' is a horrible name. You can tell that ex-Microsoft employees had a hand in this effort. :)” Dare Obasanjo (Microsoft) Adam Bosworth on a bike

Slide 39: Applications Outlook sync • Daniel Tiles, RemoteCalendars Cell Phone Sync • Thomas Oldervoll’s Gcalsync, J2ME midlet RDFCalendar XVCD • By Justsystems Corporation: Google, eventful, upcoming Remember The Milk

Slide 40: Resources • http://code.google.com/ • http://code.google.com/apis/gdata/overview.html • http://code.google.com/apis/gdata/calendar.html • Google Calendar Data API Developer Forum: http://groups.google.com/group/google-calendar-help-dataapi?lnk=li • http://del.icio.us/chanezon/gdata • “RESTful Web Services” Sam Ruby, Leonard Richardson

Slide 41: GData for the Enterprise Google Apps for your Domain GData APIs for Calendar, Spreadsheet, Document List Google Apps APIs • User Provisioning Gdata: CRUD on users and lists • Reporting: post XML, receive CSV • SSO: SAML

Slide 42: SAML for Google Apps for Your Domain

Slide 43: Google Gears: Offline capabilities Offline • Local Server: cache for HTML, js, css • Local SQLite Database: for application data WorkerPool: like processes for javascript • More responsive applications A few applications use it already • Google Reader • Zoho Writer • Remember the Milk Salesforce Tutorial: Gears + GWT + Salesforce SOAP API

Slide 44: Google Web Toolkit What, Why, and How Joel Webber Google, Inc.

Slide 45: What is Google Web Toolkit (GWT)? What is GWT? • A set of tools for building AJAX apps in the Java language • Open Source (Apache 2.0 license) What makes GWT interesting? • Write, run, test, and debug everything in Java, both client-side UI code and server-side business logic Isn’t that called an applet? • No JVM required • GWT converts your working Java source into pure JavaScript GWT is a compiler? • GWT’s Java-to-JavaScript compiler is a big part of it, but there’s really a lot more to the story than that…

Slide 46: Code Sample – Hello, AJAX Without further ado… public class Hello implements EntryPoint { public void onModuleLoad() { Button b = new Button("Click me", new ClickListener() { public void onClick(Widget sender) { Window.alert("Hello, AJAX"); } }); RootPanel.get().add(b); } }

Slide 47: Traditional HTML vs. GWT/Ajax Traditional 0110011 0 HTML 0111100 1 0110101 Stateless User 1 action Stateful HTML View Server Browser New HTML page 011001101101 111110010100 011010111101 110011010110 GWT/Ajax 0110 0111 Stateful Remote procedure call Stateless Events JavaScript UI (i.e. any) handled Browser Server locally Data only, not HTML 0110 1001 1011

Slide 48: Compilation: Optimized Per Client … Download exactly what you need … Your Code Your Code in a single can't-go-wrong chunk FireFox 1.0.x IE 6 en_US en_UK Single Java Code Base 1D04ADDA.cache.html 15F361BB.cache.html … … Your Code Your Code Safari 2.0.x Opera 9 Then cache it on the client fr_CA fr_FR until the sun explodes 7EFE4D24.cache.html D415D917.cache.html

Slide 49: GWT Summary Ajax is a lot of work… Make sure to build a code base you're glad to own Lots of rewards, lots of risks Leverage is needed to use Ajax well with minimum risk PhD in browser quirks is no longer an Ajax prereq Turn Ajax hacking into software engineering We will share our best work and ideas with you, and we hope you will return the favor Much more to come… see you online!

Slide 50: Kieden: an API and Cloud Success Story 2005: 3 guys in an appartment in San Francisco with their Powerbook and one server Mixed AdWords and SalesForce: created value Used SalesForce platform for the UI and Database AdWords API, accessed from their unique server, pushed to SalesForce Product done in 6 months Many SalesForce customers SalesForce bought them that summer Led to Google-SalesForce alliance in 2006

Slide 51: Salesforce for Google AdWords

Slide 53: What Is Google Apps? Business GMail Run your corporate email on your own domain with Google Google Talk Instant communication within and outside your business Google Calendar Business calendar with shared, and public calendars Google Documents, Spreadsheets, Presentations Simple real-time document collaboration Google Sites Easily create and edit web pages for your projects and teams Google Start Page Your business home page, with views into all of your business apps

Slide 54: Salesforce + Google Apps = A Perfect Match Salesforce Salesforce and Salesforce and Salesforce and and Gmail Google Docs Google Talk Google Calendar

Slide 55: Google APIs Godfather: Chris DiBona http://code.google.com/opensource/ Google Open Source Program office • Summer of Code • Project Hosting • Over 1M lines of Google code open sourced in more than 100 projects

Slide 56: Platforms, Standards and Open Source Making the web better, by solving big issues for developers: Ajax Applications Offline web applications Social Applications: OpenSocial Mobile applications Scaling web applications: Google App Engine

Slide 59: OpenSocial A common API for social applications across multiple web sites

Slide 60: A standard for everyone This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License

Slide 61: OpenSocial Foundation OpenSocial Foundation http://opensocial.org/ Keep the specification open Specifications discussed in public forum Spec evolves using an open source community process

Slide 63: OpenSocial Containers friendster®

Slide 64: OpenSocial Numbers • 88 days old • 275,000,000 users • 66,000,000 installs • 2,000+ apps • 20,000 developers • 10,000,000 daily app users

Slide 65: Standards-based html+javascript+REST+oauth

Slide 66: Why should you care about OpenSocial? • Developers: Distribution >275 Million users • Containers: Features • Users: More applications

Slide 67: OpenSocial Client API • JavaScript - version 0.7 production o Standard Web development technologies  HTML + Javascript o Can integrate with 3rd party server • REST Services o Based on Atom publishing protocol o AtomPub and JSON

Slide 68: OpenSocial JavaScript API The core OpenSocial Services include • People & Friends o Access friends information programmatically • Activities o See what you’re friends are up to o Share what you are doing • Persistence o Provide state without a server o Share data with your friends

Slide 69: Server-side REST Services Accessing People information /people/{guid}/@all -- Collection of all people connected to user {guid} /people/{guid}/@friends -- Collection of all friends of user {guid} -- subset of @all /people/{guid}/@self -- Profile record for user {guid} /people/@me/@self -- Profile record for requestor

Slide 70: OpenSocial ServerSide Integration Options In addition to using the provided persistence API... • Establish a "home" site where gadget can phone home to retrieve, post data • Can host home site on your own, or use services: o Amazon EC2 o Joyent o Google AppEngine

Slide 71: Cloud Computing

Slide 72: Google AppEngine and OpenSocial • Create an App Engine app as your backend! o Use makeRequest() to call back to your AppEngine server o Utilize AppEngine's datastore • New OpenSocial Apps are coming online o BuddyPoke... • Checkout Lane Liabraaten’s OpenSocial-AppEngine integration article o http://code.google.com/apis/opensocial/articles/appengine.html • Google IO Code Lab about OpenSocial Apps in the Cloud

Slide 73: Apache Shindig • What is Shindig? o Open source software that allows you to host OpenSocial applications • Is currently an Apache Software Incubator project • Heavy partner involvement (Ning, hi5 …) • Serves as open source reference implementation of OpenSocial & gadgets technologies It’s Goal: “Shindig's goal is to allow new sites to start hosting social apps in well under an hour's worth of work"

Slide 74: Apache Shindig Info... Apache Shindig Website http://incubator.apache.org/shindig

Slide 75: SocialSite • SocialSite is an Open Source project that allows you to turn your web application in an OpenSocial container • Leverages Apache Shindig • Built by Sun (Dave "Roller" Johnson), announced at JavaOne this month • Adds a database and widgets to manage your social network

Slide 76: SocialSite Architecture Details at https://socialsite.dev.java.net/

Slide 77: Google Friend Connect

Slide 78: Google Friend Connect • Users o ... more ways to do more things with my friends • Site owners o ... more (and more engaged) traffic for my site • App developers o ... more reach for my apps • http://google.com/friendconnect/ • sign up for the preview release

Slide 79: ingridmichaelson.com

Slide 80: The 55th API: Google App Engine BigTable and GFS exposed in Python Google APIs: Auth and Mail Automatic Scaling and Load Balancing Open Source local development environment

Slide 81: Google App Engine "We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.” Larry Wall, Programming Perl (1st edition), Oreilly And Associates (see Jeremy Zawodny’s talk this afternoon for details) Works for Python programmers too:-) Larry and Guido, Credits Tim Bray

Slide 82: API Lessons All Services can benefit from an API: “Innovation happens elsewhere” Solve big problems for developers All APIs should be self service No ideology for technology choices: pragmatism wins Listen to developers, Participate in the conversation Open Source, Open Standards better than closed Platforms Code speaks better than Slideware Get started today at http://code.google.com/

Slide 83: Conclusion Many bridges, using different technologies • No new SOAP API planned • REST for data and message APIs: Gdata • Ajax to surface customizable controls and enable mashups • Google Web Toolkit to build your own Ajax applications easily • Gears for offline support • Google App Engine for easy scalability • OpenSocial for the social enterprise Exposing many Google services for Enterprises… and more to come: give it a try!

Slide 84: Credits This presentation is a mashup of presentations by many Googlers, ex-Googlers and Google friends Bret Taylor Product Manager, Maps, GWT Steffen Meschkat Software Engineer, Maps Frank Mantek Software Engineer, GData Thomas Steiner, tsteiner@google.com Intern AdWords API Joel Webber Software Engineer, Google Web Toolkit Scott McMullan Partner Engineer, Google Apps

Slide 85: Questions

Slide 86: Google Apps in the Enterprise Enterprises — Fortune 500 and Academic and Small and Mid-Size Public Sector Non-Profits Businesses