On 3/22/2011 5:29 AM,
              ronen hamias wrote:
              
              <stuff deleted>
              
                few questions:
                  i wish to distribute the consumer and
                    provider remotly i dont see how the consumer is
                    aware of its providers location...
                
                
               
              That's what the discovery mechanism if for.
              
                
                
                  1. what methods should i use for dynamic
                    discovery of endpoints?
                
                
               
              ECF has a discovery API that is used for Endpoint
              Discovery, and this API supports multiple providers. 
              There are examples in the hello world consumer (and host)
              of using zeroconf, apache zookeeper, edef (file-based
              discovery).  And there are also ECF discovery providers
              which use dnssd and slp (Service Locator Protocol).
              
              The selection of a discovery provider should be based upon
              your use case...i.e. how is your service going to be
              discovered by clients? (i.e. statically...via edef files,
              or dynamically (via one of the network protocols)...on
              LAN, WAN, or both?...with a server to coordinateservice
              discovery (e.g. zookeeper) or serverless, etc.
              
                
                
                
                  2. what happen if i have 3 instances of my
                    service on 3 diffrent nodes how the consumer will
                    locate these 3 instances and which of them will he
                    invoke?
                
                
               
              This is what the network discovery is for...for
              communicating the meta-information about the remote
              services (i.e. EndpointDescriptions) to the consumers of
              those services (through some means of discovery).  
              
              If your application needs to make some application-level
              decisions about which services (or which remote services)
              to import or invoke then you can implement that in several
              ways...e.g. by having your own service properties, by
              having/using multiple service interfaces (i.e. different
              service types).  You can also control the actual remote
              service import...if you wish...by creating your own
              topology manager...in order to decide (for example), when
              to import a discovered remote service, and when to ignore
              it.
              
              Scott