mashups!
DESCRIPTION
Mashups!. Presented by Zhao Jin. Outline. What is a Mashup? How to build a Mashup? Demonstration References and Resources. What is a Mashup?. (Music) A musical genre which combines the layers of music from different songs - PowerPoint PPT PresentationTRANSCRIPT
Mashups!Mashups!Presented by Zhao JinPresented by Zhao Jin
OutlineOutline• What is a Mashup?• How to build a Mashup?• Demonstration• References and Resources
What is a Mashup?What is a Mashup?• (Music) A musical genre which combines the layers of music from different songs
• (Computing) A website or web application which combines contents from different websites
A Simple ExampleA Simple Example
User
Mashup website
What are the available flats near NUS?
Real estate website Google Map
Request for available flat list Flat list
Request for area map
Area map
Map with available flats marked
Pros and ConsPros and Cons• Pros
– Information reuse– More resources to play with
• Cons– Network congestion– Speed bottleneck– Danger of service failure
How to build a Mashup?How to build a Mashup?• Prerequisites
• Three steps– Planning– API sign-up– Coding
PrerequisitesPrerequisites• Required
– Programming Language– Web Programming– XML Manipulation (XPath, XQuery, etc…)
• Recommended– Web authoring tools
PlanningPlanning• Pick a subject
– A Mashup of What? • Map + Real Estate? • Bookshop + Library Catalog?
– More sources of data More complicated
• Decide your data sources– Who is your data provider?
• Maps: Google maps, Yahoo maps, etc..• Online shopping: Amazon, EBay, etc..
– Usually language agnostic– Varying complexity
PlanningPlanning• Other concerns
– How much time do you have?– Do you have a server to run it on?– Which programming language?
API Sign-upAPI Sign-up• Sign-up for the API
– Visit the homepage of your data source and sign up
– Example: http://www.google.com/apis/maps/
Coding – The big Coding – The big picturepicture
User
Mashup website
User Request
Website 1 Website 2
API Call Data API Call Data
Data presentation
Data Manipulation
Coding – The stepsCoding – The steps• API Call• Data Manipulation• Web programming
API CallAPI Call• Types of API – How to call?
– REST– XML-PRC– SOAP– Javascript
• Functions of API – What to call?– API specific
Types of API - RESTTypes of API - REST• Request in HTTP and Response in XML
• Example: Google Geocoder– http://maps.google.com/maps/geo?– q – The address that you want to geocode– Key – Your API key– Output – The output format
• Sample request:– http://maps.google.com/maps/geo?q=1600+amphitheare+mtn+view+ca&key=***&output=xml
Types of API - RESTTypes of API - REST• Sample response:
<xml><Placemark> <address> 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA </address> <Point>
<coordinates>-122.083739,37.423021,0</coordinates> </Point>
</Placemark></xml>
Types of API – XML-RPCTypes of API – XML-RPC• Request/Response in XML via HTTP
• Example: MSN Blogging API– XmlRpcClient in Apache
• Sample Request:– <?xml version="1.0"?>
<methodCall> <methodName>getStateName</methodName>
<params> <param><value><i4>4</i4></value></param> </params> </methodCall>
Types of API – XML-RPCTypes of API – XML-RPC• Sample Response
– <?xml version="1.0"?> <methodResponse> <params> <param> <value> <string>South Dakota</string> </value> </param> </params> </methodResponse>
Types of APIs – SOAPTypes of APIs – SOAP• Request/Reply in SOAP format via SMTP/HTTP
• Example: MSN Search API– HttpURLConnection in Java– Post the XML to the target URL
• Sample request:<soap:Envelope xmlns:soap=schemaURL>
<soap:Body> <getProductDetails xmlns=targetURL>
<productID>827635</productID> </getProductDetails>
</soap:Body></soap:Envelope>
Types of APIs – SOAPTypes of APIs – SOAP• Sample Response
<soap:Envelope xmlns:soap=SchemaURL> <soap:Body> <getProductDetailsResponse
xmlns=targetURL> <getProductDetailsResult>
<productName>Toptimate</productName> <productID>827635</productID>
<price>96.50</price> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body></soap:Envelope>
Types of APIs – Types of APIs – JavaScriptJavaScript
• Request/Reply embedded in a stub object
• XML not required unless data needed explicitly
• Example: Gogglemap– GMAP2 in Googlemap API– Var map = new GMAP2(document.getElementById(“map”))
– map.setCenter(new GLatLng(37.4419,-122.1419),13));
Functions of APIFunctions of API• API specific
– Learn as needed
Data ManipulationData Manipulation• Purpose:
– To generate API requests– To process API responses– To represent data internally
• Two components– Data schema– Tools for manipulation
Data schema (XML)Data schema (XML)• Define the schema for your data
– What data do you want to store?• Entities and attributes
– Good to be generic
• Learn the schema of the APIs
Tools for manipulationTools for manipulation• Basic level
– Parser, Modifier, Writer– Available online
• Higher level– Filter, Converter, Generator– Need to write on your own
• Check out the tutorial for XPath, XQuery, etc.
Web ProgrammingWeb Programming• Design UI for your page
Putting everything Putting everything togethertogether
• Your Mashup = API calls + Data Manipulation + UI
User
Mashup website
User Request
Website 1 Website 2
API Call Data API Call Data
Data presentation
Data Manipulation
DemonstrationDemonstration• Googlemap + Craigslist Real Estate– http://www.housingmaps.com/
• Amazon + NLB catalog– http://www.bookjetty.com/
References and References and ResourcesResources
• Reference:– Wikipedia: http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)
– Tutorial from IBM http://www-128.ibm.com/developerworks/edu/x-dw-x-ultimashup1.html
• Resources:– List of Mashups, APIs: http://www.programmableweb.com/http://www.webmashup.com/
References and References and ResourcesResources
• Resources:– APIs and Platforms
Amazon: http://www.amazon.com/gp/browse.html?
node=3435361
Googlemap: http://www.google.com/apis/maps/
– XPath, XQuery Tutorial:• http://www.w3schools.com/xpath/ • http://www.w3schools.com/xquery/default.asp