Hi Maninda, On 24 October 2014 18:16, Maninda Edirisooriya <mani...@wso2.com> wrote:
> > On Fri, Oct 24, 2014 at 3:13 PM, Lasantha Fernando <lasan...@wso2.com> > wrote: > >> Hi Maninda, >> >> On 24 October 2014 14:40, Maninda Edirisooriya <mani...@wso2.com> wrote: >> >>> >>> On Fri, Oct 24, 2014 at 1:10 PM, Lasantha Fernando <lasan...@wso2.com> >>> wrote: >>> >>>> Hi Maninda, all, >>>> >>>> On 24 October 2014 12:39, Gihan Anuruddha <gi...@wso2.com> wrote: >>>> >>>>> We need to maintain a single location to give publisher credential >>>>> details. At the moment we are maintaining same details in a different >>>>> location that is a bit inconvenient. As an example if we change BAM >>>>> url then we have to change BAM server profiles as well as mediation stat >>>>> publish UI as well. Also, this password should support secureVault. >>>>> >>>> >>>> +1 >>>> >>> Yes. When we can come up with the generic artifact which describes data >>> sink URL and credentials, we can access them for all ESB components (like >>> new mediator and mediation stats publisher) via a declarative service. As >>> this artifact is dep synced across all the products other products too can >>> get URL and credentials without any issue. All you have to do is to install >>> the feature to that product that exposes that declarative service. >>> >>>> >>>> >>>>> >>>>> On Fri, Oct 24, 2014 at 12:25 PM, Maninda Edirisooriya < >>>>> mani...@wso2.com> wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> Today morning we had a discussion where Anjana, Lahiru, Vijitha, >>>>>> Kasun and I participated. >>>>>> >>>>>> There we decided to develop a common Data Publisher / Data Sink axis2 >>>>>> artifact which is generic throughout the platform. This will enable any >>>>>> other carbon products also for finding data publishing connection / >>>>>> credential details when they want to publish data to CEP / BAM. >>>>>> >>>>> >>>> Are we going to couple with Axis2 for the data publisher/ data sink? >>>> Querying about this since you had mentioned 'axis2 artifacts'.. :-). >>>> >>> I am not sure about the new artifact type that is going to replace axis2 >>> artifact deployment, and that is the reason I mentioned the name "axis2". >>> Yes it is better if we can go with the new deployment artifact type. :) >>> >> >> In the current data-bridge model, we are not having Axis2 deployment >> artifacts since the data receivers/data publishers are not hot-deployable >> artifacts. In the current model, usually, we configure a single data >> receiver for a server before start up and the no. of publishers , type are >> also pre-configured and not hot-deployable. Are we going for a model with >> multiple data publisher/data receiver artifacts deployed through an Axis2 >> deployer or similar? >> > > You are correct. We can use a configuration file for configuring Data > Publishing server connection URL and credentials assuming all the tenants > are publishing to the same BAM / CEP server in a multi-tenant environment. > I think we can go for hot-deployable data sink/data publisher artifacts if there is a use case for that. I was actually wrong earlier in saying that data publishers are not hot-deployable. In BAM/CEP output adaptors, OutputWSO2Event adaptors are actually hot deployable. For ESB also, I think there is the ability to configure the BAM server profiles dynamically. Though I think the BAM server profiles are stored in registry and not hot deployable. If we move these configs to a file, we are actually removing existing functionality IMHO. So I guess we cannot move all the configs to a file-based config. +1 from me to make Data Publisher configurations hot deployable axis2 artifacts (Removing axis2 dependency has a long way to go yet, I think). Sorry for suggesting otherwise earlier.. :-) In databridge level, the receiver details and the no. of threads,event queue size are file-based configurations. The data sink/ data receiver artifacts were not made hot deployable with assumption that keeping a pre-configured single port listening for incoming Thrift traffic is adequate. Shall we make it the same for the new Data Publisher/ Data Sink configurations? i.e. file-based DataReceiver/DataSink and hot-deployable DataPublisher (We also need to get the names right as well, I think. i.e. DataPublisher vs EventPublihser, DataReceiver vs DataSink etc...) ? We can make the DataSink part hot-deployable as well if there is a use case for that? WDYT? > >> >>>> Can't we make it generic to the platform without coupling with Axis2 >>>> since we are moving away from Axis2 in other areas of the platform? >>>> >>> Can you explain how to make it generic? This is really a problem I >>> thought. I think we have to decide it before we completely get rid of >>> Axis2. Maybe Azeez have an idea. >>> >>> Azeez, what do you think about the new artifact deployment modal >>> independent from Axis2? >>> >>>> >>>> >>>>>> And specific to the ESB we are going to develop a mediator (it's name >>>>>> is not confirmed yet) which will be similar to the current BAM mediator >>>>>> which will refer to the above mentioned artifact for credentials and >>>>>> connection parameters. As also we should include the transport we are >>>>>> referring in that particular data sink / data publisher. For the first >>>>>> cut >>>>>> we can use only the Thrift and hope to extend for HTTP and JMS in future. >>>>>> >>>>>> In new implementation of the mediator, there will be no configuration >>>>>> for Stream configuration like the BAM mediator. Instead there will be >>>>>> inline configurations in the mediator XML which consists of >>>>>> 1. a stream ID (or the combination of Stream Name and Stream Version) >>>>>> 2. and mappings from message XPath to the stream field. (i.e. maps >>>>>> from message properties to the stream fields.) >>>>>> >>>>> >>>> +1 for mapping message to stream attributes as described above. >>>> >>>> >>>>>> For the convenience to the user, we can prompt the stream fields for >>>>>> mapping from the UI, (once stream ID is provided) if the stream is >>>>>> already >>>>>> there in the stream definition store. Anyway there (if want to get UI >>>>>> help) >>>>>> we have to use the existing streams that were already created from CEP or >>>>>> BAM. But still you can add a mapping for a new stream which can >>>>>> subsequently be added to the stream definition store from CEP or BAM. >>>>>> >>>>>> We have decided to go for a mediator instead of a connector as this >>>>>> has nothing to do for accessing an external API kind of operation but to >>>>>> publish data for our own products according to the connection information >>>>>> given by the internal Data Publisher / Data Sink artifact. >>>>>> >>>>>> WDYT about the cases when we use other transports like HTTP, JMS, >>>>>> MQTT etc. ? >>>>>> >>>>> >>>> Will we really be needing HTTP, JMS support when communicating within >>>> the platform across different products? Asking this since we already have >>>> similar functionality in many places (e.g. ESB, BAM/CEP input adaptors) and >>>> our general architectural approach is to get the events/messages into the >>>> platform from one product, then communicate within the platform using a >>>> single native format for efficiency/performance. WDYT? >>>> >>> >>> Due to the client loadbalancing requirement of the Thrift endpoint there >>> may be some limitations when it comes to publishing from one cluster to >>> another cluster where data receiver thrift URLs are not visible outside >>> from the second cluster. There we may have to use HTTP data sink type. And >>> if there is a requirement for publishing to a 3rd party JMS topic we may >>> need JMS support and so on. Anyway we should first focus on the Thrift type >>> and will think about others as the next steps. :) >>> >> >> If we are trying to send something over HTTP or JMS from ESB, can't we >> make use of the already existing implementations within ESB to send to HTTP >> or JMS endpoints? It will indeed be very useful to have a set of pluggable >> transports that can be used by any product of the platform. I think the >> concern is whether we will be redoing already available transports when >> implementing HTTP/JMS for databridge level as well. Of course, I might have >> misunderstood the approach mentioned here, if so, please correct me if am >> wrong.. :-) >> > In this data sink artifact we will build the messages according to the > events used in the stream where the existing HTTP, JMS and etc. message > endpoints are capable of sending raw messages. The example is Entitlement > mediator where it sends data via HTTP and with a specific format. > Yes, that makes sense. In that case, I think the data publisher/event publisher artifacts would provide a sort of pre-configured template for sending events over HTTP, JMS to other WSO2 products and use the underlying HTTP, JMS transport implementation that already exists. Thanks, Lasantha >> Thanks, >> Lasantha >> >> >>> >>>> Thanks, >>>> Lasantha >>>> >>>>> >>>>>> Feedback is welcome. >>>>>> >>>>>> Thanks. >>>>>> >>>>>> >>>>>> *Maninda Edirisooriya* >>>>>> Senior Software Engineer >>>>>> >>>>>> *WSO2, Inc.*lean.enterprise.middleware. >>>>>> >>>>>> *Blog* : http://maninda.blogspot.com/ >>>>>> *E-mail* : mani...@wso2.com >>>>>> *Skype* : @manindae >>>>>> *Twitter* : @maninda >>>>>> >>>>>> On Mon, Oct 20, 2014 at 8:00 PM, Sriskandarajah Suhothayan < >>>>>> s...@wso2.com> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Mon, Oct 20, 2014 at 4:06 AM, Mohanadarshan Vivekanandalingam < >>>>>>> mo...@wso2.com> wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> We had a discussion sometime back (last year) on this.. Please >>>>>>>> check the mail thread [1] for more info.. >>>>>>>> >>>>>>>> >>>>>>> Yes, I believe we all agree that we need to improve the current BAM >>>>>>> Mediator. >>>>>>> When I had a chat with kasun on this he suggested writing it as a >>>>>>> connector will be much cleaner. >>>>>>> >>>>>>> Where we can have the connection information and stream definition >>>>>>> in <init> and <defineStream> then then pass the data via <publish>. >>>>>>> >>>>>>> I believe its better to have a f2f meeting with kasun on this. >>>>>>> >>>>>>> Regards >>>>>>> Suho >>>>>>> >>>>>>> [1] [Architecture] Improving Data Publisher Mediator to replace BAM >>>>>>>> Mediator >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Mohan >>>>>>>> >>>>>>>> >>>>>>>> On Mon, Oct 20, 2014 at 12:55 PM, Anjana Fernando <anj...@wso2.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi Sanjiva, >>>>>>>>> >>>>>>>>> On Sat, Oct 18, 2014 at 9:44 PM, Sanjiva Weerawarana < >>>>>>>>> sanj...@wso2.com> wrote: >>>>>>>>> >>>>>>>>>> On Fri, Oct 17, 2014 at 6:47 PM, Lahiru Chandima < >>>>>>>>>> lahi...@wso2.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> We (Vijitha<vijit...@wso2.com> and myself) are going to develop >>>>>>>>>>> an ESB Connector which can publish events to BAM and CEP. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> We're currently using the words "ESB Connector" to mean something >>>>>>>>>> that becomes a set of mediators to access (primarily) HTTP APIs. >>>>>>>>>> This is >>>>>>>>>> not that right?? If so lets not use the same words please. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Yeah, I guess, this is simply a mediator, just like what we have >>>>>>>>> now. It was just Kasun has mentioned to Suho, to create this as an ESB >>>>>>>>> Connector, where we haven't actually gone into what it means to >>>>>>>>> create a >>>>>>>>> connector. @Kasun, maybe you can shed some light on this, on what you >>>>>>>>> meant >>>>>>>>> earlier. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Currently, BAM mediator is used for sending events from ESB to >>>>>>>>>>> BAM. BAM Mediator needs to be configured with server details and >>>>>>>>>>> streams >>>>>>>>>>> need to be defined prior to using them in sequences of ESB Synapse >>>>>>>>>>> configuration. >>>>>>>>>>> >>>>>>>>>>> With new ESB connector, it will be possible to add all >>>>>>>>>>> configurations needed to publish events to BAM or CEP in the ESB >>>>>>>>>>> Synapse >>>>>>>>>>> configuration itself. This brings the configuration to a single >>>>>>>>>>> place >>>>>>>>>>> unlike when using the BAM mediator. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Is this a real requirement? Do we expect different ESB configs >>>>>>>>>> (running on the same server) to want to send data to different >>>>>>>>>> BAM/CEP >>>>>>>>>> endpoints? I understand the multitenancy usecase - is it only for >>>>>>>>>> that? >>>>>>>>>> >>>>>>>>> >>>>>>>>> Actually, the idea here is, what we have now for defining the >>>>>>>>> target for events, "BAM Profiles", to replace that. Basically in a BAM >>>>>>>>> Profile, we put all the information such as the event receiver >>>>>>>>> details, and >>>>>>>>> the stream definition, and how the properties are mapped using >>>>>>>>> properties >>>>>>>>> from a sequence. We want to clean this up by, simply having something >>>>>>>>> equivalent to a message store we have now, where we named is "data >>>>>>>>> sink" >>>>>>>>> for now, to be the target for events, and the actual stream mapping >>>>>>>>> will be >>>>>>>>> done by the mediator itself, in the sequence. And the motivation for >>>>>>>>> having >>>>>>>>> this as an artifact in the synapse configuration is, where from a >>>>>>>>> place >>>>>>>>> like DevStudio or any development environment, we can create these >>>>>>>>> deployment artifacts can directly deploy them, without going to the >>>>>>>>> admin >>>>>>>>> console and adding them through the UI. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> *High level architecture - components.* >>>>>>>>>>> >>>>>>>>>>> 1) New Synapse construct will be introduced to configure details >>>>>>>>>>> related to the data sink (ie. CEP or BAM). >>>>>>>>>>> >>>>>>>>>>> Eg. >>>>>>>>>>> >>>>>>>>>>> <dataSink name=”bam_thrift_server”> >>>>>>>>>>> <url>tcp://localhost:7611<url> >>>>>>>>>>> <username>admin</username> >>>>>>>>>>> <password>admin</password> >>>>>>>>>>> </dataSink> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> What do we call this now? The term "dataSink" doesn't work for me >>>>>>>>>> but that could be just me. >>>>>>>>>> >>>>>>>>> >>>>>>>>> Yeah, we had a meeting sometime back to discuss this, and that day >>>>>>>>> also, we couldn't decide on the name :) .. basically something >>>>>>>>> related to a >>>>>>>>> dataSink, any suggestions? :) .. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2) An ESB connector will be developed which can be used to >>>>>>>>>>> publish events to a data sink. Connector will use data-bridge API >>>>>>>>>>> (Thrift) >>>>>>>>>>> for publishing events (It will be possible to introduce new >>>>>>>>>>> transports >>>>>>>>>>> other than Thrift later). >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Once again, what are the operations? Why do we want to write a >>>>>>>>>> connector instead of using / improving the current "BAM mediator"? >>>>>>>>>> >>>>>>>>> >>>>>>>>> So yeah, it will basically be improving/re-writing the current >>>>>>>>> mediator, with a name like "dataPublish" or something, without any >>>>>>>>> "BAM" >>>>>>>>> part, and with the stream property mapping part added there itself, >>>>>>>>> rather >>>>>>>>> than having it in another place. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thrift stream related data (stream name, version and stream >>>>>>>>>>> properties) will be configured in the ESB connector configuration >>>>>>>>>>> (in >>>>>>>>>>> Synapse config), which is more logical compared to configuring it >>>>>>>>>>> separately as done in the BAM mediator. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Can you give a specific example to illustrate the difference >>>>>>>>>> please? >>>>>>>>>> >>>>>>>>> >>>>>>>>> So basically in the current BAM mediator, we do not give the >>>>>>>>> direct mapping to the stream properties there, we simply populate some >>>>>>>>> message context properties and call the mediator. And the mediator >>>>>>>>> simply >>>>>>>>> looks up the information provided by the BAM Profile to do the actual >>>>>>>>> mapping, where in our profile, we have given like Xpath expressions >>>>>>>>> to say, >>>>>>>>> what are the values in a specific target stream event. >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Anjana. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> Sanjiva. >>>>>>>>>> -- >>>>>>>>>> Sanjiva Weerawarana, Ph.D. >>>>>>>>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ >>>>>>>>>> email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 >>>>>>>>>> 5345) x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 >>>>>>>>>> 650 265 8311 >>>>>>>>>> blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva >>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Architecture mailing list >>>>>>>>>> Architecture@wso2.org >>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Anjana Fernando* >>>>>>>>> Senior Technical Lead >>>>>>>>> WSO2 Inc. | http://wso2.com >>>>>>>>> lean . enterprise . middleware >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Architecture mailing list >>>>>>>>> Architecture@wso2.org >>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *V. Mohanadarshan* >>>>>>>> *Software Engineer,* >>>>>>>> *Data Technologies Team,* >>>>>>>> *WSO2, Inc. http://wso2.com <http://wso2.com> * >>>>>>>> *lean.enterprise.middleware.* >>>>>>>> >>>>>>>> email: mo...@wso2.com >>>>>>>> phone:(+94) 771117673 >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> *S. Suhothayan* >>>>>>> Technical Lead & Team Lead of WSO2 Complex Event Processor >>>>>>> *WSO2 Inc. *http://wso2.com >>>>>>> * <http://wso2.com/>* >>>>>>> lean . enterprise . middleware >>>>>>> >>>>>>> >>>>>>> *cell: (+94) 779 756 757 <%28%2B94%29%20779%20756%20757> | 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>* >>>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> Architecture@wso2.org >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> W.G. Gihan Anuruddha >>>>> Senior Software Engineer | WSO2, Inc. >>>>> M: +94772272595 >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> Architecture@wso2.org >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Lasantha Fernando* >>>> Software Engineer - Data Technologies Team >>>> WSO2 Inc. http://wso2.com >>>> >>>> email: lasan...@wso2.com >>>> mobile: (+94) 71 5247551 >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> Architecture@wso2.org >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> _______________________________________________ >>> Architecture mailing list >>> Architecture@wso2.org >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> *Lasantha Fernando* >> Software Engineer - Data Technologies Team >> WSO2 Inc. http://wso2.com >> >> email: lasan...@wso2.com >> mobile: (+94) 71 5247551 >> >> _______________________________________________ >> Architecture mailing list >> Architecture@wso2.org >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > -- *Lasantha Fernando* Software Engineer - Data Technologies Team WSO2 Inc. http://wso2.com email: lasan...@wso2.com mobile: (+94) 71 5247551
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture