Hi all,

Thanks Suho for your feedback. I have made the changes based on your
suggestions and submitted the final proposal. Started working on a
prototype and will update you soon with the results.


Thanks & Regards,
Gobinath

On Thu, Mar 30, 2017 at 12:28 PM, Sriskandarajah Suhothayan <[email protected]>
wrote:

> I have given some feedback on the gsoc site.
>
> Suho
>
> On Mon, Mar 27, 2017 at 9:03 PM, Gobinath <[email protected]> wrote:
>
>> Hi all,
>>
>> Thanks. I have shared the draft of my proposal titled "Non-Occurrence of
>> Events for Siddhi Patterns" with WSO2 through GSoC dashboard and requesting
>> your feedback on this.
>>
>>
>> Thanks & Regards,
>> Gobinath
>>
>> On Wed, Mar 15, 2017 at 1:30 PM, Sriskandarajah Suhothayan <[email protected]
>> > wrote:
>>
>>> Thanks for the GSoC idea, I hope this will be a good way to improve the
>>> Siddhi language and make it more powerfull.
>>> If time permits we can also add other use-cases of patterns & sequences
>>> and improve it further.
>>>
>>> Since you are still not a commuter I hope these contributions will help
>>> you be a committer to Siddhi as well :)
>>> I'll make this as a formal idea, do work on a proposal as well.
>>>
>>> Regards
>>> Suho
>>>
>>>
>>> On Wed, Mar 15, 2017 at 6:09 PM, Gobinath <[email protected]> wrote:
>>>
>>>> Hi team,
>>>>
>>>> This is Gobinath a former software engineer at WSO2 currently doing
>>>> masters at Western University. This time I plan to do GSoC with WSO2 and
>>>> this is the basic idea of what I have discussed with Suho.
>>>> Based on Suho's suggestion, I come up with a proposal to implement
>>>> detecting non-occurring events using Siddhi patterns. The current Siddhi
>>>> patterns allow identifying the patterns that present.
>>>>
>>>> See an example:
>>>> from every e1=Stream1[price>20] -> e2=Stream2[price>e1.price] within 1
>>>> sec
>>>> select e1.symbol as symbol1, e2.symbol as symbol2
>>>> insert into OutputStream;
>>>>
>>>> Detecting the absence of a pattern is not natively supported by Siddhi
>>>> patterns for the moment. In other words, identifying event_a not followed
>>>> by event_b within 2 minutes is not possible using the current patterns
>>>> implementation (Note that a time frame is required otherwise we have to
>>>> wait for infinite time to say event_b has not arrived). The current
>>>> workaround [1] to detect non-delivered items is shown below:
>>>>
>>>> from arrivals_stream#window.time(2 minutes)
>>>> select *
>>>> insert expired events into overdue_deliveries_stream;
>>>>
>>>> from every arrivalEvent = arrivals_stream ->
>>>> deliveryEvent = deliveries_stream[arrivalEvent.trackingId ==
>>>> trackingId]
>>>>     or overdue_delivery = overdue_deliveries_stream[arrivalEvent.trackingId
>>>> == trackingId]
>>>> select arrivalEvent.trackingId as trackingId, arrivalEvent.customerName
>>>> as customerName, arrivalEvent.telephoneNo as telephoneNo,
>>>> deliveryEvent.trackingId as deliveryId
>>>> insert into filter_stream;
>>>>
>>>> from filter_stream [ (deliveryId is null)]
>>>> select trackingId, customerName, telephoneNo
>>>> insert into alert_stream;
>>>>
>>>> This solution requires a time window and it is inefficient if we are
>>>> interested only on one occurrence of such a pattern (In other words same
>>>> query without every keyword). Further, the query is more complex and not
>>>> user-friendly.
>>>>
>>>> If we provide patterns to detect absence of patterns, the above query
>>>> can be rewritten as below:
>>>>
>>>> from every arrivalEvent = arrivals_stream ->  (not
>>>> deliveries_stream[arrivalEvent.trackingId == trackingId] within 2 min )
>>>> select arrivalEvent.trackingId as trackingId, arrivalEvent.customerName
>>>> as customerName, arrivalEvent.telephoneNo as telephoneNo
>>>> insert into alert_stream;
>>>>
>>>> As you can see, we can use the existing language components like not &
>>>> within. This can be achieved by extending the existing
>>>> StreamPreStateProcessors and StreamPostStateProcessors with an internal
>>>> timer so that they can expire their internal list of events based on the
>>>> time limit. It is somewhat similar to time windows but the processor can
>>>> turn off the timer and ignore the events if it is a one time pattern
>>>> detection.
>>>>
>>>> I hope it gives the basic idea and I am waiting for your suggestions
>>>> and feedback.
>>>>
>>>> [1] https://docs.wso2.com/display/CEP400/Sample+0111+-+Detec
>>>> ting+non-occurrences+with+Patterns
>>>>
>>>>
>>>> Thanks & Regards,
>>>> Gobinath
>>>> --
>>>> *Gobinath** Loganathan*
>>>> Graduate Student,
>>>> Electrical and Computer Engineering,
>>>> Western University.
>>>> Email  : [email protected]
>>>> Mobile : (+1) 416-895-0721
>>>> Blog    : javahelps.com <http://www.javahelps.com/>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>>
>>> *S. Suhothayan*
>>> Associate Director / Architect & Team Lead of WSO2 Complex Event
>>> Processor
>>> *WSO2 Inc. *http://wso2.com
>>> * <http://wso2.com/>*
>>> lean . enterprise . middleware
>>>
>>>
>>> *cell: (+94) 779 756 757 <077%20975%206757> | blog:
>>> http://suhothayan.blogspot.com/ <http://suhothayan.blogspot.com/>twitter:
>>> http://twitter.com/suhothayan <http://twitter.com/suhothayan> | linked-in:
>>> http://lk.linkedin.com/in/suhothayan <http://lk.linkedin.com/in/suhothayan>*
>>>
>>
>>
>>
>> --
>> *Gobinath** Loganathan*
>> Graduate Student,
>> Electrical and Computer Engineering,
>> Western University.
>> Email  : [email protected]
>> Mobile : (+1) 416-895-0721
>> Blog    : javahelps.com <http://www.javahelps.com/>
>>
>>
>
>
>
> --
>
> *S. Suhothayan*
> Associate Director / Architect
> *WSO2 Inc. *http://wso2.com
> * <http://wso2.com/>*
> lean . enterprise . middleware
>
>
> *cell: (+94) 779 756 757 | blog: http://suhothayan.blogspot.com/
> <http://suhothayan.blogspot.com/>twitter: http://twitter.com/suhothayan
> <http://twitter.com/suhothayan> | linked-in:
> http://lk.linkedin.com/in/suhothayan <http://lk.linkedin.com/in/suhothayan>*
>



-- 
*Gobinath** Loganathan*
Graduate Student,
Electrical and Computer Engineering,
Western University.
Email  : [email protected]
Mobile : (+1) 416-895-0721
Blog    : javahelps.com <http://www.javahelps.com/>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to