This page describes different use cases of jBPM in terms of scenarios. Each scenario should be considered as an example to explain the use case and show how jBPM 4 can be used to support the use case. This list of scenarios also will help us prioritize, focus and it might also serve to build out examples, demos or a set of screencasts later on.
This will help in demonstrating the value of jBPM in different concrete use cases.
Use cases showing a single functionality
Orchestrating Human Tasks
Prerequisites:
* Install distro
* Import examples project
* Server was started
Scenario:
* Create new process definition file with designer wizard (done)
* Declare couple of variables
* Create 2 human task activities
- Generate task form with designer
- Using variables declared in the process
- Associate task form with task activity
(this should be done automatically by using the designer task form generation)
* Dynamically deploy process from designer
* In console start the process (with form)
* For each of the 2 tasks
- log in as the task user
- see task list
- navigate to task form
- complete task form
* Run through process execution by submitting task forms
* After completion, show report statistics (BI)
Who can help to come up with a good example process with only 2 human tasks and that the process and tasks are basically self-explaining ?
Orchestrating EJB's
This is basically Burr's demo he gave at JavaPolis 2 years ago.
Prerequisites:
* 3 existing EJB's all with one method that does a println
* They are deployed on a server
* The server is running
* jBPM is installed on that server
Scenario:
* build jPDL process that invokes the 3 ejb methods in sequence
* deploy the process
* run it
* show the ejbs were invoked in sequence
* go back to the process
* drag the transition end that connects the first with the second, and drop it on the last activity
* set the middle ejb activity aside and delete the transition that connects activity 2 to 3
* redeploy (includes automatic save)
* run the process again and show how easy the business logic was updated
Variations:
* show the same with 3 pojo methods in an enterprise environment.
* show how asynchronous continuations can be used to demarcate transactions
Transactional script
Use case:
A piece of automatic business logic needs to be executed. But the execution should contain 'safe points'. Which means that each step in the process should be executed in its own transaction. If something happens later on, the process only needs to be restarted from the last 'safe point'.
Purpose:
* Show that jPDL allows for easy transaction demarcation
* Restarting after an exception happens automatically
Prerequisites:
* jBPM installed
* Server running
Scenario:
* 4 or 5 activities in a row
* a pojo method invocation
* an ejb method invocation
* sending an email
* updating a database with the sql activity
* show that the mailserver is not running
* start the process
* show how the pojo and ejb got executed in their own transaction
* show how the email transaction failed 3 times with incremental back off delay
* show how the job parked itself similar to a DLQ
* start the email server
* go to the console and find the job in error
* re-kick the execution
* now the email will be send and how the rest of the process is executed
Service orchestration
Purpose:
Interact with arbitrary services from a process.
The services may be described in WSDL, IDL or other description language.
Prerrequisites.
Take service description from WSDL, if available. See WSIF
Read inline service description
First priority: ESB invocation node.
Second priority Service publication
SEAM Pageflow
TODO
Competing consumers
TODO
Use cases showing other values
Business Intelligence
Purpose:
Show that by using a process to execute business logic, that you get the statistics for free.
Prerequisites:
* jBPM installed
* Process of average complexity
* Sample execution data
Scenario:
* Show the process and explain the steps
* Optionally step through an execution of the process. Or maybe one scenario of a process execution.
* Then show the out-of-the-box statistics
jBPM Introduction Demo
Purpose:
Show how easy it is to get up and running with jBPM
Show how a combination of human tasks, POJO java code and service invocations can be orchestrated
Scenario:
* Install distro
* Import examples project (done)
* Execute example test in eclipse (done)
* Create new process definition file with designer wizard (done)
* Declare couple of variables
* Create 2 human task activities
- Generate task form with designer
- Using variables declared in the process
- Associate task form with task activity
(this should be done automatically by using the designer task form generation)
* Create esb service activity
- ESB is assumed running and having a service
* Create Include Java pojo
- Write minimal PrintLn activity
* Start AS
- the one you installed jbpm in
- maybe installer can generate start-server.bat script in jbpm instsallation directory ?
* Dynamically deploy process from designer
- might involve defining the process archive package
* In console start the process (with form)
* For each task,
- log in as the task user
- see task list
- navigate to task form
- complete task form
* Run through process execution by submitting task forms
* Show reports including this execution
Comments