Programming models II


We continue our study of programming models for distributed systems with a study of remote procedure call (RPC), which are procedural languages version of remote method invocation (historically RPC is the ancestor of RMI). A completely different model is publish-subscribe paradigm, where a distributed system is modelled as a set of processes send out notification when they experience events other processes might be interested in, processes that are interested receiving information about events other processes experience subscribe to receive notifications when events they are interested in occur. This model differ considerably from the RMI/RPC programming model by not requiring a processes to "know" the receiver of a message, instead a process just need know what type of events other might want to react on (there might not be anyone). We shall also overview other approaches to programming distributed systems.
 

Literature

[DS] Section 5.3-5.4. (5.4 is most important)
The Jini(TM) Technology Core Platform Specification, chapter EV  (PDF)

Supplementary literature on Jini can be found at Sun's Jini homepage and at Jini.org.

Exercises

  1. Try this Jini Event Model tutorial (Due to some recent system you have to read the following change-notes to make it work) have and do the exercise in the tutorial. Then consider the implementation of a simple BBS system, where users can post and recieve messages, with the possibility of filtering messages based on who posted them.
  2. Describe how to implement a stack as a distributed data structure in Linda (see Slides for a description of the in, out, read operations). It must support the usual operations: push, pop, tos. Obviously your solution must take care of concurrent access.