Beyond Discovery Shaun Foley Principal Applications Engineer, RTI.

Slides:



Advertisements
Similar presentations
Running Your Startup on Amazon Web Services Alex Iskold Founder/CEO AdaptiveBlue Feature Writer ReadWriteWeb.
Advertisements

Multi-Mode Survey Management An Approach to Addressing its Challenges
Modelling and Analysing of Security Protocol: Lecture 10 Anonymity: Systems.
Chapter 7 – Object-Oriented Design
22 May 2015Joe Hoffert Quality of Service Configuration DSML for the Data Distribution Service Joe Hoffert
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
NHIN Specifications Richard Kernan, NHIN Specification Lead (Contractor), Office of the National Coordinator for Health IT Karen Witting, Contractor to.
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
David Adams ATLAS DIAL Distributed Interactive Analysis of Large datasets David Adams BNL March 25, 2003 CHEP 2003 Data Analysis Environment and Visualization.
JXTA P2P Platform Denny Chen Dai CMPT 771, Spring 08.
Slide 1 EE557: Server-Side Development Lecturer: David Molloy Room: XG19 Mondays 10am-1pm Notes:
Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory.
Responder Anonymity and Anonymous Peer-to-Peer File Sharing. by Vincent Scarlata, Brian Levine and Clay Shields Presentation by Saravanan.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #13 Web Caching Protocols ICP, CARP.
Internet Networking Spring 2002 Tutorial 13 Web Caching Protocols ICP, CARP.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
Homework 2 In the docs folder of your Berkeley DB, have a careful look at documentation on how to configure BDB in main memory. In the docs folder of your.
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
Service Broker Lesson 11. Skills Matrix Service Broker Service Broker, provides a solution to common problems with message delivery and consistency that.
The chapter will address the following questions:
A global, public network of computer networks. The largest computer network in the world. Computer Network A collection of computing devices connected.
Managing DHCP. 2 DHCP Overview Is a protocol that allows client computers to automatically receive an IP address and TCP/IP settings from a Server Reduces.
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Network Architecture and Protocol Concepts. Network Architectures (1) The network provides one or more communication services to applications –A service.
Chapter 4: Managing LAN Traffic
Cardea Requirements, Authorization Model, Standards and Approach Globus World Security Workshop January 23, 2004 Rebekah Lepro Metz
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
1.View Description 2.Primary Presentation 3.Element Catalog Elements and Their Properties Relations and Their Properties Element Interfaces Element Behavior.
SWIM-SUIT SWIM-SUIT Prototype preliminary architecture Dario Di Crescenzo (Selex SI) 14/05/2008 AP4/SWIM Technical Interchange Meeting (TIM) 1.
Agenda 1.Implementation of CustomerService. CustomerService wrapper SOAP → ESB internal format Abstract → Concrete XML syntax ESB internal format → HTTP.
© 2007 Cisco Systems, Inc. All rights reserved. 1 Network Addressing Networking for Home and Small Businesses – Chapter 5 Darren Shaver – Modified Fall.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
Lec 3: Infrastructure of Network Management Part2 Organized by: Nada Alhirabi NET 311.
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice HP Library Encryption - LTO4 Key.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Apache Synapse The small print
Web Services Based on SOA: Concepts, Technology, Design by Thomas Erl MIS 181.9: Service Oriented Architecture 2 nd Semester,
NetCache Architecture and Deployment Peter Danzig Network Appliance, Santa Clara, CA 元智大學 系統實驗室 陳桂慧
Dr. Azeddine Chikh IS444: Modern tools for applications development.
Virtual techdays INDIA │ august 2010 Deep Dive into WCF 4.0 Features Sarath S S V S │ Program Manager, BING, Microsoft India R&D.
Web: Minimal Metadata for Data Services Through DIALOGUE Neil Chue Hong AHM2007.
ICDL 2004 Improving Federated Service for Non-cooperating Digital Libraries R. Shi, K. Maly, M. Zubair Department of Computer Science Old Dominion University.
ICN and DTN NetInf over BP using BPQ Elwyn Davies Folly Consulting Ltd/Trinity College Dublin or
Communication Paradigm for Sensor Networks Sensor Networks Sensor Networks Directed Diffusion Directed Diffusion SPIN SPIN Ishan Banerjee
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
Authors: Haowei Yuan and Patrick Crowley Publisher: 2013 Proceedings IEEE INFOCOM Presenter: Chia-Yi Chu Date: 2013/08/14 1.
Yallcast Architecture Overview Paul Francis NTT PF Labs
P2PComputing/Scalab 1 Gnutella and Freenet Ramaswamy N.Vadivelu Scalab.
1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Dynamic Host Configuration Protocol (DHCP)
Kemal Baykal Rasim Ismayilov
Registries, ebXML and Web Services in short. Registry A mechanism for allowing users to announce, or discover, the availability and state of a resource:
ASP.NET Web Services.  A unit of managed code installed under IIS that can be remotely invoked using HTTP.
1 Service Creation, Advertisement and Discovery Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February.
Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 17 This presentation © 2004, MacAvon Media Productions Multimedia and Networks.
Information-Centric Networks10b-1 Week 10 / Paper 2 Hermes: a distributed event-based middleware architecture –P.R. Pietzuch, J.M. Bacon –ICDCS 2002 Workshops.
Information-Centric Networks Section # 10.2: Publish/Subscribe Instructor: George Xylomenos Department: Informatics.
Group Communication Theresa Nguyen ICS243f Spring 2001.
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
You there? Yes Network Health Monitoring Heartbeats are sent to monitor health status of network interfaces Are sent over all cluster.
20 February 2016Joe Hoffert Quality of Service Configuration DSML for the Data Distribution Service Joe Hoffert
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
Distributed Handler Architecture (DHArch) Beytullah Yildiz Advisor: Prof. Geoffrey C. Fox.
WREC Working Group IETF 49, San Diego Co-Chairs: Mark Nottingham Ian Cooper WREC Working Group.
Service Description: Addressing & Policy COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Input for issues resolution Antoine Mensch Odonata 16 july 2009.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 6: Planning, Configuring, And Troubleshooting WINS.
Cloud Messaging design
CHAPTER 3 Architectures for Distributed Systems
Presentation transcript:

Beyond Discovery Shaun Foley Principal Applications Engineer, RTI

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?

Topics Unicast Discovery – How can applications discover each other when multicast is unavailable or undesirable? Static Endpoint Discovery User Discovery

Tell Nathan I am in room 205 Angela Hotel Reception Track guests and room numbers. Nathan Where is Angela? Communication established: decide where to meet for beer Angela : room 205 Call room 205

Tell everyone I am address 205 Application A Discovery Proxy A: 205 B: 408 … Application B Where is everyone? Contact 205 Contact 202 Contact 408 … Communication established: Begin app biz-logic Track applications and addresses

Tell everyone I am address 205 Application A 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 Contact proxy at well-known address Call add_peer() on received addresses

athena Domain Participant 0 Domain Participant 1 Domain Participant 2 Domain Participant 3 Domain Participant 4 Remote Participant peer list: peer list: discovery announcements An Implementation Aside: Peer Indices and Addresses

struct PeerEntry { string addr; ulong pidx; }; struct PeerEntry { string addr; sequence pidxs; }; struct PeerEntry { string addr; 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. Apps only care about the highest participant index at a given address:

Discovery Proxy Address 128 Participant Idx 0 Peer Map – published durably Initial peers: Multicast rx addrs: empty Addr PIdx

Application Discovery Proxy Address 128 Participant Idx 1 Address 128 Participant Idx 0 Peer Map – published durably Initial peers: Multicast rx addrs: empty Addr128 PIdx1

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: Multicast rx addrs: empty Addr128 PIdx12

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

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: Multicast rx addrs: empty Addr128 PIdx12

Application Discovery Proxy Address 128 Participant Idx 1 Application Address 128 Participant Idx 2 rtiddsspy Address 1 Participant Idx 0 Address 128 Participant Idx 0 Peer Map – published durably Initial peers: Multicast rx addrs: empty Addr128 1 PIdx120

Topics Unicast Discovery Static Endpoint Discovery – How can I minimize the configuration burden when using RTI Limited Bandwidth Static Discovery Plugins? User Discovery

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

A Participant A sends to initial peers Participant B responds B ~400 bytes, but varies from… -Propagated properties -Entity name -# of Locators R W Exchange DW/DR info Participant A Participant B ~800 bytes, but varies from… -Propagated properties -Entity name -Type description Participant Announcement Endpoint Announcement Why Static Discovery?

Federation with Routing Service Routing Service Fully meshed discovery 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

A Participant A sends to initial peers Participant B responds B Participant A Participant B Endpoint Discovery with Limited Bandwidth Plugins Read LBED configuration to learn about remote participant’s datareaders and datawriters R R W No endpoint data sent on the wire!

Participant X DW A roid 1 DW A roid 1 X X DW B roid 2 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 =... Participant Y DR A roid 3 DR A roid 3 DR B roid 4 DR B roid 4 Look up participant by name “X” B B A A Assert X’s endpoints into discovery database Discovery data: QoS, Type description, … User samples

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

Participant X DW A roid 10 DW A roid 10 X X DW B roid 20 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 =... Participant Y DR A roid 3 DR A roid 3 DR B roid 4 DR B roid 4 Look up participant by name “X” B B A A Assert X’s endpoints into discovery database Discovery data: QoS, Type description, … User samples Who is ROID 10 and 20??? X

Participant X Discovery Monitor Endpoint A X X Endpoint B Participant Y Endpoint C Endpoint D Y Y Collect Builtin Topic data and save to XML file B B A A C C D D Discovery data: QoS, Type description, … Generating LBED Configuration

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

Topics Unicast Discovery Static Endpoint Discovery User Discovery – How does DDS discovery fit into the broader picture of system architecture?

Selective Discovery DDS participants communicate with and store data about all endpoints, even those they do not match. How can we avoid this?

Participant X Discovery Proxy Endpoint A X X User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … C C Endpoint B Participant Y Endpoint C Endpoint D Y Y B B A A Y Y X X Y Y D D process data process metadata Proxied Participant Location normal communication X X

Participant X Discovery Proxy Endpoint A X X Endpoint B Participant Y Endpoint C Endpoint D f(A,B) Y Y process data process metadata Proxied Topic Data - no match scenario B B A A C C D D f(C,D) User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … X X Y Y

Participant X Discovery Proxy Endpoint A X X Endpoint B Participant Y Endpoint C Endpoint D f(A,B) Y Y process data process metadata Proxied Topic Data - match scenario B B A A C C D D f(C,D) normal communication User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … A A C C X X Y Y

Participant X Discovery Proxy Endpoint A X X Endpoint B Participant Y Endpoint C Endpoint D Y Y X X Y Y process data process metadata B B A A C C D D normal communication User data Discovery metadata: Address, DP index, Topic name, … Discovery data: QoS, Type description, … A A B B A A Control Data

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?

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 EffortReliable

Application participant Plugin Userdisc Plugin participant Publication DataWriter Publication DataWriter Subscription DataWriter Publication DataReader Publication DataReader Subscription DataReader Discovery database Bridging Discovery Data to Normal DDS Topics

Application participant Hello Writer Plugin Userdisc Plugin participant Publication DataWriter Publication DataWriter Subscription DataWriter Publication DataReader Publication DataReader Subscription DataReader core calls… afterLocalWriterEnabled Topic: “Hello” key participant_key... Topic: “Hello” key participant_key... Topic: “Hello” key participant_key... Topic: “Hello” key participant_key... call into core… assertRemoteReader

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 “Inherit, not to reuse, but to be reused” 1 1: Sutter and Alexandrescu, C++ Coding Standards

Endpoint Description Key Topic name Type name QoS Type description 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 Published separately Accessible via pub-sub or request-reply Easily reconstructed on other side Today’s way The Right Way

Fin