Elucidating the Mashup Hype: Definition, Challenges, Methodical Guide and Tools for Mashups


Published on

Paper presented at 2nd Workshop on Mashups, Enterprise Mashups and Lightweight Composition on the Web (MEM 2009 @ WWW 2009; http://integror.net/mem2009/)

Mashups are a current hype that is attracting high interest by academia and industry now and in the next years. The idea behind a mashup is to create new content by reusing and combining existing content from heterogeneous sources. Advantages of mashups are that even people with no knowledge of programming languages can easily build new Web applications and create new forms of visualizations. To support the mashup construction process several tools have been proposed with easy-to-use functionalities. However, from the research perspective it is dissatisfying that neither a clear definition and classification model for mashups nor a separation between mashups and other forms of application integrations exist. The aim of this paper is to elucidate the mashup hype by providing a definition and classification model for mashups and to sketch a methodical engineering guide for mashups. Additionally, an overview of tools and languages supporting the mashup creation is presented.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Elucidating the Mashup Hype: Definition, Challenges, Methodical Guide and Tools for Mashups

  1. 1. Elucidating the Mashup Hype: Definition, Challenges, Methodical Guide and Tools for Mashups Agnes Koschmider, Victoria Torres and Vicente Pelechano
  2. 2. <ul><li>Introduction </li></ul><ul><li>Definition for Mashups </li></ul><ul><li>Links and Differences </li></ul><ul><li>Classification of Mashups </li></ul><ul><li>Challenges for the Mashup Construction </li></ul><ul><li>Guide for a Methodical Construction of Mashups </li></ul><ul><li>Tools </li></ul><ul><li>Conclusions </li></ul>Agenda
  3. 3. <ul><li>The Mashup term </li></ul><ul><ul><li>roots in the musical domain </li></ul></ul><ul><ul><li>generalized and brought to other domains </li></ul></ul><ul><li>Focusing on the Web domain </li></ul><ul><ul><li>No clear distinction between SOA vs. Mashup </li></ul></ul><ul><ul><li>No clear classification model </li></ul></ul><ul><ul><li>Which challenges introduce </li></ul></ul><ul><ul><li>Methodology for Mashup construction </li></ul></ul>Introduction
  4. 4. Introduction
  5. 5. Definition for Mashups Web page integration combination reuse Data sources APIs Third party data Web 2.0 Data processing
  6. 6. Definition for Mashups Web-based application that is created by combining and processing on-line third party resources, resources that contribute with data, presentation or functionality
  7. 7. <ul><li>SOA principles </li></ul><ul><ul><li>Autonomy </li></ul></ul><ul><ul><li>Composability </li></ul></ul><ul><ul><li>Contract </li></ul></ul><ul><ul><li>Discoverability </li></ul></ul><ul><ul><li>Encapsulation </li></ul></ul><ul><ul><li>Loose coupling </li></ul></ul><ul><ul><li>Reusability </li></ul></ul><ul><ul><li>Statelessness </li></ul></ul>Links and Differences
  8. 8. <ul><li>Differences </li></ul><ul><ul><li>No formal definition of the combined resources is required </li></ul></ul><ul><ul><li>Integration is performed at UI level not at logic level </li></ul></ul><ul><ul><li>Targeted to non-expert users </li></ul></ul><ul><ul><li>Resources not always provided to be exploited by third-parties </li></ul></ul><ul><ul><li>There is no a communication protocol </li></ul></ul>Links and Differences
  9. 9. <ul><li>WHAT to mash up? </li></ul><ul><li>WHERE to mash up? </li></ul><ul><li>HOW to mash up? </li></ul><ul><li>F or WHOM to mash up? </li></ul>Classification of Mashups
  10. 10. <ul><li>WHAT to mash up? </li></ul><ul><ul><li>Presentation </li></ul></ul><ul><ul><ul><li>Retrieves layout information from different data sources </li></ul></ul></ul><ul><ul><li>Data </li></ul></ul><ul><ul><ul><li>Merges data from different sources </li></ul></ul></ul><ul><ul><li>Application functionality </li></ul></ul><ul><ul><ul><li>Builds a new resource based on the composition of functionality </li></ul></ul></ul><ul><ul><li>Other classifications based on the content </li></ul></ul><ul><ul><ul><li>Mapping, Photo/Video, Search/Shopping, News, etc. </li></ul></ul></ul>Classification of Mashups
  11. 11. <ul><li>WHERE to mash up? </li></ul><ul><ul><li>Server </li></ul></ul><ul><ul><ul><li>Logic hosted in the Server </li></ul></ul></ul><ul><ul><ul><li>Languages: Python, CGI, PHP, etc. </li></ul></ul></ul><ul><ul><ul><li>Content is generated similarly to traditional Web apps </li></ul></ul></ul><ul><ul><ul><li>Allows transforming returned data into a different formats </li></ul></ul></ul><ul><ul><li>Client </li></ul></ul><ul><ul><ul><li>Logic hosted in the Client </li></ul></ul></ul><ul><ul><ul><li>Languages: Javascript, AJAX, Java applet </li></ul></ul></ul><ul><ul><ul><li>Data directly retrieved from provider </li></ul></ul></ul><ul><ul><ul><li>Better user experience </li></ul></ul></ul>Classification of Mashups
  12. 12. <ul><li>H OW to mash up? </li></ul><ul><ul><li>Extraction </li></ul></ul><ul><ul><ul><li>Collect + Merge </li></ul></ul></ul><ul><ul><li>Flow </li></ul></ul><ul><ul><ul><li>Collect + Transform/Process + Merge </li></ul></ul></ul>Classification of Mashups
  13. 13. <ul><li>For WHOM to mash up? </li></ul><ul><ul><li>Consumer mashups </li></ul></ul><ul><ul><ul><li>Intended for individual use </li></ul></ul></ul><ul><ul><ul><li>Combine public + private sources </li></ul></ul></ul><ul><ul><ul><li>By means of a simple browser-based UI </li></ul></ul></ul><ul><ul><li>Enterprise/Business mashups </li></ul></ul><ul><ul><ul><li>Intended for organization members use </li></ul></ul></ul><ul><ul><ul><li>Considers: Security + Governance/Enterprise policies </li></ul></ul></ul><ul><ul><ul><li>Intended for domain experts </li></ul></ul></ul>Classification of Mashups
  14. 14. <ul><li>Cataloguing </li></ul><ul><ul><li>Available directories </li></ul></ul><ul><ul><ul><li>http://www.webmashup.com </li></ul></ul></ul><ul><ul><ul><li>http://www.programmableweb.com </li></ul></ul></ul><ul><ul><ul><li>Tool directories (Yahoo! Pipes, google Mashups, etc.) </li></ul></ul></ul><ul><ul><li>It is necessary: </li></ul></ul><ul><ul><ul><li>Establish a standardized catalogue facilitating efficient searches </li></ul></ul></ul>Challenges for the Mashup Construction
  15. 15. <ul><li>Data integrity </li></ul><ul><ul><li>In Web 2.0 users are Contributors and Creators </li></ul></ul><ul><ul><ul><li>Inconsistency </li></ul></ul></ul><ul><ul><ul><li>Incorrectness </li></ul></ul></ul><ul><ul><ul><li>Intentionally misleading data entry </li></ul></ul></ul><ul><ul><li>Control mechanisms against end-user changes </li></ul></ul>Challenges for the Mashup Construction
  16. 16. <ul><li>Making data Web-enabled </li></ul><ul><ul><li>Improve screen scraping techniques </li></ul></ul><ul><ul><ul><li>No contract between content provider and consumer </li></ul></ul></ul><ul><ul><ul><li>Highly dependent on the source presentation </li></ul></ul></ul><ul><ul><li>Evaluate the impact of hosting the logic in the client </li></ul></ul><ul><ul><ul><li>Browsers with JavaScript disabled </li></ul></ul></ul><ul><ul><ul><li>Web robots, spiders or Webcrawlers </li></ul></ul></ul><ul><ul><li>Avoid Denial of Service (DoS) Attacks </li></ul></ul>Challenges for the Mashup Construction
  17. 17. <ul><li>Security and Identity </li></ul><ul><ul><li>Protection of data in transit </li></ul></ul><ul><ul><ul><li>i.e. MashSSL (SSL protocol) </li></ul></ul></ul><ul><ul><li>Control access </li></ul></ul><ul><ul><li>Client-side </li></ul></ul><ul><ul><ul><li>Allows avoiding Same-Origin Policy </li></ul></ul></ul><ul><ul><li>Server-side </li></ul></ul><ul><ul><ul><li>Application ID is not passed to each client’s browser </li></ul></ul></ul>Challenges for the Mashup Construction
  18. 18. <ul><li>Sharing and reusing </li></ul><ul><ul><li>Mechanisms for sharing mashups </li></ul></ul><ul><ul><ul><li>What to share: public vs. Private data </li></ul></ul></ul><ul><ul><ul><li>How to share: </li></ul></ul></ul><ul><ul><ul><ul><li>Access policies </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mechanisms to set the context of use (permision) </li></ul></ul></ul></ul><ul><ul><ul><li>Who to share with: groups, individuals, etc. </li></ul></ul></ul>Challenges for the Mashup Construction
  19. 19. <ul><li>Trust certificates </li></ul><ul><ul><li>Mainly for Enterprise/Business Mashups </li></ul></ul><ul><ul><li>Can I trust the source? </li></ul></ul><ul><ul><ul><li>Threats due to the mashup dynamic and multidomain nature </li></ul></ul></ul><ul><ul><ul><li>Protect end-users </li></ul></ul></ul><ul><ul><li>Someone should issue a license certifying the mashup </li></ul></ul>Challenges for the Mashup Construction
  20. 20. <ul><li>Version control mechanisms </li></ul><ul><ul><li>Mashups rely on third-party resources </li></ul></ul><ul><ul><li>Is the partner getting the proper data? </li></ul></ul><ul><ul><li>Content providers should notify about changes </li></ul></ul>Challenges for the Mashup Construction
  21. 21. <ul><li>Things to consider </li></ul><ul><ul><li>Resources exist before the Mashup application </li></ul></ul><ul><ul><li>Resources are given in a specific technology </li></ul></ul><ul><ul><li>End-users get involved in the Mashup life-cycle </li></ul></ul><ul><ul><li>Model Driven Development (MDD) </li></ul></ul><ul><ul><ul><li>H as proven satisfactory in Software Development </li></ul></ul></ul><ul><ul><ul><li>Follows a Top-down strategy </li></ul></ul></ul><ul><ul><ul><li>Can help to define “generic” mashups </li></ul></ul></ul>Guide for a Methodological Construction of Mashups
  22. 22. <ul><li>State the problem domain </li></ul><ul><ul><li>Business objective and success factors </li></ul></ul><ul><li>Identify the IT environment </li></ul><ul><ul><li>A vailable resources in the domain </li></ul></ul><ul><li>Identify the technical requirements </li></ul><ul><ul><li>Catalogue interfaces, define new services, processes, … </li></ul></ul><ul><li>Identify the technology set </li></ul><ul><ul><li>Select technology to deploy, test and evaluate </li></ul></ul><ul><li>Mashup Maintenance </li></ul><ul><ul><li>Version control, data integrity </li></ul></ul>Guide for a Methodological Construction of Mashups
  23. 23. <ul><li>Building, storing and publishing functionalities </li></ul><ul><li>Conceived as Web 2.0 applications </li></ul><ul><li>Targeted to both experts and non-expert users </li></ul><ul><li>Open source to highly-cost licence tools </li></ul>Tools
  24. 24. <ul><li>Dapper = Data + mapper </li></ul><ul><ul><li>Presentation, extraction and consumer Mashup tool </li></ul></ul><ul><li>DERI pipes </li></ul><ul><ul><li>Data, flow and consumer Mashup tool </li></ul></ul><ul><ul><li>Inspired by Yahoo! Pipes </li></ul></ul><ul><ul><li>It allows handling RDF documents  semantics </li></ul></ul><ul><ul><li>Does not require programming language skills </li></ul></ul>Tools
  25. 25. <ul><li>Serena Mashup Composer </li></ul><ul><ul><li>Data, functionality, flow and enterprise Mashup tool </li></ul></ul><ul><ul><li>Information + Business processes + Data </li></ul></ul><ul><ul><li>Syntax for Mashup creation similar to BPEL </li></ul></ul><ul><ul><ul><li>But allows consuming any kind of resource (feeds, plain HTML, services) </li></ul></ul></ul><ul><li>Microsoft Popfly </li></ul><ul><ul><li>Presentation, data, flow and consumer Mashup tool </li></ul></ul><ul><ul><li>Does not require language programming skills </li></ul></ul>Tools
  26. 26. <ul><li>Mashup technology allows end-users define applications based on their own needs </li></ul><ul><li>It is necessary to provide methods for the construction of Mashups </li></ul><ul><li>Before enterprise adoption </li></ul><ul><ul><li>Is required more research in </li></ul></ul><ul><ul><ul><li>Control Mechanisms </li></ul></ul></ul><ul><ul><ul><li>Mashup Certification </li></ul></ul></ul><ul><ul><ul><li>Mashup Quality </li></ul></ul></ul><ul><ul><ul><li>Data Intergrity </li></ul></ul></ul>Conclusions