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

Reply via email to