You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by ant elder <an...@gmail.com> on 2009/11/11 12:53:59 UTC

Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

On Tue, Nov 10, 2009 at 9:38 PM,  <rf...@apache.org> wrote:
> Author: rfeng
> Date: Tue Nov 10 21:38:58 2009
> New Revision: 834683
>
> URL: http://svn.apache.org/viewvc?rev=834683&view=rev
> Log:
> Start to add an Apache ZooKeeper based SCA domain registry
>

What are you thinking about for this? I've no issue with having
multiple impls but as none of the endpoint registry impls have been
finished yet it would be good to work together on getting one that
works well - should that be on this one now?

   ...ant

Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

Posted by ant elder <an...@apache.org>.
On Wed, Nov 11, 2009 at 7:07 PM, Raymond Feng <en...@gmail.com> wrote:
> Two issues here:
>
> 1) ATM, the static route is only visible to the node where the route is
> defined. For some reason, the members added by the static route is not
> propagated to the group membership. I didn't have chance to fix that.
>

Will you get a chance in the near future? I will if you wont but you
know this code far better than me so it would be much quicker if you
debugged it.

   ...ant

Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

Posted by Raymond Feng <en...@gmail.com>.
Two issues here:

1) ATM, the static route is only visible to the node where the route is 
defined. For some reason, the members added by the static route is not 
propagated to the group membership. I didn't have chance to fix that.

2) The static route can be used to add members to the group. But the primary 
purpose of Tribes is multicast/discovery. Multicast is not always possible 
(or easy to configure/use) in an Enterprise environment due to issues such 
as VPN, firewalls and multi-homed machines.

Thanks,
Raymond
--------------------------------------------------
From: "ant elder" <an...@gmail.com>
Sent: Wednesday, November 11, 2009 10:04 AM
To: <de...@tuscany.apache.org>
Subject: Re: svn commit: r834683 - in 
/tuscany/java/sca/modules/endpoint-zookeeper

> On Wed, Nov 11, 2009 at 5:10 PM, Raymond Feng <en...@gmail.com> wrote:
>
>
>>
>> Tribes is simple as multicast is supported by the JDK and no "server" 
>> needs
>> to be started. There are a few down sides though. For example,
>> * It is not very enterprise network friendly
>
> By that are you referring to how it currently only support multicast
> properly not static routes? The other week you said you were going to
> look at fixing the static routes problem, did you do that and find its
> hard to fix?
>
>   ...ant 


Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

Posted by ant elder <an...@gmail.com>.
On Wed, Nov 11, 2009 at 5:10 PM, Raymond Feng <en...@gmail.com> wrote:


>
> Tribes is simple as multicast is supported by the JDK and no "server" needs
> to be started. There are a few down sides though. For example,
> * It is not very enterprise network friendly

By that are you referring to how it currently only support multicast
properly not static routes? The other week you said you were going to
look at fixing the static routes problem, did you do that and find its
hard to fix?

   ...ant

Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

Posted by Raymond Feng <en...@gmail.com>.
I agree. It is a matter of separation of different concerns.

IMO, the registry layer provides the infrastructure to share information 
(like a virtual map). The information can be any metadata that are relevant 
to the SCA domain. We can use that to do different things, such as:

* Share endpoint descriptions and policy definitions for all running 
components in the domain
* Share contributions and composites
* Share node configurations

Both Tribes and ZooKeeper provide such capabilities within their boundaries. 
The registry SPI at this point only deal with endpoints. The same utility 
can be used to build a domain registry that manages 
contributions/composites/nodes.

Thanks,
Raymond
--------------------------------------------------
From: "Simon Laws" <si...@googlemail.com>
Sent: Wednesday, November 11, 2009 9:50 AM
To: <de...@tuscany.apache.org>
Subject: Re: svn commit: r834683 - in 
/tuscany/java/sca/modules/endpoint-zookeeper

> It would be worth discussing what those Tuscany functions might be in
> the context of [1]. Having said this the diagram there is a little
> biased.  I'm concerned that there is a temptation to believe that we
> are either building a distributed domain infrastructure that is
> controlled from a central domain manager (maybe using zookeeper to
> support the distribution) or that has no central point of control
> (maybe using tribes to support the distribution). I think it would
> serve us well if we support both (at the same time technology
> permitting).
>
> I would like to be able to say If I want to add a contribution to a
> specific node and hence directly influence where it will run then
> sure. Maybe I want to do that with a webapp for example. Alternatively
> if I want to add it to a central domain manager and have it pick a
> node for me then that's great too.
>
> I'm advocating that we avoid building registry APIs that are topology
> specific if we can avoid it.
>
> Simon
>
> [1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Domain 


Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

Posted by Simon Laws <si...@googlemail.com>.
It would be worth discussing what those Tuscany functions might be in
the context of [1]. Having said this the diagram there is a little
biased.  I'm concerned that there is a temptation to believe that we
are either building a distributed domain infrastructure that is
controlled from a central domain manager (maybe using zookeeper to
support the distribution) or that has no central point of control
(maybe using tribes to support the distribution). I think it would
serve us well if we support both (at the same time technology
permitting).

I would like to be able to say If I want to add a contribution to a
specific node and hence directly influence where it will run then
sure. Maybe I want to do that with a webapp for example. Alternatively
if I want to add it to a central domain manager and have it pick a
node for me then that's great too.

I'm advocating that we avoid building registry APIs that are topology
specific if we can avoid it.

Simon

[1] http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Domain

Re: svn commit: r834683 - in /tuscany/java/sca/modules/endpoint-zookeeper

Posted by Raymond Feng <en...@gmail.com>.
We have the multicast based Tribes registry working (I got it working with 
OSGi remote services). I'm sure that we need to improve it to cover more use 
cases.

Tribes is simple as multicast is supported by the JDK and no "server" needs 
to be started. There are a few down sides though. For example,
* It is not very enterprise network friendly
* The data cannot be persistent
* No built-in security

ZooKeeper provides a distributed registry with built-in HA across the server 
instances. We can use it for both DomainRegistry (sharing endpoint 
descriptions, policy definitions) and DomainManager (sharing contributions, 
composites and node configurations).

* We can control where the servers are running
* The data can be persistent (and transactional) or transient
* The data are organized as a tree
* ACLs are supported.

The down side is that it's a bit heavy. We need to start at least one 
ZooKeeper server which consumes quite a bit disk space to keep the data.

For the implementations, there are two layers here:
1. Implement the registry using the Tribes/ZooKeeper APIs.
2. Adding Tuscany functions on top of the registry SPI.

I don't think we need more people on 1. Once 1 is implemented, Tuscany 
shouldn't see much difference between Tribes or ZooKeeper from the 
functional perspective. Helps are welcome to enhance 2.

Thanks,
Raymond
--------------------------------------------------
From: "ant elder" <an...@gmail.com>
Sent: Wednesday, November 11, 2009 3:53 AM
To: <de...@tuscany.apache.org>
Subject: Re: svn commit: r834683 - in 
/tuscany/java/sca/modules/endpoint-zookeeper

> On Tue, Nov 10, 2009 at 9:38 PM,  <rf...@apache.org> wrote:
>> Author: rfeng
>> Date: Tue Nov 10 21:38:58 2009
>> New Revision: 834683
>>
>> URL: http://svn.apache.org/viewvc?rev=834683&view=rev
>> Log:
>> Start to add an Apache ZooKeeper based SCA domain registry
>>
>
> What are you thinking about for this? I've no issue with having
> multiple impls but as none of the endpoint registry impls have been
> finished yet it would be good to work together on getting one that
> works well - should that be on this one now?
>
>   ...ant