On Fri, Sep 27, 2013 at 1:24 PM, Lasantha Fernando <[email protected]>wrote:

> Hi Srinath,
>
> +1 for the first 3 suggestions. At the UI level, it should be simple for
> the user to configure. It makes sense to keep default configurations for
> some event adaptors like data-bridge/thrift.
>
> However, at the deployment config files, it would be tricky to include the
> configuration of different components in a single file.
>
> Can you verify what you mean by inline configuration a bit more?
> When you mean inline event builders and inline event formatters, do you
> mean something like the following (Just pseudo syntax, not actual)?
>
> <executionPlan>
>   <builder from="jmsAdaptor" toStream="stockStream">
>     <inputMapping type="xml">
>       <property>
>          <from xpath="//StockQuote/LastTradedAmount" />
>          <to name="price" type="double" />
>       </property>
>       ....
>      </inputMapping>
>    </builder>
>    <siddhiQuery>
>       .... {query goes here}...
>    </siddhiQuery>
>    <formatter from="processedStockStream" to="emailAdaptor">
>       <outMapping type="text">
>           ....
>           <mappingText>Stock Price: {{price}}</mappingText>
>       </outMapping>
>    </formatter>
> </executionPlan>
>
> Putting a configuration file like this to the execution plan would mean
> that the event processor component has to know about syntax for event
> builders and event formatters as well IMO?
>


In this case, when a <builder> tag is found, event processor can forward
that to the builder service without actually parsing it. same for the
<formatter>.
So I think its not necessary that Event processor knowing the syntax or
having a redundant implementation inside it. But still this can involve
some work considering the current flow, when it comes to validations and
handling erroneous configurations.


Thanks
Rajeev

>
> Am not sure whether this would be a clean approach.
>
> Thanks,
> Lasantha
>
>
>
> On 27 September 2013 12:48, Srinath Perera <[email protected]> wrote:
>
>> Playing with CEP 3.0, i feel we have taken backward step in terms of
>> usability.
>>
>> Note I am not saying we should change this in the version we are putting
>> out now, but fix it soon afterword.
>>
>> CEP 3.0 has introduced a processing pipeline that give users lot of
>> flexibility.
>> pipeline includes: event receiver, event builder, cep plan, event
>> formatter, event sender
>>
>> This is great. Ideas come from Axis2 arch and we all agreed.
>>
>> However, CEP forces users to configure all parts of the pipeline all the
>> time.
>> Now users have to go though all the steps (and we do not have a wizard
>> that guide you though :().
>>
>> Problem 1: This is BAD idea, and this make life of the users very hard
>> and force them to understand lot of new concepts.
>>
>> Axis2 has even bigger pipeline, but it does not ask at least one of the
>> questions when you want to deploy a service. All extensions  are hidden
>> inside defaults and users will only see them if the want to extend the
>> flow. If user do not
>> know about them, still simple case is simple.
>>
>> Problem2: Another key issue is while streams are core concept, there is
>> no way to list all available streams or add them.
>>
>> Following is my proposal to fix the problem.
>>
>> 1) Add default event listeners (e.g thrift) and senders and make them
>> available out of the box.  Others users may configure via Carbon configure
>> view (not in main). Then even without configuring  a listener, users can
>> use thrift listener.
>>
>> 2) In main menu, have only ExecuationPlan and Streams. Those are only
>> central concepts. (E.g. In WSAS we have services and webapps here).  When
>> you creating new Execution plans, it is configured with thrift and data
>> bridge formatters for default. Users can edit and change that. When they
>> edit, then can either define formatters inline (they are not named .. and
>> not added to list .. just like anonymous endpoints  in ESB) or they can
>> look them up from global list configured via Configure menu.
>>
>> 3) Same for streams. But streams are always named. But they can add
>> streams without leaving execution plan UI.
>>
>> 4) In in deployment config files, we should support user to give
>> anonymous event formatters and builders inline in the execution plan if the
>> wish to. They can skip them altogether and then thrift default event
>> formatters and builders are used.
>>
>> Goal is to keep simple things simple. Now if I need to define a query, I
>> say "Add Execution Plan", define streams inline, give the query and I am
>> done.
>> If I like to do complex things, I can do that too.
>>
>> Pls note we (including myself) did not catch this earlier. I am just
>> trying to fix the problem, not to put down the nice architecture we have
>> done with the pipeline.
>>
>> WDYT?
>>
>> --Srinath
>>
>> --
>> ============================
>> Srinath Perera, Ph.D.
>>   Director, Research, WSO2 Inc.
>>   Visiting Faculty, University of Moratuwa
>>   Member, Apache Software Foundation
>>   Research Scientist, Lanka Software Foundation
>>   Blog: http://srinathsview.blogspot.com/
>>   Photos: http://www.flickr.com/photos/hemapani/
>>    Phone: 0772360902
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> *Lasantha Fernando*
> Software Engineer - Data Technologies Team
> WSO2 Inc. http://wso2.com
>
> email: [email protected]
> mobile: (+94) 71 5247551
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Rajeev Sampath
Senior Software Engineer
WSO2, Inc.; http://www.wso2.com.

Mobile:* +94716265766
*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to