BPM solutions using Java EE
The Imixs Workflow project is an open source project that relieved the construction of business process management systems (BPMS). An essential part of the project are the Imixs JEE Workflow components. These components can be used to build BPM solutions based on the Java EE plattform.
The following tutorial will show how an Imixs BPM solution can be created in a few minutes with the help of Eclipse, Maven and Glassfish Application Server.
[Read More]
Posted at 12:17AM Jul 19, 2010
Posted by: Ralph
Category: Business
Imixs Workflow runs on JBoss Application Server
The Imixs JEE Workflow components are successfully tested on the latest release of JBoss Application Server V 5.1.0.GA (JBossAS 5). The JBoss Application Server is the one of the most widely used Java application servers on the market.
The Imixs JEE Workflow is a full featured Workflow Management System (WFMS) based on the Java EE5 specification and fulfills the requirements to a scalable, transactional, robust and simple deployable Java EE Workflow System.
JBoss 5 for the Java EE5 codebase fully complies with the Java EE5 specification. So the JBossAS 5 is an ideal platform for Workflow Management Systems based on the Imixs Open Source Workflow.
The Imixs JEE Project site provides additional Installation guides for JBoss and also informations about deployment strategies to get best results running the Imixs Worklow on JBoss Application Server.
Read more about the Imixs Java EE Workflow System.
Posted at 05:06PM Jun 28, 2010
Posted by: Ralph
Category: Business
Imixs Workflow JEE Lib 2.0.1 released
Today the new version 2.0.1 of the Imixs Worklfow JEE Library was finally released.
Read more about the Imixs Workflow API on the www.imixs.org Project Site.
We are starting now immediate the 2.0.2-SNAPSHOT release. One goal of this new release is support for Hibernate and JBoss APP Server.
Posted at 09:49PM Dec 01, 2009
Posted by: Ralph
Category: Business
Building a Imixs Workflow Webapp - Part III.
In the first part of my tutorial I explained how to define a business model using the Imixs Workflow Modeler. The second part describes how to setup the JEE Application server. Now its time to complete the tutorial and build the workflow application!
As you have seen I spent much time in explaining the modeling process and the server configuration. The reason is that the development of the JEE Workflow application is really easy and did not take much time. I will use the Maven build and configuration tool. The Imixs Workflow project is maven based and all components are available as maven artifacts. This makes it mostly easy to setup a application in a short time. It is necessary that you are familiar with java and as the application will be a web application you should also be familiar with html, css and JSF. But you did not need to be a JEE expert! You can use the Imixs JEE Workflow as components of your application. And you did not need to modify these components as they fulfill all the requirements to a scalable and robust workflow management system.
Building a new Application from a Maven archetype
When using Maven it is mostly easy to setup a new Imixs workflow project as this project provides a Maven archetype. A Maven archetype is kind of template or scaffold to build an new project. General informations about using maven in conjunction with imixs workflow can be found here .
Next I will explain how you can setup a new workflow project with Eclipse and Maven
This tutorial assumes that you are working with Eclipse IDE and you have installed the Eclipse Maven2 Plugin. You can also setup a new project using the maven standard command line tool with any other IDE. The usage of the maven command line tool will be explained on the Imixs JSF Tools Project site. Additional Informations about using Imixs Workfow with Maven can be found here.
Adding the java.net Repository Index
The Imxis Workflow Project is hosted on java.net . So first you should make sure that the java.net Maven repository is listed in your Eclipse Repository View. You can check the configured Maven repositories when you open the Eclipse view "Maven Indexes"

If the java.net Maven repository is not listed there you can add a new maven repository.
Click "Add Index" to add the java.net Maven repository 'http://download.java.net/maven/2/'

It can take some time until the nexus indexer have updated the repository index.
Create a new Project
Now you can create a new Project from the Imixs archetype.
Click "File->New->Project" and select the Maven Project Wizard

Next page in the wizard click next to choose an Maven Archetype from one of the repositories:

The Nexus Catalog provides you with all Archetypes provided from the Maven repository locations. To find the Imixs JSF Sample Archetype enter "org.imixs" in the filter input filed:

select the imixs-workflow-jsf-sample-archetype and klick next.
On the following wizard page you can specify the Group and Artifact ID of your new project and also configure additional project settings. I use "com.mycompany" as a Group Id and "MyWorkflowApp" as the artifact Id.

The Imixs JSF Sample Archetype provides three property values which allows you to configure your project setup. These settings are used to configure the security realm and the database connector which I have configured in Part II. of this tutorial. It is possible to change these settings afterwards but you are much faster if you specify this right properties during the creation process.
Complete the project setup
After all settings are completed click finish to create and setup the new JSF Workflow project. Maven will create a new Multi-Module Project containing all necessary parts of a JEE Application!
Unfortunately there is a bug in the Eclipse Maven plugin that
prevents file filtering and so the project folders of the EJB, Web and
EAR Moduls stay called e.g. _rootArtifactId_-web. (See
MNGECLIPSE-1054). In the 1.0.0 relase of the Eclipse Maven Plugin this bug will be fixed. But I will show which steps are necessary to fix the wrong project paths.
After you have create your workflow application you will see the following eclipse project structure.
Looks good but when you open the parent node "MyWorkflowApp" you will see that the subfolders are not correct named.
"__rootArtifactId__" should be replaced in "MyWorkflowApp". But this is currently not done by the Maven Plugin.
So you need to replace the folders manually in "MyWorkflowApp-ear", "MyWorkflowApp-ejb" and "MyWorkflowApp-web"
After that you have to fixup the pom.xml file in the parent project. Open the pom.xml and remove the old named modules listed there with the "__rootArtifactId__" präfix:
So thats it. Now you can build your workflow application. Run the maven context command "run as -> maven install"
You will the the BUILD SUCCESSFUL message in the console output.
To test this application you can deploy your application in your glassfish server by the application. You can find the new Build in your Eclipse Workspace in "MyWorkflowApp/MyWorkflowApp-ear/target/MyWorkflowApp-ear-0.0.1-SNPSHOT.ear" and also in your local maven repository (~/.m2/)
After you have deployed your application you can synchronize your workflow model created in part I. of this tutorial.
Use the SyncType "Web Servcie (Multipass)"
Make sure that the WebService enpoint is entered correctly. (You can test the WorkflowModel webserice from the glassfish console)
Congratulations you are finished! Now you are ready to run your Imixs web workflow application!
http://localhost:8080/myexample/pages/workflow/workitem.jsf

Posted at 08:39PM Nov 05, 2009
Posted by: Ralph
Category: Business
Building a Imixs Workflow Webapp - Part II.
In the first part of my tutorial I explained how you define a business model using the Imixs Workflow Modeler. This part concerns about the setup of your application server on which you can run the workflow application later. I will describe the setup of Suns Application Server Glassfish which is common running a JEE application. But you can also use a different JEE application server.
From the point of view of a workflow management system (WfMS) the application server is responsible for two important things: the authentication of a user and for saving workitems (a running process instance) into a database. As the Imixs JEE Workflow components are based on the JEE5 specification this can be configured outside of our application using the application servers admin console. Next I will describe the two configuration steps.
Setup a Security Realm
To authenticate and authorize users to work with the Workflow application it is necessary to define a Security configuration. This is also called a Security realm. You can use and configure any authentication framework supported by your application server environment. But for testing I use a simple file based security Realm. Follow the steps below to setup a new security realm named "imixsrealm" in your glassfish server:
- start admin console -> http://localhost:4848/asadmin
- navigate to Configuration->Security->realms
- add a new file realm named "imixsrealm"
- choose the class Name "com.sun.enterprese.security.auth.realm.file.FileRealm"
- Set the JAAS Context to "fileRealm"
- Set the Key File to a new File name. e.g. "imixskeyfile"
- press OK to create the new realm.
The name "imixsrealm" will be used by my workflow application to select the security configuration.
One part of the security realm is to authenticate a user who tries to access my application. The other part is to authorize a user and grant access to the workflow application. Therefor each user account needs to be owner of one of the Imixs security Roles defined by the Imixs JEE Workflow System. The security roles are mapped by a application to different access groups. So you need now to define different users assigned to different groups used by your application.
To add or mange a user open the new realm configuration and click on button "manage users"
I add the following test accounts and groups:
| UserID | Group | Description |
| Manfred | IMIXS-WORKFLOW-Manager | This user will have maximum access |
| Eddy | IMIXS-WORKFLOW-Editor | This user can edit allworkitems |
| Anna | IMIXS-WORKFLOW-Author | This user will be allowed to create workitems and edit his own |
| Ronny | IMIXS-WORKFLOW-Reader | This user will be only allowd to read workitems |

Setup a Database connection
The next step is to setup a Database connection which can be used by your workflow application to store the workitems created and modified by users into a database. Again - as the Imixs JEE Workflow depends on the JEE5 specification the application is independent form a specific database vendor. I mostly like the MySQL Database, but you can use any other database system. The JEE database connection is based on the JDBC standard and each connection defined by a server will be named unique by the JNDI Name. In my case my application expects a JDBC ressource with the name "jdbc/workflow-db".
To setup a new Database connection for MySQL in the glassfish server console follow these steps.
- start admin console -> http://localhost:4848/asadmin
- navigate to Application Server > Resources > JDBC > Connection Pools
- click "new" to create a new database source
- name: your database name (e.g. "workflowdb")
- resource type : javax.sql.DataSource
- Database Vendor : MySQL - click "next". Now you can configure necessary properties depending on your database setting:
- DatabaseName: "workflowdb"
- URL: "jdbc:mysql://localhost:3306/workflowdb"
- Password: "*****"
- User: "root" - click "finish" to create the new connection. You can test the connection using the "ping" button in the configuration page. (Note: it is necessary that if you use MySQL place the MySQL jdbc driver (mysql-connector-java-5.1.7-bin.jar) into the folder : [glassfish-install]/domains/domain1/lib/ext/ )
Now create a new JDBC Resource with the Name "jdbc/workflow-db"
- Navigate to "Application Server > Resources > JDBC > JDBC Resources"
- click "new" to create a new resource
- jndiName: jdbc/workflow-db
- PoolName: workflowdb (this is the name of the database connection created before)
Now that we have setup our application server I am ready to build and deploy my workflow application.
Posted at 01:06PM Sep 08, 2009
Posted by: Ralph
Category: Business
Building a Imixs Workflow Webapp - Part I
This Tutorial shows how to build a web based workflow application using the Imixs open source workflow framework. As the Imixs workflow project gives you a powerful technology building a business process management system (BPMS) it is mostly easy to setup a new web application without spending to much time into development. Its time to focus on the business process and your customers needs!
The Imixs Workflow Project is open source and so the project gives you the possibility to customize your workflow management system as you would mind. There is a lot of additional documentation about the different technologies and also a discussion forum where you can ask any question. So don't worry about your plans to develop a strong, scalable and robust workflow management system (WFMS) with Imixs Workflow.
The Tutorial consist of three parts.
- Part I. - shows the creation of a workflow model. The workflow model is the blueprint where you describe how your business process should work. You can use the Eclipse based graphical Imixs Workflow modeler to develop a Imixs Workflow model.
- Part II. - concerns about the setup of your application server which is responsible to authenticate users and store workitems (a running process instance) into a database.
- Part III. - will show you how to build and deploy the web application. This is mostly easy as you can use Maven to setup a scaffold in a few seconds which will provide you with a typical web application project based on the latest JEE/JSF Technology. You can use the scaffold to start further development or just start you own implementation. Its up to you.
The hole tutorial will take less than 15 minutes. So I suggest you to check it out!
Creating a Workflow Model
To start this tutorial I will explain how you can create a new Workflow Model which describes your business process. This is the typical first step in business orientated development. And this is also that part which your customer will be able to follow best as this step is more business orientated and less technical.
The Trouble Ticket Workflow
In this Tutorial I will develop a "Trouble Ticket Workflow System". A trouble ticket system (also called issue tracking system or incident ticket system) is based on a business process that manages and maintains lists of issues, as needed by an organization. Trouble Ticket Systems are commonly used in an organization's customer support call center to create, update, and resolve reported customer issues, or even issues reported by that organization's other employees.
A ticket is the "workitem" managed by your application which contains all necessary informations about the reported customer issue .
In my example scenario I will design the workflow very simple to demonstrate the principle and basic concepts of the Imixs Workflow:
- A customer service operator receives a telephone call, email, or other communication from a customer about a problem. The operator creates a new issue in the Trouble Ticket system. The status of our workitem is now "open"
- Next a member of the technician team verifies that the problem is real, and not just perceived. The technician will also ensure that enough information about the problem is obtained from the customer. The technician accepts the ticket or reject it. An accepted Ticket will change the status of the workitem into "in progress".
- As work is done on that issue, the system is updated with new data by the technician. Any attempt at fixing the problem should be noted in the issue system.
- After the issue has been fully addressed, it is marked as solved in the issue tracking system and the ticket will be closed. Status "closed"
This is a BPMN diagram from the workflow which shows the process flow:

To create this BPMN diagram I use the Eclipse BPMN Modeler which is a nice and easy to use modeling tool based on eclipse.
Using the Imixs Modeler
In the next step you create a technical model of the business process. To create a new Imixs workfow model I use the Eclipse based Imixs Workflow Modeler. The Imixs Workflow Modeler is used to describe the technical flow of a workflow. You can configure a lot of application specific behavior within this tool which will reduce the time for coding the application. The Imixs Workflow Modeler can be installed very easy using the Eclipse Update Manager. If you have not yet installed the Imixs Modeler follow this installation guide.
From the Eclipse IDE you can crate a new Imixs model file to store the workflow model. A Imixs model file has the file extension ".ixm".

You
can create you new Model file in the /src/ folder of any eclipse
project. Create a new folder /workflow and create a model file
"model.ixm". Or you can use the New Wizard or simply create a empty file
"model.ixm".
When you open this file you see the Imixs Workflow Editor:

Now you can create a new Process Group called "ticket" and add three Process Entities described in your bpmn business model:
- new Ticket
- in process
- closed
You will find a full description at: how to model a business process on the IX Modeler project Page.
After all you model can look like this:

If you don't want to create the model by yourself you can download the complete model file from here.
Now the first Part of our Tutorial is finished. Continue with Part II.
Posted at 11:03AM Sep 08, 2009
Posted by: Ralph
Category: Business
Migration to new Imixs Workflow JEE API
If you migrate form the ix-workflow project to the new imixs-workflow project it is not posible to redeploy with the new JEE Implementation into an existing EJB / EAR module.
So I recommand to follwo these steps:
- backup the entities form you exsiting Imixs Worklfow Application with the new (!) org.imixs.workflow.jee.adminclient.web 1.4.3 using the Export Feature.
- Take care about the new persistence unit used in the persistence.xml
org.imixs.workflow.jee.jpa - Redeploy you new project with the persistence.xml option:
<property name="toplink.ddl-generation"
value="drop-and-create-tables" /> - Reimport you backupfile with the new imixs WOrkflow AdminClient Tool
Posted at 02:18PM Jul 25, 2009
Posted by: Ralph
Category: Business
New Version 1.6 of Imixs IX JEE Workflow
Currently we are working on the new 1.6 release of Imixs IX Workflow API and IX JEE Workflow Server. The new release will include a ReportService. This feature support a power full report function which allows you to generate dynamic reports based on running Business Processes. The Report Feature will be included into the IX REST Services so reports can be used very easy.
Also we extend the IX Workflow Modeler with a new Report Editor that allows a Workflow Modeler to create and manage reports as *.ixr files directly in a Eclipse project.
The new functionality will expand the Imixs IX Workflow Tool with a really strong feature set! Source code of new Version 1.6 will be available on subversion repository in a pre-beta version:
https://ix-workflow.dev.java.net/source/browse/ix-workflow/
Posted at 10:27PM Sep 01, 2008
Posted by: Ralph
Category: Business
Building a Workflow Application - Part III
In part III of my tutorial I will explain how to build a EAR module with maven and develop a Web Frontend to test my workflow application.
If you followed the part I and part II of this tutorial you have setup an environment, created the workflow model and implemented a business loging in a EJB 3.0 session bean.
[Read More]
Posted at 01:48PM Jul 26, 2008
Posted by: Ralph
Category: Business
Building a Workflow Application - Part II
In this part of my tutorial I will explain how to implement the Business Logic using the Imixs IX Open Source Workflow components. If you followed the first part you have setup an environment and created the workflow model using the IX Workflow Modeler. The model file is part of the maven parent project and located in the /src folder.
Now I add a maven ejb modul to implement a session EJB using the IX JEE Workflow Implementation. This Implementation makes it very easy to implement business logic because I need not to care about JPA or a lot of the EJB stuff.[Read More]
Posted at 11:17AM Jul 26, 2008
Posted by: Ralph
Category: Business
Building a Workflow Application - Part I
The following Tutorial I will explain how easy it is to build a Workflow Application using the IX Open Source Workflow Components. The Tutorial is divided into three parts:
- Part I. - Setup and Modeling
- Part II. - Building Business Logic with EJB 3.0
- Part III. - Building a Web Frontend
Posted at 08:55AM Jul 26, 2008
Posted by: Ralph
Category: Business
Support for Bea WebLogic 10.0
We are now also supporting Bea WebLogic Server 10.0. Currently Bea WebLogic 10.0 did not support all the functionality as specified in the JEE spec. Particularly the Web Service implementation is not completed so if you try to deploy the Imixs IX JEE Workflow components you need some modifications.
As there are some restrictions in Bea WebLogic 10.0 concerning the Web Service Functionality you could run into problems during deployment of the IX JEE Workflow components on Bea. But it is possible to run Imixs IX Workflow on Bea 10.0.
If you like to deploy the Imixs IX JEE Workflow components on a Bea WebLogic Server 10.0 there are some things you must pay attention to.
First we recommend to remove the WebService implementations
- org.imixs.workflow.jee.ejb.ModelServiceManagerImplementation
- org.imixs.workflow.jee.ejb.WorkflowServiceManagerImplementation
from the deployment.
Then it is useful to integrate the worklfow model in a programmatic way inside you Application. We are also supporting helpful component for this.
In general you can build your ear module like described in the chapters Deployment . But as Bea WebLogic 10.0 did not support all the functionality as specified in the JEE spec you need do some modifications. We published a description about the procedure here.
Additional we are supporting a new branch of the IX JEE Workflow for Bea WebLogic. You can checkout this branch on the Subversion Repository on dev.java.net. The branch also supports the maven configuration management.
If you have questions about IX Workflow and Bea WebLogic please give us your feedback.
Posted at 01:39PM Jul 13, 2008
Posted by: Ralph
Category: Business