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