Об этом проекте
SEKIRO — это мультиязычная, распределённая, не зависящая от сетевой топологии платформа публикации сервисов. Разработчики пишут обработчики на своих языках программирования и публикуют эти возможности в центральный API-маркетплейс; бизнес-системы затем потребляют возможности удалённых узлов через RPC (удалённый вызов процедур).
Позиционирование
Проект описывает себя как RPC-фреймворк, но не обычный. Типичные бэкенд-фреймворки RPC (Dubbo, Spring Cloud, gRPC) декомпозируют сложные бизнес-модули и масштабируют узкие места одной машины на кластеры внутри дата-центра. SEKIRO вместо этого фокусируется на предоставлении возможностей из сред с ограниченным контекстом, где поставщик услуг работает в месте, неудобном для повторного развёртывания как обычного внутреннего сервиса, но бизнесу необходимо использовать эту возможность.
Примеры сценариев, приведённые в README:
- Алгоритмы шифрования, работающие внутри клиентской программы, где обратная разработка неполна; код можно внедрить через SEKIRO и опубликовать алгоритм как API.
- Ограниченные данные, которые могут использоваться только внутри интранета организации (например, проверяются по исходному IP-адресу), в то время как внешние сервисы всё равно должны их вызывать.
- Приложения или терминальные программы с возможностями, ориентированными на потребителя, которые B-end бизнес хочет переиспользовать, передавая параметры приложению как прокси (в индустрии краулеров это описывается как RPC-краулинг).
- Защита возможностей сервиса, когда поставщик хочет, чтобы другие использовали возможность без передачи кода или раскрытия деталей машины, таких как IP-адреса.
- Сложные вычислительные среды, которые сложно развернуть во внешних сервисах, размещаются как API в доступной среде и экспортируются.
Основной рабочий процесс
1. Развёртывается центральный сервер (центральный сервис SEKIRO), чтобы и потребители, и поставщики могли подключаться.
2. Существуют клиенты на нескольких языках (Java, JavaScript, Python и других), реализующие связь с центральным сервером и обёртку API.
3. Пользователи пишут обработчики на своём языке, используя клиентский API SEKIRO, для приёма параметров и пересылки вызовов реальной локальной возможности.
4. Внешние пользователи вызывают API центрального сервиса, который пересылает соответствующему клиентскому обработчику и возвращает результат по исходному каналу.
Сборка и запуск
- Установите Java и Maven.
- На Linux/Mac запустите скрипт `build_demo_server.sh`, чтобы получить `target/sekiro-open-demo.zip`.
- Запустите `bin/sekiro.sh` или `bin/sekiro.bat`.
- Документация доступна по адресу `http://127.0.0.1:5612/sekiro-doc` при локальном развёртывании.
Ресурсы
- Документация: http://sekiro.iinti.cn/sekiro-doc/
- Примеры кода на разных языках: https://github.com/yint-tech/sekiro-samples
- Скачать установочный пакет: https://oss.iinti.cn/sekiro/sekiro-open
- Быстрый старт: https://sekiro.iinti.cn/sekiro-doc/01_manual/1.quickstart.html
В README также отмечается коммерческий сервис, предлагающий аутентификацию, управление API, распределённую кластеризацию, балансировку нагрузки и мультиязычность.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.