CS 590E: Distributed Programming, Spring 2007
Class description
Writing programs which will run over a set of physically distributed processors is inherently hard, as one has to deal with latency and failures of both processors and communication -- basically the fact that it takes two to tango.
Most industrial applications developed nowadays involve some form of remote interaction. However, these applications are still mostly built in ad-hoc style, i.e., as sets of logical components, which are then somehow glued together. This provides little reliability in the presence of latency and failures.
The impact of latency and failures increases even further in loosely connected architectures, such as wireless networks with peer or client mobility.
This seminar will focus on models, abstractions, languages, and systems for programming distributed applications. This will integrate several exciting fields of research, such as programming languages, middleware, reflection, and component technologies, as well as more theoretical foundations such as process algebra, or distributed algorithms.
Main topic
The coarse topic for this seminar is described above. In addition, this seminar will have a more specific focus, namely distributed event-based programming. We will investigate the benefits and feasibility of asynchronous event-based programming models for various network types, including the Internet but also sensor and wireless networks.
Advisor
Schedule
Tue & Thu 4:30-5:45pm REC 122
Grading
15% Activity in class
25% Reports
60% Project
Reading will be assigned for each lecture. Before lecture, every student must submit a one page report of one of the assigned papers (report should contain a one paragraph summary of the paper, description of three strong points of the paper and three weak points of the paper). The reports are due every Tuesday at 2:30PM, by email (text only).
One of the goal of the classes is to compile a survey article on distributed event-based models, systems, and programming support. Every student will be assigned a section.
Below is a tentative schedule. Not all papers will be read/discussed.
| Week | Topics and assigned readings |
| Jan 8 - Jan 12 |
Course outline,
foundations of events about: L. Lamport. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, 21(7):558565, July 1978. F. Mattern. Virtual Time and Global States of Distributed Systems, In Proceedings of the International Workshop on Parallel and Distributed Algorithms (WDPA89), Elsevier, 1989. |
| Jan 15 - Jan 19 |
More foundations of events F.J. Torres-Rojas and M. Ahamad, Plausible Clocks: Constant Size Logical Clocks for Distributed Systems. In Workshop on Distributed Algorithms, pages 71-88, 1996. A. Gidenstam and M. Papatriantafilou. Adaptive Plausible Clocks. In 24th International Conference on Distributed Computing Systems (ICDCS 2004), pages 86-93, Mar. 2004. Pub/sub foundations (easy reads, not discussed in class) B. Oki and M. Pfluegl and A. Siegel and D. Skeen, The Information Bus - An Architecture for Extensible Distributed Systems. In Proceedings of the Fourteenth ACM Symposium on Operating System Principles (SOSP'93), pages 58-68, Dec. 1993. P. Eugster, P. Felber, R. Guerraoui, and A.-M. Kermarrec. The Many Faces of Publish/Subscribe. ACM Computing Surveys, 35(2):114131, June 2003. Complexity and expressiveness A. Carzaniga, D. Rosenblum, and A. Wolf. Achieving Scalability and Expressiveness in an Internet-Scale Event Notification Service. In Proceedings of the 19th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC 2000), pages 219227, July 2000. M. Aguilera, R. Strom, D. Sturman, M. Astley, and T. Chandra. Matching Events in a Content-Based Subscription System. In Proceedings of the 18th ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC 99), pages 5362, Nov. 1999. |
| Jan 22 - Jan 26 |
Probabilistic event propagation in wired settings S. Baehni, P. Eugster, and R. Guerraoui. Data-Aware Multicast. In Proceedings of the 5th IEEE International Conference on Dependable Systems and Networks (DSN 2004), pages 233242, June 2004. P. Eugster and R. Guerraoui. Probabilistic Multicast. In Proceedings of the 3rd IEEE International Conference on Dependable Systems and Networks (DSN 2002), pages 313323, June 2002. P. Costa, M. Migliavacca, G.P. Picco, and G. Cugola. Epidemic Algorithms for Reliable Content-Based Publish-Subscribe: An Evaluation. In Proceedings of the 24th IEEE International Conference on Distributed Computing Systems (ICDCS 04), pages 552561, March 2004. P. Costa and G.P. Picco. Semi-probabilistic Content-based Publish/Subscribe. In 25th IEEE International Conference on Distributed Computing Systems (ICDCS05), pages 575585, June 2005. P. Eugster, R. Guerraoui, S.B. Handurukande, A.-M. Kermarrec, and P. Kouznetsov. Lightweight Probabilistic Broadcast. ACM Transactions on Computer Systems, 21(4):341374, November 2003. |
| Jan 29 - Feb 2 |
Language support L. Fiege, M. Mezini, G. Muhl and P. Buchmann: Engineering Event-Based
Systems with Scopes. In Proceedings of the 16th European M. Haahr, R. Meier, P. Nixon, V. Cahill, and E. Jul. Filtering and Scalability in the ECO Distributed Event Model. In Proceedings of the 5th IEEE International Symposium on Software Engineering for Parallel and Distributed Systems (PDSE 2000), pages 8392, June 2000. K. Lee, A. LaMarca, and C. Chambers. HydroJ: Object-oriented Pattern Matching for Evolvable Distributed Systems. In Proceedings of the 18th Annual ACM Conference on Object-oriented Programming Systems Languages and Applications (OOPSLA 2003), pages 205223, Oct. 2003. P. Eugster. Type-based Publish/Subscribe: Concepts and Experiences (to appear). ACM Transactions on Programming Languages and Systems, Jan. 2007. |
| Feb 5 - Feb 9. |
Pub/sub and event routing in wireless settings R. Baldoni, R. Beraldi, G. Cugola, M. Migliavacca, and L. Querzoni. Structure-less Content-based Routing in Mobile Ad Hoc Networks. In IEEE International Conference on Pervasive Services 2005 (ICPS05), pages 3746, July 2005. L. Fiege, F.C. G¨artner, O. Kasten, and A. Zeidler. Supporting Mobility in Content-based Publish/Subscribe Middleware. In 4th ACM/IFIP/USENIX International Middleware Conference(Middleware 2003), pages 103122, June 2003. Y. Huang and H. Garcia-Molina. Publish/Subscribe Tree Construction in Wireless Ad-Hoc Networks. In Proceedings of the 4th International Conference on Mobile Data Management (MDM 2003), pages 122140, January 2003. R. Meier and V. Cahill. Steam: Event-based middleware for wireless ad hoc networks. In Proceedings of the International Workshop on Distributed Event-based Systems (DEBS 2002), 2002. E. Yoneki and J. Bacon. Distributed Multicast Grouping for Publish/Subscribe over Mobile Ad Hoc Networks. In Proceedings of the IEEE Wireless Communications and Networking Conference (WCNC05), March 2005. |
| Feb 12 - Feb 16 |
Events and invocations N. Benton and L.
Cardelli and C. Fournet. Modern Concurrency Abstractions for C#, In
Proceedings of the 16th European D. Gay and P. Levis and R. von Behren and M. Welsh and E. Brewer and D. Culler. The nesC Language: A Holistic Approach to Networked Embedded Systems, In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05), pages 111, June 2003. K. Donnelly and M. Fluet. Transactional Events. ACM SIGPLAN Notices, 41(9): 124135, Sept. 2006. |
| Feb 19 - Feb 23 |
Generic language support M. Hof. Composable Message Semantics in Oberon. In 2nd Joint Modular Languages Conference (JMLC 2000), pages 1125, Sept. 2000. B. Emir, S. Maneth, M. Odersky. Scalable Programming Abstractions for XML Services. In Proceedings of Dependable Systems: Software, Computing, Networks, pages 103126, LNCS 4028, Springer, Sept. 2006. P. Haller and M. Odersky. Event-Based Programming without Inversion of Control. In Joint Modular Languages Conference (JMLC 2006), Sept. 2006. K. Skalski, M. Moskal, and P. Olszta. Meta-programming in Nemerle. http://nemerle.org/metaprogramming.pdf" D.K. Frayne and K. Playford. The Java Syntactic Extender (JSE),
|
| Feb 26 - Mar 2 | Short presentations |
| Mar 5 - Mar 9 | Project and report work |
| Mar 12 - Mar 16 | Spring break |
| Mar 19 - Mar 22 | Project and report work |
| Mar 25 - Mar 29 |
Correlation
L. Lamport. The Temporal Logic of Actions. ACM Transactions on Programming Languages and Systems, 16(3):872923, May 1994. I. Motakis and C. Zaniolo. Composite Temporal Events in Active Databases: A Formal Semantics. In Proceedings of the International Workshop on Temporal Databases, pages 332 351, Sept. 1995. S. Chakravarthy and D. Mishra. Snoop: an Expressive Event Specification Language for Active Databases. Data Knowledge Engineering, 14(1):126, November 1994. |
| Apr 2 - Apr 6 |
Correlation in pub/sub S. Courtenage. Specifying and Detecting Composite Events in Content-Based Publish/Subscribe Systems. In 22nd International Conference on Distributed Computing Systems, Workshops (ICDCSW 02), pages 602610, July 2002.A. Demers, J. Gehrke, M. Hong, M. Riedewald, and W. White. Towards Expressive Publish/Subscribe Systems. In Proceedings of the 10th International Conference on Extending Database Technology (EDBT 2006), pages 627644, 2006 |
| Apr 9 - Apr 13 |
Correlation in wireless settings and aggregation A. G. Dimakis, A. Sarwate, and M. Wainwright. Geographic Gossip: Efficient Aggregation for Sensor Networks (to appear). In 5th ACM/IEEE Symposium on Information Processing in Sensor Networks (ISPN 06), 2006.C. Sanchez, S. Sankaranarayanan, H. Sipma, T. Zhang, D. Dill, and Z. Manna. Event Correlation: Language and Semantics. In 3rd ACM International Conference on Embedded Software(EMSOFT 2003), pages 323339, Oct. 2003. M. Vuran, O. Akan, and I. Akyildiz. Spatio-Temporal Correlation: Theory and Applications Wireless Sensor Networks. Computer Networks Journal, 45(3):245259, June 2004. |
| Apr 16 - Apr 20 |
Calculi
C. Fournet and C. Gonthier. The Abstract Chemical Machine and the Join Calculus. In Conference Record of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '96), pages 372-385, Jan. 1996. A. Schmitt and J.-B. Stefani. The M-Calculus: a Higher-order Distributed Process Calculus. In Conference Record of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 03), pages 5061, Jan. 2003. |
| Apr 23 - Apr 27 | Final project presentations |