В современном мире (и науке в частности) часто приходится сталкиваться с ситуацией, когда та или иная библиотека написана на одном языке программирования, но нужна в системе на другом языке программирования. Тот, кто сталкивается с такой проблемой, вынужден или использовать сложные и ненадежные схемы вроде C-API с inter-process communication, или вручную писать коммуникационный протокол. В общем случае такой протокол сделать очень не просто (такие системы называются remote procedure call), но, если ограничиться небольшим подмножеством входных и выходных параметров (скажем, данными и простыми функциями), то протокол и соответствующую ему библиотеку не сложно реализовать.
Цель этой работы - разработка протокола и реализации на Kotlin-multiplatform для обмена данными и функциями между научными приложениями. Для этого необходимо создать и протестировать так называемые функциональные сервера. Суть функционального сервера в том, что он представляет собой удаленно выполняемую функцию, которую можно вызвать из разных языков программирования.
Такой функциональный сервер сделает возможным простой вызов математических функций, написанных на одном языке, из другого языка, а также организовывать распределенные вычисления в гетерогенных системах. Результаты работы будут применены для существующих систем анализа данных, а также будут опубликованы в рецензируемом научном журнале.
В проекте будет участвовать команда из 2-3 студентов.