KIE-WB / jBPM Console NG – Configurations

Hi all, this is a follow up post from my previous entry about how to use the jBPM Console. The main idea of this post is to describe some of the most common configurations that you will required to do to the jBPM Console NG in order to use it in your own company. But before going into technical details we will be covering the differences between the KIE Workbench (KIE-WB) and the jBPM Console NG itself. Both applications require similar configurations and its good to understand when to pick one or the other. We will be covering these topics in the free workshops in London. 

Introduction

If you look at the project source code and documentation, you will notice that there are several projects that are being created to provide a complete set of tools for Drools and jBPM. Because of the modular approach that we have adopted for building the tools, you can basically choose between different distributions depending on your needs. The jBPM Console NG can be considered as a distribution of a set of packaged related with BPM only. The KIE Workbench (KIE-WB) is the full distribution, that contains all the components that we are creating, so inside it you will find all the BPM and Rules modules. If more modules are added to the platform, the KIE-WB will contain them.

Sometime ago Michael Anstis posted an article in blog.athico.com to explain this transition: http://blog.athico.com/2013/06/goodbye-guvnor-hello-drools-workbench.html This blog post was targeted to Guvnor users, so they can understand the transition between Drools 5.5 and Drools 6. So the intention behind the following  section is to explain the same but for jBPM users, trying to unify all the concepts together.

Projects Distributions

The previous mentioned blog explains most of the components that we are creating now, but the following image add some details on the BPM side:

Project Distributions

Project Distributions

Some quick notes about this image:

  • Uberfire and Guvnor are both frameworks, not distributions.
  • We are keeping the name Guvnor for what it was originally intended. Guvnor is a framework to define all the internal project automation and organization. Guvnor is the internal framework that we will use to provide a smart layer to define how projects and all the knowledge assets will be managed and maintained.
  • KIE-WB-Common is not a distribution by itself but it could, because it contains all the shared bits between all the distributions.
  • Drools Workbench only contains authoring tools related with Rules, notice that in the same way as Guvnor it doesn’t provide a runtime for your rules. This could be added in the future but in 6.0 is not.
  • The jBPM Console NG replaced the old jBPM GWT console
  • The difference between names (Drools Workbench and jBPM Console NG) is due the fact that the jBPM Console NG does provide all the runtime mechanisms to actually run your Business Processes and all the assets associated with them.
  • Notice that the jBPM Console NG uses some of the Drools-WB modules and also integrates with the jBPM Designer and the Form Modeller.
  • KIE Workbench contains all the components inside the platform and also add the Remote Services to interact with processes.
  • Notice that the Remote Service in 6.x are only for the BPM side, that means that we can also provide the jBPM Console NG distribution with those services, it is not a priority right now but it can be done if someone thinks that it’s a good idea.
  • You can find all these projects under the droolsjbpm organization in github: http://github.com/droolsjbpm
  • All the configurations and blogs related to the jBPM Console NG also applies for the KIE Workbench
  • The jBPM 6.0 installer will come with KIE Workbench bundled and because of this most of my posts will be showing screenshots of KIE-WB instead of the jBPM Console NG.

Configurations & Deployment

If you take a look at the source code repositories in Github, you will find that the jBPM Console NG, Drools Workbench and Kie Workbench contains a project called *-distribution-wars. These projects are in charge of generating the applications to be distributed for different Servlet Containers and Application Servers. For now we are providing bundles for Tomcat 7, JBoss AS 7, and JBoss EAP 6.1. (If you are a developer, you can also run these applications using the GWT Hosted Mode, which starts up a Jetty server and automatically deploys the application so it can be easily debugged.)

Here we will see how to deploy and configure the application to work in JBoss AS 7. Obviously you don’t need to do so if the jBPM Installer does that for you. But is always good to know what is going on under the hood, just in case that you prefer to manually install the applications.

There are three points to consider when we configure the application for deployment:

  1. Users/Roles/Groups
  2. Domain Specific (Custom) Connectors
  3. JBoss AS 7 Profile

For the sake of simplicity, I’ve borrowed a JBoss AS 7 configured by Maciej and deployed the KIE Workbench latest snapshot, so you can download it and we can review it’s configurations from there. You can download it from here:

Users/Roles/Groups

By default the KIE-Workbench uses the JBoss AS configured users to work. In order to create a new user we need to use the ./add-user.sh script located inside the /bin/ directory. Using this script we will be creating all the users required by our business processes, and for that reason we will be also assigning them groups and roles.

Adding a New User

Adding a New User

As you can see in the previous image, using the ./add-user.sh script you can create a new user for the Application User (first two options: option B, and empty realm). Note that you need to use different strings for the user name and for the password. For now you can create users with role admin, so it will have access to all the screens of the tool and then you can write the groups where the user belongs. In this case the user salaboy has Role: admin and he belongs to the IT group. There are some restricted words that cannot be used as group names. For now avoid using “analyst”, “admin”, “developer” for group names.

Domain Specific (Custom) Tasks / Connectors

Domain Specific Connectors are the way to integrate your business processes with external services that can be inside or outside your company. These connectors are considered technical assets and because of that needs to be handled by technical users. Most of the time it is recommended to not change/modify the connectors when the application is running, and for that reason these connectors needs to be provided for the application to use in runtime.

Three things are required to use a Custom Connector:

  1. Provide an implementation of the WorkItemHandler interface, which is the one that will be executed in runtime.
  2. Bind the implementation to a Service Task name
  3. Create the WorkItem Descriptor inside the tool

In order to provide these three configuration points you can take a look at the Customer Relationship example in the jbpm-playground repository.

Customer Relationships Example

Customer Relationships Example

The main idea here is to have a separate project that contains the workItems implementations, for example: CreateCustomerWorkItemHandler , you will need to compile this project with maven and install the produced jar file inside the KIE-WB application. In order to do that you just copy the customer-services-workitems-1.0-SNAPSHOT.jar into the WEB-INF/lib directory of the kie-wb.war app. On this example the workItemHandler implementations interacts with a public web service that you can check here , so you will require internet connection in order to try this example.

Notice also that inside the customer-relationship project there are some high level mappings of the Domain Specific Tasks that can be used inside our Customer Relationship Project -> WorkItemDefinitions.wid. This configuration will basically add you Service Tasks inside the Process Designer Palette:

Domain Specific Service Tasks

Domain Specific Service Tasks

The last step is to bind the High Level mapping to their implementation for this environment. You can do that by adding new entries into the WEB-INF/classes/META-INF/CustomWorkItemHandlers.conf  file, for this example we just need to add the following entries:

“CreateCustomer”: new org.jbpm.customer.services.CreateCustomerWorkItemHandler(),
“AddCustomerComment”: new org.jbpm.customer.services.AddCustomerCommentsWorkItemHandler(),
“ManagersReport”: new org.jbpm.customer.services.ManagersReportWorkItemHandler(),

Note about the JBoss AS 7 Profile

In order to run the KIE Workbench you need to run it with full JBoss AS7 profile, so if you are installing it using a fresh JBoss AS7 please don’t forget to point to the full project when you use the ./standalone.sh script:

./standalone.sh -c standalone-full.xml

Download

You can download a pre installed version of KIE-WB where you can clone the jbpm-playground repository which contains the example (Authoring -> Administration and then Clone a Repository using the jbpm-playground url: https://github.com/droolsjbpm/jbpm-playground).

DOWNLOAD HERE from MEGA (requires new browsers.. if you have troubles go to the mirror in dropbox)

Mirror in Dropbox

This pre installed version contains the workItemHandlers already installed and configured for the Customer Relationship example, but you can obviously make some changes and upgrade them if it’s needed.

It also has two users created:

User/Password: jbpm/jbpm6 (Groups: IT, HR, Accounting, etc)

User/Password: salaboy/salaboy123 (Groups: IT)

Please feel to try it out and let me know if it works for you.

There are some few seats available for the Drools & jBPM Free Workshop Tomorrow and on Thursday. If you are planning to assist please write me an email to salaboy (at) redhat (dot) com. For more details about it look here. 

Updated: Two known issues

First issue that I’ve noticed with the provided zip file is that if you download and uncompress the zip file inside a path that contains spaces, not matter if you are in Linux, Windows or Mac you will experience issues after logging in the application. So please copy the application to a path that doesn’t contains spaces.

Second issue was related with the deployment time out. In some machines and some operating systems the deployment time could be greater than a minute and that will cause the application server to throw a timeout exception. In order to override the default configurations you need to edit the standalone.xml file and add the following attribute:

<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.0">
  <deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir"
                      path="deployments" deployment-timeout="1200" />
</subsystem></code></pre>

So if your applications are not deploying add the extra attribute:  deployment-timeout="1200"
to the urn:jboss:domain:deployment-scanner:1.0 subsystem.

About these ads
Tagged , , , , , , , , ,

31 thoughts on “KIE-WB / jBPM Console NG – Configurations

  1. arunvg says:

    Hi Mauricio,

    I tried using the pre installed version of KIE-WB ( downloaded from MEGA)

    I am able to login to the dashboard builder.But was not able to login to the KIE-WB application

    I am getting a loading icon, which disappears after a short time . Can you please help.

  2. arunvg says:

    FF console log . There are some possible errors here

    [22:14:23.983] Error in parsing value for ‘background-image’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:270
    [22:14:23.983] Error in parsing value for ‘background-image’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:271
    [22:14:23.983] Error in parsing value for ‘background-image’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:272
    [22:14:23.983] Error in parsing value for ‘background-image’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:273
    [22:14:23.983] Expected color but found ‘top’. Error in parsing value for ‘background-image’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:274
    [22:14:23.983] Error in parsing value for ‘filter’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:276
    [22:14:23.983] Error in parsing value for ‘filter’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:279
    [22:14:23.983] Expected end of value but found ‘\9 ‘. Error in parsing value for ‘background-color’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/css/datetimepicker.css:313
    [22:14:25.025] Error in parsing value for ‘filter’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?
    [22:14:25.622] Unknown property ‘user-select’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.622] Unknown property ‘zoom’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.622] Error in parsing value for ‘filter’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.623] Error in parsing value for ‘cursor’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.713] Use of getPreventDefault() is deprecated. Use defaultPrevented instead. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:2
    [22:14:25.792] “SSE channel opened (according to the browser)”
    [22:14:25.982] Unknown property ‘-moz-box-shadow’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.982] Unknown property ‘-moz-border-radius’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.982] Unknown property ‘box-sizing’. Declaration dropped. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1
    [22:14:25.982] Unrecognized at-rule or error parsing at-rule ‘@CHARSET’. @ http://localhost:8080/kie-wb/org.kie.workbench.KIEWebapp/KIEWebapp.html?:1

  3. arunvg says:

    HI Mauricio,

    I got the same issue in CR5 also ( may be the same distribution) . I would attach the log and Firefox console in the jbpm forum

    https://community.jboss.org/thread/233743

  4. graeme says:

    Hi

    On windows downloaded the kie-wb-workshops zip

    created a user myNewUSer (management realm)

    ran the standalone.bat –server-config=standalone

    And I get several issues resulting in the stopping of the deployemnt of the kie-wb.war

    [exception relates to unable to assert method assertPlayGOund]

    Anything obvious I have not done!

    regards

    Graeme

    p.S.
    C ya this afternoon!

    • salaboy says:

      Hi Graeme, just run this: standalone.bat
      Do not add the -server-config=standalone option, because that;s just in case that you want to install the application in a new JBoss application server, but this was already configured.
      Notice that I’ve added a couple of well known issues, so check for that as well.

      • salaboy says:

        By the way.. if you create a new user you need to create it for Application Realm not for the Management one (based on your comment -> “created a user myNewUSer (management realm)”)

  5. Geoff Jarrad says:

    Can I ask some queries about changing/broken functionality in jBPM 6.0?
    Two problems I am currently fighting with are:

    (1) The asset download button disappears in CR5 if I use an LDAP-based login (I had to change the config. from admin to kie-admin, etc.), but works in CR2 with LDAP (where kie-user is configured by default – I have both roles kie-admin and kie-user). I’m guessing there is another configuration I am failing to change from admin to kie-admin? Or maybe it is hardwired in code?

    (2) The REST task query service works in CR2 but doesn’t seem to work properly in CR5 (specifically, ?potentialOwner=… returns an empty list even if the console shows there are available tasks).
    This last one is really a pain, because we switched from CR2 to CR5 for the improved GUI behaviour, but most of my code for talking to the REST service now no longer works. Are these task service problems getting fixed? Soon?

    • salaboy says:

      Hi Geoff,
      Sorry for my late reply. About your questions:
      1) We had change the name of the roles to user and admin instead of kie-user and kie-admin that’s why is failing for you
      2) We are aware of those issues in the task services (only using the REST apis) and those issues were already fixed.

      We are about to make the final announcements for the 6.0.0.Final so I strongly recommend you to go ahead with that version and report any issues that you may find.
      I promise faster response times here in my blog.

  6. ESSID Saria says:

    Hi
    Hello Sir,

    I installed the jBPM6.
    I’m cerrently trying to install the KIE workbench.
    I download the kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war but when I try to enable it I have this error :

    Unknown error
    Unexpected HTTP response: 500
    Request
    {
    “address” => [("deployment" => "kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war")],
    “operation” => “deploy”
    }
    Response
    Internal Server Error
    {
    “outcome” => “failed”,
    “failure-description” => {“JBAS014671: Failed services” => {“jboss.deployment.unit.\”kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war\”.STRUCTURE” => “org.jboss.msc.service.StartException in service jboss.deployment.unit.\”kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war\”.STRUCTURE: Failed to process phase STRUCTURE of deployment \”kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war\””}},

    Have you any idea about this error, or any other site that can help me to install KIE Workbench?.
    Thanks in advance.
    Cheers.

    • salaboy says:

      It sounds like you have a corrupted file that you are trying to deploy. Can you make sure that you download the full file? Can you check the size of the file?

      • ESSID Saria says:

        Hello Sir,

        I installed the jBPM6.

        I’m cerrently trying to install the KIE workbench.
        My references are: http://www.youtube.com/watch?v=vj3MNmiUnvY
        and

        http://planet.jboss.org/post/kie_wb_jbpm_console_ng_configurations0

        I download
        kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war
        which the size is 6,40 MB.

        When I clicked on:
        1. “Manage Deployments”
        2. “Add Content”
        3. “Enable”
        4. “Confirm”

        I obtained this error:

        Unknown error
        Unexpected HTTP response: 500
        Request
        {
        “address” => [("deployment" => "kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war")],
        “operation” => “deploy”
        }
        Response
        Internal Server Error
        {
        “outcome” => “failed”,
        “failure-description” => {“JBAS014671: Failed services” => {“jboss.deployment.unit.\”kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war\”.STRUCTURE” => “org.jboss.msc.service.StartException in service jboss.deployment.unit.\”kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war\”.STRUCTURE: Failed to process phase STRUCTURE of deployment \”kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war\””}},

        Please help!.
        cordial greetings.

      • ESSID Saria says:

        Thanks Sir,

        I downloaded

        kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war

        from

        http://snapshots.jboss.org/maven2/org/kie/kie-drools-wb-distribution-wars/6.0.0-SNAPSHOT/kie-drools-wb-distribution-wars-6.0.0-20131217.023537-678-jboss-as7.0.war

        Cordial Greetings.

      • ESSID Saria says:

        Hello Sir,

        I succeed to resolve the problem.
        It works.
        The problem is -as you say- the file is corrupted.
        I redownload it, and it is OK.

        Thank you very much.

  7. texeduardo says:

    Hi Mauricio, Thank’s for your support on jBPM you’re awesome

    • salaboy says:

      Hi there!
      Thanks for the support! I would love to be able to post more frequently, there is a lot of stuff going on with the projects, so I need some help to spread the word! Are you currently working with jBPM / Drools? Do you have a blog or something like that?

      • texeduardo says:

        Yes, I’m working with jBPM 6 / Drools , I just created this account to start writing about that. It would be wonderful if I could help to contribute this project…

      • salaboy says:

        Yeah, that will be awesome, I would recommend start writing some very basic tutorial with your findings until now and we can move forward from there.
        Regards

  8. George says:

    For Me I am trying to send this request on JBPM6:

    http://serverhost:8080/jbpm-console/rest/runtime/org.jbpm:Evaluation:1.0/process/instance/2/j_security_check?username=admin&j_password=admin

    From a JS project. It either times out or gives an Invalid username/password error. Today it mysteriously worked and I could not tell what I did differently. Now it is back to its old tricks, not working. Please help.

    • salaboy says:

      Hi George, what are you trying to achieve with that? That will never work. If it worked once it was because you used the form at least once and it stored the cookie for that user. This part of the request: j_security_check?username=admin&j_password=admin doesn’t make any sense to me.. imagine that if we allow to do that you can grab the password because it is not encrypted.

  9. George says:

    Hi Salaboy,

    Thanks. The cookies part makes sense.

    I am using the XMLHttpRequest(). What is then the bast way to send an authenticated request to the service (with encrypted creds).

    This approach does not work due to the preflight header policy restrictions:

    client.setRequestHeader(“x-user”, ‘user’)
    client.setRequestHeader(“x-pass”, ‘pass’)
    client.setRequestHeader(‘Authorization’, ‘Basic dXNlcjpwYXNz’)

    Using the credentials as parameters does not work either (401 error):
    client.open(“GET”, url, true,”user”,”password”);

    Regards,
    George

  10. George says:

    Hi Salaboy,

    It works as below but with a clear text credentials as above. Do you know of the digest accepted by the authentication server so that I can encrypt and try to include the credentials in the request header?

    ===============================
    var query = new XMLHttpRequest();
    query.withCredentials = true;
    query.open(“POST”,url,true);

    Regards,
    George

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 946 other followers

%d bloggers like this: