SlideShare a Scribd company logo
YAP: Deep Dive Yahoo! Application Platform Tony Ng Director of Engineering
Agenda Quick Recap Developer Dashboard Yahoo! Markup Language (YML) Open Social Caja
YAP: Quick Recap Platform that enables applications to run on Yahoo! home page and My Yahoo! YAP Components: Developer dashboard APIs and web services Secure runtime and rendering proxy Distribution and discovery infrastructure
Open Yahoo!: Audience is the Platform
Anatomy of YAP Application
3 Simple Things to Define for Each Application Application metadata name, description, icons, screenshot, category Small view Canvas view
Small View Personalized snapshot of application Fast response time
Canvas View Full, interactive view of application
Demo – Create Your First YAP App
Demo – Create Your First YAP App
YAP Programming Model App logic hosted on dev server YAP proxies user request to dev server, passing parameters via HTTP POST: Viewer guid, timezone, country code canvas, view, app id Viewer access token, secret, timestamp YAP consumer key and request signature Image URLs returned from dev server are rewritten and cached by YAP 2 & 3 legged OAuth is used for protected resource access
Small View Programming Model Content hosted by YAP Written in HTML, CSS and Yahoo! Markup Language (YML) No JavaScript Two ways to provide dynamic, personalized small view: setSmallView(guid, newSV) yml:include
Canvas View Programming Model Content hosted by developer server Application URL YAP proxies all requests to dev server Use any programming language / framework JavaScript is allowed (subject to Caja sanitization) Making Ajax requests Use YML Use Open Social gadgets.io.makeRequest
Accessing Social Data from Application User social data available profile, address book, updates, status Multiple ways to access data YML Open Social JS / REST API Yahoo! Query Language (YQL) WS call to Yahoo! Social APIs Leverage Yahoo! SDK to simplify code
Yahoo! Markup Language (YML) Simple markup language for  Dynamic web content Social data access Media content Viral sharing Hide security details from application Can be used in Small and Canvas views Especially useful in Small view since JavaScript is not allowed
YML: Dynamic Web Content / Ajax yml:a Update web content upon user clicking yml:form Create web form and update web content upon user clicking yml:include Refresh web content dynamically
Implementing Tab Views with yml:a <yml:a view=“tagsearch.php” replace=“content1”>Search by tags</yml:a> … <div id=“content1”> … </div> User clicks on tab
Dynamic Content Loading with yml:include <yml:include view=“topApps.php” replace=“content1”>Loading top apps…  </yml:include> … <div id=“content1”> … </div>
YML: Social Data Access yml:friend-selector Present and select a list of friends yml:name, yml:profile-pic, yml:pronoun, yml:user-badge Display user name / profile picture information Example <yml:profile-pic uid=“viewer” width=“60”><br> Hi, my name is <yml:name/>
YML: Media Content yml:swf (Canvas view only) Includes Flash object yml:audio Creates audio player that plays MP3 files yml:ad (Canvas view only) Includes third party advertising network content Example: Embedding Flash Content using yml:swf <yml:swf src=&quot;http://www.youtube.com/v/MqbaZcX67L0&quot; width=&quot;560&quot; height=&quot;340&quot;/>
YML: Viral Sharing (Canvas View only) yml:share Creates standard form that opens a message dialog for sharing the application yml:message Creates customizable form that opens a message dialog for sending notifcations from application Example <yml:share>   <input type=&quot;submit&quot; value=&quot;Invite Friends”> </yml:/share>
YML Demo
YML Demo
YML Demo
YAP and Open Social Open Social API for accessing user social data Implemented by several social web sites, including Yahoo! Yahoo! is board member of Open Social Foundation YAP supports Open Social 0.8 JS, REST and Gadget Core APIs OS Activity mapped to Yahoo! Updates API OS Person / People mapped to Yahoo! Profile and Connections gadget.xml and 0.9 support coming
Making Ajax Request in YAP With proxy model, direct XHR cannot reach developer server Two ways: <yml:a>, <yml:include> Open Social gadgets.io.makeRequest API
Open Social Demo: Ajax Request
Open Social Demo: Ajax Request
Open Social Demo: Ajax Request
Open Social Demo: Publish Yahoo! Updates
Open Social Demo: Publish Yahoo! Updates
Open Social Demo: Publish Yahoo! Updates
Securing Third Party Code – Caja Additional “sandbox” on top of iFrame protection One of the first to integrate Caja in production Enables Yahoo! to embed third party applications safely Aggressively re-write and remove unsafe HTML / CSS / JavaScript
Caja Restrictions No direct access to implied global objects Proxy access to DOM No document.write (use innerHTML) No <embed>, <object>, <iframe> No eval, with, this No JavaScript:void(0) Some CSS hacks No external CSS and JavaScript (inlined only)
Caja Examples See Caja limitation doc for workarounds http://developer.yahoo.com/yap/caja Instead of Use document.write() <var x = document.getElementById(‘x’); x.innerHTML = ‘abc’; javascript:void(0) <a href=&quot;#&quot; onclick=&quot;click(); return false&quot;>click</a>  <link rel=stylesheet> <script src=“…” /> @import Inline CSS and JS <object>, <embed> <swf> for Flash object
Caja Best Practices Adhere to W3C standards (HTML 4.01 and CSS 2.1) Use YML Push more logic to server-side Use supported JS library Open Social 0.8, YUI 2.8 subset Use JSLint and Caja test bed http://www.jslint.com http://cajadores.com/demos/testbed/
YUI 2 / Caja Beta support for YUI 2.8 YUI Core YAHOO, DOM, Event utility YUI Utilities Animation, DataSource, DragNDrop, Element, ImageLoader, Resize, Selector YUI Library Controls / Widgets AutoComplete, Button, Container, Menu, TabView, TreeView Available on YAP preview server preview.apps.yahoo.com
Summary and Call to Action Use YAP to expose your application on the Yahoo! Home page to over 330 million users Create an YAP app hack! We are here to help Learn more about YAP: Building Your App on Yahoo! – Partner Perspective (3pm) Yahoo! Social APIs & SDKs (4:10pm) Yahoo! App Marketing (4pm)
Developer Resources YAP – developer.yahoo.com/yap/homepage Dev Tool – developer.yahoo.com/dashboard Dev Guide – developer.yahoo.com/yap/guide Forum – developer.yahoo.com/forum Samples – developer.yahoo.com/yos/code_exs SDKs – developer.yahoo.com/social/sdk Joyent Free Hosting – signup.joyent.com/yahoo_signup
YAP: Deep Dive Yahoo! Application Platform Tony Ng [email_address]

More Related Content

What's hot

OAuth Introduction
OAuth IntroductionOAuth Introduction
OAuth Introduction
h_marvin
 
What's New on the Facebook Platform, July 2011
What's New on the Facebook Platform, July 2011What's New on the Facebook Platform, July 2011
What's New on the Facebook Platform, July 2011
Iskandar Najmuddin
 
aria-live: the good, the bad and the ugly
aria-live: the good, the bad and the uglyaria-live: the good, the bad and the ugly
aria-live: the good, the bad and the ugly
Russ Weakley
 
Migrating JavaME Apps to Android
Migrating JavaME Apps to AndroidMigrating JavaME Apps to Android
Migrating JavaME Apps to Android
Motorola Mobility - MOTODEV
 
Ionic by Example
Ionic by ExampleIonic by Example
Ionic by Example
Michal Haták
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web Components
Russ Weakley
 
Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)
Colin Su
 
Introduction to OAuth 2.0 - Part 2
Introduction to OAuth 2.0 - Part 2Introduction to OAuth 2.0 - Part 2
Introduction to OAuth 2.0 - Part 2
Nabeel Yoosuf
 
Building accessible web components without tears
Building accessible web components without tearsBuilding accessible web components without tears
Building accessible web components without tears
Russ Weakley
 
Layout
LayoutLayout
Layout
deepikasony
 
04 user interfaces
04 user interfaces04 user interfaces
04 user interfaces
C.o. Nieto
 
11.1 Android with HTML
11.1 Android with HTML11.1 Android with HTML
11.1 Android with HTML
Oum Saokosal
 
The Wide World Of Google Developer Technologies (STLIC 02-10)
The Wide World Of Google Developer Technologies (STLIC 02-10)The Wide World Of Google Developer Technologies (STLIC 02-10)
The Wide World Of Google Developer Technologies (STLIC 02-10)
jasonacooper
 
Deep linking slides
Deep linking slidesDeep linking slides
Deep linking slides
Personagraph
 
Beyond the Basics, Debugging with Firebug and Web Inspector
Beyond the Basics, Debugging with Firebug and Web InspectorBeyond the Basics, Debugging with Firebug and Web Inspector
Beyond the Basics, Debugging with Firebug and Web Inspector
Steven Roussey
 
"Twitter and Web Accessibility" INDATA Conference 2010
"Twitter and Web Accessibility" INDATA Conference 2010"Twitter and Web Accessibility" INDATA Conference 2010
"Twitter and Web Accessibility" INDATA Conference 2010
Dennis Lembree
 
Introduction to OAuth 2.0 - Part 1
Introduction to OAuth 2.0 - Part 1Introduction to OAuth 2.0 - Part 1
Introduction to OAuth 2.0 - Part 1
Nabeel Yoosuf
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
Raveendra R
 
PPT
PPTPPT
Introduction to OAuth 2.0 - Part 1
Introduction to OAuth 2.0  - Part 1Introduction to OAuth 2.0  - Part 1
Introduction to OAuth 2.0 - Part 1
Nabeel Yoosuf
 

What's hot (20)

OAuth Introduction
OAuth IntroductionOAuth Introduction
OAuth Introduction
 
What's New on the Facebook Platform, July 2011
What's New on the Facebook Platform, July 2011What's New on the Facebook Platform, July 2011
What's New on the Facebook Platform, July 2011
 
aria-live: the good, the bad and the ugly
aria-live: the good, the bad and the uglyaria-live: the good, the bad and the ugly
aria-live: the good, the bad and the ugly
 
Migrating JavaME Apps to Android
Migrating JavaME Apps to AndroidMigrating JavaME Apps to Android
Migrating JavaME Apps to Android
 
Ionic by Example
Ionic by ExampleIonic by Example
Ionic by Example
 
Building Accessible Web Components
Building Accessible Web ComponentsBuilding Accessible Web Components
Building Accessible Web Components
 
Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)Introduction to Facebook Javascript SDK (NEW)
Introduction to Facebook Javascript SDK (NEW)
 
Introduction to OAuth 2.0 - Part 2
Introduction to OAuth 2.0 - Part 2Introduction to OAuth 2.0 - Part 2
Introduction to OAuth 2.0 - Part 2
 
Building accessible web components without tears
Building accessible web components without tearsBuilding accessible web components without tears
Building accessible web components without tears
 
Layout
LayoutLayout
Layout
 
04 user interfaces
04 user interfaces04 user interfaces
04 user interfaces
 
11.1 Android with HTML
11.1 Android with HTML11.1 Android with HTML
11.1 Android with HTML
 
The Wide World Of Google Developer Technologies (STLIC 02-10)
The Wide World Of Google Developer Technologies (STLIC 02-10)The Wide World Of Google Developer Technologies (STLIC 02-10)
The Wide World Of Google Developer Technologies (STLIC 02-10)
 
Deep linking slides
Deep linking slidesDeep linking slides
Deep linking slides
 
Beyond the Basics, Debugging with Firebug and Web Inspector
Beyond the Basics, Debugging with Firebug and Web InspectorBeyond the Basics, Debugging with Firebug and Web Inspector
Beyond the Basics, Debugging with Firebug and Web Inspector
 
"Twitter and Web Accessibility" INDATA Conference 2010
"Twitter and Web Accessibility" INDATA Conference 2010"Twitter and Web Accessibility" INDATA Conference 2010
"Twitter and Web Accessibility" INDATA Conference 2010
 
Introduction to OAuth 2.0 - Part 1
Introduction to OAuth 2.0 - Part 1Introduction to OAuth 2.0 - Part 1
Introduction to OAuth 2.0 - Part 1
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
PPT
PPTPPT
PPT
 
Introduction to OAuth 2.0 - Part 1
Introduction to OAuth 2.0  - Part 1Introduction to OAuth 2.0  - Part 1
Introduction to OAuth 2.0 - Part 1
 

Viewers also liked

PayPal couchbase 2014
PayPal couchbase 2014PayPal couchbase 2014
PayPal couchbase 2014
Anil Madan
 
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley LabPaypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Deepak Nadig
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014
Sam Newman
 
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYEQCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
Randy Shoup
 
Pinterest Influencers Reveal Their Pinning Secrets
Pinterest Influencers Reveal Their Pinning SecretsPinterest Influencers Reveal Their Pinning Secrets
Pinterest Influencers Reveal Their Pinning Secrets
Vizified
 
Kristina M Klingler Resume
Kristina M Klingler ResumeKristina M Klingler Resume
Kristina M Klingler Resume
Kristina Klingler
 
Art in Dessert
Art in DessertArt in Dessert
Art in Dessert
Daegi Hong
 
입술 중간 과정
입술 중간 과정입술 중간 과정
입술 중간 과정
yimzin
 
preparing for a job interview
preparing for a job interviewpreparing for a job interview
preparing for a job interview
Venjonna Yanson
 
Kristina Klingler Resume 06/2016
Kristina Klingler Resume 06/2016Kristina Klingler Resume 06/2016
Kristina Klingler Resume 06/2016
Kristina Klingler
 
Cuestionario enfermeria en el ciclo vital
Cuestionario enfermeria en el ciclo vitalCuestionario enfermeria en el ciclo vital
Cuestionario enfermeria en el ciclo vital
Paula Sanhueza
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101
Jollen Chen
 
Assertiveness Skills
Assertiveness SkillsAssertiveness Skills
Assertiveness Skills
Charles Cotter, PhD
 
PayPal Behavioral Analytics on Hadoop
PayPal Behavioral Analytics on HadoopPayPal Behavioral Analytics on Hadoop
PayPal Behavioral Analytics on Hadoop
DataWorks Summit
 
Effective Job Interviewing _Dr. Kazi Golam Faruk
Effective Job Interviewing _Dr. Kazi Golam FarukEffective Job Interviewing _Dr. Kazi Golam Faruk
Effective Job Interviewing _Dr. Kazi Golam Faruk
Dr. Kazi Golam Faruk
 
Single Page WebApp Architecture
Single Page WebApp ArchitectureSingle Page WebApp Architecture
Single Page WebApp Architecture
Morgan Cheng
 
Austin Chang Resume
Austin Chang ResumeAustin Chang Resume
Austin Chang Resume
Austin Chang
 
Brian Jones Resume-2016-06-2p
Brian Jones Resume-2016-06-2pBrian Jones Resume-2016-06-2p
Brian Jones Resume-2016-06-2p
Brian Jones
 

Viewers also liked (19)

PayPal couchbase 2014
PayPal couchbase 2014PayPal couchbase 2014
PayPal couchbase 2014
 
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley LabPaypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
Paypal Platform: Evolving for simplicity and reach - IBM Silicon Valley Lab
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014
 
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYEQCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
QCon New York 2014 - Scalable, Reliable Analytics Infrastructure at KIXEYE
 
Pinterest Influencers Reveal Their Pinning Secrets
Pinterest Influencers Reveal Their Pinning SecretsPinterest Influencers Reveal Their Pinning Secrets
Pinterest Influencers Reveal Their Pinning Secrets
 
Kristina M Klingler Resume
Kristina M Klingler ResumeKristina M Klingler Resume
Kristina M Klingler Resume
 
Art in Dessert
Art in DessertArt in Dessert
Art in Dessert
 
입술 중간 과정
입술 중간 과정입술 중간 과정
입술 중간 과정
 
preparing for a job interview
preparing for a job interviewpreparing for a job interview
preparing for a job interview
 
Kristina Klingler Resume 06/2016
Kristina Klingler Resume 06/2016Kristina Klingler Resume 06/2016
Kristina Klingler Resume 06/2016
 
Triarms project
Triarms projectTriarms project
Triarms project
 
Cuestionario enfermeria en el ciclo vital
Cuestionario enfermeria en el ciclo vitalCuestionario enfermeria en el ciclo vital
Cuestionario enfermeria en el ciclo vital
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101
 
Assertiveness Skills
Assertiveness SkillsAssertiveness Skills
Assertiveness Skills
 
PayPal Behavioral Analytics on Hadoop
PayPal Behavioral Analytics on HadoopPayPal Behavioral Analytics on Hadoop
PayPal Behavioral Analytics on Hadoop
 
Effective Job Interviewing _Dr. Kazi Golam Faruk
Effective Job Interviewing _Dr. Kazi Golam FarukEffective Job Interviewing _Dr. Kazi Golam Faruk
Effective Job Interviewing _Dr. Kazi Golam Faruk
 
Single Page WebApp Architecture
Single Page WebApp ArchitectureSingle Page WebApp Architecture
Single Page WebApp Architecture
 
Austin Chang Resume
Austin Chang ResumeAustin Chang Resume
Austin Chang Resume
 
Brian Jones Resume-2016-06-2p
Brian Jones Resume-2016-06-2pBrian Jones Resume-2016-06-2p
Brian Jones Resume-2016-06-2p
 

Similar to Yahoo! Application Platform Technical Deep Dive

OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
Pamela Fox
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
Geoffrey Fox
 
Y!OS Overview and Deep Code Dive
Y!OS Overview and Deep Code DiveY!OS Overview and Deep Code Dive
Y!OS Overview and Deep Code Dive
Jonathan LeBlanc
 
Yahoo Application Platform - Hack Day 2009
Yahoo Application Platform - Hack Day 2009Yahoo Application Platform - Hack Day 2009
Yahoo Application Platform - Hack Day 2009
xavierlegros
 
UWash Hack U - Y!OS
UWash Hack U - Y!OSUWash Hack U - Y!OS
UWash Hack U - Y!OS
Jonathan LeBlanc
 
Hi5 Open Social
Hi5   Open SocialHi5   Open Social
Hi5 Open Social
Julia Foxworthy
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
Estelle Weyl
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Patrick Chanezon
 
Decoding the Web
Decoding the WebDecoding the Web
Decoding the Web
newcircle
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
marvin337
 
SEA Open Hack - YAP
SEA Open Hack - YAPSEA Open Hack - YAP
SEA Open Hack - YAP
Jonathan LeBlanc
 
Tw Mail Open Hack Day 2
Tw Mail Open Hack Day 2Tw Mail Open Hack Day 2
Tw Mail Open Hack Day 2
JH Lee
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
Lennart Schoors
 
YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011
kals_amit_kumar
 
Opensocial
OpensocialOpensocial
Yap hack u-2010
Yap hack u-2010Yap hack u-2010
Yap hack u-2010
Sudar Muthu
 
Building Web Hack Interfaces
Building Web Hack InterfacesBuilding Web Hack Interfaces
Building Web Hack Interfaces
Christian Heilmann
 
fowa miami
fowa miamifowa miami
fowa miami
Jonathan LeBlanc
 
Open social
Open socialOpen social
Open social
Tushar Gandhi
 
FOWA Miami 2009 - Y!OS
FOWA Miami 2009 - Y!OSFOWA Miami 2009 - Y!OS
FOWA Miami 2009 - Y!OS
Jonathan LeBlanc
 

Similar to Yahoo! Application Platform Technical Deep Dive (20)

OpenSocial Intro
OpenSocial IntroOpenSocial Intro
OpenSocial Intro
 
CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2CTS Conference Web 2.0 Tutorial Part 2
CTS Conference Web 2.0 Tutorial Part 2
 
Y!OS Overview and Deep Code Dive
Y!OS Overview and Deep Code DiveY!OS Overview and Deep Code Dive
Y!OS Overview and Deep Code Dive
 
Yahoo Application Platform - Hack Day 2009
Yahoo Application Platform - Hack Day 2009Yahoo Application Platform - Hack Day 2009
Yahoo Application Platform - Hack Day 2009
 
UWash Hack U - Y!OS
UWash Hack U - Y!OSUWash Hack U - Y!OS
UWash Hack U - Y!OS
 
Hi5 Open Social
Hi5   Open SocialHi5   Open Social
Hi5 Open Social
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
 
Decoding the Web
Decoding the WebDecoding the Web
Decoding the Web
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
SEA Open Hack - YAP
SEA Open Hack - YAPSEA Open Hack - YAP
SEA Open Hack - YAP
 
Tw Mail Open Hack Day 2
Tw Mail Open Hack Day 2Tw Mail Open Hack Day 2
Tw Mail Open Hack Day 2
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011
 
Opensocial
OpensocialOpensocial
Opensocial
 
Yap hack u-2010
Yap hack u-2010Yap hack u-2010
Yap hack u-2010
 
Building Web Hack Interfaces
Building Web Hack InterfacesBuilding Web Hack Interfaces
Building Web Hack Interfaces
 
fowa miami
fowa miamifowa miami
fowa miami
 
Open social
Open socialOpen social
Open social
 
FOWA Miami 2009 - Y!OS
FOWA Miami 2009 - Y!OSFOWA Miami 2009 - Y!OS
FOWA Miami 2009 - Y!OS
 

More from Tony Ng

Pulsar: Real-time Analytics at Scale with Kafka, Kylin and Druid
Pulsar: Real-time Analytics at Scale with Kafka, Kylin and DruidPulsar: Real-time Analytics at Scale with Kafka, Kylin and Druid
Pulsar: Real-time Analytics at Scale with Kafka, Kylin and Druid
Tony Ng
 
eBay Experimentation Platform on Hadoop
eBay Experimentation Platform on HadoopeBay Experimentation Platform on Hadoop
eBay Experimentation Platform on Hadoop
Tony Ng
 
Pulsar - Real-time Analytics at Scale
Pulsar - Real-time Analytics at ScalePulsar - Real-time Analytics at Scale
Pulsar - Real-time Analytics at Scale
Tony Ng
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
Tony Ng
 
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture
Tony Ng
 
Calling All Modularity Solutions: A Comparative Study from eBay
Calling All Modularity Solutions: A Comparative Study from eBayCalling All Modularity Solutions: A Comparative Study from eBay
Calling All Modularity Solutions: A Comparative Study from eBay
Tony Ng
 

More from Tony Ng (6)

Pulsar: Real-time Analytics at Scale with Kafka, Kylin and Druid
Pulsar: Real-time Analytics at Scale with Kafka, Kylin and DruidPulsar: Real-time Analytics at Scale with Kafka, Kylin and Druid
Pulsar: Real-time Analytics at Scale with Kafka, Kylin and Druid
 
eBay Experimentation Platform on Hadoop
eBay Experimentation Platform on HadoopeBay Experimentation Platform on Hadoop
eBay Experimentation Platform on Hadoop
 
Pulsar - Real-time Analytics at Scale
Pulsar - Real-time Analytics at ScalePulsar - Real-time Analytics at Scale
Pulsar - Real-time Analytics at Scale
 
Enterprise OSGi at eBay
Enterprise OSGi at eBayEnterprise OSGi at eBay
Enterprise OSGi at eBay
 
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture
 
Calling All Modularity Solutions: A Comparative Study from eBay
Calling All Modularity Solutions: A Comparative Study from eBayCalling All Modularity Solutions: A Comparative Study from eBay
Calling All Modularity Solutions: A Comparative Study from eBay
 

Recently uploaded

Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
BrainSell Technologies
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
Steven Carlson
 
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
Priyanka Aash
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
SubhamMandal40
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Torry Harris
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
DianaGray10
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
David Wilson
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Networks
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
bellared2
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
Brian Pichman
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
ldtexsolbl
 

Recently uploaded (20)

Acumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptxAcumatica vs. Sage Intacct _Construction_July (1).pptx
Acumatica vs. Sage Intacct _Construction_July (1).pptx
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Vulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive OverviewVulnerability Management: A Comprehensive Overview
Vulnerability Management: A Comprehensive Overview
 
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
Sonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdfSonkoloniya documentation - ONEprojukti.pdf
Sonkoloniya documentation - ONEprojukti.pdf
 
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...Evolution of iPaaS - simplify IT workloads to provide a unified view of  data...
Evolution of iPaaS - simplify IT workloads to provide a unified view of data...
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
 
IPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite SolutionIPLOOK Remote-Sensing Satellite Solution
IPLOOK Remote-Sensing Satellite Solution
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
Russian Girls Call Navi Mumbai 🎈🔥9920725232 🔥💋🎈 Provide Best And Top Girl Ser...
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
 

Yahoo! Application Platform Technical Deep Dive

  • 1. YAP: Deep Dive Yahoo! Application Platform Tony Ng Director of Engineering
  • 2. Agenda Quick Recap Developer Dashboard Yahoo! Markup Language (YML) Open Social Caja
  • 3. YAP: Quick Recap Platform that enables applications to run on Yahoo! home page and My Yahoo! YAP Components: Developer dashboard APIs and web services Secure runtime and rendering proxy Distribution and discovery infrastructure
  • 4. Open Yahoo!: Audience is the Platform
  • 5. Anatomy of YAP Application
  • 6. 3 Simple Things to Define for Each Application Application metadata name, description, icons, screenshot, category Small view Canvas view
  • 7. Small View Personalized snapshot of application Fast response time
  • 8. Canvas View Full, interactive view of application
  • 9. Demo – Create Your First YAP App
  • 10. Demo – Create Your First YAP App
  • 11. YAP Programming Model App logic hosted on dev server YAP proxies user request to dev server, passing parameters via HTTP POST: Viewer guid, timezone, country code canvas, view, app id Viewer access token, secret, timestamp YAP consumer key and request signature Image URLs returned from dev server are rewritten and cached by YAP 2 & 3 legged OAuth is used for protected resource access
  • 12. Small View Programming Model Content hosted by YAP Written in HTML, CSS and Yahoo! Markup Language (YML) No JavaScript Two ways to provide dynamic, personalized small view: setSmallView(guid, newSV) yml:include
  • 13. Canvas View Programming Model Content hosted by developer server Application URL YAP proxies all requests to dev server Use any programming language / framework JavaScript is allowed (subject to Caja sanitization) Making Ajax requests Use YML Use Open Social gadgets.io.makeRequest
  • 14. Accessing Social Data from Application User social data available profile, address book, updates, status Multiple ways to access data YML Open Social JS / REST API Yahoo! Query Language (YQL) WS call to Yahoo! Social APIs Leverage Yahoo! SDK to simplify code
  • 15. Yahoo! Markup Language (YML) Simple markup language for Dynamic web content Social data access Media content Viral sharing Hide security details from application Can be used in Small and Canvas views Especially useful in Small view since JavaScript is not allowed
  • 16. YML: Dynamic Web Content / Ajax yml:a Update web content upon user clicking yml:form Create web form and update web content upon user clicking yml:include Refresh web content dynamically
  • 17. Implementing Tab Views with yml:a <yml:a view=“tagsearch.php” replace=“content1”>Search by tags</yml:a> … <div id=“content1”> … </div> User clicks on tab
  • 18. Dynamic Content Loading with yml:include <yml:include view=“topApps.php” replace=“content1”>Loading top apps… </yml:include> … <div id=“content1”> … </div>
  • 19. YML: Social Data Access yml:friend-selector Present and select a list of friends yml:name, yml:profile-pic, yml:pronoun, yml:user-badge Display user name / profile picture information Example <yml:profile-pic uid=“viewer” width=“60”><br> Hi, my name is <yml:name/>
  • 20. YML: Media Content yml:swf (Canvas view only) Includes Flash object yml:audio Creates audio player that plays MP3 files yml:ad (Canvas view only) Includes third party advertising network content Example: Embedding Flash Content using yml:swf <yml:swf src=&quot;http://www.youtube.com/v/MqbaZcX67L0&quot; width=&quot;560&quot; height=&quot;340&quot;/>
  • 21. YML: Viral Sharing (Canvas View only) yml:share Creates standard form that opens a message dialog for sharing the application yml:message Creates customizable form that opens a message dialog for sending notifcations from application Example <yml:share> <input type=&quot;submit&quot; value=&quot;Invite Friends”> </yml:/share>
  • 25. YAP and Open Social Open Social API for accessing user social data Implemented by several social web sites, including Yahoo! Yahoo! is board member of Open Social Foundation YAP supports Open Social 0.8 JS, REST and Gadget Core APIs OS Activity mapped to Yahoo! Updates API OS Person / People mapped to Yahoo! Profile and Connections gadget.xml and 0.9 support coming
  • 26. Making Ajax Request in YAP With proxy model, direct XHR cannot reach developer server Two ways: <yml:a>, <yml:include> Open Social gadgets.io.makeRequest API
  • 27. Open Social Demo: Ajax Request
  • 28. Open Social Demo: Ajax Request
  • 29. Open Social Demo: Ajax Request
  • 30. Open Social Demo: Publish Yahoo! Updates
  • 31. Open Social Demo: Publish Yahoo! Updates
  • 32. Open Social Demo: Publish Yahoo! Updates
  • 33. Securing Third Party Code – Caja Additional “sandbox” on top of iFrame protection One of the first to integrate Caja in production Enables Yahoo! to embed third party applications safely Aggressively re-write and remove unsafe HTML / CSS / JavaScript
  • 34. Caja Restrictions No direct access to implied global objects Proxy access to DOM No document.write (use innerHTML) No <embed>, <object>, <iframe> No eval, with, this No JavaScript:void(0) Some CSS hacks No external CSS and JavaScript (inlined only)
  • 35. Caja Examples See Caja limitation doc for workarounds http://developer.yahoo.com/yap/caja Instead of Use document.write() <var x = document.getElementById(‘x’); x.innerHTML = ‘abc’; javascript:void(0) <a href=&quot;#&quot; onclick=&quot;click(); return false&quot;>click</a> <link rel=stylesheet> <script src=“…” /> @import Inline CSS and JS <object>, <embed> <swf> for Flash object
  • 36. Caja Best Practices Adhere to W3C standards (HTML 4.01 and CSS 2.1) Use YML Push more logic to server-side Use supported JS library Open Social 0.8, YUI 2.8 subset Use JSLint and Caja test bed http://www.jslint.com http://cajadores.com/demos/testbed/
  • 37. YUI 2 / Caja Beta support for YUI 2.8 YUI Core YAHOO, DOM, Event utility YUI Utilities Animation, DataSource, DragNDrop, Element, ImageLoader, Resize, Selector YUI Library Controls / Widgets AutoComplete, Button, Container, Menu, TabView, TreeView Available on YAP preview server preview.apps.yahoo.com
  • 38. Summary and Call to Action Use YAP to expose your application on the Yahoo! Home page to over 330 million users Create an YAP app hack! We are here to help Learn more about YAP: Building Your App on Yahoo! – Partner Perspective (3pm) Yahoo! Social APIs & SDKs (4:10pm) Yahoo! App Marketing (4pm)
  • 39. Developer Resources YAP – developer.yahoo.com/yap/homepage Dev Tool – developer.yahoo.com/dashboard Dev Guide – developer.yahoo.com/yap/guide Forum – developer.yahoo.com/forum Samples – developer.yahoo.com/yos/code_exs SDKs – developer.yahoo.com/social/sdk Joyent Free Hosting – signup.joyent.com/yahoo_signup
  • 40. YAP: Deep Dive Yahoo! Application Platform Tony Ng [email_address]