BPM Solution for Glassfish and JBoss
Imixs Software Solutions GmbH presents with the Open Source project "Imixs Workflow" a Business Process Management (BPM) solution for Glassfish and JBoss Application Servers. Glassfish and JBoss are open source application servers based on the Java EE specification. These server platforms are widely-used by a lot of small and medium companies. The Imixs JEE Workflow components can be seamlessly integrated into Glassfish 2.1, 3.0 and JBoss 5.0 and 6.0 infrastructure. Thus the project provides a highly scalable and robust BPM solution.[Read More]
Posted at 12:43PM Aug 22, 2010
Posted by: Ralph
Category: Business
Switching JDK for Glassfish Application Server
Since the latest Imixs Workflow release 2.1.0 we recommend to run Imixs JEE Workflow Applications on Glassfish Application Server using JDK 1.6.
When you have updated the JDK 1.5 to the latest JDK 1.6 make sure to pay attention also to the Glassfish environment configuration which is used by Glassfish on startup...
Posted at 10:53PM Jun 29, 2010
Posted by: Ralph
Category: Business
Glassfish & OpenID - JSR-196 with OpenID4Java
Imixs supports now a new Login Module which enables JEE Web Applications to authenticate against OpenID Providers.
You can test a Imixs Workflow Application using your own Google Account or any other OpenID Account on the ShareYourWork Online Workflow Plattform.
Read details about this Authentication Module for Glassfish here.
Posted at 06:30PM Jan 29, 2010
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
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
Imixs on dev.java.net
Since two months we are member of the dev.java.net community. We moved our project to dev.java.net because the Imixs IX Workflow is mainly focused on Java Technologies. So the dev.java.net is a suitable place for our project.
As our newest subproject IX JEE Workflow is mainly developed on Glassfish Server we are also supporting a lot of deployment tips for Glassfish. So you will find now all the informations on one place.
We moved also the sources to dev.java.net which were hosted before on Sourceforge.
Posted at 10:17AM Jul 12, 2008
Posted by: Ralph
Category: Business