Hi Ramkumar,

Please, see the "[GSoC] More Details about the Guardian Model
Implementation" conversation thread for more details.

Thanks,

On Wed, Aug 12, 2009 at 4:26 AM, Ramkumar R <[email protected]> wrote:

>
> On Thu, Aug 6, 2009 at 8:12 PM, Douglas Leite <[email protected]>wrote:
>
>> The last updates in my project are related to allowing the existence of
>> concurrent exceptions, as well as providing suitable mechanisms to treat
>> them ([1]). The sequence diagram at [2] shows the messages exchange between
>> the guardian group, guardian members, and participants, when a participant
>> raises an external exception.
>>
>> First of all, the participant that wants to raise an external exception,
>> invokes the *gthrow* method from its respective guardian member. The
>> exception is propagated to the guardian group that set all the involved
>> participants in a suspended state. A participant can assume two states:
>> normal and suspended. When a participant is suspended, it blocks until its
>> state change to the normal state. (However, in the current implementation
>> the participants that did not raise an external exception, continue its
>> normal execution, in a normal state, until an exception is raised in it).
>>
>> After that, the guardian group starts a new thread to process the external
>> exception. The process consists in applying the recovery rules that was
>> defined by the programmer (see an example at [3]). The recovery rules define
>> which exception should be raised in a specific participant (or a set of
>> participants) when an external exception is signaled from a participant to
>> the guardian.
>>
>> While an exception is being processed, another exception may be raised by
>> other participant, in other words, concurrent exceptions may occur. The
>> concurrent exceptions are queued in the guardian group, and before applying
>> the solution described at the recovery rules for the first exception raised,
>> the guardian checks if there are, or not, concurrent exceptions queued.
>>
>> In case of concurrent exceptions, the guardian provides the list of all
>> concurrent exceptions to the concurrent recovery rules. These ones check for
>> the lowest common ancestor (LCA) of all the concurrent exceptions in a
>> resolution tree (see an example at [4]). If there is a LCA, then the
>> guardian invokes the recovery rules for this exception. Otherwise, the
>> guardian simple invokes the recovery rules for each concurrent exception
>> sequentially.
>>
>> In the end, the resolved exception is delivered to the guardian members,
>> and raised in its respective participants by the invocation of the *
>> checkStatusException* method.
>>
>> There are some things related to the design and algorithms that I need to
>> review in order to enhance the model. Despite of that, all the parts of the
>> model were already implemented.
>>
>> Some possible next stpes are:
>>
>> 1) Use the recovery rules and resolution tree as policies;
>> 2) Test the examples with remotable interface;
>> 3) Use implicit declaration of the guardian members;
>>
>> Thoughts?
>>
>> [1]
>> http://svn.apache.org/repos/asf/tuscany/sandbox/dougsleite/guardian-model/
>> [2]
>> http://svn.apache.org/repos/asf/tuscany/sandbox/dougsleite/guardian-model/sequenceDiagram-externalException.jpg
>> [3]
>> http://svn.apache.org/repos/asf/tuscany/sandbox/dougsleite/guardian-model/src/main/resources/recoveryrules_nbackpus.xml
>> [4]
>> http://svn.apache.org/repos/asf/tuscany/sandbox/dougsleite/guardian-model/src/main/resources/resolutionTree.xml
>>
>> --
>> Douglas Siqueira Leite
>> Graduate student at University of Campinas (Unicamp), Brazil
>>
>>
> Hi Douglas,
>
> At this point of time, is it currently possible to integrate the code you
> have developed so far with Tuscany and test the same. I understand that, you
> are planning for some improvements like declaring the recovery rules as
> policies, apart from these improvements what is the status on the core model
> and how does it work with Tuscany.
>
> More details on how things would work with respect to Tuscany module would
> help the community to evaluate your solution better.
>
> --
> Thanks & Regards,
> Ramkumar Ramalingam
>



-- 
Douglas Siqueira Leite
Graduate student at University of Campinas (Unicamp), Brazil

Reply via email to