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
