Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Mash Up Develop

Mash Up Develop

|Views: 53|Likes:
Published by vthung

More info:

Published by: vthung on Apr 09, 2009
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





   S  e  r  v   i  c  e   M  a  s   h  u  p  s
44 Published by the IEEE Computer Society 1089-7801/08/$25.00 © 2008 IEEE IEEE INTERNET COMPUTING
UnderstandingMashup Development
 Jin Yuand Boualem Benatallah
University o New South Wales
Fabio Casatiand Florian Daniel
University o Trento
Web mashups are Web applications developed using contents and servicesavailable online. Despite rapidly increasing interest in mashups over the pasttwo years, comprehensive development tools and rameworks are lacking,and in most cases mashing up a new application implies a signifcant manualprogramming eort. This article overviews current tools, rameworks, andtrends that aim to acilitate mashup development. The authors use a set o characteristic dimensions to highlight the strengths and weaknesses o somerepresentative approaches.
eb mashups
are Web applica-tions generated by combiningcontent, presentation, or ap-plication unctionality rom disparate Web sources. They aim to combinethese sources to create useul new ap-plications or services. Content and pre-sentation elements typically come inthe orm o RSS or Atom eeds, vari-ous XML ormats, or as HTML, Shock- Wave Flash (SWF), or other graphicalelements. Publicly available APIs (inJavaScript, or example) typically pro- vide application unctionality. Content,unctionality, and presentation are thenglued together in disparate ways: viaJavaScript in the browser, server-sidescripting languages such as HypertextPreprocessor (PHP) or Ruby, or tradi-tional languages such as Java or C#.“Mashup” has become one o thehottest buzzwords in the Web applica-tions area, and many companies andinstitutions are rushing to providemashup solutions (or to relabel exist-ing integration solutions as mashuptools). Amidst this renzy, it’s dicultto distinguish between mashups andtraditional integration eorts. Thisarticle aims to provide some clarity inregard towhat a mashup is (and isn’t);how mashups resemble or dier rom traditional orms o integra-tion, such as application, data, andpresentation integration;what undamental characteristicsand dimensions mashup approach-es share; and
Understanding Mashup Development
how current tools compare with respect tothese characteristics and dimensions.Specically, we overview some o the popular mashup tools and show how they acilitate thedevelopment o rich Internet applications. Our aim isn’t to identiy the kinds o available sup-port in terms o mashup development but rather to understand and identiy emerging character-istics and dimensions under which we can com-pare and analyze the tools and approaches.
Mashup Development Approaches
Mashup development diers rom tradition-al component-based application developmentmainly in that mashups typically serve a spe-cic situational (short-lived) need and are com-posed o the latest, easy-to-use Web technologies(such as Representational State Transer [REST-ul] Web services or RSS/Atom eeds). As such,the Web is their natural environment.The HousingMaps (www.housingmaps.com)application in Figure 1 is an example o a suc-cessul mashup. It combines property listingsrom Craigslist with map data rom GoogleMaps to assist people moving rom one cityto another and searching or housing. Typi-cally, when people are browsing through a listo properties, a property’s address doesn’t givethem enough inormation i they aren’t yet a-miliar with the new city. HousingMaps givesusers a list o properties and plots the respec-tive locations and property inormation on themap upon selection (using the popup cloud vis-ible in Figure 1). We could manually develop such a mashupapplication using conventional Web program-ming technologies. However, dedicated mashuptools could benet such development, eventu-ally letting even end users compose their ownmashups.
Manual Mashup Development
Generally, integrating enterprise data and ap-plications into a coherent and value-addingapplication requires programming skills andintimate knowledge about the schemes and se-mantics o data sources or the business protocolconventions or message exchange. Fortunately,new technologies, such as Ajax and RESTulservices, and microormats, such as RSS and Atom, have simplied mashup development. Inaddition, intelligent source components largelyassist the integration o contents, applicationlogic, and user interaces. Nevertheless, manualmashup development is still a prerogative o skilled developers. Assuming you have no specic develop-ment tools, what’s involved in manually devel-oping an application like HousingMaps? First, you must become amiliar with the two sourceapplications (Craigslist and Google Maps) andidentiy how you will reuse or extract data romthe two sites. Whereas Google Maps oers apublicly available JavaScript API that you canleverage, Craigslist provides its listings via RSS.Thereore, to extract property and address data, you must parse and interpret the RSS eed romCraigslist. To congure the clickable markersthat will display the property inormation in apopup cloud window upon a click, you must in-teract with the Google Maps JavaScript API. En-abling the automatic popup o this cloud requiresa specic JavaScript unction that listens or theproperty selection and reacts by invoking theGoogle Maps API to select the respective marker. Although Google Maps has its own user inter-ace, letting users select properties wrapped romCraigslist requires that you ll and appropriatelyormat a suitable table. Finally, you must lay outthe two components properly to orm the com-posite application’s user interace. Such intricateand time-consuming tasks prevent average usersrom programming their own mashups.
Figure 1. The HousingMaps application. HousingMaps integratesCraigslist housing oers with Google Maps into a homogeneoususer interace.
Service Mashups
46 www.computer.org/internet/ IEEE INTERNET COMPUTING
Tool-Assisted Mashup Development
To speed the overall mashup development proc-ess, but also to enable even inexperienced endusers to mash up their own Web applications,numerous mashup-specic development toolsand rameworks have recently emerged. Theseinstruments typically come with a varietyo eatures and a mixture o composition ap-proaches. A close look at them lets us identiythe open issues and research challenges charac-terizing the mashup phenomenon.For presentation purposes, we selected themost popular or representative approaches o end-user mashup tools and show how they cansupport the HousingMaps application’s devel-opment. We discuss a ew alternative or com-plimentary approaches in the “Related Work inReusable Components” sidebar.
Yahoo Pipes.
 Yahoo Pipes (http://pipes.yahoo.com) lets you mix popular data eeds to createdata mashups via a visual editor. A pipe is a data-processing pipeline consisting o one or more datasources (or example, RSS/Atom eeds or XMLsources) and a set o interconnecting operators,each o which perorms a specic task. It includesoperators or manipulating data eeds (or exam-ple, sorting or ltering) and operators or eaturessuch as looping, regular expressions, or counting.It also supports more advanced eatures, such aslocation extraction (or example, geocoordinatesidentied and converted rom location inorma-tion ound in text ragments) or term extraction(or example, keywords). Yahoo Pipes aims to letusers design data-processing pipelines that lter,transorm, enrich, and combine data eeds andare again exposed as RSS eeds.Consider how Yahoo Pipes could aid thedevelopment o the HousingMaps example.Because Pipes doesn’t provide user interaces— that is, it outputs an RSS eed — we can’timplement the user interace shown in Figure1. Instead, we could use Pipes to process theCraigslist eed and identiy location inorma-tion (geocodes) by leveraging the pipes’ locationextractor. We could use the identied locationinormation to augment the Craigslist eed witha link that lets users display the property’s ad-dress on the map by passing the geocodes toGoogle Maps.
Google Mashup Editor.
GME (http://editor.googlemashups.com) provides a template-based envi-ronment or mashup development. It oers aset o standard modules that lets users encap-sulate and lay out external data. For example,the
module represents an RSS/Atom eedas a list, whereas the
module representsa single item in a eed. Modules can re pre-dened events, which other modules can cap-ture and act on accordingly. Creating mashupsinvolves developing user interace templatesthat contain a mixture o XML control tagsand HTML/CSS layout elements with embed-ded JavaScript code. At runtime, GME lls theuser interace templates and presents them as Web pages.For the HousingMaps application, we couldintegrate the Craigslist eed using a list moduleand use the item module to show a particular property’s details. GME’s map module nativelysupports Google Maps. When the user clicks ona property in the Craigslist module, the moduleemits a “select” event, which the map modulecan capture to pop up the cloud window on topo the marker and display inormation about theselected property. We must embed the Craigslistmodule and Google Maps into the user interacetemplate that species the actual mashup appli-cation’s layout.
Microsot Popfy.
Popfy (www.popfy.ms) o-ers a component-based, visual environment or developing mashups. In Popfy, reusable com-ponents, or 
, can act as middlemen be-tween externally provisioned services, such as Web services,
or implement a useul unction(in JavaScript) — or example, a unction thatcalculates a circle’s area given a radius. Blockshave operations with inputs and outputs, whichare specied in a dedicated XML descriptor. Ablock might also act as a display surace — thatis, a piece o user interace that takes data romother blocks and displays them, letting the user interact with them and enabling the mashupdeveloper to lay out the mashup application.To build the HousingMaps application, weneed three blocks:an RSS eed block or the Craigslist eed,a map block, anda table block.I we use Virtual Earth (http://microsot.com/ virtualearth) instead o Google Maps, the threeblocks are already available. We must thereore

Activity (3)

You've already reviewed this. Edit your review.
1 hundred reads
bupbechanh liked this
Cioffaz liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->