Deployment

The Imixs-Workflow engine can be deployed in various ways depending on the kind of your server environment. As Imixs-Workflow is based on Jakarta EE, the engine runs in a n EJB and Web Container. This concept gives you the flexibility to setup the Imixs-Workflow engine individually for custom applicatios and server infrastructure.

Before you deploy the Imixs-Workflow engine into an application server, consider the following:

  • Provide a database where the workflow data will be stored
  • Configure a security realm for granting access to different actors
  • Optional configure a OR-Mapper like EclipseLink

Database

The Imixs-Workflow engine stores its workflow data into a database. Therefore a database pool need to be provided before you deploy Imixs-Workflow into an application server. The connection between Imixs-Workflow and the database pool is established by the Java Persistence API (JPA). So there is no need to create ad database schema manually.

See the following example of a persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="org.imixs.workflow.jpa" transaction-type="JTA">    
       <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>  
       <jta-data-source>jdbc/workflow-db</jta-data-source>
       <jar-file>lib/imixs-workflow-engine-${org.imixs.workflow.version}.jar</jar-file>
       <properties>
         <!-- target-database Auto MySQL PostgreSQL  -->
         <property name="eclipselink.target-database" value="Auto" />
         <property name="eclipselink.ddl-generation" value="create-tables" />
         <property name="eclipselink.deploy-on-startup" value="true" />
         <property name="eclipselink.logging.level" value="INFO" />   
       </properties>          
    </persistence-unit>
</persistence> 
  • The jta-data-source (in this example ‘jdbc/workflow-db’) must match the database pool in your application server.
  • The persistence-unit name refers to the Imixs-Workflow engine and must always be set to org.imixs.workflow.jpa.
  • The jar-file must match the deployed version of the Imixs-Workflow engine jar within your application (be careful with the right version number)

Security

To access the Imixs-Workflow engine, users need to be authenticated. This requires setting up a security realm. The security concept of Imixs-Workflow defines the following roles:

  • org.imixs.ACCESSLEVEL.READACCESS
  • org.imixs.ACCESSLEVEL.AUTHORACCESS
  • org.imixs.ACCESSLEVEL.EDITORACCESS
  • org.imixs.ACCESSLEVEL.MANAGERACCESS

Each user accessing the Imixs-Workflow Engine need to be assigned at least to one of these roles. To deploy the Imixs-Workflow engine a corresponding security realm have to be configured in the application server.

Configuring a security realm depends on the application server platform. See the section Security for further details.