2.2 Characteristics of Mashup
The main characteristics of the mashup are
combination, visualization, and aggregation. Mashup
is important to make more useful already existing
data, moreover for personal and professional use. To
be able to permanently access the data of other
services, mashups are generally client applications or
hosted online (Martin, 2007).
In the past years, more and more Web
applications have published APIs that enable
software developers to easily integrate data and
functions instead of building them by themselves.
Mashups can be considered to have an active role in
the evolution of social software and Web 2.0.
Mashups composition tools are usually simple
enough to be used by end-users. They generally do
not require programming skills, they rather support
visual wiring of GUI widgets, services and
components together (Hazem, 2008). Therefore,
these tools contribute to a new vision of the Web,
where users are able to contribute. In this paper we
propose an open platform for users to build their
mashups, besides they can also add their own APIs
to the system.
2.3 Architecture of Mashup
The architecture of a mashup is divided into three
layers:
z Presentation/ User interaction: this is the user
interface of mashups. The technologies used are
HTML/XHTML, CSS, JavaScript,
Asynchronous JavaScript and Xml (Ajax).
z Web Services: the products functionality can be
accessed using the API services. The
technologies used are XMLHTTPRequest,
XML-RPC, JSON-RPC, SOAP, REST.
z Data: Handling the data like sending, storing
and receiving. The technologies used are XML,
JSON, KML.
Architecturally, there are two styles of mashups:
Web-based and server-based. Whereas Web-based
mashups typically use the user's Web browser to
combine and reformat the data, server-based
mashups analyze and reformat the data on a
remote server and transmit the data to the user's
browser in its final form.
Mashups appear to be a variation of a Facade
pattern. That is, it is a software engineering design
pattern that provides a simplified interface to a larger
body of code (in this case the code to aggregate the
different feeds with different APIs).
Mashups can be used with software provided as a
service (SaaS).
After several years of standards development,
mainstream businesses are starting to adopt
Service-oriented Architectures (SOA) to integrate
disparate data by making them available as discrete
Web services. Web services provide open,
standardized protocols to provide a unified means of
accessing information from a diverse set of
platforms (operating systems, programming
languages, applications). These Web services can be
reused to provide completely new services and
applications within and across organizations,
providing business flexibility.
3 KEY TECHNOLOGIES
3.1 RESTful Web Services
Representational State Transfer (REST) is a style
of software architecture for distributed hypermedia
systems such as the World Wide Web. The term
Representational State Transfer was introduced and
defined in 2000 by Roy Fielding in his doctoral
dissertation (CHEN, 2008).
A RESTful web service (also called a RESTful
web API) is a simple web service implemented using
HTTP and the principles of REST. It is a collection
of resources, with three defined aspects
(http://en.wikipedia.org/wiki/Representational_State
_Transfer, 2010):
z The base URI for the web service, such as
http://example.com/resources/.
z The MIME type of the data supported by the
web service. This is often JSON, XML or
YAML but can be any other valid MIME type.
z The set of operations supported by the web
service using HTTP methods (e.g., POST, GET,
PUT or DELETE).
The PUT and DELETE methods are idempotent
methods. The GET method is a safe method (no
side-effect, implies idempotences well).
Unlike SOAP-based web services, there is no
"official" standard for RESTful web services. This is
because REST is an architecture, unlike SOAP,
which is a protocol. Even though REST is not a
standard, a RESTful implementation such as the
Web can use standards like HTTP, URL, XML,
PNG, etc (Indrajit, 2007). Currently, most Web
Services providers such as Yahoo, Ebay, Amazon,
Google have provided a RESTful Web services
APIs, for this reason we provide the API for users to
add their RESTful APIs to our open platform.
DESIGN AND IMPLEMENTATION OF AN OPEN PLATFORM FOR SERVICES INTEGRATION BASED ON
MASHUP
555