Last breakout session of the day, and it was a tough decision: there was one on business intelligence built on search, but I opted for the enterprise mashups session with Arnt Schoning and Espen Sommerfelt of FAST, plus Stefan Sveen from Comperio, one of their partners that builds search solutions on top of the FAST platform.
They started with some background on service-oriented architecture (SOA) and mashups: SOA as a way to expose business functionality from siloed applications for reusability, and mashups as the Web 2.0 equivalent of SOA, using lighter-weight integration protocols such as REST and JSON instead of WS-*. At last year’s FASTforward, they created a business process in BPEL that consumed a couple of FAST services; this year, they wanted to show a more comprehensive mashup using their technology. There are about 20 services available out of the box with FAST, accessible using Java or SOAP/WSDL.
This turned into a fairly deep dive into the mechanics of how to implement mashups with their services, complete with Java snippets; a higher-level view of the importance of this would have been helpful as at least part of the presentation.
Interestingly, they put what they did last year in the context of purely automated integration-centric processes (hence their mischaracterization of their process as SOA rather than integration-centric BPM), whereas I can imagine that there are also uses of their services as called from processes that include human interaction.
They continued on to talk about mashups: visual versus non-visual, client-side versus server-side, assembly versus coding styles of implementation, and consumer versus enterprise usage. Mashups are ad hoc and situational, hence are primarily user-driven and used to empower users and knowledge workers on the long tail of application development: giving them the ability to create applications that IT would never get around to implementing because the audience is too small or because there’s only a temporary need.
They also talked about the difference between SOA (composite applications) and mashups; they distinguish mashups as being user-created and SOA as being IT-created, but I think that they’re off the mark here: SOA is really just the services layer, which can be consumed by a user-created application just as easily as an IT-created application. The true comparison would be between a composite application development environment and a mashup creation environment, and I think that the line between those is becoming increasingly indistinct.
They showed a demo of a mashup created using their enterprise search services, in which the user can enter any text, and any location information in the free form text is detected and mapped on a Google map. Since they used the location extraction service in their engine to parse the text, words similar to locations are not detected as locations as long as there is sufficient context to make that distinction (e.g., the phrase “Denzel Washington is an actor” did not result in Washington being mapped). Once the points are mapped, other information can be gathered related to those locations, such as weather data or Flickr photos at those locations; this is not really specific to a mashup using FAST services.
A second demo showed the creation of a simple blog with automatic tagging: their automatic tagging service generated the most appropriate tags based on the text of a blog entry. They also showed applying the automatic tagging using a large chunk of text from a real FASTforward blog post; for the second time in a year, I see a recent blog entry of mine being used in a demo during a conference presentation — a slightly odd experience, although they likely had no idea that I was in the audience.
Sveen from Comperio then discussed their best practices in developing search applications: they’ve created a lightweight framework, Comperio Front, that repackages FAST search functionality for easier reuse. The framework is service oriented, and models the search logic workflow and rules as well as encapsulating a number of reusable search tasks and simplifying some of the FAST APIs. It appears to be well-layered, such that (for example) additional adapters could be easily added to the core processing engine to augment the existing web services, HTTP and XML interfaces.
He showed a demo of how they could easily improve the user interface on a standard search portal by combining multiple navigation widgets, and a further demo that shows how search data can be dynamically filtered and displayed. Since I don’t know what the same functionality would look like directly in FAST, I can’t really judge how much easier it is using Comperio Front, although they have the definite benefit of exposing additional search functionality as services for consumption by composite applications.