Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

Полиглотная коммуникация для научных приложений

Description

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

Цель этой работы - разработка протокола и реализации на Kotlin-multiplatform для обмена данными и функциями между научными приложениями. Для этого необходимо создать и протестировать так называемые функциональные сервера. Суть функционального сервера в том, что он представляет собой удаленно выполняемую функцию, которую можно вызвать из разных языков программирования.

Такой функциональный сервер сделает возможным простой вызов математических функций, написанных на одном языке, из другого языка, а также организовывать распределенные вычисления в гетерогенных системах. Результаты работы будут применены для существующих систем анализа данных, а также будут опубликованы в рецензируемом научном журнале.

В проекте будет участвовать команда из 2-3 студентов.

Requirements

  • Желание учиться и задавать вопросы
  • Знание kotlin/kotlin-multiplatform на уровне junior/middle developer.
  • Общее понятие о коммуникационных протоколах.
  • Общее понятие о современных средствах open-source разработки.
  • Желание работать в команде.

Admission

JetBrains Research лето 2020

Mentor

Alexander Nozik

Product/Team

Kotlin

Tags

Kotlin
Python
Research