Data Engineering for Intelligent Reactive Micro-Services
Douglas C. Schmidt
Brief Description of Project:
This project focuses on data engineering techniques, patterns, and tools for intelligent reactive micro-services that run scalably on multi-core processors in cloud computing platforms using machine learning models and tools. In particular, this project will combine the functional features supported by modern Java reactive streams frameworks (such as Project Reactor and Spring WebFlux) and reactive micro-services that host machine learning models that provide personalized recommendations to end-users. This project will explore how to apply and test these reactive micro-service models that run multiple asynchronous operations concurrently in pools of threads across nodes in computing clouds, process their results concurrently, and provide useful information to clients.
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 Project Reactor and Spring WebFlux.
Weeks 3-4: Student will learn about machine learning platforms, such as BERT and TensorFlow.
Weeks 5-6: Student will complete an initial implementation of an intelligent reactive micro-service app, which will be decided based on the interest of the student and discussion with the faculty mentor.
Weeks 7-8- Student will finalize the application implementation and particulate in writing white-box and black-box unit tests using advanced testing frameworks such as Mockito and MockK.
Week 9-10- Student will finalize their app and write up a short report of their results.
Number of Open Slots: 3
Name: Douglas C. Schmidt
Department: Computer Science