Term Project of ELE543,
Computer Networks

  • You may pick up one project from the following possible topics:
    1. Design a system for remote control of home heating/lighting using ZigBee protocol
    2. Design an application program to measure the distance between two ZigBee devices
    3. Design a home/office security system with remote control functionality using ZigBee protocol
    4. Implement a multimedia network application program
    5. Design a patient monitoring system using ZigBee devices
    6. Design a consumer electronic device using wireless remote control with ZigBee protocol
    7. Design a network router. The router should be able to interpret IP headers, select optimal routing, and control possible congestion
    8. Design a web application such as chat, email, or ftp, etc.
    9. Implement a networked storage application
    10. Implement a clustered network server

  • Time Line:
    1. Proposal due: Oct. 8th
    2. Proposal Presentation: Oct. 8th (7 minutes each person and 3 minutes questions and answers)
    3. Final Project Presentation and Demo: Nov. 19th
  • Details of one example project:
  • Title: Clustered Network Servers

  • Objectives: Implement a simple clustered network server that consists of several PCs interconnected by an Ethernet switch. Collectively, these PCs provide network service to clients in the same network.

  • Basic Requirements: The server cluster should provide one type of network service of your choice with high performance, high availability, high reliability, and easy scalability.

  • Team Work: You may form a project team of 3 or 4 persons working on different parts of the project.

    Detailed Description:

    1. Communication: Your project should have two basic communication protocols: Client/Server protocol that allows clients to talk to servers, and P2P protocol between servers. It is up to you which particular protocol you choose to use for the two communications. You may use the existing protocols such as HTTP, SMTP, FTP, Telnet, DNS, P2P, or others. Or you may design your own protocol.
    2. Service provided by the server cluster: You may define the type of service that the server cluster provides to clients. The basic requirement is that clients will read data from and write data to the servers. Examples of such network service include but not limited to:

        -- A Distributed web server running on the cluster to serve web requests from the clients.
        -- A distributed database server that provides database service to clients.
        -- Distributed DNS servers that resolve IP addresses.
        -- File sharing, i.e. distributed file servers that provide file services to clients, P2P.
        -- Distributed email server, etc.

      Choose one that you are comfortable with.
    3. High performance: To achieve high performance, you should have a load balancing mechanism among the servers to provide service to clients in parallel. You could also have caching technology to speed up services. As an example, in case of web server, you might want to partition the set of objects among the servers so that they can serve different request from clients in parallel. How to maximize parallelism and to achieve load balance is one of the design goals. The objects might migrate among the servers as new objects/new server nodes are added, or as load-imbalance is observed during operations. If aching is used, how to ensure data consistency among caches is another issue the need to be addressed.
    4. High Availability: The cluster server should be available to provide full service to clients even one of the server nodes goes down. To achieve this goal, some kinds of redundancy should be built in among the servers.
    5. High Reliability: Your protocol should guarantee data correctness even with unreliable communication links. Your system should also guarantee no-single-point-of-failure. That is, any single failure in the system will not lead to any data loss.
    6. Easy Scalability: As new server nodes are added to the system, your system should scale easily by migrating data to new nodes to achieve load balancing and at the same time ensuring high availability and reliability.

    You may make any additional assumptions that you believe necessary and reasonable. There is no requirement on which programming language you use, neither OS platforms.

  • Computer Facilities in Department or Electrical and Computer Engineering

    Please send your comments to Dr. Qing Yang