We use proprietary and third party's cookies to improve your experience and our services, identifying your Internet Browsing preferences on our website; develop analytic activities and display advertising based on your preferences. If you keep browsing, you accept its use. You can get more information on our Cookie Policy
Cookies Policy
Wirecloud Mashup Platform - FIWARE Forge Wiki

Wirecloud Mashup Platform

From FIWARE Forge Wiki

Jump to: navigation, search


Brief Description

The Wirecloud Mashup Platform is a framework that allows end-users to mashup/compose service front-ends (also known as gadgets/widgets) in order to create their own composite applications. Gadgets are the building blocks of the interface and behaviour that constitute the single access elements to the underlying back-end services. These gadgets are usually provided by 3rd parties through a catalogue, and they can be visually interconnected through a graphical editor by means of a process called Wiring.

Programming artifacts

The Wirecloud Mashup Platform is made up of the following components:

  • Application Mashup Editor
  • Mashup Execution Engine
  • Catalogue


The Application Mashup Editor conforms the web-based composition editor that end-users utilize to create their mashup applications. It consists of a workspace where end-users can place gadgets in a spatial manner, a wiring tool to set the interconnection between gadgets, and a catalogue/marketplace where end-users can access and look for the gadgets they need.

The Mashup Execution Engine offers gadget interconnection, mashup state persistance, and cross-domain proxy facilities through an API to the editor. The decentralized nature of mashups demands this execution engine to coordinate gadget execution and communication within the mashup. Thanks to the plugin API, extra functionality can be added to the execution engine as external modules (i.e. security, publish/subscribe, or piping modules).

End-users will find the gadgets they need from the catalogue. The availability of a standardized gadget and mashup description languages allows the catalogue to be decoupled from both the editor and the execution engine.

Thanks to Wirecloud, FIWare will offer technologies to build the front end layer of a new generation SOA architecture that supports the following criteria:

  • End-users are fully empowered to self-serve from a wide range of available resources, providing access to content and application services, in order to set up their own personalized operating environment in a highly flexible and dynamic way ("Do it yourself", IKEA philosophy).
  • Active participation of users is now enabled, they can now create resources as well as share and exchange both knowledge and resources with others and learn together through the catalogue, thus accelerating the way innovations and improvements in productivity are incorporated.
  • Interaction will be adapted and relevant to context, giving the term "context" the widest possible meaning, in a way that comprises both user context (knowledge, profile, preferences, language, information about social networks the user belongs to, etc.) and delivery context (static and dynamic characteristics of the device used for access, geographical and time location, connection bandwidth, etc.). Dynamic context variability and user mobility will also be taken into consideration.

Wirecloud plans to evolve in the following services:

  • Advanced Integrated Mashup Development Environment (IDE)
  • Resource Catalogue and MarketPlace enabling resource (gadgets and application mashups) discovering, sharing and exploitation
  • Advanced Operative Environment Management

Wirecloud base functionality can be easily enhanced by means of modules:

  • Gadgets will be able to receive and publish data in a publish/subscribe fashion using the pub/sub module.
  • Gadgets can use the cross-domain proxy for accessing services without taking into account whether they are accessed using cross-domain requests.
  • Resources (Gadgets and Mashups) can be added to the catalogue using MDL/GDL languages.
Pending features and estimated efforts
  • Distribution and federation features in the catalogue
  • Integration with the Registry/Repository and marketplace.
  • Integration of the MDL/GDL with the USDL.
  • Support for Pub/Sub, Security and Piping in the Gadget/Plugin APIs

Technologies Used

The following technologies are used in Wirecloud:

  • Server side:
    • Python
  • Client side:
    • Javascript
    • HTML
    • CSS

Runtime pre-requisites

The Wirecloud platform has been built and tested on Debian Wheezy.

Known software requirements

  • A Database Manager (MySQL, PostgreSQL, Sqlite3...)
  • Apache
  • Python 2.5, 2.6 or 2.7. Python 3 and other versions are not supported.
    • python-lxml
  • Django 1.3
    • south
    • django_compressor (BeautifulSoup)
    • johnny-cache


Wirecloud Platform is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Wirecloud Platform is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details (link).

  • Both the Application Mashup Editor and the Mashup Execution Engine are open source products. They can be downloaded from GitHub.
  • The Catalogue is also offered as an open source product, but its distribution and federation features are still pending. It can be downloaded as part of the Application Mashup Editor.

Publicly available documentation

Wirecloud Mashup Platform has been used and further developed in the following projects:

  • The EzWeb and Nuba projects within the Avanza I+D program initiated by the Spanish Ministry of Industry, Tourism and Trade.
  • The EC FP7 FAST, RESERVOIR, and 4CaaSt projects.

The previous links contains documentation for both developers and end-users.

Personal tools
Create a book