联系方式

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

您当前位置:首页 >> Java编程Java编程

日期:2024-03-30 07:51

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


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

python代写
微信客服:codinghelp