Re: [jboss-dev-forums] [jBPM Development] - jBPM5 Request for Comments
by Sebastian Schneider
Sebastian Schneider [http://community.jboss.org/people/sebastian.s] commented on the document
"jBPM5 Request for Comments"
To view all comments on this document, visit: http://community.jboss.org/docs/DOC-15172#comment-3149
--------------------------------------------------
Here are my remarks and questions:
1.) Will jBPM 5.0 be based upon jBPM 4.x? You mention the PVM and the native BPMN 2.0-implementation. So I assume it will be. Am I right?
2.) What's the reason for replacing the task management with WS-Human Task? The task life cycle model? Will this be implemented as a webservice as most of the other vendors do or will you supply a java implementation using the same model? You are stating that the engine will continue to be embeddable so I hope this will be a java implementation of the task life cycle model.
3.) Will JBoss ESB be an optional component? I am thinking of embeddability again. Why use an ESB when you don't need one? One of the strengths of jBPM IMHO is the small footprint.
--------------------------------------------------
15 years, 11 months
[JBoss Microcontainer Development] - JBoss Reflect and javassist status
by Kabir Khan
Kabir Khan [http://community.jboss.org/people/kabir.khan%40jboss.com] created the discussion
"JBoss Reflect and javassist status"
To view the discussion, visit: http://community.jboss.org/message/538003#538003
--------------------------------------------------------------
In case the volcanic ashes clear and the planes work on Tuesday so I can go on holidays, here is the current status of the jboss-reflect on javassist implementation.
The javassist implementation is feature complete as far as I know, we are just waiting for javassist 3.12.0 before we can do a release.
I created a branch to test it in AS: https://svn.jboss.org/repos/jbossas/branches/KABIR_JAVASSIST_REFLECT/ https://svn.jboss.org/repos/jbossas/branches/KABIR_JAVASSIST_REFLECT/ and a Hudson run using that branch at http://hudson.qa.jboss.com/hudson/view/JBoss%20AS/job/JBoss-AS-6.0.x-test... http://hudson.qa.jboss.com/hudson/view/JBoss%20AS/job/JBoss-AS-6.0.x-test.... There seem to be no major differences between the test runs, although that is hard to say due to timeout issues on Hudson, and AS trunk's number of failures changing. Once AS 6.0.0-M3 is out, it might be an idea to delete and recreate the branch off M3 since we then know for sure that trunk completed with 0 failures. The differences between the branch's component-matrix/pom.xml and the one in trunk are:
- <version.javassist>3.11.0.GA</version.javassist>
+ <version.javassist>3.12.0-SNAPSHOT</version.javassist>
- <version.org.jboss.man>2.1.1.SP1</version.org.jboss.man>
+ <version.org.jboss.man>2.1.1.SP2</version.org.jboss.man>
- <version.org.jboss.reflect>2.2.0.Alpha4</version.org.jboss.reflect>
+ <version.org.jboss.reflect>2.2.0-SNAPSHOT</version.org.jboss.reflect>
This has been added to the branches run.sh to make sure javassist is being used by jboss-reflect:
# Setup JBoss specific properties
JAVA_OPTS="${JAVA_OPTS:+$JAVA_OPTS -Dprogram.name=$PROGNAME}"
+JAVA_OPTS="${JAVA_OPTS:+$JAVA_OPTS -Dorg.jboss.reflect.spi.TypeInfoFactory=org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory}"
JAVA_OPTS="${JAVA_OPTS:--Dprogram.name=$PROGNAME}"
Apart from that everything should be the same. I use http://www.orcaware.com/svn/wiki/Svnmerge.py svnmerge.py to periodically merge the latest changes from Hudson trunk, to do this download svnmerge.py and then go into your local checkout of the branch and merge using svnmerge.py, e.g:
$cd KABIR_JAVASSIST_REFLECT
$~/svnmerge.py merge
$svn commit -F svnmerge-commit-message.txt
Give it time to filter through to anonsvn and then start the Hudson run, I think Flavia already has the admin password. If not ask QA for a password.
The main thing I am looking at now is making the javassist implementation more performant. This is documented in http://community.jboss.org/thread/150697 JBoss Reflect Performance Javassist vs Introspection since using the javassist implementation is currently slower than using the introspection one. I'll let you know where I get in that thread before I leave.
It just occurred to me that another factor in currently making this slow _could_ be the classpools since we need to look CtClasses up there. I have not measured anything, but it is worth bearing in mind and investigating since it is an extra layer on top of the plain classloading which is used by the introspection implementation.
If I can think of anything else I will let you know on this thread before I go away.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/538003#538003]
Start a new discussion in JBoss Microcontainer Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
15 years, 11 months
Re: [jboss-dev-forums] [JBoss Microcontainer Development] - JBoss Reflect Performance Javassist vs Introspection
by Kabir Khan
Kabir Khan [http://community.jboss.org/people/kabir.khan%40jboss.com] replied to the discussion
"JBoss Reflect Performance Javassist vs Introspection"
To view the discussion, visit: http://community.jboss.org/message/537994#537994
--------------------------------------------------------------
In case the volcanic ashes clear and the planes work on Tuesday so I can go on holidays, here is the current status of the jboss-reflect on javassist implementation.
The javassist implementation is feature complete as far as I know, we are just waiting for javassist 3.12.0 before we can do a release.
I created a branch to test it in AS: https://svn.jboss.org/repos/jbossas/branches/KABIR_JAVASSIST_REFLECT/ https://svn.jboss.org/repos/jbossas/branches/KABIR_JAVASSIST_REFLECT/ and a Hudson run using that branch at http://hudson.qa.jboss.com/hudson/view/JBoss%20AS/job/JBoss-AS-6.0.x-test... http://hudson.qa.jboss.com/hudson/view/JBoss%20AS/job/JBoss-AS-6.0.x-test.... There seem to be no major differences between the test runs, although that is hard to say due to timeout issues on Hudson, and AS trunk's number of failures changing. Once AS 6.0.0-M3 is out, it might be an idea to delete and recreate the branch off M3 since we then know for sure that trunk completed with 0 failures. The differences between the branch's component-matrix/pom.xml and the one in trunk are:
- <version.javassist>3.11.0.GA</version.javassist>
+ <version.javassist>3.12.0-SNAPSHOT</version.javassist>
- <version.org.jboss.man>2.1.1.SP1</version.org.jboss.man>
+ <version.org.jboss.man>2.1.1.SP2</version.org.jboss.man>
- <version.org.jboss.reflect>2.2.0.Alpha4</version.org.jboss.reflect>
+ <version.org.jboss.reflect>2.2.0-SNAPSHOT</version.org.jboss.reflect>
This has been added to the branches run.sh to make sure javassist is being used by jboss-reflect:
# Setup JBoss specific properties
JAVA_OPTS="${JAVA_OPTS:+$JAVA_OPTS -Dprogram.name=$PROGNAME}"
+JAVA_OPTS="${JAVA_OPTS:+$JAVA_OPTS -Dorg.jboss.reflect.spi.TypeInfoFactory=org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactory}"
JAVA_OPTS="${JAVA_OPTS:--Dprogram.name=$PROGNAME}"
Apart from that everything should be the same. I use http://www.orcaware.com/svn/wiki/Svnmerge.py svnmerge.py to periodically merge the latest changes from Hudson trunk, to do this download svnmerge.py and then go into your local checkout of the branch and merge using svnmerge.py, e.g:
$cd KABIR_JAVASSIST_REFLECT
$~/svnmerge.py merge
$svn commit -F svnmerge-commit-message.txt
Give it time to filter through to anonsvn and then start the Hudson run, I think Flavia already has the admin password. If not ask QA for a password.
The main thing I am looking at now is making the javassist implementation more performant. This is documented in http://community.jboss.org/thread/150697 JBoss Reflect Performance Javassist vs Introspection since using the javassist implementation is currently slower than using the introspection one. I'll let you know where I get in that thread before I leave.
It just occurred to me that another factor in currently making this slow _could_ be the classpools since we need to look CtClasses up there. I have not measured anything, but it is worth bearing in mind and investigating since it is an extra layer on top of the plain classloading which is used by the introspection implementation.
If I can think of anything else I will let you know on this thread before I go away.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/537994#537994]
Start a new discussion in JBoss Microcontainer Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
15 years, 11 months
Re: [jboss-dev-forums] [jBPM Development] - jBPM5 Request for Comments
by Jeff DeLong
Jeff DeLong [http://community.jboss.org/people/jeffdelong] commented on the document
"jBPM5 Request for Comments"
To view all comments on this document, visit: http://community.jboss.org/docs/DOC-15172#comment-3148
--------------------------------------------------
Kris,
Looks good. I have two comments.
1) The document specifies BIRT as the reporting engine. When BAM was discussed amongst SAs, PM,s etc. there was considerable support for a Jasper-based solution, mainly for their business model and close relationship with Red Hat. Perhaps at this point the reporting engine vendor should be left un-specified subject to further analysis and review?
2) While the document clearly states the approach for Human Task Management, it does not go into details about Service Task support. The document only states that the process engine could be deployed as a service on JBossESB to act as an orchestration engine. It would be useful to better understand the approach and capabilities of the service orchestration support contemplated.
Thanks,
Jeff
--------------------------------------------------
15 years, 11 months
[jBPM Development] - jBPM5 Request for Comments
by Kris Verlaenen
Kris Verlaenen [http://community.jboss.org/people/KrisVerlaenen] modified the document:
"jBPM5 Request for Comments"
To view the document, visit: http://community.jboss.org/docs/DOC-15172
--------------------------------------------------------------
This document describes a overall architecture and key features that are considered for jBPM5. Feedback on anything in this document (or anything that you believe should be in this document but is not) is welcome and highly appreciated. Let us know what you care about and find most important so we can use that to assign priorities. It will be used as the basis for creating the jBPM5 roadmap, so now is the time to give your feedback.
jBPM5 will be based on the combined experience of jBPM and Drools Flow. This consolidation will bring together the benefits of both solutions.
*DISCLAIMER*: This document does not yet describe the jBPM5 roadmap. Based on the feedback, features may still be added and/or removed.
*Architecture*
The following figure depicts the (planned) architecture of jBPM5. Each of the components will be explained in more detail below, and key characteristics will be described. (Click on the figure for a larger image)
http://community.jboss.org/servlet/JiveServlet/showImage/2563/jBPM5.png http://community.jboss.org/servlet/JiveServlet/downloadImage/2563/450-299...
+Figure 1: jBPM5 architecture+
*Core process engine*
A core process (or workflow) engine capable of executing your processes. The engine will have a strong focus on BPMN2 (as the underlying XML format for storing the process definition). BPMN2 not only defines a standard on how to graphically represent a business process (like BPMN 1.1), but now also includes execution semantics for the elements defined, and an XML format on how to store (and share) process definitions. This standardized format will be used as the main process language from now on. We will attempt to provide a (semi-automatic, user-assisted) migration path from jPDL (3.x) to BPMN2.
Provides an API for starting or signaling process instances, managing your process instances, etc. Can be configured and integrated into different contexts.
Key characteristics:
* clear API
* +native+ BPMN2 execution
* embeddability (from running as a simple Java POJO component inside your application to running as an independent service)
* based on a Process Virtual Machine (PVM), allowing the definition of multiple process languages on the same process engine
* other non-functional requirements like persistence (JPA), transactions (JTA, others), performance, etc.
* clustering
* event listeners, auditing, history logging
* process instance migration allows you to upgrade already running process instances to a newer version of the process definition
As an intermediate milestone, we will first try to support the +common executable+ subclass of the BPMN2 specification (which is a subset of all the elements defined in the specification on executable processes, supporting only the most common node types) before supporting the entire BPMN2 specification.
*Human tasks*
Human tasks are important whenever tasks need to be executed with the interaction of human actors. This can be split into multiple parts:
* +Human Task Service+: The back-end service for managing the life cycle of tasks. The process engine itself is not tied to one specific implementation but allows implementations to be plugged in. By default, an independent implementation based on the WS-HT specification will be provided. This specification describes things like the life cycle (assign, claim, complete, release, etc.) but also includes features like group assignment, escalation, assignment rules, etc.
* +Human Task Console+: A web-based application that can be used to look up task lists, fill in task forms, etc. This console targets end users (that will be executing the tasks in the process). Continuation of the human task management currently part of the existing BPM console.
* +Form Editor+: Support for creating custom task forms (that can be shown when a task needs to be completed). This editor targets developers and will provide basic assistance for creating (HTML-like) task forms. While different task form solutions can be integrated, a default one based on xforms (or similar) will be provided.
*Process Repository*
A (logically) centralized process repository allows you store and manage your processes (and related artefacts). This also includes a web-based console for managing your processes, targeted to business users. They can inspect and possibly even dynamically update the processes and build and redeploy the updated knowledge base. Features like artefact categorization, search, collaboration and scenario testing before deployment are supported. Also includes integration with this repository using Eclipse or file system. Continuation of the Guvnor repository currently part of the Drools project.
*BPM console*
A web-based console for managing process instances. This includes features like managing your process instances (starting/stopping), inspecting their state and variables, etc. This console targets developers (wanting to quickly test their processes) and administrator (managing running processes). Continuation of the process management currently part of the existing BPM console.
*Eclipse-based process tooling*
An Eclipse plugin will assist the user in specifying their BPMN2 processes. This plugin includes a graphical editor for specifying your business process as a flow chart (using drag-and-drop and property panels). This editor targets developers. Therefore, it will also provide additional features like validation, testing, debugging, etc.
*Web-based process tooling*
A web-based editor for specifying BPMN2 processes. This editor targets business users. This is a continuation of the collaboration with the Oryx / Signavio team in providing web-based editing of BPMN2 processes.
*Simulation*
The ability to simulate the execution of your processes. This for example allows you to (manually our automatically) simulate one path (or alternative paths) through your process, but also measure time and resource utilization of your processes, based on for example history data or statistical input. This is a continuation of the simulation module.
*BAM / BI*
This can be split into a number of parts:
* +Report editor+: Uses the Eclipse BIRT (Business Intelligence Reporting Tool) plugin to create reports that show the key performance indicators. Its easy to define your own reports yourself, using the predefined data sets containing all process history information, and any other data sources you might want to add yourself. The Eclipse BIRT framework allows you to define data sets, create reports, include charts, etc. Continuation of the reporting currently part of the existing BPM console.
* +Reporting console+: BIRT reports can be dynamically generated and visualized in a web console. This console targets business users. Continuation of the reporting currently part of the existing BPM console.
* +BAM engine+: Business Activity Monitoring (BAM) is all about monitoring the execution of your processes in real time and being able to respond to events immediately. The BAM engine allows you to combine events from various sources, search for event patterns, generate high-level events, respond to critical situations, etc. Part of the Service Activity Monitoring (SAM) project. Based on the Drools Fusion as Complex Event Processing (CEP) engine.
* +BAM console+: A BAM console can be used to get a real-time overview of the state of your system. This includes dashboard overview, graphs, etc. This web-based console targets business users. Part of the Service Activity Monitoring (SAM) project.
*Usability*
+Domain-specific processes+: The process palette can easily be extended with domain-specific nodes. This allow users to model their processes using domain-specific concepts that they are more familiar with.
+Installation script+: simplifies installing the engine, Eclipse plugin, and web tooling, and can be used to quickly generate a demo installation.
+Continuous integration and QA+
+Documentation+
+OSGi+
*Integration*
Integration with various other
* +Drools+: Instead of forcing users to define all their business knowledge inside the process (i.e. using a process-oriented approach), we allow users to model their knowledge using a combination of business processes, business rules and event processing. By integrating processes, rules and events, users can select the paradigm that best suits their needs and combine them, taking advantage of the advanced integration of the various paradigms we have provided. This also means that users only have to learn one +unified+ solution, as the tooling provides seamless integration, regardless of whether you are using processes, rules or event processing. As a result, you will see a shift from a process-oriented to a more knowledge-oriented approach (including API, tooling, etc.)
* +Authentication / Authorization+: A security module with configurable access permissions is required to offer varying levels of access to the system. This requires integration with existing authentication and authorization services (e.g. PicketLink)
* +Seam+: Using processes to control the flow of your web application
* +JBoss ESB+: The process engine could be deployed as a service on the JBoss Enterprise Service Bus (ESB). This allows the process engine to act as an orchestration engine between the different services that are accessible through the service bus.
* +JOPR+: support for the JMX standard to enable process definition and runtime monitoring and inspection using any JMX console
--------------------------------------------------------------
Comment by going to Community
[http://community.jboss.org/docs/DOC-15172]
Create a new document in jBPM Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=102&co...]
15 years, 11 months