Monday, July 19, 2010

jBPM 4.4 is OUT!

The wait was long yet worth the while. jBPM 4.4 is now available for download. This new version resolves nothing short of 108 issues including feature requests and bugs. Compared to v4.3, with 47 issues, and v4.2, with 40, this release is a double pack.

Here comes the list of enhancements to the jPDL notation.
  • foreach structure: spawns concurrent paths of execution for each element of a collection.
  • assign activity: copies a source value to a target location.
  • variable declaration: declares a process variable with optional initial value and history trace.
  • Most elements can appear in any order within their parent element.
  • Improved documentation readability.
There are new APIs available to application developers.
  • Activity represents a step in the process.
  • Transition represents a link between activities.
  • OpenExecution.getActivity() returns the activity being executed.
  • ExecutionService.createVariable() creates a process variable and optionally enables history tracing.
  • HistoryService.getVariable() retrieves the latest value of a history-enabled variable.
Of particular relevance among the 64 bugs fixed, web console reports no longer fail in Tomcat. The installation script now generates a configuration that employs a global data source instead of connecting directly to the database. This makes 4.4 the most cat-friendly jBPM yet!

Special thanks go to Hui Sheng Xu and to Maciej Swiderski who made profound contributions to this release.

Hope you find this release more stable and useful than ever. Should you need help or have any feedback, stop by our discussion forum.

Friday, June 18, 2010

WANTED: testers for upcoming 4.4 release

The jBPM gang are planning to release version 4.4 next Monday. Most issues reported against this version are done, Hudson looks better than ever and, importantly, it has been almost six months since the previous delivery.

Please help us test this  new release before it hits the streets. The snapshot of the distribution is available from the JBoss snapshots repository. The existing user guide provides installation instructions.

Should you have any comments, questions or concerns, you are most welcome to voice them in the discussion forum.

Friday, April 16, 2010

Announcing jBPM 5

Over the last few years, we have accumulated a lot of knowledge and experience in various BPM-related projects here at JBoss, and in an effort to consolidate that, we would like to combine our efforts in what will be the next generation BPM platform, called jBPM 5.

jBPM 5 will be based on the combined experience of jBPM and Drools Flow (and related projects like RiftSaw and Overlord), and will bring together the benefits of both solutions (and much more). As part of this process, we would like to ask you, our community, for feedback and assistance on this.

The architecture of jBPM 5 builds on the experience that was built up over the past few years based on our customer feedback as well as strong community involvement. It will continue the vision of all of the constituent projects, so large parts of the architecture that we are presenting here will probably not come as a surprise to you, either because it already exists in a current project or because it has been on the roadmap for quite some time (BPMN2 for example).

Nevertheless, wide feedback is very important to us, and we have therefore constructed a Request for Comments document which describes (what we believe could be) the new architecture of jBPM 5. Not only this includes an overview of the most important components, but also some of the key characteristics. We will roll out a roadmap for jBPM 5 based on this architecture and the received comments.

Now is the time for the community that has helped shape these projects so well in the past to do so again. We will welcome any feedback to this proposal, either by sending an email to the  jbpm-dev mailing list or by adding a comment to the request document directly. If you would like to subscribe to the jbpm-dev mailing list or browse the archive, please visit the list information page.

Wednesday, April 7, 2010

jBPM Continuous Integration Reports Now Publicly Available

Thanks to the restless Quality Engineering team at JBoss, the continuous integration reports for select projects are available to the public. Here is the most recent token of the company's long-standing tradition of openness and freedom. Not only is the jBPM source code open, but also the development forum, version control system, issue tracker, binary repository and now even the continuous builds. jBPM bares all!

The jbpm3 jobs form a matrix with three axes: jdk, container and database. The jdk and container axes are merged together in order to cover the most ground with the least configurations.
jdk container
sun 1.4.2 jboss 4.0.5
sun 1.5.0 jboss 4.2.3
sun 1.6.0 jboss 5.0.1

The database axis is arranged as a vector to allow for parallel testing; each jdk-appserver couple is executed against each configured database. This organization is quite effective: each job takes only 25-30 min to run.

Hope this new stream of information will tickle your curiosity about the engineering aspects of the project.

Friday, March 26, 2010

Open letter to the jBPM community

Dear jBPM community,

We at JBoss would like to inform you that Tom Baeyens and Joram Barrez have left their position as project lead and core developer respectively. Tom has sharply led jBPM and made it grow into a recognized brand in the business process management arena since joining JBoss back in 2004. Joram brought solid deployment expertise and made profound contributions in areas like performance, integration and standards compliance. Please join us in wishing them the best of luck in their future endeavors.

Despite the sad news, the people at JBoss would like to pledge our commitment to advancing the jBPM project. While this change will undoubtedly impact the jBPM 4 releases in the immediate future, we are busy reorganizing the existing development team and bringing in new blood. The project will continue to pursue the vision of delivering a first class embeddable BPM engine, supporting native BPMN 2.0 execution, providing friendly yet powerful design and monitoring tools, and striving for maximum flexibility and expressiveness in the process language as well as the framework API.

During the flux phase, I will assume the leadership of the jBPM project, make sure the assets remain safe and keep answering your questions in the project forums. As a long-time developer and promoter, my quest for bringing the premier open-source BPM engine to you will continue.

Should you have any questions or comments regarding this announcement, please join the discussion in our user forum.


Alejandro Guizar
Senior Software Engineer
JBoss by Red Hat

Thursday, January 7, 2010

jBPM on Fedora

Ever since I switched from Windows to Fedora back in August 2008 I have not thought about going back even once. Never before had I seen so many engineering feats put together:
  • efficient system resource usage
  • quick file manipulation
  • consistent file system layout
  • isolation between processes
  • capable, integrated command set
  • uniform software distribution and installation
  • so much more!
Many a challenge has come my way, though it always met a clear, rational, repeatable solution, thanks to the enthusiastic community. No reboot-cures-all kind of deal.

Anyhow, during this time I had several occasions to put jBPM under the glass and check how it behaves in combination with various databases in this environment. Setting up any database in Fedora is not always straightforward due to missing, outdated, or overly generic documentation. After spending some time connecting the dots, I was suggested to document my proceedings for future reference.

The database installation guides listed below are the result of the documentation effort. Be assured they have been validated at least twice, each time I upgrade to a new Fedora version.
If you are looking to run jBPM or any other database application on top of an avant-garde, free and open operating system, these guides should be helpful.

Happy new year!

Update. I added an installation guide for Oracle.

Wednesday, July 15, 2009

E-mail support in jBPM 4

Today I would like to talk about one of the many automatic activities that jBPM 4 provides out of the box: sending emails.

For those of you who have been using jBPM for a while, you may remember that jBPM 3 offered you e-mail support in the following incarnations.
  • node step visible in the process diagram
  • action handler event not shown in the diagram
  • task notification when an actor is assigned a task
  • task reminder at specific intervals after task creation
The above functions were all implemented on top of a common infrastructure. Not all of them exposed the underlying capabilities consistently, tough. Moreover, the infrastructure was not modular. The template (entity), producer (control) and session (boundary) components were mixed together. Critically, more advanced capabilities were missing.

In the latest iteration, the email feature received input from a larger and more heterogeneous group of people, consisting of the core jBPM team, one consultant from a sister company and two community members. It took some time and many a compromise to come up with a solution that everyone liked. Nonetheless, the end result was much better than any of the participants would have achieved separately, in a true open source fashion.

The design criteria were:
  • Clean, concise syntax
  • Customizable mail composition
  • Dynamic content templates
  • Composite payload: HTML and attachments
  • Multiple SMTP servers with address filtering
The diagram below depicts the design that realizes the above requirements. Immediately following is a description of the interaction.

  1. The client of the mail subsystem requests its associated mail producer to produce email messages, reading variables from the given execution. The producer contains or references a template (not shown) which specifies the recipients and the content of the message.
  2. The client retrieves the (shared) mail session from the environment and hands it the produced email messages. At this point, work from the perspective of the client is done. The rest is handled by the mail session.
  3. The mail server is configured with one or more SMTP servers, each with separate filter and transport settings.
  4. A mail server only sends messages to the addresses accepted by its filter.
  5. Each mail server encapsulates the mail properties required to create a javax.mail.Session and retrieve the corresponding transport.
  6. The transport is responsible for ultimately delivering the messages to their recipients.
Both MailProducer and MailSession are interfaces, allowing for customizable mail composition and delivery. The mail subsystem provides facilities for a client to read an arbitrary mail producer from a DOM element. In turn, the mail session implementation can be changed through the existing configuration binding mechanism provided by jBPM.

For more details on the mail features, please refer to the jBPM developers guide. In a future post I will focus on the mail usage model. Talk to you soon!