Project 3 Reflection

Assigned:Monday,March 14, 2011

Section A - Due: Monday,March 21,in class.

Section B – Due: Tuesday, March 22, in class.

General Directions

For each of these questions, write a paragraph of 100 – 150 words reflecting on the question relative to the programming assignment. These paragraphs should be well-written professional English prose. They should be of a quality that you would be proud to share with a potential employer in the United States.

In any programming assignment, it is possible to hack together a solution without taking the time to reflect on what it does, and how well it does it. It is important to develop your reflective practitioner skills so that you review and learn from these small programming assignments, and take from them bigger distributed systems lessons.

You will be graded on the completeness and quality of your answer. Do not just minimally answer the literal question. Rather, use the question as a launching point for reflecting on the issues. For example, we ask about the security of your simple web application. Of course there is no security. But don't just state that there is no security, rather explain why there is no security, what Eve and Mallory might be able to do with your application (even if it is nonsensical to think they would bother with such a simple application), and indicate what would be needed to improve the security (in general terms at this point).

While you should not be too brief, you also should not be too verbose. Don't try to impress by the number of characters. Rather, impress by the insight of the reflection. Keep each answer to 100-150 words.

And as always, this work should be your own. You can discuss the questions and your understanding of the answers. But when it comes to writing prose, it should be your own solitary work.


You should type your answers into the Questions section of this document. Then print only it (not these directions) 2 sided. Therefore you should be able to submit a single sheet of paper, two sided, with your answers to these reflection questions.

Bring the single sheet with you to class. You must submit it to the correct section. Electronic submission is not permitted for this assignment.


As stated in our syllabus, we will use sampling in our grading. In other words, we will grade one or more of these questions very carefully, and that will be the grade for the complete assignment. This makes the assignment scalable for a large class, while giving each student the challenge of learning fully from the software development project. Consequently, make sure all your answers are of high quality, for you do not know which we will choose to grade. (Nor do we know which we will pick. We will have to ask the groundhog.)

Name:______Andrew ID:______

95-702 Distributed Systems

Project 3 Reflection

Question 1: There is an excellent definition of proxy on page 191 of Coulouris: "The role of a proxy is to make remote method invocation transparent to clients by behaving like a local object to the invoker; but instead of executing an invocation, it forwards it in a message to a remote object." Describe the role of proxies in Tasks 1b and 6 in these terms. Be specific about what is being made transparent, what the local object is, what specifically is being forwarded and returned, and what the remote object is.

Question 2: In light of the Coulouris discussion of failure models in sections 1.4.5 and 2.3.2, discuss the failure model implemented by the client in Task 2. Discuss what failures the model does handle and an example of a failure that it does not handle.

Question 3: Describe marshaling and external data representation with respect to Task 3.