Back to the breakouts for the rest of the afternoon, I attended a presentation and demo by Michael Friess of IBM’s BBlingen R&D lab on using Business Space to build user interfaces for human-centric processes.
Business Space is what I would call a mashup environment, although I think that IBM is avoiding that term because it just isn’t taken seriously in business; in other words, a portal-like composition application development environment where pre-built widgets from disparate sources can quickly be assembled into an application, with a great deal more interaction between the widgets than you would find in a simple portal. Business Space is, in fact, built on the Lotus Mashup Center infrastructure; I think they just prettied it up and gave it a more corporate-sounding name, since it bears a resemblance to the Lotus Mashup Center version that I played with a while back with the FileNet ECM widgets. It’s browser-based and is fairly clean-looking, with easy placement, resizing and configuration of widgets.
Friess considered both “traditional” (predefined structured) and dynamic human BPM, where the dynamic side includes collaboration, allowing the user to organize their own environment, and adaptive case management. Structured BPM typically has fixed user interfaces that have a specific mode of task assignment (get next, personal task list, team task list, or team-based allocation). Business Space, on the other hand, provides a semi-structured framework for BPM user interfaces where the BPM widgets can be assembled under the toolbar-like links to other spaces and pages; the widgets use REST interfaces to back-end IBM services such as WPS, Business Compass, Business Monitor, Business Fabric and ESB, as well as any other services available internally or externally via REST. Templates can be used to create pages with standard functionality, such as a vanilla BPM interface, which can then be customized to suit the specific application.
Each widget can be configured for the content (which tasks and properties are visible and editable to the user), the actions available to the user, and the display modes such as list or table view. Even if a specific user isn’t allowed to choose the widgets that appear on the page, they typically will have the ability to customize the view somewhat through built-in (server-side) filtering and sorting.
Once widgets are placed on a page and configured, they are wired together in order to create interactions between the widgets: for example, a task list widget will be wired to a task details widget so that the item selected in the list will be displayed in the details view.
There are a number of BPM widgets available, including task list, task details, escalations list, human workflow diagram (from the process model, which will change to indicate any new collaboration tasks) and even free-form forms; these in turn allow any sort of BPM functionality such as spawning a collaboration task. Care must be taken in constructing the queries that underlay the list-type widgets, although that would be true in any user interface development that presents a list to a user; the only specific consideration here is that the mashup may not be constructed by an developer, but rather by a business analyst, which may require a developer to predefine some views or queries for use by the widgets.
If you’ve seen any mashup environment, this is all going to look pretty familiar, but I consider that a good thing: the ability to build composite applications like this is critical in many situations where full application development can’t be justified, especially for prototype and situational applications, but also to replace the end user computing applications that your business analysts have previously built in Excel or Access. Unfortunately, I think that some professional services types feel that mashup environments and widgets are toys rather than real application development tools; that’s an unfortunate misconception, since these can be every bit as functional and scalable as writing custom Java code, and a lot more agile. You’re probably not going to use mashups and widgets for every user interface in BPM, but it should be a part of your application development toolkit.