|
|
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].
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:
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,
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.
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.
"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.
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, 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.
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.
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
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.
Ayanthi Anandagoda is Manager - Content Development at WSO2. ayanthi at wso2 dot com