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

Patrick Eugster

Schedule

Tue & Thu 4:30-5:45pm REC 122

Grading

Reports

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.

Project

Schedule

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):558–565, July 1978.

F. Mattern. Virtual Time and Global States of Distributed Systems, In Proceedings of the International Workshop on Parallel and Distributed Algorithms (WDPA’89), 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):114–131, 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 219–227, 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 53–62, 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 233–242, 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 313–323, 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 552–561, March 2004.

P. Costa and G.P. Picco. Semi-probabilistic Content-based Publish/Subscribe. In 25th IEEE International Conference on Distributed Computing Systems (ICDCS’05), pages 575–585, 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):341–374, 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
Conference on Object-Oriented Programming (ECOOP 2002)
, pages 309–333, July 2002.

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 83–92, 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 205–223, 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 (ICPS’05), pages 37–46, 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 103–122, 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 122–140, 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 (WCNC’05), 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
Conference on Object-Oriented Programming (ECOOP 2002)
, 415–440, June 2002.

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 1–11, June 2003.

K. Donnelly and M. Fluet. Transactional Events. ACM SIGPLAN Notices, 41(9): 124–135, 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 11–25, Sept. 2000.

B. Emir, S. Maneth, M. Odersky. Scalable Programming Abstractions for XML Services.  In Proceedings of Dependable Systems: Software, Computing, Networks, pages 103–126, 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),
In Proceedings of the 16th ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2001), pages 31–42, Sept. 2001.

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):872–923, 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):1–26, 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 602–610, 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 627–644, 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 323–339, Oct. 2003.

M. Vuran, O. Akan, and I. Akyildiz. Spatio-Temporal Correlation: Theory and Applications Wireless Sensor Networks. Computer Networks Journal, 45(3):245–259, 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 50–61, Jan. 2003.

Apr 23 - Apr 27 Final project presentations