Developing and Assuring Reactive Micro-Services
Brief Description of Project:
This project focuses on advanced techniques, patterns, and tools for developing and assuring efficient reactive micro-services that run scalably on multi-core processors in cloud computing platforms using the functional features supported by modern Java frameworks, such as RxJava, Project Reactor, and WebFlux, which implement the standard Java Reactive Streams interfaces and provide support for micro-services. This project will explore how to apply and test these powerful reactive programming models run multiple asynchronous operations concurrently in pools of threads across nodes in computing clouds and process their results concurrently.
Strong programming abilities in object-oriented concurrent programming and/or functional parallel programming in Java is required. Students should also have taken courses equivalent to CS 3251 (Intermediate Software design). Ability to work in a team environment.
Nature of Supervision:
Student(s) will work with the faculty mentor and other team members on the project. They will participate in the weekly meetings.
A Brief Research Plan (period is for 10 weeks):
Weeks 1-2: Student will learn about the reactive micro-service technologies in general and reactive streams platforms such as RxJava, Project Reactor, and WebFlux.
Weeks 3-5- Student will complete an initial implementation of a reactive micro-service app, which will be decided based on the interest of the student and discussion with the faculty mentor.
Weeks 4-8- Student will finalize the application implementation and particulate in writing comprehensive white-box and black-box unit tests using advanced testing frameworks such as Mockito.
Week 9-10- Student will finalize their app and write up a short report of their results.
Number of Open Slots: 2
Name: Douglas Schmidt
Department: Electrical Engineering and Computer Science