<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Mashups { Software Ecosystems for the Web Era</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Arto Salminen</string-name>
          <email>arto.salminen@tut.fi</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tommi Mikkonen</string-name>
          <email>tommi.mikkonen@tut.fi</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Software Systems Tampere University of Technology P.</institution>
          <addr-line>O.Box 553, FI-33101 Tampere</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2012</year>
      </pub-date>
      <fpage>18</fpage>
      <lpage>32</lpage>
      <abstract>
        <p>Web-based software and services are available all over the world instantly after they are released online. They can be used and updated without need to install anything, and once in place, they can also be reused in other contexts. As the amount of web services and devices used to consume data has exploded, it is becoming di cult to handle and gain access to the relevant data. Mashups are a new breed of web applications that act as content aggregates that leverage the power of the Web to support instant, worldwide sharing of content. Another dimension of mashups is that since they build on services that are readily available, they are also implicitly creating software ecosystems between service providers and application developers. In this paper, we address the role of mashups in the creation of software ecosystems for the web era. In addition, we identify four levels of support that service providers can o er for mashups. Furthermore, we will also discuss the di erent avors of mashups as well as implementation considerations that are relevant from the ecosystem perspective.</p>
      </abstract>
      <kwd-group>
        <kwd>Mashups</kwd>
        <kwd>web applications</kwd>
        <kwd>software ecosystems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>The web-based software is available all over the world instantly after the online
release. It can be used and updated without need to install anything.
Applications can support user collaboration, i.e., allow users to interact and share the
same applications over the Web. In addition, numerous web services allowing
users to upload, download, store and modify private and public resources have
emerged. These resources can include personal images, texts, videos, e-mails,
etc. as well as public data such as stock quotes, weather data and news feeds.</p>
      <p>As the amount of web services and devices used to consume data has
exploded, it is di cult to handle and gain access to the relevant data. To be able
to handle the situation, searching has become one of the most important
service of the Web. However, searching can be used only for data accessing, not
for analyzing or parsing it. Similarly to resources, communication has
decentralized into di erent services such as e-mail, di erent social media services, instant
messaging services, chats, blogs, etc. Therefore, new mechanisms are needed for
resource handling and communication services of the Web.</p>
      <p>An important realization is that applications built on top of the Web do not
have to live by the same constraints that have characterized the evolution of
conventional desktop software. The ability to dynamically combine content from
numerous web sites and local resources, and the ability to instantly publish
services worldwide has opened up entirely new possibilities for software
development. In general, such systems are referred to as mashups, which are content
aggregates that leverage the power of the Web to support instant, worldwide
sharing of content.</p>
      <p>
        In this paper, we address the role of mashups in the creation of implicit and
explicit software ecosystems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for the web era. We perform this in the following
fashion. Section 2 provides an overview to mashups and the potential associated
with mashup development. Section 3 discusses mashup ecosystems from the
viewpoint of already existing research as well as challenges we have encountered in
practice. In addition, this section identi es the four levels of support that
service providers can o er for mashups, and discusses the associated consequences
of each approach. Section 4 discusses the di erent breeds and types of mashup
ecosystems that have been introduced, and Section 5 discusses implementation
considerations. Finally, Section 6 draws some nal conclusions.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 Mashups: An Overview</title>
      <p>Mashups can be characterized as applications that combine resources { data,
code and other content { from di erent services in the Web into an integrated
experience. Mashups can combine the content in new, unforeseen ways, thus
creating entirely new web services, or they can provide new visualizations for
already existing service. For instance, a mashup can combine a map with images
that can be attached to speci c locations. Another type of mashup can visualize
the images in novel fashion, for example on a timeline or as a collage.</p>
      <p>Mashups have potential for great user experiences, as they include more
functions than just composition. Mashups can be used to lter, combine and modify
data retrieved from multiple sources over the Web. Combining web resources
into mashups is an e cient way to create new services or extract relevant
information from a complex mixture of source data. Even unexpected innovations are
possible as mashups can combine resources in unforeseen fashion. Furthermore,
mashups are even more usable when non-technical users can create them with
special purpose tools and have their own views for data. This is very inspiring
part of mashups as it allows creative users to design their own applications that
are capable of doing unexpected things. Allowing \do-it-yourself" mashups serve
the long tail of users having diverse needs that are not ful lled by existing
applications or services. On embedded devices, mobile devices being at the forefront,
mashups can bene t from accessing the user's context to combine resources,
potentially automatically.</p>
      <p>
        Well-build mashups have functionality for ltering source data. By having
adjustable lters a mashup can provide more relevant results. Filters can be
based on much more relevant variables than manually entered limits such as the
highest and the lowest price of a product. Such lters can be time of the day,
location of the user, past activity of the user, activity of other users (trends),
pro le setting of users mobile device, etc. Heavy processing, e.g. ltering images
with face detection algorithm, can be executed on the server, using MashReduce
programming model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], for instance.
      </p>
      <p>Di erent kinds of dependability mechanisms play an important role in a
mashup. At least the mashup should be implemented so that it checks whether
the input data is correct. More sophisticated mashups can have fall-back
mechanisms that, instead just giving up on error, try to use next best strategy to
ensure even partial functionality. Furthermore, mashups can have controlling
mechanisms that supervise the functionality and replace failing parts with other
ones. In addition, mashups can have capabilities to extract the result mashup to
some external viewing device and change the user interface of the mashup
accordingly. For instance, this enables the creation of a mashup in a mobile device
whereas the resulting output can be shown on a bigger screen if one is available.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Mashup Ecosystems</title>
      <p>Since mashups by de nition combine data from multiple sources, the
stakeholders that provide this data form an ecosystem, i.e. a set of entities that act as a
single unit instead of each participating business acting separately. This
ecosystem { formed by service providers, mashup authors, and users as visualized in
Fig. 1 { need not be controlled by a central authority. In contrast, even though
mashup authors and service providers may have an explicit service level
agreements (SLA), it is common that mashups are developed without such contracts,
and the ecosystem is formed implicitly. For instance, one can build a mashup on
top of services freely available in the web with liberal enough licenses. In a broad
sense, any web document author can be considered as a service provider, as it
is common that content is gathered from web sites by technique called \screen
scraping" or \web scraping", where source data is parsed from HTML pages
aimed at human readers.</p>
      <p>In the following we will rst provide some background information regarding
mashup ecosystems, and then advance to some challenges associated with the
establishment of new mashup ecosystems.</p>
      <sec id="sec-3-1">
        <title>3.1 Background</title>
        <p>
          Yu and Woodard [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] have described mashup ecosystems by using the
ProgrammableWeb mashup indexing service (http://www.programmableweb.com/)
data as source. They investigate the structure and dynamics of the Web 2.0
ecosystems by analyzing the data available about mashups and APIs. The rst
nding was that at the time of the study APIs were organized into three tiers,
which were 1) the most popular API (Google Maps), 2) popular APIs (many
APIs used for social services and searching) and 3) less popular APIs (APIs often
used for blogging, online retail, music, videos and feeds). The second nding was
that mashups are often composed by combining APIs across tiers. This
highlights the central role of the most popular APIs, but also reveals the importance
of less popular APIs in dilution of the ecosystem. Many of the third tier APIs
bring together novel combinations of functionality. Another interesting nding
is that in contrast to what has been suggested [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], there is no long tail of
services that would form a basis for a signi cant number of mashups. Instead, Yu
and Woodart noticed that 95% of mashups are build on 20% of services, which
is much more than in the famous Pareto Principle, or 80/20 rule as it is often
called. Moreover, they noted that 51% of services were not used by mashups at
all. However, one should bear in mind that Yu's and Woodard's data source,
ProgrammableWeb, lists only those services and mashups that have been added to
it by developers. Therefore there are services and mashups that are not included
in the source data.
        </p>
        <p>
          Bosch has reviewed mashup ecosystem from end-user programming point of
view [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Bosch also pointed out two success factors as well as two challenges that
this ecosystem has. The two success factors are, rst, the value that end-users
gain by designing their own applications, and second, sharing of applications
among users. The two challenges are enabling the end-user programming for
inexperienced developers and minimizing ecosystem maintenance e orts.
Furthermore, Bosch identi es so called \undirected developers" that are able to
use the platform in unforeseen ways and provide signi cant innovations for the
overall ecosystem. Similarly to [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], our perception is that mashup ecosystems
are very valuable for end-users and service providers. However, despite
popularity that mashups have gained, polished end-user programming solutions for
mashups have not been very successful. In contrast, some promising e orts by
major players on the eld, such as Google Mashup Editor and Microsoft Pop y,
have been discontinued, and mashup composing still lacks tool support. On the
other hand, mashup development has focused on building applications with
traditional web development tools and architectures. Consequently, our previous
research has been focused on applying good software engineering practises on
mashups, with the most practical tools at hand [
          <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
          ].
        </p>
        <p>
          Another interesting study is concerning the way a mashup ecosystem grows.
For instance, hypothesis in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is that mashup developers create new mashups by
copying existing ones. Simulations suggest that this would be true, as it is in line
with the reports about mashup ecosystem growing [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. However, the hypothesis
of [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] has not been tested empirically.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Designing Services</title>
        <p>Service providers are crucial stakeholders in mashup ecosystems, as they provide
the necessary content that is reused in mashups. There are numerous motives to
allow liberal access to the content of a service. One rationale is a desire for getting
a wider audience for certain platform, product, or content accessed through the
service. Moreover, opening a service can lead to numerous clients created by
third party developers to emerge on di erent platforms and for di erent user
requirements. Some services are designed so that spreading advertising messages
along with the content is possible.</p>
        <p>Service providers support mashup ecosystems in four identi able levels, which
are described in the following:
1. No support for mashups. Some web content authors do not support mashups
at all and provide their content solely as regular web documents. This kind
of content is still accessible with \screen scraping", but such accessing is
typically error prone, and it often is illegitimate. Some services even have
implemented technical measures to prevent scraping. Furthermore, even if
reusing the content in mashups would be allowed, the web content author
does not have control on what parts of the content is reused, and it is
difcult to build a business model around such approach towards mashups. In
addition, it is likely that accessing the content is very ine cient and
cumbersome from mashup author's point of view. Furthermore, since even the
smallest change in the web page can lead to a di erent interpretation of the
content, mashups relying on such services are usually somewhat fragile.
2. Access through a web feed. It is common that regularly updated sites, such as
blogs or news sites, provide their content through RSS, Atom, or other type
of web feed. A web feed is easy to set up and maintain, particularly if some
publishing system is used. The feed is intended mainly for users to subscribe
with some feed reader application, but at the same time the data becomes
accessible for mashups, too. While it is possible to establish some kind of
licensing for reusing the content, the control over the content is still rather
coarse. Use cases of web feeds are limited to accessing the content as a whole,
as, for instance, querying certain content item is not possible. Utilizing web
feeds in mashups is typically straightforward as helpful libraries and tools
for such task are available on most platforms. Some dedicated mashup tools,
Yahoo! Pipes (http://pipes.yahoo.com/) for instance, support only web
feeds if content from an arbitrary service is desired to be included into a
mashup.
3. Access through a web interface. Providing a service with a web interface,
typically following either REST or SOAP architecture style, enables using
the service in mashups. Use cases of such interface allows not just data
accessing but other types of services as well. For instance, a service can provide
means for social communication, authentication, database accessing, or
specialized functions such as reverse geocoding or music identifying. Setting up
a web service with REST or SOAP interface requires careful planning and
implementation, especially if sensitive information is handled. However, such
system allows ne-grained control over the content as well as applications
using the interface, and it enables di erent kinds of business models. Service
load can be handled as well by limiting requests made in a time period, even
individually for each application. Utilizing well-designed web interfaces in
mashups is straightforward, and maintaining e orts that are needed when
the service is updated are typically trivial. Conveniently, the content can be
provided in di erent formats for the mashup developers to choose from, for
instance both JSON and XML formats are often supported.
4. Access through a programmatic interface. Establishing a programmatic
JavaScript API allows to integrate the sevice tightly with arbitrary web
applications and mashup ecosystems. Such interface is used by including a
JavaScript library into the application, which makes it possible to use the service
with regular JavaScript function calls. Typically the JavaScript library is
downloaded from the service provider's server instead of having a copy on
the server hosting the mashup, which makes possible to always use the most
recent version of the library. Setting up a programmatic JavaScript interface
requires careful engineering, but it enables superior control over the content
and applications. Diverse business models are possible, and the content can
be provided with di erent terms and licenses for individual clients. Program
code of the JavaScript library is often protected against misuse by code
obfuscation or by other technical means. Considerable downside of the
programmatic interfaces is that updating the interface a ects directly on the mashup
implementation. Therefore, programmatic interfaces are often provided in
numerous versions, and a new version is introduced whenever features are
added. Consequently, bug xes need to be performed on all the versions,
which makes maintaining the interface more laborious. Another downside is
that if a programmatic interface is desired to be used on other runtime
environments than a web browser, a parallel version needs to be provided. For
instance, Google Maps API (https://developers.google.com/maps/) has
separate native SDKs for Android and iOS mobile operating systems, and
used to have another version for Adobe Flash Player (http://www.adobe.
com/products/flashplayer.html). The Flash version was deprecated in
September, 2011.</p>
        <p>
          The proliferation of programmatic interfaces is a step towards software
created from downloadable components, which is sometimes referred to as
mashware, web software development technique described in [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. The most successful
example of this kind of interface is Google Maps JavaScript API, which is also
the most popular interface used in mashups [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. It can be argued that one reason
behind the success of this API has been the implementation style, which is
particularly convenient for application developers, as it is similar to DOM (Document
Object Model) and other interfaces that can be found from web browsers.
However, Google Maps is not the only example of programmatic interface approach,
as there are numerous other examples including user authentication, social
networking, HTML5 music and video players, and data visualization, among others.
        </p>
        <p>Until recently most of the services have been provided for free with the
exception of some very specialized ones such as image content recognition services.
However, in October 2011 Google announced that Google Maps API will be
provided in two di erent versions: free and non-free, with the latter called Google
Maps API for Business. The one with a prize tag provides more advantageous
features such as higher request limitations and technical support. Even if this
is the rst remarkable example of this kind of development, it is an interesting
change, particularly when bearing in mind that the Google Maps is the most
popular service used in mashups, and it is widely utilized in other types of web
applications, too. Therefore, this development may indicate a beginning of a new
kind of emerging business model.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 Designing Mashups</title>
        <p>Typically, mashups are build with combination of server- and client-side parts.
Functionality between these two parts is divided according to what is suitable
for the current design. In the early days, dynamic web sites were created on
server-side with combination of C programs, Perl, and shell scripts using
Common Gateway Interface (CGI). Today, server-side web applications are often
developed with Java, server-side JavaScript, Perl, PHP, Python or other
suitable language. Applications of this kind work especially well if the client device
has low processing resources as heavy processing takes place at the server-end
and the client just shows the result. As client-end terminals have become more
capable, it has become possible to compose mashups where the business logic
resides completely on the client-end.</p>
        <p>While mashups can be constructed in numerous di erent ways with a plethora
of tools, there still are major practical problems related to mashup composing
and security. For instance, the web browser security model is too restricting for
mashups, tools introduced are lacking behind, and using dynamic languages for
large applications is an unknown territory for many developers. The eld of web
programming is constantly changing as new interfaces, technologies and
frameworks build upon novel technologies emerge constantly. The amount of di erent,
constantly evolving APIs with di erent licenses is overwhelming. When
developing large-scale mashups, situation may be even more problematic. Mashup
authors build their applications on web services, and mashup users can add
content to these services and consume it with mashups. Such ecosystem has
commercial potential, which is, however, limited because of technical, legal and
other reasons. Some of the issues are general for both mobile and desktop
environment, but naturally mobile mashups have their own speci c things to handle
as well.</p>
        <p>
          While mobility restricts applications and application development, at the
same time it is a great enabler from the mashup development point of view.
The dynamic nature of mashups suits well for di erent ways mobile terminals
can be used. Often, the information needed on the y is related to user's
context, which can be available for applications to access automatically [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. This
opens up opportunities to provide advantageous user experiences, as mashups
can dynamically present eligible information, possibly even automatically
without requiring speci c user action. However, as mobile devices capabilities are
limited, extending mashups to the mobile domain is not trivial, and special
solutions are sometimes necessary. Mobile mashup ecosystem challenges, especially
from utilizing multimedia in mashups point of view, have been described in detail
in our previous paper [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>There are situations when the composition of a mashup is not possible using
only dynamic code. For example, applications that require a lot of computation
power or access to interfaces that are not available for dynamic code, have to be
constructed with both dynamic and native code. Therefore, o ering an interface
for mixing web technologies with the capabilities of native software components
is sometimes necessary. On the other hand, utilizing hybrid technology allows one
to combine the best of both worlds: performance and eye candy of traditional,
installed binary applications and pervasiveness and seemingly in nite resources
of the web.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4 Legal Considerations</title>
        <p>In general, web interface legal terms and conditions are diverse. Commonly
service providers set restrictions for those uploading content to the service, as well
as those utilizing content of the sevice through an API, including mashup
developers. In the following, some typical requirements and terms that a ect mashup
development are described.
{ Service Level Agreements (SLA) are used to provide uptime guarantee or
to state that the API has no liability for downtime or unexpected changes.
Sometimes the latter is available for those who use the interface for free, and
the former for paying customers.
{ If the interface allows accessing user created content under di erent licenses,
terms of service (TOS) require developers to strictly follow those licenses. If
the application uses a cache, also the cache needs to re ect changes in
content's licenses and availability. Sometimes service terms determine time limits
for the cache re ecting these changes. Moreover, caching may be forbidden
completely.
{ If the interface enables accessing user's private data, TOS usually include
restrictions about how this data can be used and stored. The service provider's
logo or other branding needs to be explicitly available in the mashup. Other
services require adding acknowledgements to application source code. Detailed
terms on how the branding is presented may be represented. For instance,
when using Google Maps, the terms of the Google Maps API require that
the Google logo is the largest logo in the nal implementation (https://
developers.google.com/maps/terms).
{ Interface access rate can be limited to a certain amount of requests in a time
period. For instance, Twitter limits unauthenticated calls to 150 requests per
hour, whereas authorized calls are limited to 350 requests per hour (https:
//dev.twitter.com/docs/rate-limiting).
{ Certain types of applications may be prohibited by the service provider. For
instance, Flickr TOS deny using Flickr API for any application that replicates
or attempts to replace the essential user experience of Flickr.com (http://
www.flickr.com/services/api/tos/).
{ Repeated violations of interface terms, for instance exceeding use rates or using
the API in a forbidden type of an application, may make the service provider
to terminate certain application from accessing the interface. Technically this
can be achieved by restricting application IP addresses or application speci c
API key from accessing the service. In practice, TOS often contain a clause
for such situation, although we have no data how commonly the clause is
exercised.</p>
        <p>The above issues are further complicated by the fact that in many cases,
mashup developers have not signed a formal contract with service providers,
but rely on licenses. Consequently, as copyright owners and service providers
can change licenses more liberally than signed contracts, developers may end up
accidentally violating license rights overnight when the original service provider
updates license terms.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Sample Mashup Breeds and Ecosystems</title>
      <p>Mashups can be classi ed based on numerous criteria, which in many ways
affects the fashion the associated ecosystem can be established. One can classify
mashups into breeds, such as server- and client-side mashups, and multiple and
single API mashups. Moreover, mashup ecosystems can be classi ed into
explicit and implicit ecosystems. The former includes commercial and enterprise
mashups, and the latter includes situational mashups, as well as most mashups,
that can be classi ed according to the most essential API used, establishing an
ecosystem that is led by the provider of this API. In the following, mashup breeds
and ecosystems are described in more detail and examples of di erent types of
mashup ecosystems are presented.</p>
      <sec id="sec-4-1">
        <title>4.1 Mashup Breeds</title>
        <p>Server- and client-side mashups. One way to classify mashups is division
between server-side and client-side mashups, based on where downloading,
processing and generating of the web content takes place. Server-side mashups
application logic as well as accessing di erent web resources is implemented at the
server-end. Client-side mashups are implemented completely on the client-end
so that processing takes place at the user's web browser. Because of historical
reasons, server-side approach has been more popular in the past, but as the
processing power of web browser at the client-end has increased, client-side approach
has become common as well. These two types of mashups have their advantages
as well as disadvantages and suit for di erent situations, for instance a
serverside mashup is not limited by browser's security model, the same origin policy,
that isolates documents loaded from distinct origins from each other. Naturally
hybrid approach combining server- and client-side mashup techniques is
possible as well, and mashup developer can decide how to divide the functionality
between the server and the client. If a mashup ecosystem consists of client-side
mashups, it is necessary to pay more attention on how mashups can interact
with services located at di erent origins. In addition, accessing speci c mashup
clients may be di cult because of addressing issues in IPv4-based networks.</p>
        <p>Multiple and single API mashups. Instead of combining content from
multiple APIs, which is usually the case, some mashups are using only one single
API to create new visualization for existing web services. Often the user
interface of this kind of mashups is simpli ed and added with attractive properties of
some kind. Another kind of single API mashups provide more advanced ways for
searching than the original service. For instance, there are numerous mashups
that show images retrieved from the popular image service Flickr. Another
example of a single API mashup is WikiMindMap (http://www.wikimindmap.org/),
which generates a mindmap about a keyword based on Wikipedia articles.
Mashup ecosystems that consist of numerous single API type of mashups are
usually build around the few most popular services of the web. Such ecosystems
have emerged, for instance, around Google Maps, Flickr, Wikipedia and Twitter.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2 Explicit Mashup Ecosystems</title>
        <p>Commercial mashups. Commercial mashups are created to show a pro t
for the mashup publisher where as non-commercial mashups are provided
nonpro t. In commercial mashup ecosystems, mashup authors and service providers
coordinate explicitly and use either speci c contracts or common TOS
agreements. Commercial mashup ecosystem is required to implement reliable and
secure methods to in order to transfer sensitive data. In addition, availability of
services in the ecosystem in a commercial setting is naturally vital. A typical
example of a commercial mashup combines information about the product
being sold with user reviews from multiple sources. Another type of commercial
mashups is those including advertisements. Commercial mashups are targeted
at consumers in contrast to enterprise mashups that are targeted at business
users, even though both are often created by a company. It is common that a
commercial mashup is provided for mobile device users as an alternative user
interface for an electronic commerce. Further examples of commercial mashups
are price comparison and product search mashups. For instance, there are
numerous mashups o ering this kind of service based on Amazon's and EBay's
price data. Another kinds of commercial mashups help to locate a certain dealer
on a map. An example of a commercial mashup combining social network
services is Scupal (http://www.scupal.com/), a social buying website launched in
India. Scupal allows users to select a product they would be willing to purchase,
and then gather other interested buyers of the same product within their social
networking contacts. The more there are buyers the less is the price.</p>
        <p>Enterprise mashups. Enterprise mashups are developed to solve some
particular business-related problem. In contrast to consumer mashups, that utilize
only open web services, they can use closed enterprise data sources and
combine the information with data from the web. Forming more closed ecosystem
than the commercial mashup ecosystem, enterprise ecosystem is controlled by
organization's internal interface speci cations and descriptions, in addition to
usage of public web services available under common TOSs. Security features of
an enterprise mashup ecosystem are crucial as sensitive data of an organization
is often handled. For instance, storing the data should be done in controlled
fashion within the organization's own storage facilities. Enterprise mashups can
be created solely by the company's IT department or a sand-box environment
may be provided for non-experts to create mashups. However, the more degree
of freedom is allowed, the greater are the skills needed for mashup development.
Typical to enterprise mashups is that they focus is on a single presentation and
target at providing a tool to help collaboration with di erent people working
with the same objective.</p>
        <p>Reusing of existing mashup solutions is often in a key role in an enterprise
mashup ecosystem. One activity that targets at such reuse is Enterprise Mashup
Markup Language (EMML), which is a XML-based domain speci c language for
developing enterprise mashups developed by the Open Mashup Alliance (OMA).
With EMML, OMA aims at introducing a standardized, consistent and
interoperable way to develop enterprise mashups. In addition to de ning the language,
OMA provides a reference implementation of a runtime that processes mashup
scripts written in EMML. EMML can be used to declaratively describe the data
processing ow, i.e. data composing, of a mashup.</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3 Implicit Mashup Ecosystems</title>
        <p>
          Situational mashups. Term situational application is used about an
application that is created for a narrow group of users with unique needs, and some
mashups are developed as situational applications. In Clay Shirky's essay
Situated Software [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] this type of applications are described to be \designed for
use by a speci c social group, rather than for a generic set of 'users' ", and
therefore, ecosystems build around situational mashups are implicit. Typically
situational applications have short life span and the quality of engineering may
not be rst class. In addition, scaling up is often di cult with situational
applications. However, Shirky remarked that as the group of users is relatively
small, it is often unnecessary to implement mechanisms for user supervision.
Furthermore, situational applications are typically more personalized, and they
can contain pre-entered information that is relevant only for the small group of
intended users. As simple mashups that utilize readily available interfaces can be
composed together rather quickly, the cost of implementation is relatively low,
and the ecosystem containing situational mashups may have rather lightweight
security, moderation and authentication features. Therefore, mashups can be
targeted at small, speci c groups of users and be very personalized, as well.
The architecture and other engineering aspects of this kind of mashups may not
be the most polished, but with the speci c target group and purpose, it does
not have resonance. One should bear in mind, however, that when mashups are
used to address non-trivial, more complicated issues, this approach should not
be used as it quickly leads to di culties. Situational mashup ecosystems can
emerge swiftly, but typically lifespans of such ecosystems are shorter as well.
        </p>
        <p>The most essential API. One way to do the classi cation is to use the type
of most essential API to determine the mashup type. For instance, a mashup can
be classi ed as social, news, map, image, video, audio or search mashup based
on the main service utilized. In consequence the ecosystem is build around this
central service, and it can contain both implicit and explicit interactions. Often
these mashups are targeted at consumers and provided for free, and therefore the
implicit model is more common. Mashup statistics divided into categories based
on the essential API used in a mashup can be collected from ProgrammableWeb
site. The site provides statistics about mashups as well as service interfaces used
to create new mashups. Only those mashups that are submitted to the website
are listed, but the site can be used as a source for suggestive information about
consumer mashups. However, the site does not list enterprise mashups at all. As
can be seen in Fig. 2, mapping mashups are the most popular type of mashups.
Social, search, photo, shopping and video mashups are roughly equally popular.
In addition, remarkable number of mashups have been discontinued (tagged
\deadpool").</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5 Implementation Considerations</title>
      <p>
        In our research (see e.g. [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]), we have identi ed challenges that mashup
ecosystem confronts in the areas of cloud infrastructure, web services, legal issues, and
tool support. In the following, these will be brie y addressed.
      </p>
      <p>Cloud Infrastructure. Cloud infrastructure related issues refer to
addressability of mashup ecosystem endpoints as well as transparency and protocol
support of network. Before IPv6 gains ground it might be necessary to use higher
level methods to address network endpoints. Addressing mashup clients and
services at too high level can derive scalability and performance issues. Another
problem is caused by non-transparent network nodes that may cause some parts
of the ecosystem become unattainable. Furthermore, lack of protocol support for
other than HTTP can cause for instance video and audio streams fail to operate.</p>
      <p>Web services. Web service reliability and complexity of integrating a high
number of services are another type of challenges. Web service reliability can be
addressed by adding fallback mechanisms, but this strategy will make the
implementation more complex. While adding more services to the mashup can be
attractive for users it makes the implementation more complex and increases
vulnerability to service breakouts and incompatible version upgrades, which plague
especially mashups that reuse services anonymously without explicit contracts.
Furthermore, client-end device capabilities may be limited and operational
expenses can be an issue, especially with mobile devices.</p>
      <p>Legal issues. Moreover, legal issues related to mashup ecosystem are
numerous. Service terms are often incompatible and hard to follow in complex
mashups. The situation is even more complex when a mashup is hosted on
third party platform, such as mashup tool providers servers. Mashups can be
required to follow some content related limitations as well. For instance, some
content can be freely available in U.S. but restricted from accessing in U.K.
Some service providers may restrict their interfaces to be used only on desktop
and prohibit using them on mobile devices. In addition, libraries and frameworks
used in mashups may have con icting licenses. Furthermore, protecting a
clientside mashup from copying is often di cult as the executable code needs to be
transferred to the client-end terminal.</p>
      <p>
        Tools. Mashups can be developed with conventional web programming
techniques using text editor and environment with debugging capabilities [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. This
requires considerable experience, as sometimes it is necessary to crawl the
content from web pages. This is error-prone and can lead to hard-to-trace errors
when subtle changes happen in the web sites from which content is downloaded.
In contrast, dedicated mashup development tools can be helpful, especially when
end-users are creating mashups. Typically, the target environment for dedicated
tools is a web browser. Moreover, also the number of web sites from which
content can be accessed is limited, and only few services are supported by the tools.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6 Conclusions</title>
      <p>
        Web-based software and services have become commonplace. As virtually all
imaginable content and services are becoming available online, there will be
new, optimized ways to consume content and access services. In this paper, we
have argued that mashups { special kinds of web applications that combine
data and services from numerous sites { enables the development of new,
improved applications that enrich the basic online facilities. A dimension that has
been commonly overlooked with mashups is that they are not only about the
technology, but their development and use is governed by other factors as well.
Consequently the elements of opportunistic design { hacking, mashing and
gluing, as pointed out in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] { must be associated with the creation of sustainable
software ecosystems of the web era.
      </p>
      <p>
        Service interfaces are integral part of mashup ecosystems, and we indenti ed
four levels of support that service providers can o er for mashups. We believe
that the success of programmatic JavaScript interfaces is one indicator of the
trend towards mashware ecosystems { software ecosystems that leverage source
code and software components that are downloaded dynamically from all over the
world. As pointed out in [
        <xref ref-type="bibr" rid="ref15 ref9">9, 15</xref>
        ], mashware ecosystems can dramatically improve
productivity of web application development and allow global reuse of software
components. However, research is needed in numerous areas including security,
modularity and legal aspects, as well as software engineering methodologies to
support the development of such ecosystems.
      </p>
      <p>In the future, we expect that the multifaceted nature of mashups will lead to
increasing interest also on the research side. So far, such applications, as well as
associated ecosystems, have gained relatively little attention from researchers.
Consequently, there are numerous directions for future work, where the main
development principles of mashups in general as well as associated business impacts
are analyzed in more detail.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Messerschmitt</surname>
            ,
            <given-names>D.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szyperski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Software Ecosystem: Understanding an Indispensable Technology and Industry</article-title>
          . MIT Press, Cambridge, MA, USA (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Salo</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aaltonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mikkonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Mashreduce: Server-side mashups for mobile devices</article-title>
          .
          <source>In: Proceedings of the 6th international conference on Advances in grid and pervasive computing. GPC'11</source>
          , Berlin, Heidelberg, Springer-Verlag (
          <year>2011</year>
          )
          <volume>168</volume>
          {
          <fpage>177</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woodard</surname>
            ,
            <given-names>C.J.</given-names>
          </string-name>
          :
          <article-title>Service-oriented computing | icsoc 2008 workshops</article-title>
          . Springer-Verlag, Berlin, Heidelberg (
          <year>2009</year>
          )
          <volume>136</volume>
          {
          <fpage>147</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Hoyer</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stanoesvka-Slabeva</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janner</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schroth</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Enterprise mashups: Design principles towards the long tail of user needs</article-title>
          .
          <source>In: Services Computing</source>
          ,
          <year>2008</year>
          . SCC '08. IEEE International Conference on. Volume
          <volume>2</volume>
          . (july
          <year>2008</year>
          )
          <volume>601</volume>
          {
          <fpage>602</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bosch</surname>
          </string-name>
          , J.:
          <article-title>From software product lines to software ecosystems</article-title>
          .
          <source>In: Proceedings of the 13th International Software Product Line Conference. SPLC '09</source>
          ,
          <string-name>
            <surname>Pittsburgh</surname>
          </string-name>
          , PA, USA, Carnegie Mellon University (
          <year>2009</year>
          )
          <volume>111</volume>
          {
          <fpage>119</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Mikkonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salminen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards a reference architecture for mashups</article-title>
          .
          <source>In: Proceedings of the 2011th Confederated international conference on On the move to meaningful internet systems. OTM'11</source>
          , Berlin, Heidelberg, Springer-Verlag (
          <year>2011</year>
          )
          <volume>647</volume>
          {
          <fpage>656</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Salminen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mikkonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nyrhinen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taivalsaari</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Developing client-side mashups: experiences, guidelines and the road ahead</article-title>
          .
          <source>In: Proceedings of the 14th International Academic MindTrek Conference: Envisioning Future Media Environments. MindTrek '10</source>
          , New York, NY, USA, ACM (
          <year>2010</year>
          )
          <volume>161</volume>
          {
          <fpage>168</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sari</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Evolution of the mashup ecosystem by copying</article-title>
          .
          <source>In: Proceedings of the 3rd and 4th International Workshop on Web APIs and Services Mashups</source>
          . Mashups '
          <volume>09</volume>
          /'10, New York, NY, USA, ACM (
          <year>2010</year>
          )
          <volume>11</volume>
          :
          <fpage>1</fpage>
          {
          <issue>11</issue>
          :
          <fpage>7</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Taivalsaari</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Mashware: the future of web applications</article-title>
          .
          <source>Technical report</source>
          , Mountain View, CA, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Mikkonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salminen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards pervasive mashups in embedded devices</article-title>
          .
          <source>In: Proceedings of the 2010 IEEE 16th International Conference on Embedded and Real-Time Computing Systems and Applications. RTCSA '10</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2010</year>
          )
          <volume>35</volume>
          {
          <fpage>42</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Salminen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kallio</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mikkonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Towards Mobile Multimedia Mashup Ecosystem</article-title>
          .
          <source>In: IEEE International Conference on Communications Workshops</source>
          , ICC Workshops.
          <article-title>(</article-title>
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Shirky</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Situated software</article-title>
          .
          <source>First published March 30</source>
          ,
          <year>2004</year>
          <article-title>on the "Networks, Economics, and Culture" mailing list (</article-title>
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casati</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Daniel</surname>
          </string-name>
          , F.:
          <article-title>Understanding mashup development</article-title>
          .
          <source>Internet Computing, IEEE</source>
          <volume>12</volume>
          (
          <article-title>5) (sept</article-title>
          .-oct.
          <year>2008</year>
          )
          <volume>44</volume>
          {
          <fpage>52</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Hartmann</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Doorley</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klemmer</surname>
            ,
            <given-names>S.R.</given-names>
          </string-name>
          :
          <article-title>Hacking, mashing, gluing: Understanding opportunistic design</article-title>
          .
          <source>IEEE Pervasive Computing</source>
          <volume>7</volume>
          (
          <issue>3</issue>
          )
          <issue>(</issue>
          <year>July 2008</year>
          )
          <volume>46</volume>
          {
          <fpage>54</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Mikkonen</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taivalsaari</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The mashware challenge: bridging the gap between web development and software engineering</article-title>
          .
          <source>In: Proceedings of the FSE/SDP workshop on Future of software engineering research</source>
          .
          <source>FoSER '10</source>
          , New York, NY, USA, ACM (
          <year>2010</year>
          )
          <volume>245</volume>
          {
          <fpage>250</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>