Opinion: WSO2 Mashup Server takes first steps

Mashups -- or composite applications -- promise the ability to easily create useful new applications from existing services and Web applications. By combining data from multiple sources across the Web, and from within the enterprise, mashups can help distill important information for people who would otherwise need to gather and distill it manually.

A mortgage underwriter verifying an applicant's income is a good example. Underwriters typically work with a long list of Web pages, accessing public data sources to create a montage of the applicant's financial situation. This is a perfect scenario for a mashup.

Composite applications in 2008 are in the "early adopter" phase, with companies exploring their uses and potential in the enterprise. There's no lack of entrants in the field; a quick search turned up at least 20 different mashup platforms, both commercial and open source. Products such as JackBe Presto, Nexaweb Enterprise Web 2.0 Suite and Kapow's RoboSuite illustrate the range of approaches.

For pros only

WSO2's Mashup Server is aimed at Web developers seeking a complete environment for building, deploying and administering composite applications. It's clear that the WSO2 Mashup Server design team gave some thought to what such developers would need to create mashups, and for those with an understanding of JavaScript, XML, and AJAX, this toolset makes developing mashups simple. Business users, who might be in the best position to create useful enterprise mashups, would be unlikely to master this tool, any more than you'd expect them to develop a Web application. This limitation might not be entirely relevant at this stage of the game, considering it will probably be several years before even the average corporate IT user is able to assemble useful mashups. By then, the point-and-click tools should have matured to the stage that writing code is not necessary.

WSO2 Mashup Server consists of a framework for use on both the client and server side of a mashup. On the server side, deploying a Web service can be as simple as writing the service in JavaScript and moving the file to the proper directory. All the necessary resources to use the service from a client are automatically generated, such as the WSDL and schema, along with a number of other useful artifacts. The server is based upon WSO2's WSAS (Web Services Application Server), widely tested for interoperability, so the services should be accessible from most any client.

Powered by JavaScript

WSO2 is unusual in its approach to creating services by using JavaScript. While JavaScript is widely understood by Web application developers, it's not typically viewed by corporate IT folks as a way to create reusable services, and I wonder if Java might be a better choice here, especially considering the number of third-party Java libraries that can be brought to bear in creating the server side of the mashup. Parsing XML in JavaScript is usually a difficult and tedious task, but the inclusion of Mozilla's E4X (ECMAScript for XML) makes parsing XML simpler. JSON (JavaScript Object Notation) would be a good alternative communication mechanism, and hopefully future versions will include the option of returning JSON objects as well.

Hosted Objects are objects hosted within the WSO2 Mashup Server that provide access to remote data sources. These objects are written in Java, and provide access to APP (Atom Publishing Protocol) resources, RSS feeds, e-mail, and instant messaging services (although only for sending messages), among others. One of the more useful if more complicated hosted objects is the "scraper" object, which makes use of Web-Harvest to screen scrape Web pages that do not provide Web services. From the enterprise standpoint, significant omissions are the lack of JMS and SQL hosted objects. Creating the client side of the mashup is straightforward. Using the generated JavaScript stubs, you simply need to include them in the Web page that's consuming the service.

Mashup central

You manage all these services through the management console (supported only on Firefox 1.5 and 2, and IE 6 and 7), where services and mashups can be searched, assigned "usefulness" ratings by users and developers, downloaded, and shared. The service inspector lets you view and download service descriptions, WSDL, and other artifacts useful to both the humans and the machines that will use the mashup service.

The management console, while providing all the necessary tools for a social network of developers to interact to build and share mashups, lacks many of the features that an enterprise deployment would need. Version control, access control, service integrity, and other basic elements required for an enterprise deployment are missing in this version.

Another con is the inability to deploy in a Java application server. It would be nice to be able to drop a WAR file into your favorite J2EE server, and the requirement to run the mashup services within the custom WSO2 WSAS server might be a barrier to uptake in many organizations.

WSO2 Mashup Server enters a crowded market, with many more mature competitors. Aimed at bringing together networks of developers, this product could foster critical mass among some communities. See WSO2's community portal, Mooshup.com, for an example of the possibilities. For the enterprise, though, uses are currently limited by the lack of deployment options and services.

This story, "Opinion: WSO2 Mashup Server takes first steps" was originally published by InfoWorld.

Copyright © 2008 IDG Communications, Inc.

7 inconvenient truths about the hybrid work trend
Shop Tech Products at Amazon