27
Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineer

Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Embed Size (px)

DESCRIPTION

Modern Web applications 3 Social Web 2.0 user involvement in the creation of contents Integration Data Integration Application Integration User Interface Integration modern Web applications culture of participation [Fischer 2009] public APIs Active co-creation of knowledge and new ideas Web Mashups widgets Development of data sources

Citation preview

Page 1: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Lecture VII: Mashups

CS 4593Cloud-Oriented Big Data and Software Engineering

Page 2: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Outline• What are Mashups• Types of Mashups• How to build Mashups

2

Page 3: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Modern Web applications3

SocialWeb 2.0

user involvement in the creation of contents

IntegrationData Integration

Application Integration

User Interface Integration

modernWeb applications

culture of participation

[Fischer 2009]

public APIs

Active co-creation of

knowledge and new ideas

Web Mashupswidgets

Development of

data sources

Page 4: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Computing paradigms

Mainframe computing1 computer / multiple users

1965

Client-server computingComputer networks / multiple users

1985

“The network is the computer” (John Gage, Sun Microsystems, 1984)

SaaSDaaSHaaS

Cloud computingThe Cloud / ALL the users

2005+

“The cloud is the computer”

4

Page 5: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

The developers’ point of view…

Availability on the Web of ready-to-use “building blocks”:

• Software services (content, functionality) accessible throuhg public Web APIs to build composite applications

• Web API: Application Programming Interfacea defined set of HTTP request messages, along with a definition of the structure of response messages, which is usually in XML or JSON format

6

Page 6: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Mashups

• Mashup: young integration practice using the Web as platform.

• Some definitions:– “...a mashup is a web application that combines data

from more than one source into a single integrated tool…” [wikipedia.com]

– “...you can integrate two or more […] Web APIs to create something new and unique, known as a mashup…” [IBM web site]

• Similar terms: service mashups, data mashups

7

Page 7: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Mashup = Integration in the Web 2.0 way

• Highly user-driven:• Oftentimes the actual providers of

content/functionality are not even aware of being “wrapped”

• Google Maps example: initially skilled users «hacked» the code of the application

• Strong evolution: from hacking to first systematic development approaches in a few years

8

Page 8: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Let’s see an example

• Composed of:– Google Maps (http://maps.google.com)– Craigslist (http://www.craigslist.com)

9

The HousingMaps application(http://

www.housingmaps.com)

A utility for finding a house for sale or for rent

Page 9: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

A mashup example

• HousingMaps (http://www.housingmaps.com)– http://maps.google.com– http://www.craigslist.com

GoogleMaps

Own application logic/UI

Craigslist

Page 10: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Mashup architecturesources:• Videos• Images• Maps• News• RSS feeds• Social contents•…

mashup web site

browser

Public interfaces(API, RSS, …)

requestresponse

Data manipulation:• embedding• aggregation• integration

11

Page 11: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

The simplest case: Embedding

To add a multimedia object in a Web page, it is sufficient to copy an HTML “snippet” into the HTML code of my Web page

HTML code

flickr

foto

youtube

BROWSERRendered Web page

12

Page 12: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Youtube videos13

Page 13: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

HTML page embedding 14

Page 14: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

HTML embedding

• <body>

• <iframe id="FlickrFrame"• src="http://www.flickr.com/search/?q=milan"• name="Flickr" style="width:600px; height:500px; border: 0px"></iframe>• <iframe id="AmazonFrame"• src="http://amazon.com/s/?url=search-alias%3Daps&field-keywords=milan"• name="Amazon" style="width:600px; height:500px; border: 0px"></iframe>• </body>

• </html>

15

Page 15: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Content Aggregation16

Google News

Page 16: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Visual Aggregation

http://newsmap.jp (aggregates from Google News)

17

Page 17: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Integration18

www.housingmaps.com

Page 18: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Created with http://maps.huge.info/zip.htm

Page 19: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Route Map for Deliveries

http://www.lcls.org/members/routemap.aspx

Page 20: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering
Page 21: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Newsmap

http://www.marumushi.com/apps/newsmap/newsmap.cfm

USA Canada

Page 22: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Newsmap

• Reveals underlying patterns in news reporting across cultures

• Uses Google News

Page 23: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Components

• Collections:• ProgrammableWeb (www.programmabelWeb.com)• Mashery (developer.mashery.com/apis)

• Ecosystems: offer software components that are «compatible» and «integrable» to build composite applications

• WordPress (www.wordpress.org )offer a large set of widgets and the possibility to include corresponding plugins into the development workspace

• Netvibes.com: a portal with a huge number of widgets

24

Page 24: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Mashup Ecosystem

• Open data

• Open set of services

• Small pieces loosely joined

• You

Page 25: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Lightweight development process

Component discovery

and selection

Composition and

immediate deployment

Use and evolution

Mashup ideaComposition tool/

sandbox

sandbox

26

Page 26: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Mashup: pros29

• “Lightweight” applications • reduced amount of code to be written; just the code for integrating

APIs

• «Lightweight» development availability of tools who do not require many technical skills – e.g., pipes

• Low (o zero) costs for gathering data

• Rapid developmentReduced time-to-market, quick prototyping

29

Page 27: Lecture VII: Mashups CS 4593 Cloud-Oriented Big Data and Software Engineering

Mashup: cons30

• Dependency from the online data sourcesdata quality, performances, service availbility and reliability, change in the service policy (licensing, acess restrictions, etc.)

• APIs: standards and versioning

• Intellectual property and copyright “right to remix”: in which measure?

30