Chris O'Keefe and I were assigned to investigate enterprise mashups, and we both immediately had the same flashback to our days in Northern Virginia, which was the first time we had heard the word mashup used. The popular local radio station, DC101, would air them on Sunday evenings, where they would combine two good songs, to make something that sounded just awful. As a result, our initial thoughts on the concept of mashups were not all that positive, that is until we realized they are one of the emerging trends of Web 2.0.
Mashups are everywhere on the Web, we come across them daily, but never really label them as such. The concept isn't all that different from musical mashups, it involves taking two disparate data sources and combining them. However in this case, their output is often useful. The most common example is Google Maps that are now ubiquitous on the web. Combine that with a listing of local businesses in an area, and you've got a mashup, known as Google Local. What about those customized ads you see all over the Web? Those are generated from two data sources, analytic data about your preferences and a list of corresponding ads, so they could be considered mashups as well.
Okay, so that's cool and all, but how can a mashup help my business? Let's examine a business case:
Currently, sales agents for a generic retailer located all over the state of Virginia submit their sales data to a centralized database daily. That information is gathered, and monthly reports are generated to show total sales by agent, region, and product. That sounds pretty good, but wouldn't it be nice if that sales data could somehow be automatically tagged on a map in as a sale is made? How useful would it be if reports could be generated with the sales broken down by salesperson were rendered in real time on the company's SharePoint portal? Of course this would require the development of a custom mashup, which is what JackBe's Presto Platform makes possible.
At its core, Presto is an enterprise mashup platform made up of three tiers: Presto Mashup Server, Presto Mashup Connectors, and Presto Mashup Composers. The Presto Server resides within an application server like Tomcat, and is incredibly adept at using a wide variety of data sources ranging from SQL to WSDL and POJOs to RSS, which are added to via the Service Explorer tool. Connectors enable Presto to interact and sync with SharePoint, Oracle, Excel, HP SOA Sysnet, and a wide variety of portals. Composers come in two flavors, the first being targeted towards less technical people in the form of the "Wires" tool where mashups can be created via an easy to use graphical interface. Wires allows users to create mashups with any of the exposed data sources that have been added to Presto. This method of mashup creation literally amounts to little more than drag and drop, and requires minimal technical knowledge. Sometimes a bit of logic is necessary to get the exact piece of the data necessary for the task, such as applying filters, doing extractions, and joins, but the tool makes these operations simple enough. Alternatively, the XML based EMML Mashup Language enables developers to craft more complex mashups within Eclipse. Eclipse obviously provides many advantages including debugging, code completion, and XPath support.
Out of the box Presto ships with a ton of mashlets examples (mashups in a web/portal ready state), data sources, feeds, and other useful resources to ensure that any developer can hit the ground running. Additionally, there are a plethora of walkthrough, videos, white papers, code samples, community support forums, and other technical materials on the JackBe site. JackBe recently launched acloud computing service, in which developers don't even need to install a local copy of Presto. While initially it was extremely slow, this issue has been more or less resolved now, and the service is accessible to anyone with a JackBe developer account. Curiously enough, mashups you create are saved to your user account, the system does not let you modify the data sources, making the utility of this tool questionable. Hopefully that issue that will be resolved shortly, because otherwise the cloud service is very slick and allows developers to skip entire installation and configuration process (which really is so refined that it only takes 10 minutes or so anyways). This just shows the commitment JackBe has to keeping their products cutting edge and user friendly.
Perhaps the coolest feature of mashlets is in regards to their portal integration. In my tests, to add a mashlet created in Wires to a SharePoint portal required a handful of clicks, and a copy/paste into a XML Web Part. Of course, there need to be some considerations. For example, while Presto supports a ton of different kinds of data sources, if the data source is not set up properly it can be a real pain to use. Additionally, while I think that practically anybody would enjoy to "mash it all night long," if there is no real business need then the mashlets created end up just being a piece of eye candy on the portal. If there is a real business use though, (for example our sales scenario mentioned above) then mashups are definitely something that can add value to virtually any business. Basically, the right tool needs to be selected for the job. If a business has two or more data sources and the aggregate can be used to provide useful information, then Presto fits the bill as a mini BI solution.