Difference between revisions of "NCS: Message Transfer Systems"

From Murray Wiki
Jump to navigationJump to search
 
(14 intermediate revisions by 2 users not shown)
Line 4: Line 4:


== Lecture Materials ==
== Lecture Materials ==
* [[Media:L1-1_mta.pdf|Lecture: Message Transfer Architectures]]
* [[Media:L1-3_spread.pdf|Lecture: Message Transfer Systems]]


== Reading ==
== Reading ==
* <p>[http://www.cnds.jhu.edu/pub/papers/spread.pdf The Spread Wide Area Group Communication System], Y. Amir and J. Stanton.  Technical Report CNDS-98-4, The Center for Networking and Distributed Systems, The Johns Hopkins University, 1998.  The paper provides a detailed technical description of how [[spread]] works.  It is mainly useful if you want to know more about what [[spread]] does.  Requires some background in network protocols if you want to understand the details. </p>
* <p>[http://portal.acm.org/citation.cfm?id=359563 Time, clocks, and the ordering of events in a distributed system], L. Lamport. ''Communications of the ACM'', 21(7):558-565, 1978.  This is a classic paper on ordering of messages in distributed systems.  A must read for distributed systems.  </p>
* <p>[http://portal.acm.org/citation.cfm?coll=GUIDE&dl=GUIDE&id=37515 Exploiting virtual synchrony in distributed systems], K. Birman and T. Joseph. ACM Symposium on Operating Systems Principles, 1987.  This paper gives a nice overview of some of the problems in group messaging systems and is one of the sets of papers that motivated the work that lead to [[Spread]].</p>
*<p>[http://www.spread.org/docs/guide/users_guide.pdf A Users Guide to Spread], J. Stanton. 2002.  This is the documentation for the [http://www.spread.org Spread Toolkit].  The first and second chapters provide most of the information you need to understand the basic ideas, although the way in which [[Spread]] servers are configured, described in Chapter 3, is also useful.</p>
* <p>[http://www.cnds.jhu.edu/pub/papers/spread.pdf The Spread Wide Area Group Communication System], Y. Amir and J. Stanton.  Technical Report CNDS-98-4, The Center for Networking and Distributed Systems, The Johns Hopkins University, 1998.  The paper provides a detailed technical description of how [[Spread]] works.  It is mainly useful if you want to know more about what [[spread]] does.  Requires some background in network protocols if you want to understand the details. </p>
 
* <p>[http://www.cnds.jhu.edu/pub/papers/hop_ftcs2000.pdf A Low Latency, Loss Tolerant Architecture and Protocol for Wide Area Group Communication], Yair Amir, Claudiu Danilov, and Jonathan Stanton.  International Conference on Dependable Systems and Networks (DSN00), New York, New York, June 25-28, 2000. The paper is similar to the one above but with more technical details. </p>


== Additional Resources ==
== Additional Resources ==
<!-- Links to additional information. If there are good sources of additional information for students interested in exploring this topic further, these should go at the bottom of the page. -->
* [http://www.spread.org Spread Toolbox] - The Spread Wide Area Group Communication System
* [http://www.isd.mel.nist.gov/projects/rcslib/NMLcpp.html  Neutral Message Language (NML) Programmers Guide] - part of the NIST [http://www.isd.mel.nist.gov/projects/rcslib/ Realtime Control System] library
* [http://roboflag.mae.cornell.edu/Documentation.html RoboFlag documentation] - includes discussion of how RoboFlag network communications are implemented
 
== Project Ideas==
* Modify the Spread protocol such that it can deal with the following situation. For typical control applications, most recent data is more important than the old data. Imagine that a process needs three packets, m1, m2 and m3, where m1 is older than m2 and m2 is older than m3. Suppose that m2 is missing, then the process should '''only''' request for this packet on the condition that m3 is not received yet. Current version of Spread has not addressed this issue yet.

Latest revision as of 05:14, 3 April 2006

Prev: Alice Intro Course Home Next: Pthreads

This lecture describes different choices for message transfer systems in a networked control system. The message transfer system is responsible for managing network communications between computers and software modules with the control system. We focus on systems that are build on top of the TCP/IP protocol stack. Design choices include how to encode information in packets, whether to broadcast or send packets point-to-point, and whether to retransmit packets on lost data transmission. Because of the closed loop nature of the networked embedded systems that we are programming, timing and latency are critical issues. We focus on the use of spread as a specific example of a low-level message transfer subsystem and describe how it can be used in a NCS context.

Lecture Materials

Reading

  • Time, clocks, and the ordering of events in a distributed system, L. Lamport. Communications of the ACM, 21(7):558-565, 1978. This is a classic paper on ordering of messages in distributed systems. A must read for distributed systems.

  • Exploiting virtual synchrony in distributed systems, K. Birman and T. Joseph. ACM Symposium on Operating Systems Principles, 1987. This paper gives a nice overview of some of the problems in group messaging systems and is one of the sets of papers that motivated the work that lead to Spread.

  • A Users Guide to Spread, J. Stanton. 2002. This is the documentation for the Spread Toolkit. The first and second chapters provide most of the information you need to understand the basic ideas, although the way in which Spread servers are configured, described in Chapter 3, is also useful.

  • The Spread Wide Area Group Communication System, Y. Amir and J. Stanton. Technical Report CNDS-98-4, The Center for Networking and Distributed Systems, The Johns Hopkins University, 1998. The paper provides a detailed technical description of how Spread works. It is mainly useful if you want to know more about what spread does. Requires some background in network protocols if you want to understand the details.

Additional Resources

Project Ideas

  • Modify the Spread protocol such that it can deal with the following situation. For typical control applications, most recent data is more important than the old data. Imagine that a process needs three packets, m1, m2 and m3, where m1 is older than m2 and m2 is older than m3. Suppose that m2 is missing, then the process should only request for this packet on the condition that m3 is not received yet. Current version of Spread has not addressed this issue yet.