Service-oriented Architectures

University of Leicester

SOA: Service-oriented
Architectures

Spring 2022

Reiko Heckel

([email protected])

This is assessed individual work worth 20% of the module mark. You are not allowed to share any part of your solution with other students, or copy from theirs, otherwise you risk significant penalties. See Prof Hongji Yang’s lecture on plagiarism for more information.

Coursework 2: Service Implementation and Testing

This assignment continues the development of Groupwork Task 4 on using Linx to implement a service and test it in Postman. Now the focus is on the Assess service.

We modify our model, requiring the Assess service to use the File service directly to check if the URL provided by the student refers to an existing file on that service.

The modified part of the sequence diagram is as follows. The component diagram states that your component Assess should use FileInt and implement StudentInt.

The revised interfaces are:

 

To ensure that we can test your service, you must implement the Open API specification StudenInt.yaml for the of the Assess service. You will need to use the Open API specification FileInt.yaml of the extended File service, both provided on BlackBoard.

Your tasks are as follows

Implement the getFeedback operation of the Assess service.

If sNR matches your own student number, return a sentence of your choice for feedback.

If sNR does not match your student number, return “student number not found”.

[30 marks]

Implement the submit operation of the Assess service, which should use the checkFile operation of the File service to verify the URL and return the submission details in JSON format (not the file) as a confirmation to the student. Please adhere to the JSON schema for Submission objects provided on BlackBoard.

If sid matches your university account name (your email address up to but not including @), then

If url matches an existing URL on the File service, return a JSON object of type Submission with the values of module, assessment and URL fields copied from the corresponding input parameters.

If url does not match an existing URL on the File service, return Submission object with subNr = “no such file”.

If sid does not match your university account name, return Submission object with subNr = “no such user”.

[40 marks]

To tests the submit operation, create three REST-specific sequence diagrams describing the execution of test cases with their concrete inputs and outputs covering cases a.i, a.ii and b in Task 2 above. You will have to include an invocation of upload() on the File service before being able to test your submit() operation.

[15 marks]

Following the scenarios defined in your sequence diagrams, test the services using Postman by first uploading a file to the File service, then invoking submit on the Assess service. Take screenshots of the requests and replies to document your tests.

[15 marks]

No marks will be award for 2 and 4 unless we have a record that your service actually accessed our hosted file service with invocations of upload and checkFile as required by your test scenarios.

Submit via Blackboard one zip file containing

The Linx solution file for Tasks 1 and 2

One pdf document containing, in this order

Three sequence diagrams of Task 3

Screenshots of Task 4