Cloud and Concurrent Programming Assignment 1
Version 1.0
Cloud and Concurrent Programming Assignment 1
Copyright By PowCoder代写 加微信 powcoder
Table of Contents
Overview ………………………………………………………………………………………………………………………………. 2 Breakdown ……………………………………………………………………………………………………………………………. 3 System Design ……………………………………………………………………………………………………………………. 3 Extensibility ……………………………………………………………………………………………………………………. 4 Justification ……………………………………………………………………………………………………………………. 4 Sample Implementation ……………………………………………………………………………………………………… 4 Deliverables…………………………………………………………………………………………………………………………… 5 System Design and Discussion Document ……………………………………………………………………………… 5 Implementation Video ………………………………………………………………………………………………………… 5 Marking Scheme ……………………………………………………………………………………………………………………. 6 Plan of Attack ………………………………………………………………………………………………………………………… 7 Getting Help ………………………………………………………………………………………………………………………. 7 Submission and Due Date ……………………………………………………………………………………………………….. 8 Due Date …………………………………………………………………………………………………………………………… 8 Late Policy and Extensions …………………………………………………………………………………………………… 8 Academic Integrity …………………………………………………………………………………………………………………. 9
Cloud and Concurrent Programming Assignment 1
In this assignment you’ll be designing Nüber (pronounced Noob-er) as an Über1 clone to have a crowd-sourced, personal transportation service. The service will have three types of users, with system admins, drivers, and the customers who get rides from drivers and pay for the service. You will be designing the system as a globally scalable and resource scalable app in the cloud, justifying your design choices as part of the assignment. You will then start to build the basics of the system to demonstrate your capabilities in AWS.
1 https://www.uber.com/
Cloud and Concurrent Programming Assignment 1
For this assignment you will design your own Über clone. You will need to design the cloud infrastructure, primarily designed around AWS, but also incorporating other services as needed (e.g. mapping, payments, crash handling). The required capabilities of the platform are:
• Authentication/user accounts: Users can sign up with password, login. This could support different types of accounts, or you can handle this as part of a database.
• File upload: Drivers need to be able to upload the ID documents before they’re allowed to be a driver.
• Crash reporting: Collecting/tracking crashes in the app.
• Analytics: For tracking app usage, where users are from, sign-ups, etc.
• Mapping: Calculating and displaying routes.
• Payments: For collecting payments.
• Music integration: A customer’s music preferences/playlists should be available to drivers.
Please note that these are the high-level capabilities, you will not need to implement all the above services as functioning code, but rather identify which commercial service you will use (e.g. Stripe for payments), and design integration with that service.
System Design
You will need to design your primary cloud system using AWS and associated other services to provide the required capabilities. Your system design will need to take into account:
• Global users: Which countries will you support?
• Changes across time of day: How does your service scale across the day as required?
• Locality of users versus their data: You shouldn’t have data across 100 AWS locations, nor
only in one location. How does your system support global users versus your data centre locations?
You will need to describe what AWS services you utilise, and how and why they are connected as they are. Why did you choose a specific service over another? You will also need to address how your cloud design handles the requirements of global cloud policies and trends relating to:
• Privacy: e.g. which service providers have access to what data, and how that relates to major privacy policies such as GDPR? How can your system support the “right to be forgotten” if a user wants to delete their account? What information about users is shared with which services? If other services were hacked, how does that impact the hacker’s knowledge about your users?
• Data locality: Where is a user’s data physically stored? Does this comply with the requirements of countries you operate in?
• Data security: e.g. if your service is hacked, is all the data lost to hackers?
Your document will need sections describing the privacy, data locality, and security aspects as above. Remember, this isn’t the whole assignment, but your design and resulting design document need to demonstrate your awareness of the above areas and how you have supported these considerations in your system design. If you have specifically chosen to not support a certain country, or privacy policy in a country/region, describe why. It might be that you have decided, and can justify, why your app won’t operate in a given country given certain policies that country has.
Cloud and Concurrent Programming Assignment 1
You will need to describe what cloud services you selected to provide the mapping, payments, and other service requirements, as well as identify what information about the user, captured in your app, is sent to these other non-AWS services. You will need to identify what type of API is used to communicate with the external services.
At a bare minimum, your system would need a web server and database, however given the cloud offerings and security considerations, how will your system be designed to leverage the cloud, whilst protecting the user’s data? You don’t need to develop a whole database design, but should certain data be separated into additional databases or services? Why or why not? How does your data- system design handle the globally distributed nature of the app? Does it need to, or does the cloud provide that?
Extensibility
You will need to address the extensibility of your system design. What happens when we now want to change our app to include food delivery? Or courier delivery? Your app design should be integrated as a system, but also extensible. The user shouldn’t have to create multiple accounts for each service, but rather have a single “identity provider”. Again, remember this isn’t the whole assignment, but something you should consider, and highlight how it affected your design.
Justification
For your system design there is no single correct design. Whatever your design and decisions, what’s important is your justification for those. If Nüber can’t operate somewhere for a certain reason, is that acceptable from a business case? You need to explain the design, your decisions, and justification as to why it’s a good design. Remember the goal is to design a global solution, so whilst you might exclude certain markets, you can’t exclude too many! Otherwise, is your system design and justification just to operate multiple completely separate installations?
Sample Implementation
You will need to implement the basic components running in AWS for the following user story:
• A user visits the Nüber site, and signs up to create an account. This could be using username/password, or potentially use their login from other services. When signing up, the user should select whether they are signing up as a driver, or as a customer.
• The site welcomes the user after logging in, showing an appropriate landing page depending on whether the user is a driver or a customer.
• If the user signed up as a driver, the driver landing page will need to allow them to securely upload files for their identification check.
• File upload that is only accessible to authenticated users, and once a file is uploaded, the file shouldn’t be accessible to anyone else but the Nüber staff who have access to the AWS backend.
Where applicable, your system should look professional, with appropriate styling, logos, etc. However functionality is the main focus.
Cloud and Concurrent Programming Assignment 1
Deliverables
System Design and Discussion Document
You will need to upload a PDF of your design and discussion document. This should be a formal report, with a cover page, abstract, table of contents, table of figures, bibliography (if material is referenced) and appendices. The specific document design, sections, and format is up to you, however as above, it should be a formal document, with the required sections and subsections, as well as appropriate use of grammar and spelling.
Please check your submission using the spell checker, as well as additional tools such as Grammarly to help ensure your document is well written.
Do not send your submission to other students to check, even if they are not in the class. We are happy to check drafts if asked for within a reasonable timeframe or during practicals.
Implementation Video
You will need to record a screen capture video of your implementation with audio commentary, showing a user visiting your site and:
1. signing up as driver
2. logging in
3. uploading a file
4. demonstrating that file’s uploaded bucket URL cannot be publicly accessed
You will also need to keep your site live during the marking period, and submit your site’s URL and any other instructions for use as part of the submission. This URL and any associated instructions should be included in your system design document.
The video does not have to be a high quality production as you are not expected to have professional microphones, etc. Performing a screen recording whilst you describe what you are demonstrating using the webcam’s microphone will be sufficient. You can record the screen using the OS’ own tools:
https://support.microsoft.com/en-us/windows/use-a-screen-reader-to-record-your-screen-with- xbox-game-bar-5328cd25-9046-4472-8a14-c485f138802c
https://support.apple.com/en-au/HT208721
Cloud and Concurrent Programming
Assignment 1
Marking Scheme
Implementation
User management and login
File upload
Professional, consistent look and feel
Design document
System design
Design justification
Scalability both geographically and resource
Privacy considerations (GDPR, etc.)
Data locality consideration
Security considerations – if your web server is hacked, what information is lost? Is some information stored/accessed separately to other information? Integration of crash reporting, analytics, mapping, payments, music Professional report with appropriate sections, formatting, language, grammar
Cloud and Concurrent Programming Assignment 1
Plan of Attack
Remember, this assignment has two parts: the design document, and the sample implementation. Do not get too caught up on any one part of the assignment. Whilst there are many different parts to this assignment, you are not expected to write thousands of words. You should have design and system diagrams where appropriate, which you can then discuss and justify. What is important is not the depth to which you describe each part of the assignment, but that you are demonstrating your knowledge and consideration for everything that has been outlined above.
Explore AWS’s services and try and map which services will be useful for your system. For those that will be required for the implementation, work through the getting started tutorials provided by AWS, as they should provide you with the foundations that you need to integrate that service for the demonstration.
Start planning your system design in a simple form, then start to consider the more advanced elements, such as scaling, geographic distribution, policy/legal requirements. Follow the KISS Principle2 to ensure your system remains as simple as possible. A simple, well justified design is better than a complex, ill-defined design.
For the additional services, such as mapping, payments, etc., again, these are just small parts of the overall assignment designed to make you review what other services exist and explore how they would be integrated and the implications of that. You do not need to implement any of the services, other than what is described in the Sample Implementation section.
Focus on where the marks are so that you don’t focus too much on areas that don’t have lots of marks – you can always come back to these areas later. It’s better to ensure you can get as many marks as possible, as quickly as possible, before then focusing on the smaller things.
Getting Help
You can work on the assignment during your practical once you have completed that week’s practical tasks. Consulting times are available in person or online on Mondays, including for external students (please check the course site for the latest times and locations). If you can’t make the consulting times, please contact Will to organise another time.
In addition to consulting, there’s the course forums and Slack that are monitored.
2 https://en.wikipedia.org/wiki/KISS_principle
Cloud and Concurrent Programming Assignment 1
Submission and Due Date
Please upload two files SEPARATELY (i.e. NOT zipped). The submission page will allow for multiple files to be uploaded. You will need to upload:
1. Your design document, including live URL to try the service.
2. Video demonstrating your implementation, narrated by yourself.
Please see the course site for submission due date
Late Policy and Extensions
Unless you have an approved extension for the assignment, there is no late policy. This means late submission, regardless of the time, will result in 0 marks.
To make sure that you have a backup, and to ensure you don’t miss the deadline, please upload versions of your submission regularly to the submission page. You can update your submission as many times as you would like until the due date. Please be aware that we can only mark what is submitted on the course site.
If you have a legitimate reason and can provide required documentation for an extension, I am more than happy to grant an extension if required.
Leaving the assignment until the last minute is not a reason for an extension, nor is workload or work commitments. By enrolling in the course, you have made a commitment to spend time each week on developing yourself through the course materials.
Cloud and Concurrent Programming Assignment 1
Academic Integrity
Please note that this is NOT a group assignment. Whilst you can discuss AWS’s services and design at a high level with others, your specific implementation should reflect your own thoughts, design, and justification. Any content used in your assignment submission that is not your own, in the document, or code implementation, should be appropriately referenced.
Plagiarism and academic integrity checks will be run on submissions, so please ensure that your submission is your own. At the end of the day, academic integrity will impact you the most if you finish your degree without the knowledge and skills that you claim to have demonstrated.
If you are unsure about whether you can use something, or how to reference something, please contact a staff member and we can advise. There is no penalty for asking.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com