Cloud Computing作业代写-CSC3065代写-云计算代写
Cloud Computing作业代写

Cloud Computing作业代写-CSC3065代写-云计算代写

CSC3065 Cloud Computing 2023/24

Assessment 2: QUBengage

Cloud Computing作业代写 It’s suggested you try them in this order, but this is your choice and you should feel free to avail yourself of one or all.

Assessment Briefing Version:   2 (06/11/2023)

Weighting: 60%

Set By: Esha Barlaskar

Moderated By: David Cutting

Date Released: 06/11/2023

Submission Due: 

Late submission penalties and rules will be applied in accordance with the QUB policy on late submission. For more information on this or any other QUB policy with regards to assessment please see:

https://www.qub.ac.uk/directorates/AcademicStudentAffairs/AcademicAffairs/Examination sandAssessment/MarkSchemesandClassifications/

Please be aware that this is an individual assignment and as such will be checked for plagiarism. You should ensure that the work is yours and yours alone, citing any third-party sources as applicable. Plagiarism is a serious academic offense. Submission of your work implies your claim that it is your individual work and has not previously been submitted for academic credit. Also, student must include acknowledge any use of generative AI in their reports and must include this academic integrity statement in their report – “I certify that that the submission is my own work, all sources are correctly attributed, and the contribution of any AI technologies is fully acknowledged.”

If you have any questions about the assignment, please see the module organiser Esha Barlaskar in the first instance or use any of the support options listed in this document.

1. Assessment Details  Cloud Computing作业代写

The QUBengage is the world’s most over-engineered yet deeply unreliable student engagement monitoring app.

Your assignment is to start with this as a base and to add more functionality as specified in this document. There is some potential for a choice for what specifically you wish to implement so you must make decisions on how to make these improvements.

The purpose of this Student Engagement Monitoring (i.e., the QUBengage) microservice application is to allow the students to check their engagement in a module. The app should take total hours of student attendance in different sessions (lecture, lab, support) and the total hours of canvas activities, and using these input values the app should perform a number of functionalities.

Currently the QUBengage App can perform the following two tasks:

  • Find Maximum and Minimum Attendance – to identify the session/activities with maximum and minimum hours of attendance.
  • Sort Attendance – to sort the sessions/activities in descending order of hours of attendance.

The app performs these tasks through three different container services:  Cloud Computing作业代写

  • QUBengage-frontend – this is a simple container that hosts the frontend of the QUBengage App. This is designed using HTML, CSS and JavaScript. The GUI in the frontend provides textboxes to enter the attendance/activities in hours as input, and buttons to submit the requests for finding the maximum and minimum attendance hours, and sorting the sessions/activities in terms of their attendance. The grey coloured buttons are inactive, and they are provided as placeholders for the new functionalities.For example, when the ‘Maximum and Minimum Attendance Hours’ or ‘Sort Attendance’ button is clicked the frontend takes this request and passes it to a container that hosts the service that can process the request. The request is sent to the container service (i.e., the worker service) via XMLHttpRequest in Javascript, and response from the service is received in JSON format. The endpoints it uses for these requests are configured within the Javascript.

Repository: https://repository.hal.davecutting.uk/root/qubengage-frontend

Live Demo: http://qubengagefrontend.esha.qpc.hal.davecutting.uk/

  • QUBengage-maxmin – this is a PHP based container that hosts PHP scripts to process one of the requests from the frontend, which is to find the maximum and minimum attendance hours out of all the sessions/activities that are entered in the frontend GUI.The container takes the input as HTTP GET parameters (‘item_1’, ‘item _2’, ‘item _3’,‘item _4’, ‘attendance_1’, ‘attendance _2’, ‘attendance _3’, ‘attendance _4’) and returns the results (‘error’,’items’,’attendance’,‘ max_item’,‘min_item’) in JSON format. CI testing is not implemented in this version, and it’s expected from the students to implement the CI testing to check the correctness of the results.

Repository: https://repository.hal.davecutting.uk/root/qubengage-maxmin

Live Demo: http://qubengagemaxmin.esha.qpc.hal.davecutting.uk/

An example of direct call to the service: (tried on Firefox!)

http://qubengagemaxmin.esha.qpc.hal.davecutting.uk/?item_1=LectureSession1&atten dance_1=50&item_2=LabSession2&attendance_2=90&item_3=SupportSession3&attend ance_3=80&item_4=CanvasActivitySession4&attendance_4=60

Cloud Computing作业代写
Cloud Computing作业代写

JSON result should display the following:

  • QUBengage-sort – this is a PHP based container that hosts PHP scripts to process one of the requests from the frontend, which is to sort all the sessions/activities that are entered in the frontend GUI in descending order of their attendance. The container takes the input as HTTP GET parameters (‘item_1’, ‘item _2’, ‘item _3’, ‘item _4’,‘attendance_1’, ‘attendance _2’, ‘attendance _3’, ‘attendance _4’) and returns the results (‘error’,’items’,’attendance’,‘sorted_attendance’) in JSON format. , CI testing is not implemented in this version, and it’s expected from the students to implement the CI testing to check the correctness of the results.

Repository: https://repository.hal.davecutting.uk/root/qubengage-sort

Live Demo: http://qubengagesort.esha.qpc.hal.davecutting.uk/

An example of direct call to the service: (tried on Firefox!)  Cloud Computing作业代写

http://qubengagesort.esha.qpc.hal.davecutting.uk/?item_1=LectureSession1&attendanc e_1=50&item_2=LabSession2&attendance_2=90&item_3=SupportSession3&attendance _3=80&item_4=CanvasActivitySession4&attendance_4=60

JSON result should display the following:

Currently, the QUBengage App is designed with minimal features and without providing much attention into its reliability or user friendlessness. It has been implemented using several cloud technologies including stateless, docker containers, microservices, and is currently deployed on the QPC.

Your assignment is to start with this as a base and to add more functionalities as specified  in this document. You are required to modify and extend this QUBengage App as described in the following tasks.

Make sure you read and understand the instructions carefully, especially those on submission! The report is what is marked (code and the video will only be sample checked as needed to verify a claim made in the report or for moderation – anything in the code or video that is not in the report will not be marked).

1.1 Tasks

A.New Functionalities using Container Services

Add a minimum of four new functions to the application including the changes to the front-end as well as back-end implementations for each. See the assessment criteria for more information but in general higher marks are given for use of new languages (beyond those provided) and completeness including testing with CI pipelines. Points can also be awarded for use of novel technologies, i.e., deployment using FaaS for one function as an example(new technology or language points are only awarded once, i.e., if you use FaaS twice it only counts as novel once even if you use different languages or providers).  Cloud Computing作业代写

Three mandatory functions to add to the QUBengage App are:

I.Total Attendance Hours – calculate the total hours by adding the hours of attendance from all the sessions/activities.

II.Student Engagement Score – calculate the engagement score using the following equation inside a function:

𝑆𝑡𝑢𝑑𝑒𝑛𝑡𝐸𝑛𝑔𝑎𝑔𝑒𝑚𝑒𝑛𝑡𝑆𝑐𝑜𝑟𝑒

𝐿𝑒𝑐 = 𝑡𝑜𝑡𝑎𝑙 𝑎𝑡𝑡𝑒𝑛𝑑𝑎𝑛𝑐𝑒 ℎ𝑜𝑢𝑟𝑠 𝑖𝑛 𝑙𝑒𝑐𝑡𝑢𝑟𝑒 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠

𝐿𝑎𝑏 = 𝑡𝑜𝑡𝑎𝑙 𝑎𝑡𝑡𝑒𝑛𝑑𝑎𝑛𝑐𝑒 ℎ𝑜𝑢𝑟𝑠 𝑖𝑛 𝑙𝑎𝑏 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠

𝑆𝑢𝑝𝑝 = 𝑡𝑜𝑡𝑎𝑙 𝑎𝑡𝑡𝑒𝑛𝑑𝑎𝑛𝑐𝑒 ℎ𝑜𝑢𝑟𝑠 𝑖𝑛 𝑠𝑢𝑝𝑝𝑜𝑟𝑡 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠

𝐶𝑎𝑛 = 𝑡𝑜𝑡𝑎𝑙 𝑠𝑡𝑢𝑑𝑒𝑛𝑡 𝑎𝑐𝑡𝑖𝑣𝑖𝑡𝑦 ℎ𝑜𝑢𝑟𝑠 𝑜𝑛 𝑐𝑎𝑛𝑣𝑎𝑠

𝐿𝑒𝑐𝑡𝑜𝑡𝑎𝑙 = 𝑡𝑜𝑡𝑎𝑙 ℎ𝑜𝑢𝑟𝑠 𝑖𝑛 𝑙𝑒𝑐𝑡𝑢𝑟𝑒 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠

𝐿𝑎𝑏𝑡𝑜𝑡𝑎𝑙 = 𝑡𝑜𝑡𝑎𝑙 ℎ𝑜𝑢𝑟𝑠 𝑖𝑛 𝑙𝑎𝑏 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠

𝑆𝑢𝑝𝑝𝑡𝑜𝑡𝑎𝑙 = 𝑡𝑜𝑡𝑎𝑙 ℎ𝑜𝑢𝑟𝑠 𝑖𝑛 𝑠𝑢𝑝𝑝𝑜𝑟𝑡 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠

𝐶𝑎𝑛𝑡𝑜𝑡𝑎𝑙 = 𝑡𝑜𝑡𝑎𝑙 𝑒𝑥𝑝𝑒𝑐𝑡𝑒𝑑 𝑎𝑐𝑡𝑖𝑣𝑖𝑡𝑦 ℎ𝑜𝑢𝑟𝑠 𝑜𝑛 𝑐𝑎𝑛𝑣𝑎𝑠

𝑙𝑒𝑐𝑤 = 𝑤𝑒𝑖𝑔ℎ𝑡 𝑓𝑜𝑟 𝑙𝑒𝑐𝑡𝑢𝑟𝑒 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠 (𝑒. 𝑔. 0.3)

𝑙𝑎𝑏𝑤 = 𝑤𝑒𝑖𝑔ℎ𝑡 𝑓𝑜𝑟 𝑙𝑎𝑏 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠 (𝑒. 𝑔. 0.4)

𝑠𝑢𝑝𝑝𝑤 = 𝑤𝑒𝑖𝑔ℎ𝑡 𝑓𝑜𝑟 𝑠𝑢𝑝𝑝𝑜𝑟𝑡 𝑠𝑒𝑠𝑠𝑖𝑜𝑛𝑠 (𝑒. 𝑔. 0.15)

𝑐𝑎𝑛𝑤 = 𝑤𝑒𝑖𝑔ℎ𝑡 𝑓𝑜𝑟 𝑐𝑎𝑛𝑣𝑎𝑠 𝑎𝑐𝑡𝑖𝑣𝑖𝑡𝑖𝑒𝑠 (𝑒. 𝑔. 0.15)

𝑇𝑜𝑡𝑎𝑙 𝑤𝑒𝑖𝑔ℎ𝑡𝑠 = 1.0

III.Risk of Student Failure – identify if the student is at risk to fail (in the academic exam/assignments) in the module by checking the student engagement score(student can use function (d) to get that score); if the score is below the cut-off score(provided as an input), the student is at risk of failure.

Note: total hours for lecture/lab/support sessions and for the canvas activities can be imaginary values.

The buttons (in the frontend GUI) that can be linked to these three services are in grey colour. In addition to the three mandatory ones, you must implement one more function of your choice. Please note, only four functions will be marked, handing in work with more than four functions will result in the first four being marked and others ignored.

Cloud Computing作业代写
Cloud Computing作业代写

B. Improvement to Current Implementation  Cloud Computing作业代写

There are a number of issues with how the current QUBengage App works which include(but are likely not limited to):

  • No error handling in the frontend (what if a backend service returns an error result?)
  • No error handling by either of the provided backend example services (for example,if the user inputs, i.e., session/activity names and attendance are empty and an attempt is made to check maximum and minimum attendance hours, no alert message is displayed, or if any other error condition occurs, such as attendance hours are not integers, or attendance hors more then the total assigned hours, etc.;then these errors are not reported in the frontend thus making it difficult to identify the problems.
  • No CI testing for the provided backend services (sort and maxmin), i.e., there is no unit tests on the functions as well as there is no HTTP request to check web API functionalities.
  • Static configuration of routes to services and/or proxies in the frontend (they are lines of code inside the source, would be much better to have some external configuration file or service to work). This applies only to the frontend services and/or proxies.

Plan and implement improvements to address all of the above, or other shortcomings or issues you perceive within the provided system. If you are unsure of the scope of your planned changes speak to a member of the teaching team. See the assessment criteria and submission instructions for more information on what may be assessed and how to show this working.

C. Custom proxy router

Currently each service endpoint has a custom URL configured in the frontend client. For this challenge you will build a self-contained reverse web proxy as a container to which the frontend will pass all calls to (including any variables).

This proxy will then itself hold the specific endpoints for different methods and make the HTTP request to the actual service before returning the answer.

Figure 2 Requests and response with proxy, proxy makes request to relevant service

For full marks this service should be highly configurable (how do we update the end points or add new ones, can this happen dynamically while the service is running for instance), and support some service discovery options (what methods are available or automatic registration of new services for example).

This means, it should be something like an ingress controller or load balancer which loads its setup from a configuration file and can update at runtime. For example, consider that we may want to change the URL a service goes to or even add another service with a new functionality. Service discovery features could include automatic configuration using these systems or the proxy having an ability to probe a URL and discover what options are available for example.

Note: you are required to build this yourself rather than using a third-party service or container.

D. Frontend Service Failure Handler  Cloud Computing作业代写

The frontend currently stores a single URL for each service (after Task C this will be a single URL for the proxy). This challenge is to update the frontend to support multiple URLs for each service/proxy. If a specific endpoint (URL) falls offline or errors, the frontend should be able to continue using other endpoints instead.

This may also include load balancing while multiple endpoints are available. As mentioned in combination with Task C this would refer to multiple URLs for the proxy service provided by Task C. Please note “frontend” as always refers to the HTML+JS component (the in-browser), should you implement this handler in the proxy it will not count for marks against Task C, this only relates to the browser.

E. Monitoring and Metrics

Monitoring and testing service – Implement a separate service (this could be a container or other service) that when used makes HTTP requests with random session names and attendance hours to the services and checks (a) correctness of results against expectations and (b) overall performance in time (in an ideal world this service should periodically check performance and record results in addition to an on-demand operation). Note you are required to build this yourself rather than using a third-party service or container.For full marks you are expected to have some form of monitoring periodically test and alert on failure of your services (this can be an external service or container as you like as long as you have done the first part from scratch yourself).

F. Stateful Saving of Current Values

Currently there is no way to store the current values of the sessions/activities, attendance hours, and the results that are produced by the QUBengage App. For this section you should implement, using any technology (containers, FaaS, database, etc) you like a way to:

  • Save the sessions/activities, attendance hours, and the results (and display) an identifier for the saved items.
  • Provide the option to enter an identifier and thus recall the saved items to the frontend.
  • For maximum marks, persistence over multiple sessions is preferred, that is, not using just browser storage.

G. Multi-Vendor Architecture

Complete a justified design (you are not required to implement) for how the QUBengage App could be fully deployed onto public multiple cloud vendors perhaps with a common broker/router. Include diagrams and text as appropriate demonstrating how your design would ensure utmost resilience and sustain the capacity to execute the expected operations even in the presence of an unforeseen catastrophic event.

H. Acknowledgement  Cloud Computing作业代写

Important Note: In the report you need to provide some information as appropriate in the“Anything else to highlight” sections of each of the tasks (Task A to Task G) on how you came to certain answers or found information. This would include an analysing your use of AI tools and also other third-party sources of information all of which are available to be used and acknowledged in your work. Some examples would include answering questions like “what enhancements and modifications did you implement in developing this application beyond the suggestions and guidance provided by ChatGPT/any other third-party sources? Could you share specific examples for each of the tasks of how your creative input and expertise were integrated to improve the overall analysis?”

1.2 Deployment Environment

As it stands the current QUBengage App is deployed on the QPC Kubernetes system with source code and docker registry in the QPC gitlab install. It is suggested that you continue to use this architecture for your project, or at least most of it, but this isn’t a requirement.

You are free to use any provider(s) you like and their technology stacks but be aware that(a) less support will be available and (b) you must make any code accessible when you submit (see submission section for details). It’s strongly suggested you discuss with the teaching team before selecting a platform other than QPC Kubernetes/gitlab.

2.Assessment Criteria

The following are the criteria against which your submission will be marked and their conceptual marking equivalents.Marking Criteria

Cloud Computing作业代写
Cloud Computing作业代写

3. Feedback  Cloud Computing作业代写

Feedback in the form of marks will be provided as soon as practicable after submission with the expectation that marking will be complete (and marks provided).

Individual feedback will take the form of a numeric score against each of the assessment criteria (there may be brief comments for these criteria if appropriate), a total made from these scores weighted by section, and an overall textual comment on the totality of the submission.

Generalised feedback will be provided to the class as a whole including overall trends and areas of particular concern.

4.Submission

Submission will be via Canvas and also through repository access. Please read this section  carefully to avoid any mistakes which could lead to marks being lost.

Note: three uploads are required – unless you complete all three then this assignment will be regarded as not submitted. It is your responsibility to check the validity/lack of corruption of any uploads.

Late penalties will be applied to this assignment based on the latest timestamp of any uploaded item.

You are required to:

1.Provide repository access if not using the QPC gitlab (gitlab.hal.davecutting.uk – if you are using this then you don’t need to do anything other than provide the links in your report) so for example the EEECS gitlab or any other repository service. It is your responsibility to discuss this with a member of the teaching team to allow them access (or a link to a public repository) if this is the case.  Cloud Computing作业代写

2.Upload three items to the relevant assignment option on Canvas:

  • A completed report based on the template provided (you must use the template) named as <your_student_number>.pdf to the REPORT assignment on Canvas.
  • A demonstration video showing the operation of your system (see 4.1 for more details) to the VIDEO assignment on Canvas. The video must be named as<your_student_number>.mp4
  • A zip file containing copy of all source code you have written (this is required in addition to the repository access for the external examiner) to the CODE assignment

on Canvas. This zip file should be also saved with your student number.

3.Validate your uploads by viewing them via Canvas and making sure they are correct and uncorrupted. Previously students have uploaded the wrong assignments or an early version etc – it is your responsibility to ensure the correct item is uploaded.  Cloud Computing作业代写

4.1 Video Submission

To demonstrate your system working you are required to submit a video, usually a screen capture video, ideally as short as possible. This should show each of the key elements of your solution working (with inspection mode or similar to show network traffic to the endpoints).

You should use this video to highlight any specifics you wish to, for example any particularly detailed functionality included.

You are not required to specifically present or explain your work but we will not be running all code ourselves (some samples will be run) so this allows us to see it does actually operate! Be sure to cover all the features.Please be mindful of filesize and compress/re-encode if needed. Previously we’ve had submissions of 1GB or more for a short video! This will take a long time to upload and upload (and check) must be completed by the deadline to avoid penalties.

Please note: the primary purpose of the video is for validation and for external  examination. The report is the marked component so you must ensure you evidence  everything in the report, anything included in the video but not in the report can not be  marked. The marker may not even view the video.

5.Support Available  Cloud Computing作业代写

A number of support avenues are available throughout this project. It’s suggested you try them in this order, but this is your choice and you should feel free to avail yourself of one or all.

Canvas Discussion and Teams Support Channel – you can ask any questions (in general please, don’t include your work as everyone can see!) on the Canvas Discussion Forum or Teams Support Channel for the module. This is very useful as everyone can see (the question and the answer!) and its possible students can help each other out.

Module “Drop-in” – CSC3065 offers a virtual drop-in session every Monday 1200-1400. Our module connected learning tutor (who will be involved in the marking) and a few PhD demonstrators will be guaranteed to be there and the module lecturer will be most often as well. Just pop up on the Teams question channel and say hi.

Office Hours/Other Appointments – Esha Barlaskar has office hours available every week. Appointments can be booked via the Office Hours link on Canvas.

Open Door/Other Appointments – Esha Barlaskar operates an “open door” policy when she is available. She is happy to make ad-hoc meetings for individuals or groups as needed outside of the office hours above. Drop her an email or message via teams if you wish to discuss anything.

 

更多代写:alevel辅导  gre代考  security代写  essay开头  留学生代写论文   高级计量经济学代写

合作平台:essay代写 论文代写 写手招聘 英国留学生代写 

Cloud Computing作业代写
Cloud Computing作业代写

发表回复