Hi Mauricio,

Do we foresee any use cases where task service will be used without process engine? If so, I agree we could make it as generic as possible but priority number 1 should be integration with process engine to make it simple and intuitive.
In general I like this separation but I am not convinced about task definition service as to me it looks bit over designed to the use cases I am aware of. One issue I see with this is that we introduce task definition management in human task module which I don't think should be concerned about. It should be only runtime component and not repository for task definition. If we think about storing task definitions that are reusable across processes we should store them in guvnor rather than in additional component (ht module). Since both designer and form builder is integrated with it so no need for yet another integration. This is more of tools responsibility and not runtime component. Especially important in case of local task service, since how we could store/deploy task definition into local task service?
Same applies for task delegation service, as this kind of information could come from another place - repository and be utilized by tooling.

Configuration is week point in human task module currently so I believe that this is very important element to be improved while refactoring (or even redesiging) task module. I would see this as single configuration service that allows to configure - in this new way - all services with defaulting to convention over configuration so well documented convention of configuration points is a must.

As it comes to integration between process engine and human task it should be as simple as possible. I agree that in some cases use of switch yard and camel makes sence but we should not force users to include it every time. Simple interactions should be available and in my opinion out of the box. For instance, make use of jms provider that AS delivers instead of putting additional frameworks in between.

If you want to keep the services not aware of process interaction then we should deliver facade for process interactions that hides some of the steps and expose very simple API to interact with, like addTask, completeTask, getTask, getAssignerTasks, etc (part of this is probably in task instance service). That will make a smooth interaction from the process side which as mentioned already is most important, in my opinion.

For CDI, I am not expert here but what about standalone adoptions, like swing, or other desktop frameworks, will CDI fit into that?


Let's encourage others here to speak up as we need more votes on this refactor.
Maciej


On 27.06.2012 20:17, Mauricio Salatino wrote:
Thanks Maciej for the questions. I've included comments between the bullets

"Mauricio, couple of questions at the very beginning to understand correctly your proposal:

 

Would be really nice to see how this is going to be utilized from following perspectives:



Cheers


On Wed, Jun 27, 2012 at 1:02 PM, Mauricio Salatino <salaboy@gmail.com> wrote:
Hi guys,
I'm back with more wiki pages. I was thinking about how to improve the Human Task Module and I came back with this wiki page
that shows some proposals. 
The main idea behind the proposal is to modularize as much as we can the features provided by the human task module. I've also included
into the proposal the concept of TaskDefinition which will allow us to add a nice integration with the form builder (in modeling and in runtime phases).

I'm trying to move towards CDI to leverage all the mechanisms provided by the framework and the fact that exposing CDI beans across different platforms is extremely easy these days. 

https://community.jboss.org/wiki/HumanTaskAPIAndDataStructuresProposal

I understand that the changes proposed in the wiki looks quite heavy, but I do believe that we can fit the current code base into that structure without loosing functionality.
 

The document is showing APIs and Data Structures only. i think that we can assume that all the services implementation will represent simple stateless services which will 
insert and read information from a database, so architecturally speaking from that perspective the service implementations should be straight forward. 

I will be filling the Data Structure Sections briefly, but I would like to share the main concepts with you guys to gather feedback, as always.

Cheers

--
 - MyJourney @ http://salaboy.wordpress.com
 - Co-Founder @ http://www.jugargentina.org
 - Co-Founder @ http://www.jbug.com.ar
 
 - Salatino "Salaboy" Mauricio -




--
 - MyJourney @ http://salaboy.wordpress.com
 - Co-Founder @ http://www.jugargentina.org
 - Co-Founder @ http://www.jbug.com.ar
 
 - Salatino "Salaboy" Mauricio -



_______________________________________________
jbpm-dev mailing list
jbpm-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbpm-dev