Skip to content

syeysk/django-sy-platform

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Платформа межкомандного взаимодействия

Введение

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

Данный репозиторий – это микросервис, предоставляющий единую точку входа в мир единого пространства.

Терминология

Понятие "информационный" тождественно понятию "цифровой".

В контексте материального мира (материальный контекст):

  • Ресурс материальный - материальный объект: грузовой автомобиль, пластмасса и т. п.
  • Ресурс информационный - нематериальный объект: цифровая книга, цифровая модель изделия, научная статья и т. п.
  • Фабрика материальная - машина, электроника, программное обеспечение либо устройство из взаимосвязанного перечисленного либо комплекс таких устройств, выполняющих обработку материальных ресурсов. Например, 3D-принтер, автомобилестроительное предприятие, фармакологическое предприятие
  • Фабрика информационная - программное обеспечение, обрабатывающее нематериальные ресурсы. Например, искусственная нейронная сеть, система автоматизированного проектирования
  • Пользователь — человек либо программное обеспечение, действующее от имени человека.
  • Микросервис - программное обеспечение и электроника, обеспечивающие доступ к управлению фабрикой (например, микросервис заметок, микросервис 3D-печати).
  • Проект - деятельность человека, ориентированная на производство некоего продукта либо нематериального результата - услуги.

В контексте программирования (в определении (понятии) терминов жирным выделены термины, употреблённые в материальном контексте):

  • Ресурс - множество свойств материального или информационного ресурса. Конкретное множество свойств может отражать реальный ресурс либо предполагаемый (которыйц можно произвести либо в котором есть потребность, но ресурса нет в наличии)
  • Фабрика - микросервис, предоставляющий доступ для управления фабрикой
  • Пользователь - множество свойств, обеспечивающих доступ пользователя к управлению микросервисом
  • Микросервис (microservice) - программное обеспечение, обеспечивающее пользователю управление фабрикой для обработки "ресурса". Термин тождественнен понятию "микросервис" из микросервисной архитектуре
  • Проект (project) - множество свойств и информации, отражающих проект

Термины в контексте программирования являются гипонимами для термина "сущность". Другими словами, "ресурс", "фабрика", "пользователь", "микросервис" и "проект" - это разновидности "сущностей".

В контексте программирования есть и другие сущности, порождённые микросервисами:

  • Заметка
  • База знаний (knowledge_base) - множество заметок
  • Холст фасилитации (faci)
  • Бот (bot)

Термины, планируемые к употреблению:

  • Хранилище — склад ресурсов
  • Транспорт (доставка)

Концепция архитектуры

Совмещение единства и индивидуальности:

  1. Единое пространство.
  2. Единство достигается за счёт связывания функций независимых друг от друга микросервисов.
  3. Единство не означает единственность: участник может запустить собственную копию единого пространства.

Подробно:

  1. Отдельный микросервис работает как полноценное приложение, которым можно пользоваться в отдельности от Платформы
  2. Все микросервисы вместе работают как единая платформа, с общим дизайном.
  3. Интеграция с внешними сервисами подразумевает встраивание функционала внешнего сервиса в графический и API интерфейс, будто он составляет микросервис единой платформы.
  4. Запущенные одновременно копии микросервисов работают как альтернативные площадки единой платформы, имея возможность получать доступ к содержимому другихкопий.

Обобществление результатов интеллектуального труда:

  1. Данные, введённые одним пользователем, доступны для других пользователей, в том числе и для не зарегистрированных. Исключением являются чувствительные данные: ключи доступа, персональные данные.

Экономика реального времени с автоматическим расширением:

  1. Фабрика автоматически удовлетворяет потребности проектов: в режиме реального времени, при ручном заказе либо автоматическом обнаружении соответствия "потребность проекта"-"возможность фабрики".
  2. Фабрики имеют программный и транспортный (доставка ресурса от производства к производству) интерфейс, позволяющий соединять фабрики в конвейер, образуя новую фабрику.
  3. При увеличении потребностей автоматически увеличивается объём производства (за счёт увеличения количества производств либо за счёт оптимизации имеющегося производства).
  4. Производственные цепочки меняются динамически, в зависимости от потребностей и технологических возможностей.

Самоорганизация пользователей:

  1. Применять разные методы принятия решений и распределения задач в зависимости от обстоятельств, сферы задачи и важности цели
  2. Архитектура микросервисов обязана исключить возможность обособления административного персонала

Учесть биологию поведения человека при проектировании архитектуры:

  1. Платформа нацелена на коллективное ведение общественно значимых проектов. При этом архитектура обязана позволить пользователю:
    • вести индивидуальные проекты
    • вносить индивидуальные корректировки в общественный проект
  2. Психика любого человека может подвергнуться внезапному расстройству по непредсказуемым причинам, что может приводить к непредсказуемому деструктивному поведению: вандализм, агрессия против других людей и т. д. В архитектуре обязана быть заложена невозможность наносить вред сообществу при появлении деструктивного поведения у пользователя.

Как реализовать на практике отдельные пункты концепции - является открытым вопросом.

На Платформе:

  1. Запрещено любое обсуждение и критика любых идеологий, религий, политического устройства существующих государств (признанных, непризнанных, квази).
  2. Запрещены идеологически окрашенные термины.

Запрет вытекает из общей семантики: т. к. идеологические термины имеют разное значение у разных людей (являются сверхвысокоабстрактными), то такие обсуждения не ведут к решению задач, но ведут к нарастанию нестабильности в обществе.

Состав Платформы

  1. Фреймворк — django-фреймворк, обеспечивает микросервисы общим шаблоном, механизмом авторизации, статикой.
  2. Микросервис авторизации — обеспечивает единую точку управления учётными записями пользователей.
  3. Шаблон микросервисов — пустой микросервис, на базе которого, путём клонирования, удобно создавать новые микросервисы.
  4. Библиотека API на Python — модуль, предоставляющий доступ к микросервисам через API.
  5. Микросервис проектов - управление проектами, соединяет проекты с микросервисами заметок, фасилитации и ресурсов.
  6. Микросервис заметок — создание, хранение и обмен фантастическими заметками пользователей.
  7. Микросервис фасилитации — проведение продуктивных встреч между пользователями.
  8. Микросервис ботов — управление ботами
  9. Микросервис ресурсов — API для унифицированного управления ресурсами и фабриками
  10. Приложение фабрик - приложение для децентрализованного подсоединения станков к микросервису ресурсов

Предыстория

Микросервис является форком сервиса https://github.com/tvp-support/knowledge-api, который реализовался как спешный и экспериментальный вариант приложения https://github.com/tvp-support/activista, которое, в свою очередь основано на концепции Ольги Ермаковой: https://prezi.com/v7almr-yrv4w/forge/ , https://prezi.com/cmlnos6vh9ac/concept/

Установка

Установка

API сервера

Документация API

План разработки сервиса и микросервисов

  1. Трансформация форка
  2. Улучшение сервиса и добавление новых модулей
  3. Интеграция сервиса с внешними сервисами

Вдохновение

Источником вдохновения стали программы:

  • Blender - идентичные комбинации клавиш для схожего функционала в разных рабочих пространствах, переиспользование созданного в одном пространстве объекта в другом пространстве;
  • FreeCAD - взгляд на CAD-систему как на набор отдельных кардинально различающихся по функциям и назначению верстаков, переиспользование созданного в одном пространстве объекта в другом пространстве;
  • activista - идея объединить разнообразные по назначению микросервисы для создания пространства для активистов некоммерческих сообществ.

Releases

No releases published

Packages

No packages published

Languages

  • Python 47.4%
  • JavaScript 34.0%
  • HTML 18.3%
  • Dockerfile 0.3%