联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Java编程Java编程

日期:2020-12-02 11:18

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


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp