In the assignment, you are to address some theoretical issues in the area of distributed systems or distributed computing. You will need to demonstrate your understanding of these theoretical issues or competence to apply these theoretical issues. These theoretical issues have been introduced by this unit through the textbook, weekly lectures or tutorials/labs. You will need to review these learning materials to address the following questions and prepare to do personal research if necessary.
Please note: copying from the unit learning materials or internet resources cannot show your understanding of the following issues, but may incur plagiarism or loss of marks. Thus you will need to address the following issues in your own word with proper citation and reference.
Question 1
1. Contrast UDP and TCP protocols in terms of reliability and overheads. Provide some examples of internet application to justify for what internet applications UDP or TCP is more appropriate.
2. Contrast multi-thread models: thread-per-request and thread-per-connection.
3. Assume you will need to design and implement a server to respond to UDP or TCP requests, justify which multi-thread model you will use to program such a server to respond to UDP or TCP.
Question 2
Compose an example to describe the procedure to digitally sign a document and verify the originality of the signed document.
Question 3
Design a central server algorithm for mutual exclusion based on the REQUEST PRIORITY. Based on your design, discuss the safety, liveness and ordering features of the algorithm.
Note: no marks will be given if the request priority is not considered in your algorithm. Detailed answers are required to justify your understanding.
You will need to review the generic central server algorithm, which is detailed on Week 8 lecture and Chapter 15 of the textbook.
Question 4
Address the following questions that are specific to the sample web service applications of Week 11 tutorial.
1. What is an end point? To access the end point from a web browser, what will be returned?
2. RPC style web service uses a convention to register target name space and service name, what is it? Note: you will need to refer to the WSDL document of Task 1 of Week 11 tutorial to address this question.
3. Refer to the HelloWorldClient.java, describe how to look up a web service and what is returned by the lookup
4. Task 2 or Week 11 tutorial introduces another way to create the HelloWorldClient with the aid of wsimport tool. Compare the HelloWorldClient in Task 1 and Task 2 to address why using wsimport tool is a better way to create the client of a web service.
5. Based on the practical programming tasks of web service of Week 11, address the main difference between web service and normal (or generic) client/server and the main role of web service.
Tutorial Questions
1. Review the conceptual structure of SOAP web service and explain the components of SOAP web service diagram in the lecture slides of this week.
Lab Project
The following tasks are to practise SOAP web service by building a simple JAX-WS Hello World application and monitoring the SOAP message exchange between a SOAP client and a SOAP endpoint.
Task 1:
1. Follow the Part 1 on JAX-WS Hello World Example - RPC Style by mkyong to build a NetBeans project, which includes
• The Hello World interface (HelloWorld.java)
• The Hello World implementation (HelloWorldImpl.java)
• The Hello World endpoint (HelloWorldPublisher.java)
• The Hello World client (HelloWorldClient.java)
2. Build the project and run the SOAP endpoint and then the SOAP client.
Note: to show your understanding of the SOAP client/server structure, the above Java classes should be organised into separate packages. If you have difficulties to create the project, you can download the project (SOAPSample.zip) from the Week 11 block of the unit web site.
Task 2:
1. Follow the Part 2 on JAX-WS Hello World Example - RPC Style by mkyong to use wsimport tool to automatically create the SOAP client side stub/proxy, which includes
• The Hello World interface (HelloWorld.java)
• The Hello World implementation (HelloWorldImplService.java)
2. Build another NetBeans project to include the above 2 Java classes and create another SOAP client. Please note in this soap client, HelloWorldImplService should be called.
3. Run the SOAP client.
Note: if you have difficulties to create the project, you can download the project (SOAPSample2.zip) from the Week 11 block of the unit web site.
Task 3:
To trace the SOAP traffic, you will need a simple tool TcpTrace, which can be downloaded from https://www.pocketsoap.com/tcptrace/. The TcpTrace is a TCP proxy that accepts a TCP request from a client and forwards it to the destination server. In return the TcpTrace forwards the server's response back to the client. When the traffic goes through the TcpTrace, the SOAP requests/responses are traced.
1. Download the TcpTrace from the above link.
2. Run the TcpTrace and set the proxy ports and destination server.
3. Change the SOAP endpoint in your SOAP client to the TcpTrace proxy port, e.g. 5858.
4. Build the project and run the SOAP client. You will see the traced SOAP message exchanges like the following screenshot.
Note: if you have difficulties to create the project, you can download the project (SOAPTraceSample.zip) from the Week 11 block of the unit web site.
Attachment:- Lab.rar