Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] network discovery and distribution questions related to RFC 119 impl

Hi Carl,

Carl Cook wrote:
Hi Scott (and all others),

Taking a step back from the implementation of RFC 119, are there clear use cases for when dynamic service discovery is of genuine use?

I think so. Actually...to me...the uses of dynamic service discovery are much more obvious and clear than static/file-based discovery...e.g. peer-to-peer services, where peers come and go (as they are likely to do these days with notebooks, phones/IPhones, etc., etc).

There are plenty of examples these days of network services that are published/discovered via network discovery protocols...e.g. iTunes, networked devices (printers, cameras, etc), iPhones/touch, and plenty of other things.

There may well be, and if so, please just disregard this email (!), but after reading the RFC, I saw a clear description of the implementation, but nothing really on the reasons why such a feature is justifiable - without overstepping the mark, I am an advocate of the rule "if you can't use it in three separate contexts, leave it out" :).

I don't think it's a good idea to disregard this email...I think it's a good discussion to have. WRT the three different contexts...my initial set: networked devices, peer-based services, phones/PDAs (I think that's > 3 for each of 3 categories :).


From my experience, static service configuration seems to be the mainstream, although dynamic discovery is useful when you have to deal with versioning of services (where a proxy routes the request to the appropriate implementation based on IP address, application headers, etc). However, this can already be achieved (reasonably well) by UDDI, LDAP/Active Directory, etc.

I agree that static service configuration is the mainstream, but it's also (IMHO) the degenerate case. That is, it fails to recognize the dynamic aspect to networking these days...e.g. depending upon fixed IP addresses and names...as well as assuming a basic asymmetry between 'servers' and 'clients'. But with the rapid growth of network-enabled devices (in particular) I think this is changing.

Although useful for some application and network architectures, I think that UDDI, LDAP/Active Directory are going to be limited to certain types of applications...because of the implicit administration and maintenance requirements (for example...would you run an LDAP server in your home?...well, probably for Carl that's a poor question...but is Carl's grandmother going to run an LDAP server in her home? :).


I like the idea of dynamic service discovery. I can think of all sorts of applications, such as using a Dependency Injection framework (Guice, for example) to instantiate and inject a web service (client side) proxy into an program, where Guice itself has used the discovery framework to locate the web service (a currency conversion service for example if the application is in the financial/trading domain). However, as you point out in your email, there are a lot of hidden caveats to this, such as security, resolution of service conflicts, etc.

Yes. On the whole though...it's my view that the benefits frequently outweigh the risks at the user level...just witness the usage of peer-based services like iTunes sharing and the growth of network-enabled devices.


Am I reading into this RCF correctly, or have I missed the point of the RFC (in particular the dynamic service discovery section)?

I don't think you've missed the point of the RFC. RFC 119 actually has discovery as an optional component...partially, I believe, because the RFC's starting use cases came more from the enterprise computing realm (RFC 119 was done by the Enterprise Experts Group in OSGi Alliance), than for the core experts group or the micro experts group.

I think the network discovery use cases are clear even for enterprise/server-based systems...as to achieve anything close to the level of dynamicity supported by the OSGi service registry, there has to be *some* support for network services that come and go (for whatever reason...e.g. versioning a service...as you suggest).


Do you feel that there are substantial use cases to support the implementation of dynamic service discovery?

Yes, see above. I'm quite confident that there are others who can/could come up with others (Markus, Jan, others?).

Thanks,

Scott




Back to the top