Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Approaches for Mitigating Discovery Problems in Larger Systems

2,020 views

Published on

Approaches for Mitigating Discovery Problems in Larger Systems – Presentation by Shaun Foley, Principal Applications Engineer, RTI

Published in: Technology
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... ,DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ,DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ,DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ,DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ,DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ,DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Approaches for Mitigating Discovery Problems in Larger Systems

  1. 1. Beyond Discovery Shaun Foley Principal Applications Engineer, RTI
  2. 2. Topics • Unicast Discovery – How can applications discover each other when multicast is unavailable or undesirable? • Static Endpoint Discovery – How can I minimize the configuration burden when using RTI Limited Bandwidth Static Discovery Plugins? • User Discovery – How does DDS discovery fit into the broader picture of system architecture?
  3. 3. Topics • Unicast Discovery – How can applications discover each other when multicast is unavailable or undesirable? • Static Endpoint Discovery • User Discovery
  4. 4. Angela Tell Nathan I am in room 205 Hotel Reception Track guests and room numbers. Nathan Where is Angela? Angela : room 205 Communication established: decide where to meet for beer Call room 205
  5. 5. Application A Tell everyone I am address 205 Discovery Proxy A: 205 B: 408 … Application B Where is everyone? Contact 205 Contact 202 Contact 408 … Track applications and addresses Communication established: Begin app biz-logic
  6. 6. Application A Contact proxy at well-known address Tell everyone I am address 205 Discovery Proxy A: 205 B: 408 … Application B Where is everyone? Contact 205 Contact 202 Contact 408 … Track applications and addresses Contact proxy at well-known address Communication established: Begin app biz-logic Call add_peer() on received addresses
  7. 7. An Implementation Aside: Peer Indices and Addresses athena Domain Participant 0 Domain Participant 1 Domain Participant 2 Domain Participant 3 Domain Participant 4 Remote Participant peer list: 3@athena Remote Participant peer list: 1@athena discovery announcements
  8. 8. Apps only care about the highest participant index at a given address: add_peer(“2@192.168.44.1”); remove_peer(“2@192.168.44.1”); struct PeerEntry { string addr; //@key ulong pidx; //@key }; struct PeerEntry { string addr; //@key sequence<ulong> pidxs; }; struct PeerEntry { string addr; //@key ulong max_pidx; }; Data Types Publishes unneeded data. Resource limits depend on # of expected DPs on node. Must choose arbitrary sequence bound. Last value cache. Relies on idempotent add_peer(). Only removes peer when last DP on machine dies.
  9. 9. Discovery Proxy Address 128 Participant Idx 0 Peer Map – published durably Initial peers: 0@128 Multicast rx addrs: empty Addr PIdx
  10. 10. Application Discovery Proxy Address 128 Participant Idx 1 Address 128 Participant Idx 0 Peer Map – published durably Initial peers: 0@128 Multicast rx addrs: empty 128 1 Addr 128 PIdx 1
  11. 11. Application Discovery Proxy Address 128 Participant Idx 1 Application Address 128 Participant Idx 2 Address 128 Participant Idx 0 Peer Map – published durably Initial peers: 0@128 Multicast rx addrs: empty 128 1 128 2 Addr 128 128 PIdx 1 2
  12. 12. Application Discovery Proxy Normal application functions Contact proxy at well-known address When proxy tells us about new applications, call add_peer() proxy_client.h Three lines of code to change normal application to use unicast discovery proxy
  13. 13. Application Discovery Proxy Address 128 Participant Idx 1 Application Address 128 Participant Idx 2 Address 128 Participant Idx 0 Peer Map – published durably Initial peers: 0@128 Multicast rx addrs: empty 128 1 128 2 Addr 128 128 PIdx 1 2
  14. 14. Application Discovery Proxy Address 128 Participant Idx 1 Application Address 128 Participant Idx 2 Address 128 Participant Idx 0 Peer Map – published durably rtiddsspy Address 1 Participant Idx 0 Initial peers: 0@128 Multicast rx addrs: empty 128 1 1 0 128 2 Addr 128 128 1 PIdx 1 2 0
  15. 15. Topics • Unicast Discovery • Static Endpoint Discovery – How can I minimize the configuration burden when using RTI Limited Bandwidth Static Discovery Plugins? • User Discovery
  16. 16. Why Static Discovery? • Unicast Discovery • Static Endpoint Discovery – How can I minimize the configuration burden when using RTI Limited Bandwidth Static Discovery Plugins? • User Discovery
  17. 17. Why Static Discovery? Participant A Participant B A Participant A sends to initial peers Participant B responds B Participant Announcement ~400 bytes, but varies from… - Propagated properties - Entity name - # of Locators R W Exchange DW/DR info Endpoint Announcement ~800 bytes, but varies from… - Propagated properties - Entity name - Type description
  18. 18. Federation with Routing Service Fully meshed discovery Routing Service within cluster Routing Service Routing Services act as gateways for cluster • May be difficult to choose meaningful clusters • All cross-cluster traffic passes through Routing Services
  19. 19. Endpoint Discovery with Limited Bandwidth Plugins Participant A Participant B A Participant A sends to initial peers Participant B responds B Read LBED configuration to learn about remote participant’s datareaders and datawriters R W R No endpoint data sent on the wire!
  20. 20. DW A roid 1 Participant X X DW B roid 2 LBED Configuration participant name = “Y” reader rtps_object_id = 3 topic_name = A qos = ... reader rtps_object_id = 4 topic_name = B qos = ... participant name = “X” writer rtps_object_id = 1 topic_name = A qos = ... writer rtps_object_id = 2 topic_name = B qos = ... DR A roid 3 DR B roid 4 Participant Y Look up participant by name “X” A B Assert X’s endpoints into discovery database Discovery data: QoS, Type description, … User samples
  21. 21. Configuration Challenges • Applications do not use the LBED configuration to create DDS entities • Actual configuration and LBED configuration must remain synchronized • DDS relies on each datawriter or datareader to have a unique object ID • Object ID assignment must be deterministic – If created serially: maintain DW/DR count – If created in parallel: hash topic name
  22. 22. DW A roid 10 Participant X X DW B roid 20 LBED Misconfiguration participant name = “Y” reader rtps_object_id = 3 topic_name = A qos = ... reader rtps_object_id = 4 topic_name = B qos = ... participant name = “X” writer rtps_object_id = 1 topic_name = A qos = ... writer rtps_object_id = 2 topic_name = B qos = ... DR A roid 3 DR B roid 4 Participant Y Look up participant by name “X” A B Assert X’s endpoints into discovery database X Who is ROID 10 and 20??? Discovery data: QoS, Type description, … User samples
  23. 23. Generating LBED Configuration Participant X Discovery Monitor Endpoint A Endpoint B X Endpoint C Endpoint D Participant Y Y Collect Builtin Topic data and save to XML file A B C D Discovery data: QoS, Type description, …
  24. 24. Two Steps to Use LBED Configuration • Tell applications to use load LB plugins • Select previously generated LBED configuration • These can be set in participant QoS section via XML
  25. 25. Topics • Unicast Discovery • Static Endpoint Discovery • User Discovery – How does DDS discovery fit into the broader picture of system architecture?
  26. 26. Selective Discovery • DDS participants communicate with and store data about all endpoints, even those they do not match. • How can we avoid this?
  27. 27. Endpoint B Participant X Discovery Proxy Endpoint A X C User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … Endpoint C Endpoint D Participant Y Y B A Y X Y D process data process metadata process metadata Proxied Participant Location normal communication X
  28. 28. Participant X Discovery Proxy Endpoint A X Endpoint B Endpoint C Endpoint D Participant Y f(A,B) Y process data process metadata process metadata Proxied Topic Data - no match scenario B A C D f(C,D) X Y User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, …
  29. 29. Participant X Discovery Proxy Endpoint A X Endpoint B Endpoint C Endpoint D Participant Y f(A,B) Y process data process metadata process metadata Proxied Topic Data - match scenario B A C D f(C,D) normal communication User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … A C X Y
  30. 30. Participant X Discovery Proxy Endpoint A X Endpoint B Y A Control Endpoint C Endpoint D Participant Y X Y process data process metadata process metadata B A C D A normal communication User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … B Data
  31. 31. Discovery Control • Control information need not be distributed the same way as data – LBED plugin uses files to describe endpoints, DDS to communicate – WSDL to describe services, SOAP to communicate – DNS to find, {HTTP, DDS, … } to communicate • How can we maximize control plane flexibility?
  32. 32. Discovery Data • Fixed data type – Necessary for DDS interoperability • Uses [internal] DDS writers and readers • Has associated QoS Participant Built-in Data Reader Publication Built-in Data Writer Subscription Built-in Data Reader Participant Built-in Data Writer Subscription Built-in Data Writer Publication Built-in Data Reader Participant Built-in Data Reader Publication Built-in Data Writer Subscription Built-in Data Reader Participant Built-in Data Writer Subscription Built-in Data Writer Publication Built-in Data Reader Best Effort Reliable
  33. 33. Bridging Discovery Data to Normal DDS Topics Application participant Plugin Userdisc Plugin participant Publication DataWriter Subscription DataWriter Publication DataReader Subscription DataReader Discovery database
  34. 34. Application participant Hello Writer Plugin Userdisc Plugin participant Publication DataWriter Publication DataReader Subscription DataWriter Subscription DataReader core calls… afterLocalWriterEnabled Topic: “Hello” key participant_key ... Topic: “Hello” key participant_key ... call into core… assertRemoteReader
  35. 35. “Inherit, not to reuse, but to be reused” 1 • Routing Service – System federation and bridging – Interacting with non-DDS data – Mediation and transformation • Recording and Replay Services • Persistence Service – Implement DDS durability – Build more complex messagine on top of DDS • User code – Infrastructure frameworks, programmer familiarity 1: Sutter and Alexandrescu, C++ Coding Standards
  36. 36. Endpoint Description Key Topic name Type name QoS Type description Today’s way Does not change for static discovery Unused by 95% of applications Endpoint Header Key Topic name Type name Endpoint QoS Key QoS reference or data Endpoint Type Key Type description The Right Way Published separately Accessible via pub-sub or request-reply Easily reconstructed on other side
  37. 37. Fin

×