I am not in favor of implementing demoware which will not work in a production setup. The cumulative maintenance overhead over several years could be massive. From experience we know what a pain such features can be.
On Wed, Jul 6, 2016 at 11:20 AM, Anjana Fernando <anj...@wso2.com> wrote: > Hi everyone, > > We've identified some concerns while doing the implementation. Basically > as Gokul mentioned, he has completed the implementation of this, and when > we are approving a 3'rd party library related to this, Azeez brought up > some concerns on the usefulness of this feature. Basically, the aim of this > was to use it mainly in a demo scenario to set it up quickly. If the demo > scenario is a single machine running multiple instances of the servers, we > can get the zero configuration target by hard coding the hosts and the > proper port offsetted ports by default. So then the other scenario is a > situation when multiple machines are in place in a physical network, but > then the argument is, most probably this will be a not so demo scenario, > and will anyway require other configurations like registry mounting etc.. > and also considering most network infrastructure disable multicasting by > default, this may not work at all. > > While doing the implementation, we identified some of these concerns, and > had some chats with Srinath and all, but we decided to finish the > implementation and see how it will work out anyway. But now, I guess we > should make the final decision on whether we should actually put it in or > not. > > Cheers, > Anjana. > > On Mon, Jul 4, 2016 at 3:52 PM, Gokul Balakrishnan <go...@wso2.com> wrote: > >> Hi all, >> >> I have completed implementation of this component, and the relevant PR >> may be found at [1]. >> >> If I explain the mechanism a bit, an mDNS service is registered for the >> Thrift server (i.e. DAS, CEP or product-analytics distributions), provided >> that a system flag "receiverDiscoveryEnabled" is set. The service will be >> automatically maintained per each network interface found on the server >> node (since as explained above, we cannot infer the network interface(s) >> reachable from outside the node/LAN). >> >> A Thrift client (in this case, the EventStreamService OSGi service which >> is our recommended way of publishing data to DAS/CEP/product-analytics), if >> started with the same flag, is then able to discover the above service, and >> it will resolve the first available Thrift endpoint through multicast DNS. >> Then, its local configuration will be overwritten with the discovered >> Thrift endpoint (with a log printed stating this fact). The client is then >> able to send events to the Thrift server with zero configuration from the >> user's part. >> >> Questions/comments welcome. >> >> Thanks, >> >> [1] https://github.com/wso2/carbon-analytics-common/pull/270 >> >> On 30 June 2016 at 16:49, Gokul Balakrishnan <go...@wso2.com> wrote: >> >>> Sure Srinath. However, prior to committing, there are a few concerns >>> with the approach which I think should be considered: most importantly, how >>> we should resolve the hostname/IP of the Thrift server. Currently, the >>> Thrift server is set to listen to all interfaces for incoming connections >>> (0.0.0.0), whether valid or not. This is to overcome the earlier issues >>> we've had where the Thrift server would bind to the first Network interface >>> it found. >>> >>> On the server side, we will need to initialize the service discovery to >>> a specific network interface which is also capable of accepting Thrift >>> connections. The issue is that it's not possible to always guarantee that >>> this interface is reachable from outside the local machine or LAN. For >>> instance, the IP that we've bound to the multicast service could be from a >>> virtual network interface. Normally, within a single node, this will not >>> pose an issue, but overcoming this issue in a multi-node environment will >>> mean maintaining a configuration which points to the correct IP which could >>> accept incoming Thrift connections from outside the node (since we can't >>> infer this information from the Thrift server, as it's already bound to ALL >>> interfaces). This of course will negate our goal of zero configuration. >>> >>> The alternative is to let the analytics (server) node provide the list >>> of ALL its network interfaces to the client and the client then going >>> through them one by one to try and create a socket connection, to see if >>> one or more them is accepting Thrift connections. This is not desirable due >>> to obvious reasons. >>> >>> How shall we proceed? >>> >>> Thanks, >>> >>> On 30 June 2016 at 08:52, Srinath Perera <srin...@wso2.com> wrote: >>> >>>> Thanks, sound good. Please do ASAP. We are at beta, so too late even >>>> now. >>>> >>>> --Srinath >>>> >>>> On Thu, Jun 30, 2016 at 8:09 AM, Gokul Balakrishnan <go...@wso2.com> >>>> wrote: >>>> >>>>> Hi Srinath, >>>>> >>>>> As per our offline chat earlier, the initial plan is to locate >>>>> the Thrift endpoint through mDNS service discovery, considering the host >>>>> and port first. >>>>> >>>>> I have used the JmDNS library pointed by Nirmal to do a PoC on this >>>>> scenario, and I've also already incorporated the logic into the databridge >>>>> Thrift server to enable service registration through a system property the >>>>> users could set (-DenableDiscovery). The corresponding client code goes >>>>> into the publisher OSGi service initialisation. This too is controllable >>>>> by >>>>> the same system property the user could set on the Thrift client (which >>>>> will be the product talking to DAS/CEP). >>>>> >>>>> I'm doing some testing on the entire scenario, and once completed, >>>>> I'll commit the changes into the relevant repos and send an update to this >>>>> thread. >>>>> >>>>> Thanks, >>>>> >>>>> >>>>> On Thursday, 30 June 2016, Srinath Perera <srin...@wso2.com> wrote: >>>>> >>>>>> Resending as it hits a filter rule. >>>>>> >>>>>> Gokul, please give an update on this? >>>>>> >>>>>> --Srinath >>>>>> >>>>> >>>>> >>>>> -- >>>>> Gokul Balakrishnan >>>>> Senior Software Engineer, >>>>> WSO2, Inc. http://wso2.com >>>>> M +94 77 5935 789 | +44 7563 570502 >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> ============================ >>>> Srinath Perera, Ph.D. >>>> http://people.apache.org/~hemapani/ >>>> http://srinathsview.blogspot.com/ >>>> >>> >>> >>> >>> -- >>> Gokul Balakrishnan >>> Senior Software Engineer, >>> WSO2, Inc. http://wso2.com >>> M +94 77 5935 789 | +44 7563 570502 >>> >>> >> >> >> -- >> Gokul Balakrishnan >> Senior Software Engineer, >> WSO2, Inc. http://wso2.com >> M +94 77 5935 789 | +44 7563 570502 >> >> > > > -- > *Anjana Fernando* > Senior Technical Lead > WSO2 Inc. | http://wso2.com > lean . enterprise . middleware > -- *Afkham Azeez* Director of Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>* *email: **az...@wso2.com* <az...@wso2.com> * cell: +94 77 3320919blog: **http://blog.afkham.org* <http://blog.afkham.org> *twitter: **http://twitter.com/afkham_azeez* <http://twitter.com/afkham_azeez> *linked-in: **http://lk.linkedin.com/in/afkhamazeez <http://lk.linkedin.com/in/afkhamazeez>* *Lean . Enterprise . Middleware*
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture