Mashup Technology - a Beginner's Guide
Submitted on August 14, 2008 - 00:31. Story : Level : Project :
In an earlier article titled 'Web 2.0 - Beyond the Conference'[1], we looked at several Web technologies that heavily contributes to the Web 2.0 arena. In this article by Ayanthi Anandagoda, she takes a deeper look at mashups, the promising technology that has been gaining increased traction over the last couple of years, with increasingly more business users exploring the technology in an attempt to reduce time spent on manually integrating data and content for everyday business requirements.
Table of Contents
- Introduction
- Closer to the Business and Away from IT..
- Not Without Concerns
- The WSO2 Mashup Server Product
- Conclusion
Introduction
The introduction of the mashup technology has begun to break down walls that long existed between IT and its business users in an approach that promotes 'assembly over development'[2]. Contrary to the traditional belief that radical customization and up-scale production are at odds and do not complement one another, mashup technology has helped build entirely new applications with enormous economies of scale through extensive re-use. The technology that simplifies creation, delivery and execution of enterprise applications is gaining momentum by the day, as the client-tier becomes a fully-fledged layer with increased processing power and continues in its journey to evolve as an application platform than a mere presentation layer[3].
What is 'Mashup Technology'
Mashups are based on SOA-friendly data and access standards such as WSDL, REST and RSS. Mashups range from ad-hoc applications mashing together data from a couple of sources in the simplest possible way, to creating up-scaled complex applications that aggregate well-groomed services with other data sources and feeds to create entirely different perspectives of the original data. Development of mashups can be done by everyday Web users with a grip of scripting skills and are not limited to seasoned software developers.
Based on the level of enterprisiness of a mashup in terms of security and governance, we identify 2 main kinds:
- Consumer mashups - relates to the more Web 2.0 styled simple creations that are usually one time used.
- Enterprise mashups that encapsulates heavy security and governance requirements. Mashups have been gaining ground in the enterprise world for some time now and Forrester Research predicts that enterprise mashup market will reach close to $700 million by the year 2013[4].
What Does the Technology Offer..
Mashups is a great technology to create light-weight, data-centric applications for everyday-use. Mashing up is done using components that embed meta-data, that do not require a high end SOA solution.
Mashups,
- Demonstrates business agility, drastically cutting down on application development time and costs.
- Reduced IT backlogs that plague organizations everywhere.
- Caters just-in-time (sometimes quick-and-dirty versions) decision-making views for a vast majority of management data.
- Caters a broad user-interface (UI) palette including HTML, email, IM, RSS etc.
- use dynamic languages that enables light-weight composition
What is a Mashup Server?
Essentially, a mashup server is server that hosts mashups that is typically eqipped with capability to automate most routine tasks required to creating and maintaining mashups. Such a platform significantly contributes to the elimination of time and effort spent on developing and deploying a mashup. For e.g. http://Mooshup.com is an open community site for developing, hosting,and sharing mashups based on the WSO2 Mashup Server.
Closer to the Business and Away from IT..
The mashup technology no doubt brings SOA closer to the end-user. With its support for consuming and deploying Web services using Javascript scripting language and its ability to automate the generation of Web services artifacts such as WSDLs (Web Services Description Language) and policy artifacts, brings the popular architectural style a few steps closer to the consumer. With the mashup technology, business consumers are empowered to visualize SOA in the form of charts and tables to meet their changing daily needs.
SOA and Mashups
"In a mashup world, SOA (Service Oriented Architecture)[5] can provide the “service cloud” that supplies raw materials to a community of mashup users." Says Chris Warner and John Crupi in an article titled "Enterprise Mashups Part II: Why SOA Architects Should Care"[6]. The article goes on to explain the need to appreciate demand created for SOA, through the mashup community. "By having the business build mashups upon the foundation of your service-oriented architecture, they essentially become SOA champions without knowing it." Really looking at it, how good is this? Excellent! After all, how good is an entire SOA infrastructure without business demanding or consuming them.
Digging deeper into the topic, we realise that both mashups and SOA are looking into enabling IT agility and are on leveraging the power of data and behavior as encapsulated in a service. While mashups serve real time, dynamic data and representation requirements with a collaborative, open, network-distributed touch, the ESB (stands for Enterprise Service Bus and the closest cousin in the SOA gene pool) handles data on a much larger scale with aggregation support to thousands and more data sources. In fact, an ESB could be easily used to interface a huge and complex data source thus enabling a mashup consume its data.
Not Without Concerns
Is there a missing ingredient in today's mashups that's not in favor of the mass adoption of the technology? The following are a few primary concerns on the subject:
Firstly, large-scale adoption and availability of business mashups is still rather slow, even more as even reasonably tech savvy consumers still find the level of scripting language skills required for the creation of a standard mashup application pretty demanding. To that extent, creation and availability of mashup tools will have a wider impact on the usage of technology, than the technology itself.
Secondly, most mashup implementations are “in-situ” and done on impulse. Long term ROI of these mashups are not very clear yet. Besides, predicated upon the availability of a ready to re-use services landscape, most such services are still not widely available - not at least without extensive customization.
Thirdly, the most useful enterprise mashup that in one end accesses employee personal data and on the other end touches the company's corporate information naturally demands stringent security requirements and universal user identification mechanisms. Initiatives such as WSO2 Identity Solution are helpful but are yet to to be universally adopted. As we empower business users to create enterprise mashups(who are non-security experts) built on existing services, that are in turn created using existing services, security challenges become ever more paramount.
Finally, as the mashup technology matures, it too will be required to deal with added complexity relating to data accuracy and version management, the increasing numbers will bring to the table.
The WSO2 Mashup Server Product
The WSO2 Mashup Server, first released on 28th January 2008 is built on WSO2 Registry, a Web 2.0 style registry and repository that enables discovery and sharing of mashups. A flurry of activity has been going on in this arena and WSO2 Mashup Server recently announced its 1.5.1 release with a host of new features including integrated Data Services support, openID support and Apache Shindig powered - Google compatible - dashboard. There is also the ability to send an instant message via the Mashup Server. Jonathan Marsh, Director - Mashup technologies at WSO2 says, that he plans to develop the next step of building the ability to invoke a mashup using instant messaging in a future release. Check out the release note for a comprehensive list of new additions and bug fixes in the 1.5 release.
The WSO2 Mashup Server Installation Steps For Ubuntu
- Download the binary zip archive from wso2.org/projects/mashup
- Run unzip to extract the zip file to a destination folder of your choice
- Make sure to have Java (JDK 1.5 or later) installed in your system, with the Java_Home environment variable set to your Java installation.
You could do this by either using the export command or by editing the profile.
Use vim ~/.bashrc command to edit the profile file and source .bashrc command to refresh screen with the changes updated on your console instance. - Navigate to the bin folder of your Mashup installation.
- Execute sh wso2mashup.sh command with the relevant switch. The following image illustrates switches available:
- Now, open up a browser instance and point to the following URL: URL https://localhost:7443/
Creating Your Hello World Mashup
- Select create new mashup from the Mashup server home page
- This takes you to the mashup code editor view, in which you could start entering the Java script code for your mashup.
For the purpose of this tutorial, the my_new_mashup I've created has only the following few lines:
this.serviceName = "my_new_mashup"; this.documentation = "TODO: Add service level documentation here" ; sayHello.documentation = "Greet" ; sayHello.inputTypes = { "first_name": "string" }; sayHello.outputType = "String"; function sayHello(first_name) { return "Hello, " + first_name + "!"; } //Note that I Have left out certain lines that was auto-generated by the template as they are end edited provided. - Select Save Changes and you'll be taken to a resources page for the mashup you've created.
Select the try it link to test your very first mashup on the fly.
Sample Exciting Applications to Play Around..
Impact of a particular technology is best illustrated using real-world application. For mashups, Paul Rademacher's HousingMaps.com was the first, created back in early 2005. There are quite a few since then.. Here's a personal favourite from the few I've read: The Making of the Tomatoe Tube mashes up movie reviews from Rotten Tomatoes and movie trailers from YouTube
Conclusion
It must be remembered, while the great tasting, light-weight and creative mashups cooked in little time are much sought after by those suffering severe hunger pangs, the technology in no way writes-off the need for more ground-level system integration concepts such as SOA. In fact, the two are complementary. Mashups, if overcooked, could endup quite messy, with little or no chance to be used in an enterprise settings. This is when SOA comes to the rescue, providing us with the most basic cooking ingredients.. a loosely-coupled, highly governed service mix for the use of mashups. As more and more knowledge-workers begin to demand control in the last mile of enterprise application integration[7], mashups will lead the way with improved collaboration and productivity gained using loosely-coupled service components.
References
- Web 2.0 - Beyond the Conference - Ayanthi Anandagoda
- A Bumper Crop of New Mashup Platforms - Dion Hinchcliffe
- Mashups for Composite Enterprise Applications Shel Finkelstein and Ümit Yalcinalp
- How To Make Money In The Evolving Mashup Ecosystem - The Mashup Opportunity, Forrester Research
- Service Oriented Architecture - an Overview - Ayanthi Anandagoda
- Enterprise Mashups Part II: Why SOA Architects Should Care - by Chris Warner and John Crupi
- Tension Emerges Between SOA and Mashups - Joe McKendrick
- Design by Committee - WSO2 Mashup Director Jonathan Marsh's Weblog
Resources
- WSO2 Mashup Server - Project Home Page
- WSo2 Mashup Server - Dowload Page
- Mashup Server SVN: http://wso2.org/svn#mashup
- Mashup Server Forum: http://wso2.org/forum/226
- Mashup Server Mailing Lists: http://wso2.org/mail#mashup
- Mashup Server JIRA: http://wso2.org/jira/browse/MASHUP
Author
Ayanthi Anandagoda is Manager - Content Development at WSO2. ayanthi at wso2 dot com
- by ayanthi
- Login or register to post comments
- Printer friendly version
- 943 reads










