Next Generation Name Service in 14.06

asked 2014-07-02 02:03:25 -0700

PierreR gravatar image

I've read that the new 14.06 version includes a new featiure (in core) named 'Next Generation Name Service' but I don't find much information about it.

Does it have a specific API or is it simply a change in the underlying implementation that will make things more efficient without any new code on my side (which would mean it does not provide any new feature for an application developer point of view) ?

Also, I'm wondering what is the relation between NGNS and About ?

edit retag flag offensive close merge delete

3 answers

Sort by » oldest newest most voted

answered 2014-07-16 15:42:51 -0700

Ashutosh Aggarwal gravatar image

Let me try to provide some system level design details that are relevant for this discussion. NGNS reflects enhancements done to the AJ discovery and presence framework in 14.06. Lot of design changes are to provide a faster and more reliable message delivery over IP multicast over Wi-Fi which is the primary transport used by AJ applications. Since SLS framework uses IP multicast to send the SLS advertised name, we expect to see improved performance for Announcement, Notifications etc as well.

  • At the API level, impacts are listed here: https://allseenalliance.org/docs/api/cpp/classajn_1_1_bus_attachment.html https://allseenalliance.org/docs/api/cpp/classajn_1_1services_1_1_announcement_registrar.html

    • bus attachment APIs add the functionality to detect presence by the Ping method; all existing discovery APIs will continue to be supported to provide backwards compatibility
    • AnnouncementRegistrar is a helper class enable the Application to register AnnounceHandlers to receive org.alljoyn.about Announce signals. This is extremely valuable since it allows the client to discover specific interfaces.

    • We also migrated to DNS-SD service discovery mechanism (RFC 6763) which relies on multicast DNS (RFC 6762). There are few key points in this adoption: (a) since multicast packet reliability over Wi-Fi could be an issue, we add redundancy in the transmit schedule and rely on unicast responses. The primary performance objective is to provide a reliable and fast discovery protocol (b) we make use of DNS TXT records in the query to narrow down the search context.

    • Presence APIs were added and it is up to the client application to drive the frequency of presence experience. In general, discovery and presence are supposed to be consumer application driven i.e. there is no persistent ongoing equivalent of is-at message. mDNS query and response packets follow a finite transmit schedule when transmitted over mDNS designated multicast IP address. mutlicast mDNS query triggers a unicast response to favor reliability over network traffic.

edit flag offensive delete publish link more

answered 2014-07-02 08:36:39 -0700

PierreR gravatar image

Answer to myself : NGNS is an internal component of the router (used to resolve well-knwon names, as far as I understand it), you do not need and cannot access it directly.

However, since switching to 14.06 things do not work as well as they where before, and I get many IpNameServiceImpl::SameNetwork(): Bad IPv6 network prefix: ER_FAIL errors in the log, I'll create another question about this issue.

edit flag offensive delete publish link more

answered 2014-07-04 07:18:34 -0700

praveenb gravatar image

Additional details of NGNS can be found on Slide 7 of Technical Steering Committee meeting presentation PDF.

Its an enhancement under-the-covers aimed at improving reliability of discovery in general and About announcements specifically. Additionally, it also offers a new API Ping, to query the presence of names (advertised from other routing nodes).

About announcements which are a form of Sessionless signals, are received from one-end-to-another via a combination of discovery and fetching of announcements. NGNS and Sessionless signal related enhancements in 14.06, are aimed at improving the discovery and fetching of announcements, there by increasing signal reception. One experiment that was done in this context is documented here.

edit flag offensive delete publish link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2014-07-02 02:03:25 -0700

Seen: 432 times

Last updated: Jul 16 '14