Roadmap
August 1st: 5.0.alpha4
- BPMN Parallel gateway
- BPMN Embedded subprocess
- PVM concurrency and scoping
September 1st: 5.0.beta1
- Spring configuration support
October 1st: 5.0.rc1
November 1st: 5.0
Tasks
- BPMN activity types (see below)
- Task email notifications
- History + 2 reports** Process definition report
-
- Average times per activity in a process instance
- # Processes started - # Finished processes in last 12 months
- Overview
- # instances per process definition
- In progress
- Completed
- Pie chart # process definitions started in the last 3 months
- # instances per process definition
-
- Task audit logging (==> variable declarations + forms in example)
- Controlled optimistic locking test
- Manage deployments in Probe
- Manage jobs in Probe
- Discussions on tasks and process instances
- Discuss and incorporate spring refactorings
- Discuss and refactor project module structuring
- Process test suite
- Concurrency + end process instance
- Concurrency with and without wait states
- Email notifications
- CI driver scripts
- DB (in progress)
- TX * Server * DB environment
- Improve JUnit support
- also include inheritence as an option
- services available as member fields
- fix naming
- deployer.getProcessService().startProcessInstanceByKey(...);
- activitiTestHelper.getProcessService().startProcessInstanceByKey(...); (aggregation)
- processService().startProcessInstanceByKey(...); (inheritance)
- new JobExecutorPoller(deployer.getProcessEngine()).waitForJobExecutorToProcessAllJobs(10000L, 250);
- activitiTestHelper..waitForJobExecutorToProcessAllJobs(10000L, 250);
- waitForJobExecutorToProcessAllJobs(10000L, 250);
- deployer.getProcessService().startProcessInstanceByKey(...);
- also include inheritence as an option
Deployment option matrix
Productization requirements
- Explicit
- Docced
- Example
- CI covered (muodules examples and test-api)
Transaction demarcation technology
- myBatis
- user provided JDBC connection
- JTA
- JPA
- Spring
- Standalone (datasource + spring managing tx on jdbc connections)
- JTA
- ... ?
Server environment
- Standalone JVM
- Tomcat
Packaging
- Serverwide
- Activiti inside war
Database
- MySQL
- Oracle
- PostgreSQL
Requirements Ideas
Business Analyst
- Save abstract business process in a model repository
- File based repository
- Document repository
- Author BPMN 2.0 processes
- BPMN 2.0 spec compliant xml serialization (5.0)
- Browse process repository
- Open existing BPMN 2.0 process (5.0)
- Create new BPMN 2.0 process
- Author abstract business process
- Reporting
- History data in DB (5.0)
- BIRT reports
- Process model collaboration
- Involve people with a process
- Discuss a process
- Link process to other artifacts in the BPM cycle
- Define task forms in a web browser
- Simulation
- Specify bell shaped probability curves
- Specify scenarios
- Produce report of execution run
- Zero code approach
- Produce executable models in web browser
- Deployment from web browser
- UDDI browser
- Schema mapper
- (Web) Service production. Result of deployment is a new (web) service
Evaluator
- Easy setup (installer)
- Online demo
Developer
- Java API
- Stable PVM API
- Stable Persistent API (5.0)
- Query API (5.0)
- Database persistence
- Easy DB pluggability (5.0)
- MySQL (5.0)
- Oracle (5.0)
- PostgreSQL (5.0)
- DB2
- MSSQL
- MaxDB
- Sybase
- Limited number of tables
- Very little external dependencies
- Object API: only JVM
- Persistence API: only ibatis
- Other dependencies only introduced when the feature is actually used
- Event listeners (5.0)
- Timers (5.0)
- Asynchronous continuations
- Process instance migration
- Variables
- Variable type system customization (5.0)
- Transient variables
- System variables
- Might be useful for complex gateways
- Pluggable mechanism for variables referencing external entities (5.0)
-
-
- JPA (5.0)
- JCR Node
- Hibernate
- Out of scope: flushing updates to the referenced entity to the external persistence system
- Others?
- Process domain object ${this.customer.address.street}
- external jpa references is enough for 5.0
-
- Query for process instances based on variable values
- Limited capabilities (5.0)
- User provided process instance id (jbpm 4 business key)
- Can be replaced by searchable variable
- Spring integration
- Configure a ProcessEngine in spring bean xml
- Allow ProcessEngine injection
- Close ProcessEngine on ApplicationContext close
- Transaction integration
- User bean method defining the tx
- Activiti service method defining the tx
- Combine user domain object updates with process updates in a single transaction
- Expression naming resolution includes spring beans
- Spring bean xml resource as part of the deployment. Resulting in a deployment scoped spring bean cache
- Namespace handler
- Process scope
- Configure a ProcessEngine in spring bean xml
- Rules integration
- See jBPM 4 example
- LDAP integration
- Identity component pluggability (5.0)
- Configure an LDAP store
- How do we know which schema the data is stored?
- Remote access through service API over REST
- Async access to service API
- Easy to add new activity type to the Activiti Engine
- Easy to add new activity type to the Activiti Modeler
- Task lifecycle pluggability
- Eclipse tooling support
- Create a new process project (or should we aim for SpringRoo only)
- Create a new BPMN process file
- Model the graphical part graphically. Details in XML
- Extended XML code completion
- Auto create stub for non existent
- High scalability and throughput
End user
- Web based task inbox
- Process defined tasks
- Claiming tasks
- Task forms
- Internationalization for task forms
- User defined tasks
- Dynamic subtasks
- Associating people
- Discussions on a single task
- Discussions on a process instance
- Associating documents
- Android task inbox
- Mail forms: Complete a task by replying to a mail
- Similar for SMS, IM, ...
- Pluggable task interaction handler
Manager
- View reports
- Viewing other people’s tasks
- Audit trails
- Who submitted what data in certain task forms
- Delegation when a user goes on holiday
- Existing tasks
- New tasks for which the engine would assign it to that user
- Authorization
- How to ensure that only a manager can look into subordinates tasks?
System admin
- Manage jobs
- View list of job failures
- Retry failed jobs
- View database content
- View logs (javax.util software log files)
- View activiti configuration file
- Manage deployments
- View process definitions
- Manage process cache
- Clear cache
- View list of cached processes
- Clear process definition cache
- Manage multiple Activiti instance from 1 tool
- Purging history
- Manage security / authorization controls
- Manage identity data
- Manage the business calendar
Deployment
- Run as a server wide install
- Automatic installation and CI
- Tomcat
- BEA WLI
- WebSphere
- JBoss
- Glassfish
- Automatic initialization and destruction of the ProcessEngine(s)
- How should the configurations be found?
- Automatic installation and CI
- Run on naked JVM
- Run embedded into war
- Documentation on how to do it
- Automatic installation and CI
- Run embedded into ears
- Documentation on how to do it
- Automatic installation and CI
- Automatic initialization and destruction of the ProcessEngine(s)
- Run as an OSGi bundle
- Documentation on how to do it
- Automatic installation and CI
- Automatic initialization and destruction of the ProcessEngine(s)
- Process as a service
- Automatic creation/destruction of a new Activiti instance
- Administer multiple Activiti instance from 1 tool
- Cloud deployment
- Automatic creation/destruction of a new Activiti instance
- …
QA
- Stable software
- Reliable in production environments
- Test coverage assurance for all features in the user guide
BPMN
- Functional activity types
- Human task (5.0)
- Service task
- Web service (5.0)
- Java binding (5.0)
- Script task (5.0)
- SQL task
- Where/how to get the JDBC connection?
- Email task (5.0)
- Script task (JSR 223) (5.0)
- Web service task
- How to compose the message?
- How to store the result?
- ESB task
- XML transformation task
- Rules task
- Control flow activity types
- Start event
- Single start event
- Multiple start events
- Specific start event types?
- Exclusive gateway
- Transition conditions
- UEL method expression
- UEL value expression
- Expression calculating outgoing transition name
- UEL method expression
- UEL value expression
- Decision table
- Rules evaluation
- Transition conditions
- Parallel gateway
- Embedded subprocesses
- External subprocesses
- End event
- Does BPMN give us the option to choose between end process instance or just end execution?
- Start event
- Timers
- Business calendar
- Variable declarations
- Input/output sets?
Labels
