<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Pablo Peralta's Blog : mash-up</title><link>http://weblogs.asp.net/pabloperalta/archive/tags/mash-up/default.aspx</link><description>Tags: mash-up</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>What is a mashup and why I should develop one?</title><link>http://weblogs.asp.net/pabloperalta/archive/2008/08/26/what-is-a-mashup-and-why-i-should-develop-one.aspx</link><pubDate>Tue, 26 Aug 2008 11:59:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6567481</guid><dc:creator>pablop</dc:creator><author>pablop</author><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/pabloperalta/rsscomments.aspx?PostID=6567481</wfw:commentRss><comments>http://weblogs.asp.net/pabloperalta/archive/2008/08/26/what-is-a-mashup-and-why-i-should-develop-one.aspx#comments</comments><description>&lt;!--[if !mso]&gt;
&lt;style&gt;
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  Normal
  0
  false
  
  21
  
  
  false
  false
  false
  
  ES-UY
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  
  
   
   
   
   
   
   
   
   
   
   
   
  
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 
&lt;/xml&gt;&lt;![endif]--&gt;

&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin-top:0cm;
	mso-para-margin-right:0cm;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;p&gt;Today is
very common to hear about ‘Web 2.0' and around this, some other terms, such as
‘Mashups'. And here comes the questions:&lt;/p&gt;

&lt;p&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
What is a mashup?&lt;/p&gt;

&lt;p&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Which
are the main components of a mashup?&lt;/p&gt;

&lt;p&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
When
is it useful to develop a mashup?&lt;/p&gt;

&lt;p&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
What
are the characteristics of a mashup?&lt;/p&gt;

&lt;p&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
What is next?&lt;/p&gt;

&lt;p&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
...and others that may arise..&lt;/p&gt;

&lt;p&gt;First of
all, this is a ‘young' term, introduced within this ‘Web 2.0' era. Secondly, I
found a very clear and practical introduction to the topic &lt;a href="http://msdn.microsoft.com/en-us/library/bb906060.aspx"&gt;here&lt;/a&gt; by Larry Clarkin and Josh Holmos. I strongly
recommend reading it.&lt;/p&gt;

&lt;p&gt;Based on
the concepts and some transcriptions of that article and others (see References
below), I will try to answer the above questions.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/b&gt;&lt;b&gt;What is a mashup?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Some places refer to mashups as &lt;b&gt;web
applications that combines data from more than one source, hiding this behind a
simple unified graphical interface&lt;/b&gt;. Despite for me this is true, I prefer
another definition which widens the scope, referring to a mashup as a
technique, as an &lt;b&gt;architectural style for
building applications that combine data from multiple sources to create an
integrated and improved experience to the user&lt;/b&gt;.&lt;/p&gt;



&lt;p&gt;Some examples of mashups are those that integrate address information
with Google Maps or Virtual Earth to generate an integrated experience,
applications that integrate contacts from multiple sources like Plaxo,
applications that integrates online with Wikipedia, etc. Here is a site that in
theory shows the best mashups on the web: &lt;a href="http://mashupawards.com/"&gt;http://mashupawards.com/&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;



&lt;p&gt;It is common to associate mashups with &lt;b&gt;S+S&lt;/b&gt; (Software plus Services) as typically they consume ‘cloud
services' and also with &lt;b&gt;Rich Internet
Applications&lt;/b&gt; (RIAs) as they can provide more visual richness.&lt;/p&gt;



&lt;p&gt;It is important to differentiate a mashup
from simple embedding data from another site. For instance, if I have a site
that allows to see a video in YouTube I do not have a mashup, that is simple
embedding. &lt;b&gt;Mashups are intended to add value to the final
user, processing information consumed by any API/WebService and displaying it
in an integrated experience&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/b&gt;&lt;b&gt;&amp;nbsp;Which are the
main components of a mashup?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Here is the architecture of a typical mashup application:&lt;/p&gt;

&lt;p&gt;&lt;!--[if gte vml 1]&gt;
 
 
  
  
  
  
  
  
  
  
  
  
  
  
 
 
 

 
&lt;![endif]--&gt;&lt;img src="file:///C:/Users/PABLOP%7E1.INF/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg" v:shapes="Picture_x0020_7" border="0" width="337" height="277"&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;img src="http://msdn.microsoft.com/en-us/library/Bb906060.jour13_enterprisemashups_image002_l%28en-us,MSDN.10%29.jpg" mce_src="http://msdn.microsoft.com/en-us/library/Bb906060.jour13_enterprisemashups_image002_l(en-us,MSDN.10).jpg" width="459" height="377"&gt;&lt;/p&gt;&lt;p&gt;The main components, categorized and summarized are:&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
&lt;b&gt;Data Sources&lt;/b&gt; - data sources are the core
elements of any mashup and represent the data being aggregated. The source
could be a database, Webservice, API, RSS, etc.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
&lt;b&gt;Platform services&lt;/b&gt; - depicts special kind of services
that go beyond the typical request/response. For instance, Virtual Earth and
the majority of the ‘&lt;b&gt;cloud services&lt;/b&gt;'
that are starting to emerge [i.e. &lt;a href="http://dev.live.com/"&gt;windows live services&lt;/a&gt;]. &lt;a href="http://www.microsoft.com/biztalk/en/us/biztalk-services.aspx"&gt;&lt;b&gt;Microsoft's Biztalk Services&lt;/b&gt;&lt;/a&gt;, an Internet Service Bus is another example,
even though it is a technology even more immature than the former. &lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
&lt;b&gt;Mashup Application&lt;/b&gt; - it is the application that
combines the data from the different sources and in some cases, applies some
lightweight business logic. Usually it is a web application [ASP.net, PHP] or a
RIA [Rich Internet Application - Silverlight, Flash].&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/b&gt;&lt;b&gt;When is it useful to develop a mashup?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;A great way of understanding the
benefits of a mashup in an enterprise environment is with an example. Let's
imagine that you are an application architect for a call center system that
receives calls about warranty and parts service. Using the phone number of the
caller, we could display the records for that user, including a purchase
history. This interesting application has already been implemented today in
most call centers. But what if, in addition to looking up the customer information,
we plotted the phone number on a map using a publicly available service and
also displayed a list of local service centers or parts suppliers for our
products overlaid on the map? With this data in hand, we might be able to
answer the customer's questions in seconds. What if we also looked up the
current weather conditions in that area or other information of interest for
the customer?..&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Combining data from public services&lt;/b&gt; (such as weather and news) &lt;b&gt;with internal sources&lt;/b&gt; of data (a
customer service alerts blog and a database of service locations), &lt;b&gt;this application combines the mashup
elements with the accessibility of a portal&lt;/b&gt;. See next sample picture:&lt;/p&gt;

&lt;p&gt;&lt;!--[if gte vml 1]&gt;
 
&lt;![endif]--&gt;&lt;img src="file:///C:/Users/PABLOP%7E1.INF/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg" v:shapes="Picture_x0020_4" border="0" width="625" height="472"&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://msdn.microsoft.com/en-us/library/Bb906060.jour13_enterprisemashups_image004_l%28en-us,MSDN.10%29.jpg" mce_src="http://msdn.microsoft.com/en-us/library/Bb906060.jour13_enterprisemashups_image004_l(en-us,MSDN.10).jpg" width="920" height="695"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Realizing Return on Investment (&lt;b&gt;ROI&lt;/b&gt;) is a common concern for
Service-Oriented Architecture (&lt;b&gt;SOA&lt;/b&gt;)
deployments. Many organizations find it difficult to justify the upfront
investment for creating services for different functionality when it would be
easier to create a single application. &lt;b&gt;Enterprise
mashups are a great example of how an investment in SOA can provide great value&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/b&gt;&lt;b&gt;What are the characteristics of a mashup?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;We could infer the following outstanding
characteristics of mashups, based on the concepts mentioned above:&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
A
mashup is &lt;b&gt;focused on adding value&lt;/b&gt;,
putting a tremendous amount of ready information at the fingertips of the final
user.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
&lt;b&gt;Information + User experience should
be efficiently combined&lt;/b&gt;, using technologies such as &lt;b&gt;RIAs&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
A
mashup is &lt;b&gt;contextual to the task at hand&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
&lt;b&gt;It prioritizes the information in
the order in which is most likely to be useful&lt;/b&gt;. You have to know who you are talking to, what
products they have registered, what the top service items are for those
products, and then start trying to answer questions that they may have such as
where the local service centers are for the customer's location.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
&lt;b&gt;Developing&lt;/b&gt; a mashup must be measured in &lt;b&gt;hours or days&lt;/b&gt;. That is a big difference
with building a complete application, for instance. The quick turnaround time
for mashups can change the way that IT departments interact with the users in
their organizations.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
Generally,
it is &lt;b&gt;read-only&lt;/b&gt;. &lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
Mashups
are &lt;b&gt;agile views&lt;/b&gt; into the data that
they present. They are not an all-powerful editing surface capable of editing
any and all data thrown at them. If someone wants to edit that data, they
should go back to the application that created the data to do the editing.&lt;/p&gt;

&lt;p&gt;o&amp;nbsp;&amp;nbsp;
A
&lt;b&gt;timestamp&lt;/b&gt; may be important for
improving the clarity and usefulness of the mashed data.&lt;/p&gt;

&lt;p&gt;My suggestion and maybe the key
factor of success of a mashup is applying the &lt;b&gt;Keep It Simple&lt;/b&gt; paradigm. A mashup is not intended to solve complex enterprise problems. I suggest
you focus on making your mashup do only one thing and do that thing well. For
large problems, go for a traditional project.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/b&gt;&lt;b&gt;What is next?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;We can wide the vision and think of mash-ups as
&lt;b&gt;a new paradigm&lt;/b&gt;, a new way of
building and delivering applications. In that way, if we provide tools that
allow other users than only developers to build mash-ups we could be reaching a
point where the customer itself builds his/her own mash-up. &lt;/p&gt;

&lt;p&gt;For instance, dragging and dropping sources of
data, combining them in a layout and visual representation, generating a RIA
which could be easily delivered.&lt;/p&gt;

&lt;p&gt;Best of all, we are not so far away from this
new paradigm if we explore tools like &lt;a href="http://www.popfly.com/"&gt;Microsoft Popfly&lt;/a&gt; and &lt;a href="http://pipes.yahoo.com/"&gt;Yahoo
Pipes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;References:&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29"&gt;http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb906060.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb906060.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6567481" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/pabloperalta/archive/tags/mashups/default.aspx">mashups</category><category domain="http://weblogs.asp.net/pabloperalta/archive/tags/mashup/default.aspx">mashup</category><category domain="http://weblogs.asp.net/pabloperalta/archive/tags/mash-up/default.aspx">mash-up</category></item></channel></rss>