Why Applying Workflow Patterns is Hard

Janette Wong, a long-time IBMer who is now an independent consultant working as a solutions architect, discussed the use of workflow patterns in modeling business requirements and turning these into executable processes.

She used an example of an “authorization” business requirement, where manager can create confidential requests, and transfer those confidential requests to others. This can be matched to the standard role-based distribution pattern, which is fine for modeling, but then needs to be mapped to an implementation platform: in this case, some combination of WebSphere Process Server (WPS), LDAP or other directory service for user authentication and authorization, a workflow client application for human task management, and any other data sources that include user/role information. This multi-system implementation requires not only a conceptual mapping of the process and roles, but also actual integration between the systems that house the information. WPS provides instance-based authorization roles, then needs to bind that to the other sources at runtime in order to populate those roles; it doesn’t automate the solution, and in fact only provides a small amount of assistance in getting to that mapping. This is complicated further by role and authorization information that is spread out over multiple systems, particularly existing legacy systems; the business may think of the roles as being encapsulated in one of these other systems, which then needs to be mapped into the executing process.

She also discussed the requirement of a multi-item Inquiry, where multiple sub-inquiries will be created from the main inquiry (such as fraud investigations), and the exact number is not know at design time. This matches to the multiple instances without a priori runtime knowledge pattern, where you have multiple parallel sub-tasks that start and end independently, although the master activity has to wait for all children to complete before proceeding. This is similar to what we are seeing emerging in many case management implementations, where the parent activity is really the case itself, and the child tasks are those activities that the case workers initiates in order to move towards case resolution.

Wong observes that in spite of the length of time that BPM systems have been around, the larger patterns are not well supported by many of the systems although they are prevalent in real-world situations. She talked about the need for better design in process modeling tools, so that it is more obvious how to use the tools to implement these common, but complex, workflow patterns.

Adopting BPM at Bank of Northeast of Brazil

Next in the workshop was Moises Branco from University of Waterloo; he previously worked with the Bank of Northeast of Brazil (BNB) and discussed his work there as well as his current research that resulted from some of the challenges identified there. Their motivation for BPM came from a revision of their IT processes in 2004 that exposed the inflexibility in the heterogeneous environment; they saw BPM as being important for modeling and optimization, but also for process execution. They graded all of their existing systems on scales of technical quality and functional quality, mapped onto four quadrants of substitute (both low), improve functionality (low functional, high technical), improve architecture (high functional, low technical) and maintain (both high), with a drive to move systems in the two “improve” quadrants into the “maintain” quadrant.

He showed their strategy for execution, which included a business specification in the form of a process model, then an executable process that was a transformation/refinement of that model, and used an ESB to call services layered over their legacy systems. Since they took an enterprise architecture approach, they considered the multiple interrelated artifacts produced, including process models at various levels, use cases, business rules and entity-relationship diagrams. With multiple artifacts, the concerns became traceability, consistency and impact analysis between the models. To complicate things further, some of the development was outsourced, meaning that the collaboration between business and IT that should occur during any model-driven development had to extends beyond the enterprise.

Unfortunately, just as we heard from BofA, much of the model translation and consistency management was manual, as well as the collaboration in terms of version management. They were able to semi-automate the establishment of traceability links and perform basic model consistency checking.

Their current research is on model consistency: defining it via traceability, and automating some of the traceability between models (e.g., business-level and executable) and consistency checking.

Maintaining Consistency Across BPM Initiatives’ Content

In a break from the usual lineup of academics and researches, Peter Braun of Bank of America was up next in the collaboration and consistency management workshop to present on maintaining consistency across BPM initiatives’ content. They use IBM’s WebSphere Business Modeler (WBM), Information Framework (IFW, effectively a set of reference models in an enterprise architecture framework) and m1 (the modeling tool on which IFW sits), but have many other tools that have been implemented independently – mostly due to acquisitions – and need to be unified in a consistent environment as part of their latest transformation initiative. He gave some background on model-driven development, business process modeling (what I would consider BPA, although he called it BPMo) and IFW.

Braun comes from the business side, and he has a keen focus on the adoption of collaborative model-driven development: they use an agile approach that greatly reduces the need for written requirements through the involvement of the subject matter experts at all phases of process modeling. I’ve worked at introducing this in several of my financial services clients, and the culture shift is significant, since business analysts (and their managers) find it hard to imagine a project without a 100+ page text-only requirements document containing disconnected lists of desired features and actual requirements. Also, the expectation of ongoing involvement, not just the up-front requirements development that is thrown over the wall to the development, then forgotten until delivery.

They also have to deal with model governance to keep the WBM and IFW models in sync: each are used for different types of models at different points in the modeling lifecycle, and have specific strengths such that they want to continue using both tools. Because there are multiple non-integrated tools, they need to do model management to consider the interactions between model types, and there is a great deal of manual work to be done when a model is exported between the two environments. After the initial export/import, any changes in a model in one environment have to be manually made to match in the other modeling environment. They have issues with version management, since there is no proper repository being used for the models, and the modelers can end up overwriting each other’s efforts in a shared area on a server. They’ve also looked at ILOG, and have further issues with managing consistency between the rules designed in WBM – which map to the process server – and when those rules are rewritten in ILOG in order to externalize them.

Their biggest challenges include consistent adoption by all stakeholders, and what he refers to as tool/data integration, but is mostly about model governance and using “smarter tools”. It’s just not clear to me that their current combination of Visio, WBM and IFW is going to get very much smarter.

Effective Collaboration and Consistency Management in Process Modeling

Krzysztof Czarnecki of the University of Waterloo introduced this morning’s workshop on Effective Collaboration and Consistency Management in Business Process Modeling, starting with a discussion of consistency management in modeling: within versions of the same model type, but also between models of different types, such as sequence diagrams and state charts, where there may be overlap of information representation. This theme of model interrelationship and translation has come up a couple of times this week at CASCON, and the need to manage the consistency between these artifacts through understanding the relationships and usages. He discussed some of the techniques for determining model overlap/relationship and checking consistency, including overlap and merging, and how these might differ depending on whether there is a 1:1, 1:many or many:many mapping between the different models. He also introduced modeling collaboration concepts, including methods of communication, terminology and awareness, in order to set the stage for the remainder of the workshop.

I’m going to break this post by the individual speakers since these are really independent presentations, and it will get way too long otherwise.

Real Time Monitoring & Simulation of Business Processes

My last session for the day at CASCON is to hear Alex Lau of IBM, and Andrei Solomon and Marin Litoiu of York University discuss their research project on real time monitoring and simulation of business processes (they also presented a related paper this morning, although I missed the session). This is one of the CAS Innovation Impact sessions, which are based on fellowship projects that are “ready for harvesting”, which I think means that they’re ready to move towards productization. These projects involve one student (Solomon) and one professor (Litoiu) from a university, then one person from CAS (Lau) and one from IBM development (Jay Benayon, also credited on the research). In this case, the need for the research was identified by IBM development; I’m not sure if this is the usual method, although it seems logical that these projects act as mini research teams for work that is beyond the scope of production development.

In addition to their research, they’ve prototyped a system that integrates with WebSphere Process Modeler that can use the monitoring data from an in-flight process in order to feedback to a simulation model of the process to improve what-if scenario analysis and process KPI forecasting. The key research challenge was the use of the monitoring data, because that data is typically quite noisy since it could include hidden overhead such as queuing, and tended to skew results to make task durations appear to be longer than they actually were. This noise can’t be measured directly, but they’ve attempted to filter it out of the monitoring data using a particle filter prior to feeding into the simulation model.

Their proof of concept prototype linked together three IBM products, and could either change automated decisions in the runtime process or suggest alternatives to a human participant, based on the near-past performance of that process instance and any approaching SLA deadlines. One caveat is that they didn’t use real-world (e.g., customer) business processes for this, but created their own processes and ran them to generate their results.

They see this research as applicable to any process modeling tools where processes can be simulated against a set of metrics, KPIs can be forecasted, and simulation parameters are entered at modeling time and remain static until explicitly updated. They have the potential to extend their technique, for example, by providing better trend predictions based on regression techniques. There are other vendors working on research like this, and I think that we’ll see a lot more of this sort of functionality in BPM solutions in the future, where users are presented with suggestions (or automated decisions made) based on a prediction of how well a process instance is likely to meet its KPIs.

That’s it for me today, but I’ll be back here tomorrow morning for the workshop on practical ontologies, the women in technology lunch panel, and the afternoon keynote.

Enabling Smarter BPM through Business Entities with Lifecycles

Today’s keynote was by Richard Hull, Research Manager at the T.J. Watson Research Center, on business entities with lifecycles. He started by describing the process of process: how business strategy maps to business goals which maps to business operations, that is, the multiple conceptual models involved in BPM design and implementation. He stated that today’s approach to BPM environments is fundamentally disjointed: there’s one conceptual model for rules and policies, another for analytics and dashboards, and another core business process model based on activity flows, while the data being manipulated is often not related to the conceptual models but is more of an afterthought in the design.

Process and data are two sides of the same coin (as Clay Richardson stated at BPM 2010, and many of us have been saying for a while), and Hull thinks that we need to change the way that we model data to account for the fact that it is being used to support process, and change the way that we model processes to account for the tight linkage between process and data. This has led to a new way to model and implement business processes and operations: business entities with lifecycles (BEL). He defined a BEL as a key conceptual dynamic entity/object that is used in guiding the operation of a business, such as a FedEx package delivery that includes all data and processing steps from pickup through delivery and payment. This is an integrated view of the process and data, with different views according to the lifecycle of the entity. That means that it needs to include an information model containing the relevant data, and a lifecycle model to show the possible lifecycles. There’s been a couple of papers published by this research group, and they’ve integrated this into IBM GBS both in terms of a methodology and some tools.

He presented BEL as a new way of thinking – like the shift to OOP – that we need to get our head around in order to understand the methodology and the benefits. He walked through the characteristics of the first generation of BEL, starting with the end-to-end process visibility across multiple silos and their interactions. The example was an automotive engineering/manufacturing process, where they defined business entities for an engineering change, an engineering work order and a part, each of which has an information (data) model and a lifecycle (process, represented as a finite state machine) model that may span the engineering, purchasing and manufacturing silos. Each task in the process, which is likely executed within a single silo, relates to a view on the information model. He sees this as coming before requirements: once the information and lifecycle models are created, then the requirements can be created based on those.

He described BEL as “upper middleware”, since BELs can be used as an upper layer to control legacy applications via their services wrappers. The business entity approach relies on identifying things that matter to define the objects; he discussed a banking example, where those things included customer, campaign, product, element (product building block) and deal. He showed the lifecycle for the deal entity, where the information model was represented alongside the process model. Although BPMN 2.0 now has the ability to represent data models, BPEL does not, and it’s probably safe to say that most process modeling is still done fairly separate from data modeling. However, BPM tools are changing to provide better linkages between process and data models, and I think that we’ll start to see full integration between process modeling tools and master data management tools in the next year or so.

By bringing together the data and process models, BELs now have all the structure required to automatically generate user interface screens for the human activities in the process; this is something that we’ve been seeing in BPM tools for a number of years, based on the process instance data model as defined in the process. Although you typically can’t just use those auto-generated screens as is, the BEL models and tooling along with the UI auto-gen provides a significant accelerator for creating process applications.

Maybe I’ve just seen too many leading-edge products and methods, but I don’t find anything here that new. Yes, it’s nice to have more formalized models and methodologies around this, but the idea of linking business object and process models, and auto-generating user interface screens from them, isn’t cutting edge. He positions this as not really competitive to WebSphere (process modeler), but being for cases when BPMN just doesn’t cut it. He described the differentiator as that of disaggregating operations into chunks that are meaningful to the business, then modeling the lifecycle of those chunks relative to a more global information model.

There’s more research being done on this, including moving to a more declarative style; I’d be interested in seeing more about this to understand the benefits over the current crop of BPM products that allow for a more integrated business object/process modeling environment.

Towards Workflow Verification

Continuing on with the CASCON technical papers session focused on service oriented systems, we saw a paper on Towards Workflow Verification by Leyla Naiza, Ahmed Mashiyat, Hao Wang and MacCaull Wendy of St. Francis Xavier University in Nova Scotia. The basis of this research is on model verification to ensure that the model matches the specification properties and doesn’t produce undesirable effects at runtime. The problem with testing any sort of real process model (i.e., one with more than the 5 steps that you see in a demo) is that it’s difficult to check the model for all possible states.

Their research looks at this by decomposing the process models to fundamental workflow patterns (e.g., synchronization, sequence), then translate these into DVE, the input language for DiVinE, a distributed and parallel model checker. They can then verify specific properties in the model specification, such as their example in clinical trials, “the end of the workflow (patient release) cannot be reached without 5 drug tests”. They switched from using Petri Nets to YAWL for process modeling in order to make the automated translation to DVE possible, and built the automated translator to test this model verification method. They also introduced a time extension to the translation, allowing verification of time-related properties of the process model.

I see the biggest challenge in mapping the businesses’ view of their rules onto specific properties to be tested; this linkage between business requirements and technical implementation has been with us since the beginning of systems, and it’s not clear that this research does any validation on those rules and properties themselves, making verification against them less meaningful. Furthermore, these properties are really business rules, and imply that the rules are encoded within the process model rather than externalized in a business rules system. Nonetheless, automating verification of process models is a step in the right direction for improving the quality complex process models.

Client-side Service Composition Using Generic Service Representative

I’m back for a second day at CASCON, attending the technical papers session focused on service oriented systems.

First of the three papers was Client-side Service Composition Using Generic Service Representative by Mehran Najafi and Kamran Sartipi of McMaster University; this concept is presented to prevent the possible privacy and bandwidth problems that can occur when data is passed to a server-side composition. This relies on a client-side stateless task service and service representative, and doing whatever processing can be done locally before resorting to a remote web service call. Using the task services approach rather than a Javascript or RIA-based approach provides more flexibility in terms of local service composition. McMaster has a big medical school, and the example that he discussed was based on clinical data, where privacy is a big concern; being able to maintain the patient data only on the client rather than having it flow through a server-side composition reduces the privacy concerns as well as improving performance.

I’ve been seen this paradigm in use in a couple of different BPM systems that provide client-side screen flow (usually in Javascript at the client or in the web tier) within a single process activity; I’ve seen this from TIBCO AMX/BPM’s Page Flow, Salesforce’s Visual Process Manager and Outsystems. Obviously, the service composition presented in the paper today is a more flexible approach, and is true client-side rather than on the web tier, but the ideas of local process management are already appearing in some BPM products.

There were some interesting questions about support for this approach on mobile platforms (possible as the mobile OS’s become more capable) and a discussion on what we’re giving up in terms of loose coupling by having a particular orchestration of multiple services bound to a single client-side activity.

CASCON Keynote: 20th Anniversary, Big Data and a Smarter Planet

With the morning workshop (and lunch) behind us, the first part of the afternoon is the opening keynote, starting with Judy Huber, who oversees the 5,000 people at the IBM Canada software labs, which includes the Centre for Advanced Studies (CAS) technology incubation lab that spawned this conference. This is the 20th year of CASCON, and some of the attendees have been here since the beginning, but there are a lot of younger faces who were barely born when CASCON started.

To recognize the achievements over the years, Joanna Ng, head of research at CAS, presented awards for the high-impact papers from the first decade of CASCON, one each for 1991 to 2000 inclusive. Many of the authors of those papers were present to receive the award. Ng also presented an award to Hausi Müller from University of Victoria for driving this review and selection process. The theme of this year’s conference is smarter technology for a smarter planet – I’ve seen that theme at all three IBM conferences that I’ve attended this year – and Ng challenged the audience to step up to making the smarter planet vision into reality. Echoing the words of Brenda Dietrich that I heard last week, she stated that it’s a great time to be in this type of research because of the exciting things that are happening, and the benefits that are accruing.

Following the awards, Rod Smith, VP of IBM emerging internet technologies and an IBM fellow, gave the keynote address. His research group, although it hasn’t been around as long as CAS, has a 15-year history of looking at emerging technology, with a current focus on “big data” analytics, mobile, and browser application environments. Since they’re not a product group, they’re able to take their ideas out to customers 12-18 months in advance of marketplace adoption to test the waters and fine-tune the products that will result from this.

They see big data analytics as a new class of application on the horizon, since they’re hearing customers ask for the ability to search, filter, remix and analyze vast quantities of data from disparate sources: something that the customers thought of as Google’s domain. Part of IBM’s BigInsights project (which I heard about a bit last week at IOD)  is BigSheets, an insight engine for enabling ad hoc discovery for business users, on a web scale. It’s like a spreadsheet view on the web, which is a metaphor easily understood by most business users. They’re using the Hadoop open source project to power all of the BigInsights projects.

It wouldn’t be a technical conference in 2010 if someone didn’t mention Twitter, and this is no exception: Smith discussed using BigSheets to analyze and visualize Twitter streams related to specific products or companies. They also used IBM Content Analytics to create the analysis model, particularly to find tweets related to mobile phones with a “buy signal” in the message. They’ve also done work on a UK web archive for the British Library, automating the web page classification and making 128 TB of data available to researchers. In fact, any organization that has a lot of data, mostly unstructured, and wants to open it up for research and analysis is a target for these sort of big data solutions. It stands to reason that the more often you can generate business insights from the massive quantity of data constantly being generated, the greater the business value.

Next up was Christian Couturier, co-chair of the conference and Director General of the Institute of Information Technology at the Canada’s National Research Council. NRC provides some of the funding to IBM Canada CAS Research, driven by the government’s digital economy strategy which includes not just improving business productivity but creating high-paying jobs within Canada. He mentioned that Canadian businesses lag behind other countries in adoption of certain technologies, and I’m biting my tongue so that I don’t repeat my questions of two years ago at IT360 where I challenged the Director General of Industry Canada on what they were doing about the excessively high price of broadband and complete lack of net neutrality in Canada.

The program co-chairs presented the award for best paper at this show, on Testing Sequence Diagram to Colored Petri Nets Transformation, and the best student paper, on Integrating MapReduce and RDBMSs; I’ll check these out in the proceedings as well as a number of other interesting looking papers, even if I don’t get to the presentations.

Oh yeah, and in addition to being a great, free conference, there’s birthday cake to celebrate 20 years!

CASCON Workshop: Accelerate Service Integration In Your BPM and SOA Applications

I’m attending a workshop at the first morning of CASCON, the conference on software research hosted by IBM Canada. There’s quite a bit of good work done at the IBM Toronto software lab, and this annual conference gives them a chance to engage the academic and corporate community to present this research.

The focus of this workshop is service integration, including enabling new services from existing applications and creating new services by composing from existing services. Hacking together a few services into a solution is fairly simple, but your results may not be all that predictable; industrial-strength service integration is a bit more complex, and is concerned with everything from reusability to service level agreements. As Allen Chan of IBM put it when introducing the session: “How do we enable mere mortals to create a service integration solution with predictable results and enterprise-level reliability?”

The first presentation was by Mannie Kagan, an IBMer who is working with TD Bank on their service strategy and implementation; he walked us through a real-life example of how to integrate services into a complex technology environment that includes legacy systems as well as newer technologies. Based on this, and a large number of other engagements by IBM, they are able to discern patterns in service integration that can greatly aid in implementation. Patterns can appear at many levels of granularity, which they classify as primitive, subflow, flow, distributed flow, and connectivity topology. From there, they have created an ESB framework pattern toolkit, an Eclipse-based toolkit that allows for the creation of exemplars (templates) of service integration that can then be adapted for use in a specific instance.

He discussed two particular patterns that they’ve found to be particularly useful: web service notification (effectively, pub-sub over web services), and SCRUD (search, create, read, updated, delete); think of these as some basic building blocks of many of the types of service integrations that you might want to create. This was presented in a specific IBM technology context, as you might imagine: DataPower SOA appliances for processing XML messages and legacy message transformations, and WebSphere Services Registry and Repository (WSRR) for service governance.

In his wrapup, he pointed out that not all patterns need to be created at the start, and that patterns can be created as required when there is evidence of reuse potential. Since patterns take more resources to create than a simple service integration, you need to be sure that there will be reuse before it is worth creating a template and adding it to the framework.

Next up was Hans-Arno Jacobsen of University of Toronto discussing their research in managing SLAs across services. He started with a business process example of loan application processing that included automated credit check services, and had an SLA in terms of parameters such as total service subprocess time, service roundtrip time, service cost and service uptime. They’re looking at how the SLAs can guide the efficient execution of processes, based in a large part on event processing to detect and determine the events within the process (published state transitions). He gave quite a detailed description of content-based routing and publish-subscription models, which underlie event-driven BPM, and their PADRES ESB stack that hides the intricacies of the underlying network and system events from the business process execution by creating an overlay of pub-sub brokers that filters and distributes those events. In addition to the usual efficiencies created by the event pub-sub model, this allows (for example) the correlation of network slowdowns with business process delays, so that the root cause of a delay can be understood. Real-time business analytics can also be driven from the pub-sub brokers.

He finished by discussing how business processes can actually be guided by SLAs, that is, runtime use of SLAs rather than just for monitoring processes. If the process can be allocated to multiple resources in a fine-grained manner, then the ESB broker can dynamically determine the assignment of process parts to resources based on how well those resources are meeting their SLAs, or expected performance based on other factors such as location of data or minimization of traffic. He gave an example of optimization based on minimizing traffic by measuring message hops, which takes into account both rate of message hops and distance between execution engines. This requires that the distributed execution engines include engine profiling capabilities that allows an engine to determine not only its own load and capacity, but that of other engines with which it communicates, in order to minimize cost over the entire distribute process. To fine-tune this sort of model, process steps that have a high probability of occurring in sequence can be dynamically bound to the same execution engine. In this situation, they’ve seen a 47% reduction in traffic, and a 50% reduction in cost relative to the static deployment model.

After a brief break, Ignacio Silva-Lepe from IBM Research presented on federated SOA. SOA today is mostly used in a single domain within an organization, that is, it is fairly siloed in spite of the potential for services to be reused across domains. Whereas a single domain will typically have its own registry and repository, a federated SOA can’t assume that is the case, and must be able to discover and invoke services across multiple registries. This requires a federation manager to establish bridges across domains in order to make the service group shareable, and inject any cross-domain proxies required to invoke services across domains.

It’s not always appropriate to have a designated centralized federation manager, so there is also the need for domain autonomy, where each domain can decide what services to share and specify the services that it wants to reuse. The resulting cross-domain service management approach allows for this domain autonomy, while preserving location transparency, dynamic selection and other properties expected from federated SOA. In order to enable domain autonomy, the domain registry must not only have normal service registry functionality, but also references to required services that may be in other domains (possibly in multiple locations). The registries then need to be able to do a bilateral dissemination and matching of interest and availability information: it’s like internet dating for services.

They have quite a bit of work planned for the future, beyond the fairly simple matching of interest to availability: allowing domains to restrict visibility of service specifications to authorized parties without using a centralized authority, for example.

Marsha Checkik, also from University of Toronto, gave a presentation on automated integration determination; like Jacobsen, she collaborates with the IBM Research on middleware and SOA research; unlike Jacobsen, however, she is presenting on research that is at a much earlier stage. She started with a general description of integration, where a producer and a consumer share some interface characteristics. She went on to discuss interface characteristics (what already exists) and service exposition characteristics (what we want): the as-is and to-be state of service interfaces. For example, there may be a requirement for idempotence, where multiple “submit” events over an unreliable communications medium would result in only a single result. In order to resolve the differences in characteristics between the as-is and to-be, we can consider typical service interface patterns, such as data aggregation, mapping or choreography, to describe the resolution of any conflicts. The problem, however, is that there are too many patterns, too many choices and too many dependencies; the goal of their research is to identify essential integration characteristics and make a language out of them, identify a methodology for describing aspects of integration, identify the order in which patterns can be determined, identify decision trees for integration pattern determination, and determine cases where integration is impossible.

Their first insight was to separate pattern-related concerns between physical and logical characteristics; every service has elements of both. They have a series of questions that begin to form a language for describing the service characteristics, and a classification for the results from those questions. The methodology contains a number of steps:

  1. Determine principle data flow
  2. Determine data integrity data flow, e.g., stateful versus stateless
  3. Determine reliability flow, e.g., mean time between failure
  4. Determine efficiency, e.g., response time
  5. Determine maintainability

Each of these steps determines characteristics and mapping to integration patterns; once a step is completed and decisions made, revisiting it should be minimized while performing later steps.

It’s not always possible to provide a specific characteristic for any particular service; their research is working on generating decision trees for determining if a service requirement can be fulfilled. This results in a pattern decision tree based on types of interactions; this provides a logical view but not any information on how to actually implement them. From there, however, patterns can be mapped to implementation alternatives. They are starting to see the potential for automated determination of integration patterns based on the initial language-constrained questions, but aren’t seeing any hard results yet. It will be interesting to see this research a year from now to see how it progresses, especially if they’re able to bring in some targeted domain knowledge.

Last up in the workshop was Vadim Berestetsky of IBM’s ESB tools development group, presenting on support for patterns in IBM integration offerings. He started with a very brief description of an ESB, and WebSphere Message Broker as an example of an ESB that routes messages from anywhere to anywhere, doing transformations and mapping along the way. He basically walked through the usage of the product for creating and using patterns, and gave a demo (where I could see vestiges of the MQ naming conventions). A pattern specification typically includes some descriptive text and solution diagrams, and provides the ability to create a new instance from this pattern. The result is a service integration/orchestration map with many of the properties already filled in; obviously, if this is close to what you need, it can save you a lot of time, like any other template approach.

In addition to demonstrating pattern usage (instantiation), he also showed pattern creation by specifying the exposed properties, artifacts, points of variability, and (developer) user interface. Looks good, but nothing earth-shattering relative to other service and message broker application development environments.

There was an interesting question that goes to the heart of SOA application development: is there any control over what patterns are created and published to ensure that they are useful as well as unique? The answer, not surprisingly, is no: that sort of governance isn’t enforced in the tool since architects and developers who guide the purchase of this tool don’t want that sort of control over what they do. However, IBM may see very similar patterns being created by multiple customer organizations, and choose to include a general version of that pattern in the product in future. A discussion about using social collaboration to create and approve patterns followed, with Berestetsky hinting that something like that might be in the works.

That’s it for the workshop; we’re off to lunch. Overall, a great review of the research being done in the area of service integration.

This afternoon, there’s the keynote and a panel that I’ll be attending. Tomorrow, I’ll likely pop in for a couple of the technical papers and to view the technology showcase exhibits, then I’m back Wednesday morning for the workshop on practical ontologies, and the women in technology lunch panel. Did I mention that this is a great conference? And it’s free?