Main | Next page »
Tuesday Dec 03, 2013

Imixs migrates to GitHub

We have now started the migration of the Imixs Workflow sources from Subversion to Git. In the past all sources of the Imixs Workflow Project were available on java.net. But now we started the migration to GitHub. This will make it easier for the community to join the project. 

In addition we also plan to reorganize the Maven Project structure from a single project structure to a multi-module structure. The reasons for this step are a new deployment plan for the maven artifacts. With the multi-module structure we can simultaneity release all parts of Imixs Workflow. This was also made in the past. But with the new structure we can simplify the maven release process. 

So joint us on GitHub! 

Saturday Jul 06, 2013

Imixs Workflow 3.1.4 released!

With the latest version of the Open Source Workflow Engine Imixs Workflow the project published a stable and scalable framework for the Java Enterprise architecture. The new release includes several bug fixes and provides new features and functionality.
With the new Business-Rule Plug-in it is now possible to add custom business rules into a workflow model. Business rules can extend the capabilities of a business process in various kinds. Imixs Workflow allows to write a business rule in any script language - like JavaScript Groovy Scala, JRuby, or Clojure.

In addition, the new version of Imixs Workflow is now offering a new calendar based version of the Imixs Workflow Scheduler. With this module, workflows can be triggered time-controlled. A new configuration interface allows to provide timer events in a calendar based format. This method is already known from the chron-jobs of Linux and provides a more flexible way to control event based business processes.
Addition to various minor improvements the exception handling has been extended and adapted. This now allows to implement business processes faster and adapt business logic more flexible way.
Read more on http://www.imixs.org

Wednesday May 01, 2013

Release 3.1.2 now available

Today we deployed the next release 3.1.2. This release includes bug fixes concerning the follow-up issue from the WorkflowKernel. In addition the WorkflowKernel now supports also a new feature to unregister plug-ins. The ItemCollection supports additional type-save getter methods and provides additional type check methods. This makes the ItemCollection more flexible to use when converting property types.

See the change log for more details: Imixs Change Log

 

Sunday Apr 21, 2013

Version 3.1.1 now released

Today we released the new version 3.1.1 of the Imixs Workflow engine. This release includes several bug fixes and enhancements to the plug-in API. The new version now supports full HTML Mails. The Mail Plug-In API was extended and provides more flexibility also in adapting the Mail functionality. The size of a search result provided by the Lucene Plug-In can now be limited.

In addition this new release now provides CDI Support for all workflow plug-ins. This extension simplifies the way to write custom workflow plug-ins or extend existing plug-ins.

The Imixs REST Service API was extended and supports a new post-method to receive processed form data in JSON format. This can be used in conjunction with jQuery used in the Imixs Script module

CDI Support in EAR

There are currently some restriction in using CDI beans provided in different jars contained in one EAR. So see also the following discussions:

https://issues.jboss.org/browse/WELD-1367
http://java.net/jira/browse/GLASSFISH-17396
http://stackoverflow.com/questions/7610003/injecting-a-bean-from-a-different-jar-in-weld

Saturday Apr 06, 2013

Why we need Workflow Engines...

Building robust scalable business applications becomes more and more efficient since the Java Enterprise standard (Java EE) has reached a level where developers can concentrate on the business logic and not about all the backend stuff like database management or security issues.
So from this point it easy today to setup a new business application in short time with reasonable effort.
The Java Persistence API (JPA) provides a natural way to map the business objects from the real world into a software system. The JAAS Standard makes it easy to add security. And with different connectors we can connect a business application also to existing applications to exchange any kind of data. So it seems that everything is prepared for developing big business applications. Why should we think about managing the business process? Isn't it easy enough to add all the required information into our business objects as simple attributes?[Read More]

Thursday Feb 14, 2013

New Workflow Engine version 3.1.0. now released

The new release of Imixs Workflow includes now full JEE6 support and also CDI integration. This considerably simplifies the integration of the Imixs Workflow components in any kind of java enterprise business application.
Web developers will benefit from the new version of Imixs Workflow Faces in a special way. The new release 3.1.1 provides a JSF integration based on jQuery. Developers can use the possibilities of JSF and Facletes while leveraging the full power of jQuery and jQuery-UI.
The imixs-workflow-jax-rs component provides a RESTservice API for exchanging workflow data with other applications - e.g Eclipse BIRT. On the other hand it is possible to integrate the Imixs Workflow using Ajax.

Released components:

  • imixs-workflow-core-3.1.0 
  • imixs-workflow-engine-3.1.0
  • imixs-workflow-jax-rs-3.1.0
  • imixs-workflow-faces-3.1.1



Sunday Nov 25, 2012

Analysing SQL Data for an Imixs Workflow Entity

The data of an Imixs entity object is stored in a set of datatables based on the JPA objects provided by the imixs-workflow-engine module.

In some cases it can be interesting to verify the values of an ItemCollection separated into the SQL datatables which are used to select sub sets of entities. If you know the $Uniqueid of a ItemCollection you can select the values using a SQL statement on your SQL database like this:

select * from TEXTITEM 
where ID IN (select textItems_ID
from ENTITY_TEXTITEM
where Entity_ID='13b334b3e6e-f9b13d6')

In this example all text values for an entity with the $Uniqueid '13b334b3e6e-f9b13d6' are returned.

Sunday Jul 29, 2012

Implementing a DAO using the Imixs EntityService

With help from the Imixs Workflow project you can implement a simple data access object with a minimal effort. The open source project provides a EJB service class named EntityService to store data based on a generic data object. Read the following tutorial:[Read More]

Saturday Jun 30, 2012

Imixs Workflow 3.0.3 released

Imixs Workflow is a powerful BPM framework to build robust and scalable business applications on top of the Java Enterprise platform.
The latest release 3.0.3 provides a new Plug-In to integrate business rules in long running business processes. This Plug-In provides a new way to implement complex business workflows even faster.
The release includes also an update of the Workflow Admin Client to manage running process instances. The Imixs Workflow engine, which is based on the Java EE specification, provides a lot of enhancements concerning optimistic locking, exception handling and the introduction of additional remote interfaces.
Also the Imixs REST service API includes different enhancements which can be used togehter with workflow clients based on JavaScript frameworks like jQuery.

Sunday May 20, 2012

Workflow integration

Integrating a workflow engine into a business application provides a lot of benefits in implementing a variable business process. The goal of such an integration is to find a flexible way changing the business process and the behaviour of a business application without reimplementing or changing a single line of code.

There are in general tree different kinds of possible integration scenarios.

1.) Loose coupling of a process instance

In this scenario the workflow engine is only loosely coupled with the business application. Based on a business process model the workflow engine controls process instances which are connected to business objects fully controlled by the business application. The business object holds only a reference to a process instance. The business application triggers the state of a process instance with an action or an interceptor model. The process model is designed around the event model of the business application. The workflow engine did not store any business data.

This variant interferes with the development of the software in any way. But also the workflow engine have no information about business data and can't interact or distribute business data. The loose coupling of a process instance can be used if the workflow engine need to be integrated after the business logic was implemented. The design of the process model depends on the implementation of the business logic.


2.) Loose coupling of a workitem

This scenario assumes that a common data object (workitem) is exchanged between the application and the Workflow system. The workitem holds the reference to a process instance controlled by the workflow system and provides additional business data controlled by the application. This data can be used by the workflow system during processing a process instance. For example the business data can be used to evaluate business rules or distribute information.

The workflow engine can be triggered through the business application with an action or an interceptor model. Or the workflow system can asynchronous monitor the business application and update the process state depending on business objects stored into a common database.

The business application has not direct access to the process instances controlled by the workflow system and can not share the processing information simultaneous with the business data. The loose coupling of a workitem can be used to integrate a workflow system with business data. The design of the process model depends mainly on the business object and the business logic.


3.) Close coupling of a work item

The close coupling of a business application with a workflow system is the way where the application interacts with the worklfow system in a direct way. The business data and the processing information is exchanged using a common data object (workitem). The workitem holds the reference to a process instance controlled by the workflow system and provides also business and workflow data. To avoid redundancies, the business application should not store data, which is also part of the workitem controlled by the workflow system.

In this scenario the integration of the workflow engine is done simultaneously with the implementation of the business logic. The business application can integrate the processing information in real-time and interact with the workflow engine in various ways. The workflow engine can be triggered through the business application with an action or an interceptor model and also asynchronous by an external application.


Friday May 11, 2012

Model-Binding versus Method-Binding

The common way to implement an Imixs Workflow application is to bind a business object to a workflow model and process it by calling the Imixs Workflow engine.

  @EJB
WorkflowService wfm;   ItemCollection workitem=new ItemCollection(); .... // set model data workitem.replaceItemValue("$modelversion", "1.0.0"); workitem.replaceItemValue("$processid", 100); workitem.replaceItemValue("$activityid", 10); // process workitem workitem=wfm.processWorkItem(workitem);

We call this a 'model-binding' because you bind your business object during the development of your application to a workflow model. This means that you typical first design your workflow model and after that you start implementing your application. So as a developer you know the model and can assign a possible workflow activity into your business object. Imixs Workflow provides different methods to compute the possible workflow activities during runtime so you are not forced to hard code the activities in your code.

The method-binding

But in some cases you might need to follow a different strategy. In a scenario where the modeling process takes place very late, you may not be able to bind your business objects to an workflow activity by assigning an activityID. This situation occurs when you first develop your business methods, and then need to link them to workflow activities of a workflow model. This means that the method call itself identifies the activity in the workflow model to be processed by the workflow engine. So each method call is bound to an workflow activity. We call it the 'method-binding'. To provide an appropriate model, the process designer need to know the different business methods implemented from the workflow application. So he can bind the method-name directly to the workflow activities of a workflow model.

This kind of late binding enforces to work with Interceptor classes. This concept is a common way in Java EE to implement cross-cutting functionality. So the solution here is to intercept the call of a business method and find the corresponding workflow activity in a model. Then you can process the business object.

 

   @EJB
WorkflowService wfm;   ItemCollection workitem=findWorkitem();
ItemCollection activity=findActivityByMethod(workitem,methodName); .... // set activityid workitem.replaceItemValue("$activityid", activity.getItemValueInteger("numActivityID"); // process workitem workitem=wfm.processWorkItem(workitem);

 

 

Sunday May 06, 2012

Imixs Workflow Engine 3.0.2 final release!

Today we released the latest version of Imixs Workflow 3.0.2.

This release includes a lot of minor updates, bugfixes, and new features. It provides a new logging and exception API that makes a integration easier.
With a new security interceptor model, application-based dynamic user roles can be now bound directly into a process instance. The Imixs REStfull API offers now full support of JSON objects. It is now possible to exchange all business data in JSON format from a JavaScript-based client included in the Imixs-Script library. Also the management of multi workflow model versions is now improved.

 

Saturday Mar 03, 2012

Why is Imixs Workflow distributed under GPL?

Since the early beginning of the Imixs Workflow project all results are subject to the general public license (GPL). This license grants the broadest freedoms for users. There are many software systems available with this license. The most popular is the operating system Linux or the database server MySQL. So we are all using this kind of software license. Remember, you can not go into the Internet without the help of Linux.

But when you take a closer look on the smaller parts of software systems - the frameworks - a lot of these frameworks are subject to a lesser general public license like the LGPL, the Apache or Eclipse license. The argument of the software vendors behind those software license is to encourage widespread usage and adoption. But this means also to enable adopters to restrict the usage of there software build on thus a framework. This all is common practice and I think there is no need to discuss the pros and cons. So why is Imixs Workflow distributed under GPL?

The idea behind the Imixs Workflow project is to provide organizations, companies and users with a flexible software solution, to manage their business processes. Business processes are subject to constant change. And a workflow management system must provide the opportunity to follow this change. Therefore, we think that the user of Imixs Workflow must be able to adapt their software solution to meet their own needs.
From this point of view there no reason to restrict the usage of the software in any way. And as the objective group of Imixs Workflow is the final user rather than the software developer we believe that the GPL is a better solution to achieve this goal.
We do not want to discourage ISVs to use the Imixs Workflow for there own software project. Every person including software developers are free to use the Imixs Workflow for there own project. But remember that it is your commitment to pass that freedom also to other users.

Sunday Feb 19, 2012

Building business Apps with HTML and JavaScript!

We started a new subproject called "Imixs Workflow Script!". This project allows you to build workflow applications only using HTML and JavaScript! This is really cool and I believe it's the most easiest way to develop web based workflow applications.

'Imixs Workflow Script!' combines the benefits of jQuery with the capabilities of the Imixs Workflow engine. Imixs Workflow Script! is a JavaScript library providing methods to interact with the Imixs Worklfow engine through the Imixs RESTfull Service API. The Imixs Workflow engine is used as a back-end service deployed on a Java EE application server like GlassFish.

Including the script library into a HTML page, 'Imixs Workflow Script!' automatically detects certain areas and fills these areas with workflow data. Also the data of input fields can be posted easily back to the workflow server.

The Project includes a sample application showing how 'Imixs Workflow Script!' works.

http://www.imixs.org/script/


Monday Jan 23, 2012

Single Sign On (SSO) for Business Applications on Liferay with Glassfish

To integrate business applications into a Liferay portal infrastructure is a major challenge. One of the most common requests is a single sign on (sso). Once a user has logged into the portal he should also access business applications which run outside the portal container.  

With a new implementation of a "Imixs Login Module" it is now possible to integrate business application seamless into Liferay portal. The module makes use of the Liferay API to validate the user session and enables applications to authenticate users on any Java Enterprise application running in a Java EE 6 sever environment. The login module is implemented on the JSR-196 specification with is a standardized authentication mechanism for Java EE.

With the help of the Imixs Login Module it is not necessary to setup a complex single sign on server infrastructure. The Login module allows to use the existing user management of Liferay Portal server. We have tested the login module with GlassFish Application Server 3.1 and Liferay 6 on Windows and Linux plattform.