联系方式

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

您当前位置:首页 >> C/C++编程C/C++编程

日期:2024-03-31 06:26

Project Assignment: Design Your Own Distributed System
Assigned On: 3/22/2024
Project Plan Due Date: 4/5/2024
Demonstration and Review: 4/19/2024
This project can be undertaken individually or in a team comprising two to three members.
For this project, you will architect, engineer, and thoroughly validate a distributed system, realizing some application
such as a multi-player game, a collaborative tool, or a transaction processing system.
Requirements
As this is a course in distributed systems, we desire the system to incorporate intriguing attributes from a computing
systems perspective. Here are some crucial capabilities your system should encompass:
The system shall support multiple, autonomous actors (either human or digital agents) contending for shared
resources and executing real-time updates to some manifestation of collective system state.
The system state shall be disseminated across multiple client or server nodes.
The only centralized facility should be one that facilitates user login, appending or removing clients or servers, and
other housekeeping operations.
The system shall be resilient:
It shall be able to maintain operation despite the failure of any individual participant node.
It shall allow recouping the state of a node subsequent to a failure, enabling resumption of operation.
We will permit you to choose your own application, and we will provide extensive latitude in the overall design and
detailed implementation.
As it is challenging to accurately estimate the complexity of constructing a new system, you should formulate a set of
"tiers," where the fundamental tier represents capabilities you are assured to deliver, while incremental tiers
incorporate more functionality, at both the application and infrastructure levels.
You may elect any programming language.
You are permitted to employ external libraries to support the application or user interface aspects. Examples include
GUI frameworks, media processing packages, mapping APIs, etc.
In general, you MAY NOT build your project by relying on any fully-implemented distributed system project — you
cannot simply reuse or build atop an existing packaged fully worked system. Please consult lecturer or TA if uncertain
regarding suitability of external dependencies.
2
Evaluation
Your system will be assessed principally on its operation as a distributed system. Key evaluation criteria include:
? Inclusion of fascinating distributed algorithms for synchronization, replication, fault tolerance, security, etc.
? Sound software architecture and engineering wisdom evident in the system design and implementation.
? Devising and applying methodical testing procedures, at both modular and end-to-end levels.
? Reliable and performant operation even in the occurrence of failures.
Secondary attributes:
? Novelty and utility of the application domain.
? Quality of the user experience design.
Some Project Ideas
The following list of projects is intended to spark your imagination, with estimate diffcultly accordingly. Feel free to
come up with something totally different. Contact lecturer or TA if you are uncertain of the suitability of your ideas.
? (medium to hard) Shared document editing, in the style of Google docs. The system should support real-time
editing and viewing by multiple participants. Multiple replicas would be maintained for fault tolerance. Caching
and/or copy migration would be useful to minimize application response time
? (hard) A simulated life game, in the style of The Sims or Farmville. The state of the system would be partitioned
spatially, with replication for fault tolerance.
? (hard) A multi-player real-time game, based on shooting, hunting for treasure, etc. There are many possibil- ities
here.
? (easy to medium) An airline reservation system. Each airline would maintain its own collection of servers, with
enough state replication to enable automatic fail-over. It would be possible to book travel that involves multiple
airlines.
? (medium to hard) A low-latency notification system. E.g., watch a whole bunch of RSS feeds and send all
subscribers an email when one is updated. Interface with both the raw RSS feeds and Google’s update notification
service. Replicate and partition the state of the monitoring system so that it can scale and survive node failures.
Project Deliverables and Timelines, Grading
You shall submit a project proposal covering:
? A depiction of the application functionality
? The high-level system architecture and component design
? The distributed computing algorithms and techniques to be included
? Your test strategy to validate system operation
? A delivery plan outlining core capabilities and incremental enhancements
? A split for system design, engineering and test activities ( if it's a teamwork )
This document shall be 3-4 pages in length and account for 25% of the total project grade.
We encourage meetings with course staff during proposal planning to obtain feedback prior to submission.
3
We will host a project demo day on 4/19/2024. Be ready to showcase end-to-end system operation including fault
tolerance( for example), along with your testing methodology. This constitutes 75% of the grade.
We wish you success with this exciting opportunity!
4

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

python代写
微信客服:codinghelp