Maciej Swiderski [
https://community.jboss.org/people/swiderski.maciej] modified the
document:
"jBPM Services "
To view the document, visit:
https://community.jboss.org/docs/DOC-19754
--------------------------------------------------------------
This document focus is to describe a service layer on top of the jBPM5 runtime
+*Following content is just for discussion purpose and everyone is invited to leave
comments, ideas, requirements.*+
Couple of initial thoughts on what should be available. First of all I think that there is
a need for different kinds of services:
updated diagram to include recent comments
https://community.jboss.org/servlet/JiveServlet/showImage/19229/jbpm-serv...
https://community.jboss.org/servlet/JiveServlet/downloadImage/19229/jbpm-...
* transport layer - responsible for providing access to the services remotely over
different transports
* business services - most obvious provides straight operations understandable from
business point of view like startProcess, signalProcess, addData/Variable but it does not
limit to processes it should provide ht services too
* session services - way of controlling and altering session and its configuration
* knowledge service - way of controlling and altering knowledge base
These services are built one on another where knowledge services are at the bottom and
business services on top. That means upstream services rely on downstream services.
*Business services* are more like an extension to what we have available over REST API but
completely isolated from the transport specifics. It just provides POJO services that can
be used both locally and remotely with well defined data structures that it accepts and
return. downstream services will get injected into business services to perform
operations.
*Session services* are mainly dedicated to manage sessions, in two aspects:
1. Configuration - provide an easy way of configuring session management that covers
session settings itself (persistence, handlers, listeners, etc) as well as life cycle of
it (when to dispose, when to reload) and support for multi session configuration.
2. Runtime - allows to operate on the session - in most of the cases session API should be
enough here
Configuration
* register handlers
* add/remove event listeners
* set configuration properties
* etc
Runtime
* executing commands
* insert/update/retract facts
* fire rules
* query working memory
* etc
*Knowledge services*
responsible for providing business assets into the runtime, so it is mainly configuration
related services. adding removing assets, reconfiguring knowledge agent if is used, etc
As one of the consumers of these services is console, it could be good to be able to use
console not only to simple start/signal process and complete tasks but as well (based on
user roles) maintain the environment - knowledge base, sessions etc.
--------------------------------------------------------------
Comment by going to Community
[
https://community.jboss.org/docs/DOC-19754]
Create a new document in jBPM at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=102&a...]