====== Распределенные системы ====== Курс также называется "Разработка приложений в распределенной среде", "Разработка распределенных приложений". Суть курса - показать как преобразовывать программы, выполняющиеся в одном процессе, в программы, выполняющиеся в разных процессах и даже на разных узлах (серверах, рабочих станциях) в сети. В отличие от курса "Параллельное программирование" здесь предполагается, что - Процессы слабо связаны друг с другом, поэтому нет "упора" на производительность в обработке распределенных структур данных, - Структура (архитектура) распределенного программного комплекса больше соответствует предметной области, а не свойствам структур данных, хотя последнее, несомненно важно, - Использование стандартизованных протоколов и стандартов проектирования API (Application Programming Interface - Интерфейс прикладного программирования), ориентированных на разработку вычислительных сред и комплексов - Использование методов разработки ПО, ориентированных на повторное использование и независимость от платформы разработки (структуры сети, характеристик модулей). - Использование контейнеров и кубренетс-а. ===== Лабораторная работа ===== **Цель** лабораторной работы - разработать распределенное приложение. Оно может быть либо новое, либо созданное ранее. Сильно усложнять не надо. Пока два варианта реализации - - Использование REST[ful], - При помощи RabbitMQ. Можно использовать аналогичные технологии - для первого варианта - SOAP, XML-RPC, JSON-RPC - для второго - NATS, ZeroMQ и т.п. **Продолжим оформление курса скоро**