Comparison of JBoss JBPM and Imixs-Workflow

If you take a closer look at the Imixs Workflow Project you may ask yourself if the project is different to other Workflow Engines like JBoss JBPM or Activiti. In this blog will try to do a short comparison of JBPM and Imixs-Workflow. This comparison is not in technical detail but it should give an overview about the goals of the two open source projects. First I want to point out that Imixs-Workflow and JBPM are not rivals in the BPM market. Both projects are open source, both projects try to find solutions for similar but not equal problems in business process management and at least, both project use the same Eclipse-BPMN modeling platformContinue reading “Comparison of JBoss JBPM and Imixs-Workflow”

IMIXS MODELER VERSION 2.3.1 RELEASED

The latest version 2.3.1 of the Eclipse based Imixs Workflow Modeler is now released.
The new version includes different bug fixes and improvements in usability like the “new Report Wizard” and a new design of the modeler perspective.

The new release includes also additional updates:

  • Imixs Workflow Modeler – 2.3.1.v200911181830
  • Imixs Workflow Modeler Integration Plug-in – 2.2.7.v200911181830
  • Imixs Workflow Report Plug-in –  1.0.1.v200911181830

Read more: http://doc.imixs.org/modeler/

MIGRATION TO NEW IMIXS WORKFLOW JEE API

If you migrate form the ix-workflow project to the new Imixs Workflow project it is not possible to redeploy with the new JEE Implementation into an existing EJB / EAR module.

So I recommand to follow these steps:

  1.   backup the entities form you existing Imixs Workflow Application with the new (!) org.imixs.workflow.jee.adminclient.web 1.4.3 using the Export Feature.
  2. Take care about the new persistence unit used in the persistence.xml
    org.imixs.workflow.jee.jpa
  3. Redeploy you new project with the persistence.xml option:
    <property name=”toplink.ddl-generation”
    value=”drop-and-create-tables” />
  4. Reimport you backupfile with the new imixs WOrkflow AdminClient Tool

NEW! IMIXS WORKFLOW PROJECT

I am proud to announce that we started the new Open Source Workflow Project Imixs-Workflow on dev.java.net. This project arise from the ix-workflow project we developed about for more than 3 years. But the new project is much more easy to use. We developed a bunch of simplifications in the Workflow API so the hole project is now much easier to integreate. I would be happy if you can give me some feedback to that project on the project home page.

I will provide a short video next time to show how easy it is building workflow applications based on the API.

DATABASE MIGRATION DERBY -> MYSQL

If you have started you workflow project using the build-in Derby Database from Glassfish you maybe can run into a performance problem if you manage a lot and complex of Data. This is because Derby is not so scalable in managing complex SQL statements like other Database Management Systems. In such a case you can easily migrate your workflow system form Derby to MySQL which is much more scalable.

Follow these steps to migrate data in a running system

  1. Start your Derby DB and Glassfish Server
  2. Make sure that your Workflow System is up and running
  3. Switch to the Imixs JEE Admin Client.
  4. Connect to the EntityPersistenceManager from your Workflow Instance
  5. Start a export using the default EQL Statement. This will export all existing Data of your workflow system into a file
    >SELECT wii FROM Entity wiI
    If the export did not succeed a reason can be the HeapSize of your Glassfish Server instance. You can increase the default HeapSize from 512m to 1024m using the Glassfish Admin Console.
    Go to : Applicationserver->JVM Settings -> JVM Optionsand change -Xmx512m into -Xmx1024m
  6. Undeploy your Workflow Instance
  7. Shutdown your Derby Database
  8. Setup a new MySQL Database and create a new JDBC Connection Pool using the Glassfish Console
  9. Now you can switch the JDBC/Ressource of your Workflow System from your Derby Database to your new MySQL Database
  10. Deploy your Workflow Instance again – this will generate the necessary Tables in your new MySQL Database
  11. Optionall : after deplyoment you can setup Entity Index Fields manually if necessary
  12. Import your Data form the Export File you generated in Step 5.

Thats it!

If the import process fails on MySQL check the following:

PACKETTOOBIGEXCEPTION

If you got the Excepiton:

com.mysql.jdbc.PacketTooBigException: Packet for query is too large

you should change the max_allowed_packet setting in your MySQL server for the import process

  1.  Open your MySQL console
    >mysql -u root -p
  2. Change the max_allowed_packet setting
    >SET GLOBAL max_allowed_packet=3000000000;
  3. Restart your Glassfish Server (not the MySQL Database!)
  4. Reimport your data
  5. Restart you MySQL Server and Glassfish Server to reset the max_allowed_packet settings.

PERSISTENCEEXCEPTION

If you got the Exeption:

javax.persistence.PersistenceException: Exception [TOPLINK-4002] (Oracle TopLink Essentials – 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘DATA’ at row 1

MySQL tells you that the BLOB field is to small to store the data. This is because MySQL generates per default a SmallBlob (64K) for your Data Fields in the Entity Table. You can change the Blob type after the deplyoment of your Workflow Instance :

  1. Open your MySQL console
    >mysql -u root -p
  2. Connect to to your Database
    >USE mydatabase;
  3. Change the BLOB Type to LONGBLOB (4GB) or MEDIUMBLOB (16MB)
    >ALTER TABLE Entity CHANGE DATA DATA MEDIUMBLOB NOT NULL;

NEW VERSION OF IMIXS MODELER

The new version of the IX Modeler for Eclipse is now available!

The new relase 2.2.9 of the Basic module and  2.2.6 of the Integration module includes a lot of enhancements of the user interface. The management of Process and Activity properties is now extended by a new property editor concept. All properties are now managed using the “Tabbed Properties View Extension Points”. This allows you to extend the IX Workflow Modeler in your Software projectes much faster as you can now use the eclipse standard extention point for tabbed properties.

The new version was tested with Eclipse 3.4.2 for Windows and Linux.

LICENSING OF IMIXS OPEN SOURCE WORKFLOW

As we were often ask about the licensing of of the Imixs Open Source Workflow which is subject to the General Public License (GPL). I want to give you today a short idea how your own individual Software project is affected form this license when you are using the Imixs Workflow components.

Assuming that you plan to develop an individual software system using the Imixs Workflow System you have to take care about the subject of GPL. But since your software project is no workflow management system or a pure workflow engine, like the Imixs Workflow itself, there is no reason to worry about the GPL. You are free to use the Imixs Workflow components implementing any kind of business process application.
In contrast if you enhance or modify components of the Imixs Workflow Implementation or you implement a derived unit you are constrained to leave this code also under GPL.
Our goal is to avoid that someone restrict the purpose of the Imixs Workflow Software. Everyone is free to use the Imixs Workflow as free software in the manner of the Free Software Foundain (http://www.fsf.org/).

So we appreciate everybody who plan to use the Imixs Workflow in an individual Software Project. You be bound to inform your users and customer that Imixs Workflow is fee software under GPL. This means that he will receive also the source code (of the Imixs Workflow) or can get it if he want it. He can change the software or use pieces of it in new free programs.
If you enhance the Imixs Workflow you are bound to leave this code again under GPL and share your experience with the community.

So we did not restrict you in your freedom to develop software and business applications using the Imixs Workflow. We also did not restrict your freedom to distribute your software or charge for service if you wish.
Free Software is about to exchange experience and knowledge, not to restrict other people in there freedom to use it.