Exam_Example_Distributed Systems and Cloud Computing_Summer_2024
Exam_Example_Distributed Systems and Cloud Computing_Summer_2024
SPRING 2024
COURSE TITLE: Distributed Systems and Cloud Computing
COURSE CODE: CS 4122
PURPOSE: FINAL EXAMINATION (MAIN)
INSTRUCTOR: Visiting Prof. Dr.-Ing. Philippe Tamla
DATE:
DURATION: 72 Hours
INSTRUCTIONS:
✔ Attempt All Questions
✔ Credit is given for legibility, clarity of expressions and use of relevant illustrations.
✔ Clearly write your registration number on each answer sheet used .
Introduction:
E-commerce has revolutionized business operations and consumer shopping experiences by
providing a digital marketplace where buyers and sellers engage in retail transactions. Through
these platforms, customers can explore diverse product offerings, compare prices, make secure
transactions, and have items delivered to their doorsteps. In this exam, we focus on the
development and implementation of an e-commerce platform using distributed systems and
cloud computing principles. This involves designing and building backend components for user
1
management, product management, order processing, payment gateways, and review systems.
The frontend will include features such as login/register, product listings, shopping cart, order
history, and product reviews. By leveraging Java Spring Boot for the backend, React for the
frontend, and Docker/Kubernetes for deployment, we aim to create a scalable, reliable, and
efficient e-commerce application. This project will provide hands-on experience in distributed
systems, microservices architecture, cloud deployment, and the integration of advanced features
like load balancing, fault tolerance, and service discovery. Through this comprehensive
approach, we aim to optimize the e-commerce experience for both businesses and consumers.
2
1. Review the State of the Art in distributed systems and Cloud Computing by using at least
10 scientific papers from Google Scholar (https://scholar.google.com).
1. What are distributed systems and what are their main components? How is it
related to Cloud Computing?
2. What are the main components of Cloud Computing? Describe common Cloud
providers (like AWS, Azure, Google Cloud) and their service models. What are
the common Cloud resources used for implementing distributed systems? What
are the challenges of using these resources.
2. Review existing techniques related to distributed services and cloud computing, such as,
microservice architectures, containerization, load balancing, service discovery,
distributed databases, API gateway, continuous integration and continuous delivery
(CI/CD)), backend development tools (such as Java Spring Boot, Python Django,
Python Flask, etc.), containerization and orchestration tool (like Docker, Docker
Swarm, Kubernetes, OpenShift), frontend development tools (like React, Angular,
Vue.js etc.), version control and collaboration systems (like GitHub, Gitlab), reverse
proxy (like NGINX)? (10 Marks)
3. What are the strengths and weaknesses of existing techniques and tools? What are the
challenges of implementing a web-based distributed application and can easily scale and
work on various cloud-based environment? Formulate those challenges as new
requirements that should be addressed. Number each requirement individually as follows
(e.g., requirement 1, requirement 2, ..3). (5 Marks)
4. Summarize the list of your identified requirements and choose three ones that you want to
implement in your E-Commerce App based on the result of your observation (5 Marks)
3
3. Activity Diagram. (2 Marks)
4. Information Model. (2 Marks)
5. MVC Architecture (2 Marks)
Submission Guidelines:
Use the Overleaf tool and the provided LaTeX Template or Microsoft Word to create and submit
a PDF document that includes:
Title Page:
o Title of the project.
o Names, student IDs, and emails of all participants.
o Course name and project topic.
o Date of submission.
4
Abstract:
o A brief summary of the project, including the problem statement, methodologies,
and key findings.
Introduction:
o Introduce your e-commerce project.
o Explain how it relates to distributed systems.
o Identify the relevant domain and audience.
o Define the main problem and formulate it as a research question.
o Introduce the Nunamaker framework phases (observation, theory building,
implementation, experiment).
Observation:
o Review the state of the art in distributed systems and cloud computing.
o Identify shortcomings and missing features in existing systems.
o Justify the need for a new system and list features as requirements.
o Discuss relevant technologies and tools for developing your project.
o Summarize the list of features based on the literature review.
Theory Building:
o Design and describe various UML diagrams, including Use Case Diagrams,
Component Diagram, Class Diagram, Activity Diagram, and Information Model.
Implementation:
o Describe the design of Mockup UI for key features.
o Document Backend Coding for User Management microservice and provide a
Readme document for execution.
o Document Frontend Coding for the Login/Register component and provide a
Readme document for execution and integration.
Experiment:
o Design the experiment for cognitive walkthrough and presentation of the final
result to your instructor and classmates.
o Document feedback and ideas for improvement.
o Propose possible next steps for future work.
Participant Contributions:
5
o Clearly describe the contributions of each participant.
o Use the following format:
Participant 1 (Name, Student ID): Describe specific tasks and
contributions.
Participant 2 (Name, Student ID): Describe specific tasks and
contributions.
Continue for all participants.
Signatures:
o Include a section at the end of the document where all participants sign,
affirming their contributions.
o Each participant must write a summary of his/her contribution to the document
and project.
Additional Notes:
Adhere to the formatting and structure guidelines provided.
Use APA format for citations and references.
Ensure the document is clear, concise, and free of grammatical errors.
If you encounter any issues or have questions about the submission process, feel free to
reach out for assistance.