It is cumbersome to have two clustering APIs; one from Axis2 & one from Carbon. There are redundant methods, and conflicting stuff. This is why I was thinking about bringing in only a Carbon based API for this release. So, until the next release, I am not planning to continue further work on the Carbon clustering API.
Azeez On Thu, Jul 4, 2013 at 1:01 PM, Anjana Fernando <[email protected]> wrote: > Hi Azeez, > > I guess, we got the cluster domains and the Group concept confused here. > Anyways, yeah, I agree, if this is only a generic API, there doesn't need > to have the Group concept here. The low level operations would be fine. We > can perhaps build on those to create the Group features. But here, we maybe > getting similar functionality we will need with the "ClusterMessage" > interface I guess. > > So what I basically asked earlier was, how we are receiving the message to > a node, earlier in my Group example, we have a separate interface, the > GroupEventListener interface, which has a callback, which is being called > when a message is coming to the group. I guess this is not the approach > you're using, rather, the same approach we had in the old clustering API, > which was, the same "ClusterMessage" object's some method would be > automatically called, when a message comes in, which is actually more > convenient. So with this approach, we will not have to do our own routing > of the messages, and a specific ClusterMessage implementation will have its > own application, e.g. Tasks component's messages. So anyhow, if I > understood it correctly, we should be able to get our requirement fulfilled > also without much trouble. > > Also, since you mentioned the response for a message, in the earlier > clustering API, we did have a way to get the response right directly? .. > without going through an asynchronous mechanism like what you suggested > here. Basically, we need the requirement to do RPC style invocations, that > is returning a response immediately by blocking the callee. Or else, this > would be a bit hard to implement for some scenarios in an async way. > > And just for the clarification, can you put the definition of the > "ClusterMessage" interface here. > > Cheers, > Anjana. > > > On Thu, Jul 4, 2013 at 12:13 PM, Afkham Azeez <[email protected]> wrote: > >> One member joining multiple groups is not something that is generally >> done. This means that such a node is a member of multiple clusters. >> However, even in the WSO2 clustering design, we have special members who >> are group management agents, who join multiple groups for special purposes. >> ELB is such a member. However, we cannot make that generic where a node >> joins multiple clusters. Looks like this is something specific to your use >> case, and such specific requirements cannot be incorporated into a generic >> API. >> >> Message sending between members is not an issue; the API will allow you >> to send it to either a selected group of members or the cluster (all >> members). If you are expecting a response to a message, then there needs to >> be some correlation logic which will correlate the response to the request. >> For such a case, we need each message to carry a UUID. >> >> Azeez >> >> Azeez >> >> >> On Thu, Jul 4, 2013 at 12:06 PM, Anjana Fernando <[email protected]> wrote: >> >>> Hi Azeez, >>> >>> In your solution, how would a specific member be joining a group, that >>> is how will he part of a specific cluster domain, and then basically, how >>> will he be receiving messages destined for him, either direct peer-to-peer >>> ones or broadcast messages. >>> >>> Cheers, >>> Anjana. >>> >>> >>> On Wed, Jul 3, 2013 at 7:37 PM, Afkham Azeez <[email protected]> wrote: >>> >>>> >>>> >>>> >>>> On Sun, Jun 23, 2013 at 7:38 PM, Manoj Kumara <[email protected]> wrote: >>>> >>>>> Hi Azeez, >>>>> >>>>> +1 for the approach. >>>>> >>>>> As we discussed the concept of Group will be useful during >>>>> the implementation of 'Operations Center'. Based on current requirements >>>>> what we need is to discover the members of the group and to send cluster >>>>> messages to selected set of members. I think it will be possible with the >>>>> requirements given by Anjana. >>>>> >>>> >>>> In the case of Operations Center, it is not part of any cluster & sits >>>> outside. So the group in OC will be separate from the clustering API. >>>> Actually, OC will not be using the clustering API, but the manager nodes in >>>> each cluster will be using this API. >>>> >>>> >>>>> >>>>> Thanks, >>>>> Manoj >>>>> >>>>> Best Regards.. >>>>> >>>>> >>>>> Manoj Kumara >>>>> Software Engineer >>>>> WSO2, Inc.; http://wso2.com >>>>> >>>>> Twitter: http://twitter.com/ManKuma >>>>> Mobile: +94713448188 >>>>> >>>>> >>>>> On Sun, Jun 23, 2013 at 10:36 AM, Anjana Fernando <[email protected]>wrote: >>>>> >>>>>> Hi Azeez, >>>>>> >>>>>> We basically need a concept of a Group, where we can discover members >>>>>> of that specific group, send messages between peers, send broadcast >>>>>> messages to all the members, and also get group member notifications, >>>>>> such >>>>>> as a member arriving to a group, and a member leaving. >>>>>> >>>>>> A single server should be able to join multiple Groups basically, >>>>>> with a given name, I guess this is the same concept of domains we have in >>>>>> the current clustering API. This is required when a single server can act >>>>>> multiple roles, so a server can join the groups it require. >>>>>> >>>>>> Also another requirement that is needed is, we need to be notified >>>>>> when a specific group acquires a specific number of group members. This >>>>>> can >>>>>> be either implemented using a blocking method (with a timeout possibly) >>>>>> which waits for a specific number of members to arrive, or by >>>>>> registering a >>>>>> callback. This type of functionality is required for a scenario like, >>>>>> when >>>>>> scheduling tasks, we need a specific number of servers to be startup up, >>>>>> to >>>>>> spread the tasks throughout the cluster, without giving all the tasks to >>>>>> the 1'st server that starts up, I'm sure, this requirement would arise >>>>>> for >>>>>> other components also. >>>>>> >>>>>> Please check for the Group API ([1],[2] I've created for the >>>>>> coordination component to get the above functionality (ignore the >>>>>> "clearGroupMessages" method there). There, in [2], for "onPeerMessage", I >>>>>> guess it's useful for us to get the member id who would have sent the >>>>>> message. Same for "onGroupMessage", and also, there we could possibly >>>>>> return a result from that node, and give a accumulated result to the >>>>>> sender, which I guess we already do in the current clustering API. >>>>>> >>>>>> [1] >>>>>> https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.0.0/components/coordination/org.wso2.carbon.coordination.core/4.0.5/src/main/java/org/wso2/carbon/coordination/core/sync/Group.java >>>>>> [2] >>>>>> https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.0.0/components/coordination/org.wso2.carbon.coordination.core/4.0.5/src/main/java/org/wso2/carbon/coordination/core/sync/GroupEventListener.java >>>>>> >>>>>> Cheers, >>>>>> Anjana. >>>>>> >>>>>> >>>>>> On Sun, Jun 23, 2013 at 9:50 AM, Afkham Azeez <[email protected]> wrote: >>>>>> >>>>>>> Folks, >>>>>>> Please let me know through this mail thread if you require any new >>>>>>> clustering APIs. It would be good if you could give the required >>>>>>> method signature or describe the scenarios you need to be covered. >>>>>>> >>>>>>> Azeez >>>>>>> >>>>>>> -- >>>>>>> Afkham Azeez >>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>>> >>>>>>> email: [email protected] cell: +94 77 3320919 >>>>>>> blog: http://blog.afkham.org >>>>>>> twitter: http://twitter.com/afkham_azeez >>>>>>> linked-in <http://twitter.com/afkham_azeezlinked-in>: >>>>>>> http://lk.linkedin.com/in/afkhamazeez >>>>>>> >>>>>>> Lean . Enterprise . Middleware >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Anjana Fernando* >>>>>> 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: **[email protected]* <[email protected]>* cell: +94 77 3320919 >>>> blog: **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* >>>> * >>>> * >>>> *Lean . Enterprise . Middleware* >>>> >>> >>> >>> >>> -- >>> *Anjana Fernando* >>> 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: **[email protected]* <[email protected]>* cell: +94 77 3320919 >> blog: **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* >> * >> * >> *Lean . Enterprise . Middleware* >> > > > > -- > *Anjana Fernando* > 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: **[email protected]* <[email protected]>* cell: +94 77 3320919 blog: **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* * * *Lean . Enterprise . Middleware*
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
