CS 553

Spring 2020 Project Ideas

Compare Serverless to Server based web-services: Build the same test web-service using a suite of serverless services, such as AWS Lambda, Google Cloud Functions, or Microsoft Azure Functions. Compare the server vs. serverless implementations on ease of construction, cost to deploy and run, performance, and maintainability. The service should contain stable storage and business logic.

Traffic Randomization for Clients: Although HTTPS encrypts traffic, it is still leaves many discernible clues which can leak information between the client and server. In this project, you would build a randomization queue which makes traffic the traffic look "truly random" to a 3rd party observer. This includes not only the data, but all the headers, as well as the timing and size of the packets.

Accelerators: FPGAs and GPUs are moving into the more mainstream web-services nodes. For example, it is possible to rent AWS nodes with FPGAs. In the project, you would accelerate a critical kernel portion of an Internet Service, typically a computational kernel used in such a services. Such kernels include ranking and recommendation functions, such as TF-IDF,machine learning kernels such as sparse Matrix Multiply, and encryption functions, such as elliptic-curve cryptography.

Attack Characterization and Reporter: Web sites are constantly attacked. This project would use attack detection algorithms and a reporter for site administrators to understand how their sites are being attacked. The project would also have to define various attack models and select which ones are in-scope for the project.

Blockchain application: This project would develop a blockchain application. Application must make use of a distributed ledger. Even a very simple application is possible as demonstration For example, a ledger describing wins/losses in a sports league might could be represented as distributed ledger instead of using a centralized authority.

Quantify Bitcoin Transaction Latency: This project would measure and characterize the latency of Bitcoin transactions. Your project would create several wallets and measure the transaction latency of different transaction types. You would also create statistical models of the transaction latency based on the measurements, and quantify how well the models matched the measurements.

Measuring latency and throughput of of common frameworks: Develop a test service in several frameworks, for example, Nginx, Lighthttpd, Node.js, Flask, and Apache. Compare their latency and throughput against a the common test service, and qualitatively compare their ease of development for the same web-service.

Rent vs. Own: Take 3 example Web-service applications, and multiple workloads for each. Characterize the cost to Compare the cost buying your own machines at your own site, co-location in a datacenter, and deployment on different infrastructures, such as AWS, or Digital Ocean, and Linode. When it advtantaguous to rent vs. own? What about scaling risk? Characterize the costs in terms of time to both scale up as well as scale-down. Try to characterize and compare all costs, such as devops salaries, equipment, utilities, and rental space. Make sure to amortize ownership costs across multiple years as well. Divide costs into both one-time captial costs as well as recurring operational costs. For example, one solution might be cheaper when amortized over multiple years, but require very high fixed costs in terms of captial outlay.

Machine Learning: Tensorflow is a novel machine learning infrastructure. In this project, you would add a machine learning kernel to a service. For example, you might use the web-camera and image recognition to suggest similar items for a shopping site from the one the web-cam just took a picture of.

Voice-Interfaces for Services: Add a voice interface to an existing service, or create a new service using a voice interface. For example, asking when the next bus might arrive, or adding or removing classes from a registration site.

Keyword Leak Detection: This project seeks to identify how keyword from search engines are used in advertising. You will need to create a list of key-words, and use a browser to search various search engines. The more difficult part of the project is the keyword extraction from the resulting advertisements you would see in the browsers. You could use various methods, including OCR on displayed browser images.

Qualitative Comparison of Development Frameworks and Stacks: There are numerous development frameworks for building web-sites. This project would port a site to a second framework or build a site from scratch using 2 frameworks. You would need to quantify the development efforts in terms of time and/or lines of code, as well as provide qualitative judgments about ease of learning and maintainability. Frameworks might include popular ones such as Ruby on Rails, Flask, Django, and Node.js

Comparing Deployment Infrastructures: When deploying web services, which is easier, using virtual machines, or containers? This project would quantify the effort to deploy, modify and maintain a service using a virtual machine technology vs a container technology.

Interactive Multimedia: Web RTC is an emerging framework for building interactive multimedia. Build an example interactive application, such as extension of Hangouts or ChatRoulette, using WebRTC. As an extension, you could add parameters for who clients connect to, for example, by expressed interests, such as hobbies, or by age and or location. This can be accomplished in a few hundred lines of code if done properly.

Robot vs. Human Detection: Build a kernel that can detect when a robot or scraper is accessing a site as opposed to a human. You can use any combination of cookies, timing, or other approaches to detect robots. You should also build an attack model which describes various robot behaviors in increasing levels of sophistication and show how your detection approach works (or doesn't), for each one.

Alternative Authentication Methods: In this project, you would explore adding an alternative authentication to usernames and passwords. For example, you make record the person responding to challenge question and use a combination of face recognition and voice recognition to authenticate a user.

Project of your Choice: You can build an example service, kernel of a service, or measure and existing service or infrastructure.