Welcome to comp6231 tutorial

Welcome to comp6231 tutorial!

My name is:

qingzhe huang

My email is:

qingz_hu@cse....

General requirement:

1. Submit your work electronically under proper category. i.e. theory assignment #, programming assignment # etc.

2. Submit a "design-choice-report" document along with your source code and it is worth as much as source code. In the report, you are supposed to explain your design choices on perspective "correctness", "efficiency" etc. For example, there are a lot of "synchronization-traps" and how you solve them. And those synchronization tools generally will slow your system and how you design to speed up the system.etc. 

3. I may give some comments on marking your assignment. So, please take a look at them because I don't like people to repeat same mistakes again and again.

Assignment 1

Mistakes in A1

Assignment 2

 

Report Guide 

previous tutorial 

 

The tutorial:

Wed 20:30-22:00

H-929

 

Comp6231 Blog:

01/18/2007

Set up website for comp6231 and here is the the "Hello World" example for RMI. Also there are some FAQ's in my last tutorial even though many issues are not applicable. So, just pay attention to no.18.

In case you are first time to use java like me before, here is a simple hint about the most surprising things in java from a C++ programmer.

Maybe this sample program can convince you how important "thread-safe" is in distributed system. And most frequently it is up to developer to make sure your application code to be correctly synchronized.

01/20/2007 

Here is the guide for how to write a good report and it will also act as a guide for your final project report which is very important in your final project!

01/24/2007 

Here is the testing example which shows the "barrier" and synchronization issue.

However, be careful about the "version problem" if you already have a "helloworld" in your "classpath". So, better clear your old program in classpath. And run this example, and you should observe the wrong result.

01/31/2007 

Sorry I forget to publish the link of FAQ of assignment 1.

This is CORBA hello world example.

This is those material in previous tutorial: summer, fall, but they are quite in a mess.

02/04/2007

Here list some good and bad thing in assignment 1.

Here is some discussion about assignment 2.

Some more discussions about assignment 2 and I think you should read them to save troubles.

02/06/2007

The marked A1 is uploaded and check it in your encs mail box.

02/10/2007

Here is a general talk about synchronization methods. Unfortunately I am extremely busy and cannot give more concrete examples.

02/28/2007

Here is link of web service help file I mentioned in tutorial. And here is instructions of how to install TomCat.

03/15/2007

In tutorial, somebody asks me why Byzantine general problem needs at least 3f+1 general to find the spy where f is the malicious spy. I should say the essential is to know what methods we are going to use to detect malicious spies.

Say the war is defeated and because some generals are deliberately given an attack order while others receives no. You are given the task to investigate the event by interrogating all generals. Let's use a simple example to see why 2f+1 doesn't work when f=1. So, total three generals A,B,C give you their communication records like following. Assume A is the malicious spy and B,C are both honest generals. And also assume the true order is attack or "Y".

THE COMMUNICATION RECORDS GIVEN BY GENERALS A B C
RECORDS GIVEN BY GENERAL A N/A ? ?
RECORDS GIVEN BY GENERAL B ? N/A Y
RECORDS GIVEN BY GENERAL C ? Y N/A

Now it is quite obvious that the malicious spy A can not only deliberately gives wrong order, but also he can fake the communication records. In the above table the fields with "?" means these are all up to A. For example, A wants to frame up general B. The table becomes something like this.

THE COMMUNICATION RECORDS GIVEN BY GENERALS A B C
RECORDS GIVEN BY GENERAL A N/A N Y
RECORDS GIVEN BY GENERAL B N N/A Y
RECORDS GIVEN BY GENERAL C Y Y N/A

Now what do you think? Do you think general B is the spy?

But can 3f+1 make it possible to catch the spy?

Records given by generals A B C D
Records from A N/A ? ? ?
Records from B ? N/A Y Y
Records from C ? Y N/A Y
Records from D ? Y Y N/A

Now can spy A still frame up honest general B? Of course, why not?

Records given by generals A B C D
Records from A N/A N Y Y
Records from B N N/A Y Y
Records from C Y Y N/A Y
Records from D Y Y Y N/A

But you, as an detective is not so easy to be fooled. If A is naive enough to try to cheat you by framing B, you can eliminate B from investigation and see if there is still problem of fake orders. Now it is up to our malicious spy A to decide. If he is nice to you, in this round he will try to frame up another general, say C. However, at the same time he will expose himself. So, the best strategy is to be honest in this round and you will find nothing except reconfirm B is the spy. Then probably after honest general B is beheaded and the header quarter sends you another report saying there is still a spy. Therefore, for an experienced detective, you will try to sample "3f+1" rounds by eliminating each one general from each interrogating when f=1. Then you will see that general B is not like spy. And ask yourself who can be the spy? So, I leave the story of "spy catcher" to you to continue...

04/08/2007

Somebody asks about format of project report and here is my reply and hopes it helps.

 
Personally I don't think the format is more important than contents.
However, there are a few points I want to repeat here.
1. It is a design choice report which means you have to give your reasoning in your report like what problem you are encountered, and how you solved and why you do like this. If possible you can give some alternatives which you think it is good but you don't implement for various reasons.
 
2. It is a report which reflects all your teamwork project. So, you are supposed to give reader a full understanding of all your design and implementation details. So, it also follows the software engineering standard. Even though I don't emphasis format, however, it does help if you take any of the popular software engineering report format. For example, when you give some illustrative charts it significently saves reader's time to understand your big idea.
 
3. This is a fault-tolerant project and testing is highly important because without proper testing scheme you have no way to say it works or not. Please be noted, a failure detection is not equal to fault tolerant. In the past, some teams successfully detects the failure of some server and is able to reload a new one. However, they don't realize that this is one of the easiest part of whole project. What we want to preserve is data consistency and only this matters. High availability is another requirement in fault tolerant project. (However, this term all projects provide high availability.) So, you should be able to test and demo that your system correctly maintain the data consistency when failure happens. (probabibly shut down by hand.) And in your report this part should be given an important weight including test cases, schemes, results etc.
 

04/10/2007

Importance: Please download and fill and send back the demo sheet by "group leader". The temporary demo schedule is 12th, 13th at H929 starting from 6:00pm. If both schedule have conflict with your schedule, please send mail and specify available time. But please don't be late than 15th cause it would be unfair for other groups. Also you may need to prepare for your finals.

Also you can submit your final project after demo because it is better something can be discussed during demo before submission your final report.