Re: [Architecture] Workflow Implementation in IS 5.1.0

2015-07-19 Thread Frank Leymann
A few comments:

Scenario A:
If I get it right, the workflows are modeled by workflow-skilled users.
I.e. we can assume that they build it in a way that the data dependency by
skipping tasks is avoided, right?  For example, we may provide a best
practices guide to the corresponding modelers.

Scenario B:
The form mentioned in (1) could be the basis for the forms document I
sketched in my last mail on this subject.

Scenario C:
Is it really acceptable for IS users/admins/... to model BPEL workflows?
Do they have the skills? My understanding from our call early this year was
that we need a very simple workflow language (isomorphic to a very small
subset of BPEL or BPMN) for modeling such flows. We should discuss this, or
need to get Isabelle's feedback, respectively.


Best regards,
Frank

2015-07-16 8:30 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 I think we can clarify this further by looking in to user stories. I think
 the user experience of using IS workflows should be something like this:

 Scenario A - Associating a workflow with an action (e.g. Add user action):
 1) Select the Add user attachment point from the list of published
 attachment points
 2) Select a workflow from the list of registered workflows
 3) Once selected, the selected workflow can be configured to create a
 template (as described in 4 and 5)
 4) User is presented with all available tasks (i.e. steps) in the selected
 workflow
 5) User can exclude certain tasks and assign users/roles to remaining tasks
 6) User can specify an activation condition for the workflow

 Scenario B - Performing an action which has an associated workflow (e.g.
 Adding a user):
 1) User fills in the add user form and click Finish
 2) The associated workflow is triggered and relevant users performs tasks
 assigned to them using the BPS human task webapp
 3) Once the workflow completes, it returns the approval status and IS
 decides whether to add the user based on the status

 Scenario C - Registering a workflow:
 1) Deploy the required BPEL archive in BPS
 2) Provide the URL of the BPEL endpoint as a configuration
 3) Specify the list of configurable tasks (this is used for creating
 templates)

 Below are some questions:

 Scenario A:
 Can we specify multiple workflows for the same action?
 Do workflows always return a boolean value (i.e. approved / not approved)?

 Scenario B:
 Are we expecting the users to complete tasks (e.g. approval steps) using
 the BPS Human Task web app? Or are we providing an integrated human task UI
 in the IS management console?

 Scenario C:
 Are there any other steps involved in this?
 The list of tasks can also be extracted from the BPEL by locating
 b4p:peopleActivity elements. Then the user can remove certain tasks from
 the configurable tasks list, if those are mandatory.

 Regards,
 Chathura



 On Wed, Jul 15, 2015 at 9:40 PM, Prabath Siriwardena prab...@wso2.com
 wrote:

 Thanks Frank for the suggestion. Yes - it would be great if we can make
 the template generation easy. At the moment as we discussed with Chathura,
 we are creating a parameterized BPEL workflow and  parameters are picked
 from the user through the template (in IS). So the same BPEL workflow will
 find different execution paths based on the template...

 Thanks  regards,
 -Prabath


 On Wed, Jul 15, 2015 at 6:02 AM, Frank Leymann fr...@wso2.com wrote:

 As Chathura describes, workflow templates are not easy to design. This
 is why we discussed some months ago a specialized language to ensure that
 template design is easy.  Another alternative is to consider CMMN which has
 been designed to make skipping more easy...  Maybe that's another subject
 to be discussed when we meet early August in Colombo?


 Best regards,
 Frank

 2015-07-15 6:31 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 According to the discussion we had last week, I think the users
 assigned to tasks (e.g. approvers) as well as workflow steps have to be
 configurable. That means, we can give a workflow covering many steps. Then
 steps required for a particular scenario (and users/roles for those steps)
 can be selected based on the configuration (i.e. workflow template).

 For example a workflow (workflow A) can be:

 Step1 - Step2 - Step3 - Step4

 And a workflow template (for workflow A) can be:
 Step1 : role1 OR user2
 Step3 : role2

 Above template triggers the workflow A by skipping tasks Step2 and
 Step4. Therefore, a concrete workflow can support any template that
 contains subset of its tasks. Then there is a problem if a workflow
 contains conditional branches (i.e. if branches / OR gateways). In that
 case, certain branches may not contain tasks specified in a template.
 Therefore, what a template states is the tasks that can possibly execute.

 The next problem is whether tasks have dependencies on other tasks
 (e.g. output variables of task A can be consumed by task B). In that case
 if task A is skipped workflow may fail. Therefore, either we have to design
 

Re: [Architecture] Workflow Implementation in IS 5.1.0

2015-07-19 Thread Frank Leymann
Dear all,

I won't be in Sri Lanka first week of August as originally planned because
of WSO2Con canceled.  Should we set up a call during that week to review
and discuss the next steps?

I would appreciate it!



Best regards,
Frank

2015-07-15 17:29 GMT+02:00 Isabelle Mauny isabe...@wso2.com:

 All,

 I am still not clear on how a customer would add
 A) a workflow template
 B) the corresponding implementation ( in BPEL or something else)

 So yes +1 to review and enhance/standardize across the platform as
 necessary.

 Isabelle.

 On Wednesday, July 15, 2015, Frank Leymann fr...@wso2.com wrote:

 As Chathura describes, workflow templates are not easy to design. This
 is why we discussed some months ago a specialized language to ensure that
 template design is easy.  Another alternative is to consider CMMN which has
 been designed to make skipping more easy...  Maybe that's another subject
 to be discussed when we meet early August in Colombo?


 Best regards,
 Frank

 2015-07-15 6:31 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 According to the discussion we had last week, I think the users assigned
 to tasks (e.g. approvers) as well as workflow steps have to be
 configurable. That means, we can give a workflow covering many steps. Then
 steps required for a particular scenario (and users/roles for those steps)
 can be selected based on the configuration (i.e. workflow template).

 For example a workflow (workflow A) can be:

 Step1 - Step2 - Step3 - Step4

 And a workflow template (for workflow A) can be:
 Step1 : role1 OR user2
 Step3 : role2

 Above template triggers the workflow A by skipping tasks Step2 and
 Step4. Therefore, a concrete workflow can support any template that
 contains subset of its tasks. Then there is a problem if a workflow
 contains conditional branches (i.e. if branches / OR gateways). In that
 case, certain branches may not contain tasks specified in a template.
 Therefore, what a template states is the tasks that can possibly execute.

 The next problem is whether tasks have dependencies on other tasks (e.g.
 output variables of task A can be consumed by task B). In that case if task
 A is skipped workflow may fail. Therefore, either we have to design
 workflows without having any dependencies among tasks or we should support
 restrictions on workflow templates (e.g. if task B is included then task A
 has to be included).

 Regards,
 Chathura

 On Wed, Jul 15, 2015 at 1:42 AM, Prabath Siriwardena prab...@wso2.com
 wrote:

 BTW yes - lets have a discussion on this again - because this is not
 just IS thing - and can be used by any other product which needs to have
 workflow support..

 Thanks  regards,
 -Prabath

 On Tue, Jul 14, 2015 at 1:07 PM, Prabath Siriwardena prab...@wso2.com
 wrote:

 Hi Suemdha,

 We discussed most of the stuff with the API Manager team before doing
 this.

 At the moment API Manager implementation does not have any of these
 capabilities and most of the time need to write a workflow or modify a
 workflow..

 Thanks  regards,
 -Prabath

 On Tue, Jul 14, 2015 at 1:03 PM, Sumedha Rubasinghe sume...@wso2.com
 wrote:

 Prabath,
 I think this has some overlaps and improvements compared to what we
 have done for API Manager about 2 years ago.
 Let's have a discussion on how to bring best of both worlds.


 On Wed, Jul 15, 2015 at 12:49 AM, Prabath Siriwardena 
 prab...@wso2.com wrote:

 Hi Isabelle,

 As per the offline chat - you talk about *workflow templates *here..

 The *workflow* implementation should be able to interpret the *workflow
 template*.

 Lets take for example the following sample template..

 Step-1 Approvers : role1 OR role2 AND user1
 Step-2 Approvers : role3 OR role4 AND user3

 There can be multiple workflow implementations supporting the above
 - but the catch here is, when you have a concrete workflow 
 implementation
 it should announce which templates are supported by it. That is how the
 underneath framework knows - which templates are supported by which
 workflows.

 Its pointless to have workflow templates in the system without
 having workflow implementations that support them.

 If there is a need to write a workflow template - then that means -
 you are also going to write a workflow that knows how to interpret it.

 Users of the system need not to worrying about mapping templates to
 the implementations (workflows). Since the each workflow announces which
 templates they support - the framework itself can do it.

 From user's point of view - what mostly matters is the workflow
 template (please see the above example). Templates decide what needs to 
 be
 done - and the workflow implementation decides how to do that.

 The user experience is like below.

 What do I need to know ?  I need to associate a workflow for the
 add-user operation.

 User first picks the *Attachment Point - *in this case add_user.

 Now - I need to specify under which conditions I need to execute
 this work flow..

 User fills the *Attachment 

Re: [Architecture] Workflow Implementation in IS 5.1.0

2015-07-19 Thread Frank Leymann
+1

Whatever we come up with, it must be usable across out product set...


Best regards,
Frank

2015-07-14 22:12 GMT+02:00 Prabath Siriwardena prab...@wso2.com:

 BTW yes - lets have a discussion on this again - because this is not just
 IS thing - and can be used by any other product which needs to have
 workflow support..

 Thanks  regards,
 -Prabath

 On Tue, Jul 14, 2015 at 1:07 PM, Prabath Siriwardena prab...@wso2.com
 wrote:

 Hi Suemdha,

 We discussed most of the stuff with the API Manager team before doing
 this.

 At the moment API Manager implementation does not have any of these
 capabilities and most of the time need to write a workflow or modify a
 workflow..

 Thanks  regards,
 -Prabath

 On Tue, Jul 14, 2015 at 1:03 PM, Sumedha Rubasinghe sume...@wso2.com
 wrote:

 Prabath,
 I think this has some overlaps and improvements compared to what we have
 done for API Manager about 2 years ago.
 Let's have a discussion on how to bring best of both worlds.


 On Wed, Jul 15, 2015 at 12:49 AM, Prabath Siriwardena prab...@wso2.com
 wrote:

 Hi Isabelle,

 As per the offline chat - you talk about *workflow templates *here..

 The *workflow* implementation should be able to interpret the *workflow
 template*.

 Lets take for example the following sample template..

 Step-1 Approvers : role1 OR role2 AND user1
 Step-2 Approvers : role3 OR role4 AND user3

 There can be multiple workflow implementations supporting the above -
 but the catch here is, when you have a concrete workflow implementation it
 should announce which templates are supported by it. That is how the
 underneath framework knows - which templates are supported by which
 workflows.

 Its pointless to have workflow templates in the system without having
 workflow implementations that support them.

 If there is a need to write a workflow template - then that means - you
 are also going to write a workflow that knows how to interpret it.

 Users of the system need not to worrying about mapping templates to the
 implementations (workflows). Since the each workflow announces which
 templates they support - the framework itself can do it.

 From user's point of view - what mostly matters is the workflow
 template (please see the above example). Templates decide what needs to be
 done - and the workflow implementation decides how to do that.

 The user experience is like below.

 What do I need to know ?  I need to associate a workflow for the
 add-user operation.

 User first picks the *Attachment Point - *in this case add_user.

 Now - I need to specify under which conditions I need to execute this
 work flow..

 User fills the *Attachment Point Template* - execute this workflow if
 user's email address is from WSO2.

 Now - I need to select what needs to be done during the add user
 operation.

 User picks one of the available *workflow templates* - and fill the
 data required.

 If there are more than one implementations for the picked* workflow
 template *system will present you an option to pick the workflow
 (rather unlikely) if not - system already associates the available workflow
 with the selected workflow template - user has to nothing there.

 Thanks  regards,
 -Prabath












 On Tue, Jul 14, 2015 at 11:36 AM, Isabelle Mauny isabe...@wso2.com
 wrote:

 Prabath,

 Couple of clarifications:
 - If a user ( customer ) adds a template, what would they need to
 write ? The template definition *AND* the implementation (i.e. executor) ?
 i.e other words they have to describe the interface to the workflow itself
 and then implement the workflow in say BPEL ? Or Java ? or whatever ?
 - How does a customer maps between the template and the executor ?
 (i.e. how do parameters defined in template becomes Receive data in BPEL
 for example)

 Thanks,
 Isabelle.

 -
 *Isabelle Mauny*
 VP, Product Management - WSO2, Inc. - http://wso2.com/



 On Tue, Jul 14, 2015 at 6:22 PM, Prabath Siriwardena prab...@wso2.com
  wrote:

 It looks like still there are some confusions regarding IS workflow
 implementation. So, thought of sharing my thoughts on the design - and
 hopefully this be helpful to clear out the doubts.

 AFAIK - the framework for the following is already implemented.

 Basic design principals.

 1. Simplicity. Keep simple things simple and have provisions to add
 more complex stuff
 2. Not coupled into any implementation. No hard coupling to BPEL
 3. Not coupled into WSO2 BPS. (part of 2 as well)
 4. Not specific to IS

 Terminology:

 1. *Workflow* - implementation independent abstract representation
 of the concrete workflow has two parts, *initializer* and the
 *executor*.

 If its BPEL based workflows the initializer can be used to initialize
 the BPEL and deploy it in the corresponding BPEL engine.

 And the executor will execute the workflow in runtime.

 2. *Attachment Point* - you should be able to attach a workflow to
 an *Attachment Point 

[Architecture] WSO2 Message Broker - Slow topic consumers can make broker OOM

2015-07-19 Thread Hasitha Hiranya
Hi,

Topic message subscription practically means to be real time. Most brokers
handle topic messages in-memory whereas WSO2 Message Broker store each
topic message as well to provide clustering support for subscribers
(publish to Node1 and subscribe from Node2).

Think of a scenario where there are multiple topic subscribers. We do not
duplicate the message for each subscriber, rather do reference counting.
Message is considered as delivered if all topic consumers sent the ACK to
the server.

Now, when there is a slow topic consumer, even though all other subscribers
ACK the message, as there is no ACK from the slow consumer, we need to keep
the message metadata in memory for reference counting.

If the situation is kept for millions of messages MB server will go Out of
Memory because of the slow consumer.

Thus solution to this problem is,

 duplicate messages per subscriber and put to the database. This solution
is not going to scale with subscription count. Also will use many I/O,
memory

 drop messages in the middle. This is not also a good solution if data is
mission critical.

 Give the choice to the user. He can either loose messages or bare the
risk of going server Out of Memory.

We did a internal discussion and landed on the third option.


-- 
*Hasitha Abeykoon*
Senior Software Engineer; WSO2, Inc.; http://wso2.com
*cell:* *+94 719363063*
*blog: **abeykoon.blogspot.com* http://abeykoon.blogspot.com
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


[Architecture] Potential for using Akka, ReactiveX or RX Java as based for next ESB

2015-07-19 Thread Srinath Perera
Above might be a option instead of using disrupter and trying to build the
thread model from ground up. I think it is worth spending couple of days
understanding.

e.g RxJava https://www.youtube.com/watch?v=8OcCSQS0tug

-- 

Blog: http://srinathsview.blogspot.com twitter:@srinath_perera
Site: http://people.apache.org/~hemapani/
Photos: http://www.flickr.com/photos/hemapani/
Phone: 0772360902
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] [AF] Adding CAR application type to App Factory

2015-07-19 Thread Danushka Fernando
Hi
Please find my answers inline

On Mon, Jul 20, 2015 at 9:40 AM, Jasintha Dasanayake jasin...@wso2.com
wrote:

 If I have understood  correctly, there is a maven multimode  project and
 inside that there are registry resource projects , an ESB project and a
 Capp project right ?  so in your project structure graph where is the Capp
 project ? is it the first application id ?

 Yes

 Also what is the type of  these * ResourcesCAR project ? are these
 registry resource projects ?

 Yes

 Hope you going to use the existing carbon CAR deployer right ? , if so
 existing CAR structure shouldn't be changed so it's better to validate that
 also in the begging

 Yes that's in the plan. We will have a git hook to validate this.

 Thanks and Regards
 /Jasintha

 On Fri, Jul 17, 2015 at 10:08 PM, Danushka Fernando danush...@wso2.com
 wrote:

 Hi All,

 Currently we are working on a feature that will enable to develop, deploy
 and manage CAR files via App Factory. As the first part of this I started
 working on CAR application type and the ESB runtime.

 In this phase the expectation is to

1.

Create an car type multi module application
2.

Build and Deploy the correct artifacts
3.

Create versions
4.

Promote


 Decided sample project structure would be something similar to following

 ├── pom.xml

 ├── applicationID

 │   └── pom.xml

 ├── applicationIDApplicationResources

 │   ├── artifact.xml

 │   ├── Development

 │   │   └── EchoServiceEP.xml

 │   ├── echo.wsdl

 │   ├── pom.xml

 │   ├── Production

 │   │   └── EchoServiceEP.xml

 │   └── Testing

 │   └── EchoServiceEP.xml

 ├── applicationIDDevelopmentResourcesCAR

 │   └── pom.xml

 ├── applicationIDProductionResourcesCAR

 │   └── pom.xml

 ├── applicationIDSimpleProxy

 │   ├── artifact.xml

 │   ├── pom.xml

 │   └── src

 │   └── main

 │   └── synapse-config

 │   └── proxy-services

 │   └── applicationIDSimpleProxyService-version.xml

 └── applicationIDTestingResourcesCAR

└── pom.xml


 Since CAR Projects are built with Maven this is the first time that we
 are going to introduce an maven multi module application type to App
 Factory. Tricky parts are the versioning the project and deploy the correct
 artifacts. We will use extension points provided by AF to achieve these
 tasks. We are planning to implement  an Application Type Processor, an
 Initial Deployer and a Deployer.

 Then after the Stratos 4.1.0 upgrade task is done ESB docker cartidges
 will use to spawn ESB instances.

 Thanks  Regards
 Danushka Fernando
 Senior Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




 --

 *Jasintha Dasanayake*

 *Senior Software EngineerWSO2 Inc. | http://wso2.com
 http://wso2.com/lean . enterprise . middleware*


 *mobile :- 0711368118*

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

 Thanks  Regards
Danushka Fernando
Senior Software Engineer
WSO2 inc. http://wso2.com/
Mobile : +94716332729
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture


Re: [Architecture] Workflow Implementation in IS 5.1.0

2015-07-19 Thread Chathura Ekanayake


 Scenario A:
 If I get it right, the workflows are modeled by workflow-skilled users.
 I.e. we can assume that they build it in a way that the data dependency by
 skipping tasks is avoided, right?  For example, we may provide a best
 practices guide to the corresponding modelers.


As mentioned in the previous reply, for the IS use case, there are no data
dependencies. However, I agree that we have to think of situations where
this does not hold.



 Scenario B:
 The form mentioned in (1) could be the basis for the forms document I
 sketched in my last mail on this subject.


Yes. In current IS scenarios, this form is already filled when the process
is started. Human tasks only have to state whether to approve or not (and
provide comments if necessary).



 Scenario C:
 Is it really acceptable for IS users/admins/... to model BPEL workflows?
 Do they have the skills? My understanding from our call early this year was
 that we need a very simple workflow language (isomorphic to a very small
 subset of BPEL or BPMN) for modeling such flows. We should discuss this, or
 need to get Isabelle's feedback, respectively.


In the proposed approach, BPS ships with some built-in workflows and IT
staff may add additional workflows if necessary. What IS users/admins do is
configure those workflows by creating templates. However, we identified
some problems in this approach during a discussion with IS team.

Regards,
Chathura






 2015-07-16 8:30 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 I think we can clarify this further by looking in to user stories. I
 think the user experience of using IS workflows should be something like
 this:

 Scenario A - Associating a workflow with an action (e.g. Add user action):
 1) Select the Add user attachment point from the list of published
 attachment points
 2) Select a workflow from the list of registered workflows
 3) Once selected, the selected workflow can be configured to create a
 template (as described in 4 and 5)
 4) User is presented with all available tasks (i.e. steps) in the
 selected workflow
 5) User can exclude certain tasks and assign users/roles to remaining
 tasks
 6) User can specify an activation condition for the workflow

 Scenario B - Performing an action which has an associated workflow (e.g.
 Adding a user):
 1) User fills in the add user form and click Finish
 2) The associated workflow is triggered and relevant users performs tasks
 assigned to them using the BPS human task webapp
 3) Once the workflow completes, it returns the approval status and IS
 decides whether to add the user based on the status

 Scenario C - Registering a workflow:
 1) Deploy the required BPEL archive in BPS
 2) Provide the URL of the BPEL endpoint as a configuration
 3) Specify the list of configurable tasks (this is used for creating
 templates)

 Below are some questions:

 Scenario A:
 Can we specify multiple workflows for the same action?
 Do workflows always return a boolean value (i.e. approved / not approved)?

 Scenario B:
 Are we expecting the users to complete tasks (e.g. approval steps) using
 the BPS Human Task web app? Or are we providing an integrated human task UI
 in the IS management console?

 Scenario C:
 Are there any other steps involved in this?
 The list of tasks can also be extracted from the BPEL by locating
 b4p:peopleActivity elements. Then the user can remove certain tasks from
 the configurable tasks list, if those are mandatory.

 Regards,
 Chathura



 On Wed, Jul 15, 2015 at 9:40 PM, Prabath Siriwardena prab...@wso2.com
 wrote:

 Thanks Frank for the suggestion. Yes - it would be great if we can make
 the template generation easy. At the moment as we discussed with Chathura,
 we are creating a parameterized BPEL workflow and  parameters are picked
 from the user through the template (in IS). So the same BPEL workflow will
 find different execution paths based on the template...

 Thanks  regards,
 -Prabath


 On Wed, Jul 15, 2015 at 6:02 AM, Frank Leymann fr...@wso2.com wrote:

 As Chathura describes, workflow templates are not easy to design.
 This is why we discussed some months ago a specialized language to ensure
 that template design is easy.  Another alternative is to consider CMMN
 which has been designed to make skipping more easy...  Maybe that's
 another subject to be discussed when we meet early August in Colombo?


 Best regards,
 Frank

 2015-07-15 6:31 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 According to the discussion we had last week, I think the users
 assigned to tasks (e.g. approvers) as well as workflow steps have to be
 configurable. That means, we can give a workflow covering many steps. Then
 steps required for a particular scenario (and users/roles for those steps)
 can be selected based on the configuration (i.e. workflow template).

 For example a workflow (workflow A) can be:

 Step1 - Step2 - Step3 - Step4

 And a workflow template (for workflow A) can be:
 Step1 : role1 OR user2
 Step3 : role2

 

Re: [Architecture] Workflow Implementation in IS 5.1.0

2015-07-19 Thread Chathura Ekanayake
Hi Frank,


​This does not solve the problem of missing data: your selection may skip
 steps that produce data required by the selected steps.


As discussed with Prabath and IS team, human tasks involved in these
workflows have the same input and output data. Input data is provided at
process instance creation (e.g. details of a new user) and output data is
whether the request is approved or not. Therefore, I think we assume that
tasks do not depend on outputs of other tasks.

Regards,
Chathura



 2015-07-16 8:49 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 From the implementation point of view, the BPEL workflow executor should
 read the workflow template (which may be stored in the registry) and attach
 template details to BPEL invocation request. So that the BPEL request
 message will look like below:

 body
addUserWorkflowRequest
   template
  step
 namestep1/name
 assignment.../assignment
  /step
  step
 namestep2/name
 assignment.../assignment
  /step
   /template

   userData
  usernamesmith/username
  passwordsmithpass/password
  roles
rolemanager/role
roleinventoryStaff/role
  /roles
   /userData
/addUserWorkflowRequest
 /body

 BPEL workflow decides which tasks to execute by examining the
 template/step/name part and assigns users to corresponding tasks using the
 template/step/assignment part. userData element contains the actual
 payload of the request, which may be used by human tasks to display
 information about the user being added.

 Regards,
 Chathura

 On Thu, Jul 16, 2015 at 12:00 PM, Chathura Ekanayake chath...@wso2.com
 wrote:

 I think we can clarify this further by looking in to user stories. I
 think the user experience of using IS workflows should be something like
 this:

 Scenario A - Associating a workflow with an action (e.g. Add user
 action):
 1) Select the Add user attachment point from the list of published
 attachment points
 2) Select a workflow from the list of registered workflows
 3) Once selected, the selected workflow can be configured to create a
 template (as described in 4 and 5)
 4) User is presented with all available tasks (i.e. steps) in the
 selected workflow
 5) User can exclude certain tasks and assign users/roles to remaining
 tasks
 6) User can specify an activation condition for the workflow

 Scenario B - Performing an action which has an associated workflow (e.g.
 Adding a user):
 1) User fills in the add user form and click Finish
 2) The associated workflow is triggered and relevant users performs
 tasks assigned to them using the BPS human task webapp
 3) Once the workflow completes, it returns the approval status and IS
 decides whether to add the user based on the status

 Scenario C - Registering a workflow:
 1) Deploy the required BPEL archive in BPS
 2) Provide the URL of the BPEL endpoint as a configuration
 3) Specify the list of configurable tasks (this is used for creating
 templates)

 Below are some questions:

 Scenario A:
 Can we specify multiple workflows for the same action?
 Do workflows always return a boolean value (i.e. approved / not
 approved)?

 Scenario B:
 Are we expecting the users to complete tasks (e.g. approval steps) using
 the BPS Human Task web app? Or are we providing an integrated human task UI
 in the IS management console?

 Scenario C:
 Are there any other steps involved in this?
 The list of tasks can also be extracted from the BPEL by locating
 b4p:peopleActivity elements. Then the user can remove certain tasks from
 the configurable tasks list, if those are mandatory.

 Regards,
 Chathura



 On Wed, Jul 15, 2015 at 9:40 PM, Prabath Siriwardena prab...@wso2.com
 wrote:

 Thanks Frank for the suggestion. Yes - it would be great if we can make
 the template generation easy. At the moment as we discussed with Chathura,
 we are creating a parameterized BPEL workflow and  parameters are picked
 from the user through the template (in IS). So the same BPEL workflow will
 find different execution paths based on the template...

 Thanks  regards,
 -Prabath


 On Wed, Jul 15, 2015 at 6:02 AM, Frank Leymann fr...@wso2.com wrote:

 As Chathura describes, workflow templates are not easy to design.
 This is why we discussed some months ago a specialized language to 
 ensure
 that template design is easy.  Another alternative is to consider CMMN
 which has been designed to make skipping more easy...  Maybe that's
 another subject to be discussed when we meet early August in Colombo?


 Best regards,
 Frank

 2015-07-15 6:31 GMT+02:00 Chathura Ekanayake chath...@wso2.com:

 According to the discussion we had last week, I think the users
 assigned to tasks (e.g. approvers) as well as workflow steps have to be
 configurable. That means, we can give a workflow covering many steps. 
 Then
 steps required for a particular scenario (and users/roles for those 

Re: [Architecture] [AF] Adding CAR application type to App Factory

2015-07-19 Thread Jasintha Dasanayake
If I have understood  correctly, there is a maven multimode  project and
inside that there are registry resource projects , an ESB project and a
Capp project right ?  so in your project structure graph where is the Capp
project ? is it the first application id ?

Also what is the type of  these * ResourcesCAR project ? are these registry
resource projects ?

Hope you going to use the existing carbon CAR deployer right ? , if so
existing CAR structure shouldn't be changed so it's better to validate that
also in the begging

Thanks and Regards
/Jasintha

On Fri, Jul 17, 2015 at 10:08 PM, Danushka Fernando danush...@wso2.com
wrote:

 Hi All,

 Currently we are working on a feature that will enable to develop, deploy
 and manage CAR files via App Factory. As the first part of this I started
 working on CAR application type and the ESB runtime.

 In this phase the expectation is to

1.

Create an car type multi module application
2.

Build and Deploy the correct artifacts
3.

Create versions
4.

Promote


 Decided sample project structure would be something similar to following

 ├── pom.xml

 ├── applicationID

 │   └── pom.xml

 ├── applicationIDApplicationResources

 │   ├── artifact.xml

 │   ├── Development

 │   │   └── EchoServiceEP.xml

 │   ├── echo.wsdl

 │   ├── pom.xml

 │   ├── Production

 │   │   └── EchoServiceEP.xml

 │   └── Testing

 │   └── EchoServiceEP.xml

 ├── applicationIDDevelopmentResourcesCAR

 │   └── pom.xml

 ├── applicationIDProductionResourcesCAR

 │   └── pom.xml

 ├── applicationIDSimpleProxy

 │   ├── artifact.xml

 │   ├── pom.xml

 │   └── src

 │   └── main

 │   └── synapse-config

 │   └── proxy-services

 │   └── applicationIDSimpleProxyService-version.xml

 └── applicationIDTestingResourcesCAR

└── pom.xml


 Since CAR Projects are built with Maven this is the first time that we are
 going to introduce an maven multi module application type to App Factory.
 Tricky parts are the versioning the project and deploy the correct
 artifacts. We will use extension points provided by AF to achieve these
 tasks. We are planning to implement  an Application Type Processor, an
 Initial Deployer and a Deployer.

 Then after the Stratos 4.1.0 upgrade task is done ESB docker cartidges
 will use to spawn ESB instances.

 Thanks  Regards
 Danushka Fernando
 Senior Software Engineer
 WSO2 inc. http://wso2.com/
 Mobile : +94716332729

 ___
 Architecture mailing list
 Architecture@wso2.org
 https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




-- 

*Jasintha Dasanayake*

*Senior Software EngineerWSO2 Inc. | http://wso2.com http://wso2.com/lean
. enterprise . middleware*


*mobile :- 0711368118*
___
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture