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 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 *and will get executed in runtime when a >>>>>>>>> request hits the corresponding *Attachment Point*. >>>>>>>>> >>>>>>>>> Some examples of *Attachment Points* : add_user, delete_user, >>>>>>>>> add_role, add_xacml_policy, update_xacml_policy. >>>>>>>>> >>>>>>>>> *Attachment Points* - are independent from the *workflow*. >>>>>>>>> >>>>>>>>> *Attachment Points* are introduced into system via an OSGi >>>>>>>>> service. For example user_add, user_update, role_add - all those >>>>>>>>> Attachment >>>>>>>>> Points are announced into the system by a UserManagerOperationListner. >>>>>>>>> >>>>>>>>> *Attachment Points *can be developed and deployed independently. >>>>>>>>> Once the system discovers the availability of an *Attachment >>>>>>>>> Point *- it will display that to the user - so he can engage and >>>>>>>>> workflow to that *Attachment Point.* >>>>>>>>> >>>>>>>>> 3. *Attachment Point Template* >>>>>>>>> >>>>>>>>> These are coupled to specific* Attachment Points*. For example, >>>>>>>>> the *Attachment Point Template *- associated with the user_add >>>>>>>>> *Attachment >>>>>>>>> Point* may look like following. >>>>>>>>> >>>>>>>>> *user match : <reg-ex>* >>>>>>>>> >>>>>>>>> Now the *Attachment Point* will invoke the associated workflow >>>>>>>>> executor only if the above criteria is met. >>>>>>>>> >>>>>>>>> >>>>>>>>> 4. *Workflow Template *: These templates should be announced to >>>>>>>>> the system along with the *workflow* implementation. This >>>>>>>>> template is independent from the *Attachment Point Template*. >>>>>>>>> This tell how to configure the workflow. With this approach you can >>>>>>>>> have >>>>>>>>> the same work flow - but configured in different ways based on the* >>>>>>>>> Attachment Point*. >>>>>>>>> >>>>>>>>> Once example could be: >>>>>>>>> >>>>>>>>> Step-1 Approvers : <role1> OR <role2> AND user1 >>>>>>>>> Step-2 Approvers : <role3> OR <role4> AND user3 >>>>>>>>> >>>>>>>>> likewise... >>>>>>>>> >>>>>>>>> Okay - so far everything discussed above are related to the core >>>>>>>>> framework design. >>>>>>>>> >>>>>>>>> In IS 5.1.0 we need to have a concrete implementation of >>>>>>>>> followings.. >>>>>>>>> >>>>>>>>> 1. *Attachment Points*- for all user / role related operations. >>>>>>>>> 2. *Attachment Point Templates* - for all user / role related >>>>>>>>> operations. >>>>>>>>> 3. *Workflow* - initiator and executor for WSO2 BPS BPEL >>>>>>>>> implementation - and concrete multi-step approval BPEL workflow. >>>>>>>>> 4. *Workflow Templates*: A template for the multi-step approval >>>>>>>>> BPEL workflow >>>>>>>>> >>>>>>>>> Please let me know if you have any doubts or suggestions.. also >>>>>>>>> Johann/Pulsathi please verify whether the implementation is done >>>>>>>>> according >>>>>>>>> to this. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Thanks & Regards, >>>>>>>>> Prabath >>>>>>>>> >>>>>>>>> Twitter : @prabath >>>>>>>>> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena >>>>>>>>> >>>>>>>>> Mobile : +1 650 625 7950 >>>>>>>>> >>>>>>>>> http://blog.facilelogin.com >>>>>>>>> http://blog.api-security.org >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thanks & Regards, >>>>>>> Prabath >>>>>>> >>>>>>> Twitter : @prabath >>>>>>> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena >>>>>>> >>>>>>> Mobile : +1 650 625 7950 >>>>>>> >>>>>>> http://blog.facilelogin.com >>>>>>> http://blog.api-security.org >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Architecture mailing list >>>>>>> Architecture@wso2.org >>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> /sumedha >>>>>> m: +94 773017743 >>>>>> b : bit.ly/sumedha >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> Architecture@wso2.org >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks & Regards, >>>>> Prabath >>>>> >>>>> Twitter : @prabath >>>>> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena >>>>> >>>>> Mobile : +1 650 625 7950 >>>>> >>>>> http://blog.facilelogin.com >>>>> http://blog.api-security.org >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanks & Regards, >>>> Prabath >>>> >>>> Twitter : @prabath >>>> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena >>>> >>>> Mobile : +1 650 625 7950 >>>> >>>> http://blog.facilelogin.com >>>> http://blog.api-security.org >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> Architecture@wso2.org >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >> > > -- > > ------------------------------------------------------------------------------------- > *Isabelle Mauny* > VP, Product Management - WSO2, Inc. - http://wso2.com/ > email: isabe...@wso2.com - mobile (Spain) : +34 616050684 - mobile (Sri > Lanka) +94 (0)774777663 > Landline: +1 (650) 745 4499 (USA) or +94 (11) 214 534 (SL) Extension : > 7302 > > > >
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture