辅导COMP3211语言、讲解java程序、辅导program编程设计

- 首页 >> Python编程
Distributed Systems COMP3211 - Coursework 2
Submission Deadline: 10.00, 28 November 2020
1 Introduction
This exercise aims to give you some practical experience of writing server and clients to deploy and consume
Web Services. The students should work together in pairs. The application to be developed can be
implemented in the programming language of your choice.
2 Useful Resources
❼ Web Services examples: available on COMP3211 area on Minerva http://minerva.leeds.ac.uk
❼ Documentation for Jersey http://jersey.java.net
❼ Oracle Building Web Services with JAX-WS
http://docs.oracle.com/javaee/6/tutorial/doc/bnayl.html
❼ servlets and JSP examples if you choose to develop the full, Web-based user interface to your application.
3 Preparation
Review the material covered in Topic 3 - SOAs, SOAP and REST Web services.
4 The Task
Your main task is to build an application supported by a Web service composition, which consists of:
❼ existing RESTful services, e.g. Google, Amazon, Twitter, or any other public directories;
❼ existing SOAP-based services;
❼ your own RESTful services which you need to develop, e.g. using Jersey or Flask-RESTful;
❼ your own SOAP-based services which you need to develop, e.g. using JAX-WS;
❼ a combination of the above.
The composition combines THREE Web services, TWO of these must be YOUR own, which you will
need to design and implement as a server as well as the associated client to test the server. The third Web
service is external. The Web Services composition is represented in Figure 1.
Here are two imaginary examples involving only two Web services only:
Example 1: Quote of the Day. The invocation of the 1st Web service returns the quote of the day ans
its author. The name of the author is then used to do a search by invoking the 2nd Web service and output
the top ten results/links for that author.
1
Figure 1: Web Services Composition
Example 2: Shakespeare. A partial text of a speech from the user is passed to the 1st Web service,
which searches and returns the name of a Shakespeare play. The application extracts the name of the play
or name of the speaker from the result and use these to construct another search query to the 2nd Web
service.
Feel free to investigate the use of Web services provided on:
❼ https://developers.google.com/
❼ https://aws.amazon.com/
❼ https://dev.twitter.com/docs/api
❼ http://www.programmableweb.com
❼ http://mymemory.translated.net/doc/spec.php
❼ https://flask-restful.readthedocs.io/en/latest/
As you need to choose your own services, look at the services that you may find interesting, taking note
of the implementation platform and examining the REST API or the WSDL document for each service.
Note that the order of difficulty varies. Some services are easy to handle because results are returned
as simple strings of plain text; others are slightly more challenging because the returned string is XML or
JSON rather than plain text (albeit simple XML/JSON), therefore requires parsing.
There are various ways to develop your own services. The steps to follow to write server and client-side
code are provided on Minerva. More marks are available if you tackle original and challenging services.
The work is carried as follows:
1. Student A should be paired with another student B
2. Each student should design and implement ONE Web service
3. The students work together to integrate the external Web service
4. The students work together to integrate and test the Web services composition
5. There is no requirement with regard to the order the Web services are invoked
6. The students submit their individual and joint work together (ONE joint report only to submit).
Your must report on the following tasks:
Task 1. The description of your OWN Web services: what they do, their type, design, implementation
and testing of the server and client.
Task 2. The description of the external Web service: is it SOAP-based or RESTful, what is does, the
name of the publisher, and how the client is developed.
Once you have all services running and invoked through appropriate interfaces.
2
Task 3. Measure the time it takes to invoke the individual services. To get these measurements you are
expected to run the experiments n times (e.g. n = 5). A statistical analysis (average, standard deviation) is
expected. Discuss your performance results.
Task 4. Implement the application that combines the THREE Web services and provides an appropriate
user interface for the collection of input data and presentation of results. There are two options:
❼ Option 1: Make the application console-based, with input data coming from the command line if
required and results being written to a file, possibly as a static page of HTML if the final result
contains links.
❼ Option 2: Implement the application as Web based. You may use servlets, JSP, or any other technology
as appropriate. If you are following this option, you will need to package your application in the
conventional way, as a WAR file. Feel free to consider other frameworks such as Flask, Spring, GWT,
Struts or Spark.
5 Submission
❼ Use the document Report available in the coursework folder to report your written answers to the
questions. Submit the document through Minerva, see link Report Submission. Word and pdf file
formats are acceptable (pdf is encouraged).
❼ To submit your code for the exercise, create a Zip or tar archive of the files which make up your system
and submit the file through the link Code Submission. Remember to include a descriptive README
file as well as any additional material.
Be sure to include in your submission all the files that you have generated for your application. If you
have organised your files into a directory hierarchy, then please package this as a single Zip or tar archive
and submit that file through the link Code submission. If your application is packaged as a WAR file,
please include this file in your submission.
Important: Full instructions on how to install, compile and run your client should be provided as part
of your written submission and in the file named README that you submit along with your code.
6 Distribution of Marks
Composition originality 10
Web Service 1 20
Web Service 2 20
External Web Service 15
Web Services Integration 10
Web user interface 10
Successful execution 10
Coding style / comments 5
100
Weight: this coursework accounts for 20% of the assessment.
3

站长地图