БИП ← На главную
RU EN BE

Описание платформы БИП

Детализированное техническое описание

Общее описание

Белорусская информационная платформа (далее БИП) — набор программно-технических решений, предназначенный для построения масштабируемых распределенных облачных информационных систем различных уровней сложности.

Компоненты облачной информационной системы: для построения ИС на платформе БИП требуется определенный набор компьютерного оборудования, системного ПО и организации линий связи между её компонентами. В зависимости от назначения и размера системы можно выбрать оборудование необходимой мощности: начать практически с одного компьютера и наращивать количество и характеристики оборудования по мере роста потребности в вычислительной мощности.

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

1. Информационный ресурс вместо «фиксированного ТЗ»

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

Для этого разработана концепция «информационного ресурса» (ИР) — программно-технического модуля, работающего в рамках технологий платформы. Все служебные операции (безопасность, журнал операций, механизмы блокчейна) выполняются служебными компонентами платформы; в специализированный софт ИР выполняет нужную заказчику бизнес-логику.

2. Компоненты облачной информационной системы

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

Архитектура облачной системы БИП

Рис. 1. Архитектура облачной системы БИП: рабочие места, серверы приложений, сервер БД и файловый сервер

Любая облачная система состоит из вышеперечисленных компонент и/или их аналогов.

Системный стек платформы: ОС Linux + СУБД PostgreSQL + HTTP-серверы Apache/nginx + платформенная исполняющая система BCLIP. Конкретный дистрибутив Linux подбирается под требования заказчика — платформа не привязана к одному дистрибутиву.

2.1. Сервер базы данных (СБД)

Назначение. СБД — «сердце» ИС, поскольку хранение и обработка данных — её ключевая функция. Надежность хранения и оперативность работы с данными — основные показатели успешности системы.

Требования к оборудованию. Выделение СБД в отдельную компоненту дает возможность использовать оборудование различного уровня мощности. Практически любой современный компьютер может быть применен как СБД начального уровня. Более мощные системы включают выделенные подсистемы хранения данных, кластеризацию и репликацию, распределение обработки между несколькими компьютерами в территориально распределенных ЦОДах — сохранность данных гарантируется вплоть до разрушения ЦОДа.

Системное ПО:

Универсальная интегрированная структура БД разработана компанией специально для построения распределенных ИС для совместной работы пользователей различных компаний на основании общего НСИ с глобальными объектами и возможностью выделения информационных блоков только для сотрудников отдельного предприятия. Это позволило:

Технологии гарантированной сохранности данных

Во всех разрабатываемых компанией ИС предусмотрены все варианты гарантированной сохранности. Пользователям облачных ИС дается 15-минутная гарантия сохранности данных: при разрушении носителей информации гарантируется восстановление данных с потерей максимум 15 последних минут до «катастрофы».

2.2. Сервер приложений (СП)

Назначение. СП — «мозг» ИС, обработка запросов пользователей. Вместе с СБД обеспечивает оперативность: внесение информации, изменение, формирование отчетности.

Оборудование. Любой современный компьютер как СП начального уровня. Мощные системы — кластеризация и распределение нагрузки между несколькими компьютерами в распределенных ЦОДах, что гарантирует работоспособность при DDOS-атаках на один из ЦОДов.

ПО: ОС Linux; HTTP-серверы Apache или nginx; исполняющая система BCLIP для исполнения CGI-модулей.

2.3. Файловый сервер (ФС)

Кроме данных в таблицах, информация хранится в виде файлов, «привязанных» к объектам ИС: тексты договоров, ТТН, графические образы. Традиционно — поля типа BLOB, у которых недостатки:

Платформа предусматривает отдельный ИР «файловый сервер»: таблица Т185 с данными о файлах + выделенное дисковое пространство для самих файлов. Отказ от BLOB-полей дает:

2.4. АРМ пользователя

Среда разработки позволяет создавать приложения с тремя вариантами интерфейса:

ПО АРМ: ОС Linux (открытая альтернатива проприетарным ОС). Для текстовых приложений — минимальные требования к оборудованию.

3. Каналы связи

Для приложений с единой БД нужны каналы связи с СБД и/или СП. Два основных потока данных: HTTP между браузером и СП, SQL-запросы к СБД по TCP/IP. TCP/IP применяется и при обмене с аппаратурой (например, обработка данных с анализаторов в «Лабораторной информационной системе»). Учитываются типы и объемы трафика.

Три уровня организации:

Протоколы взаимодействия

Уровни протоколов и форматы файлов

Рис. 2. Уровни сетевых протоколов и отдельный набор форматов файлов

Прикладной уровень (высокоуровневые протоколы): HTTP / HTTPS, WebSocket, FTP, потоковая репликация БД и файлов.

Транспортный уровень: TCP/IP, UDP.

Сетевой / канальный уровень: Ethernet, WiFi.

Низкоуровневые интерфейсы и протоколы: COM (RS232, RS485), PRINTER, USB.

Форматы файлов (отдельно от протоколов): TXT, JSON, XML, DBF, HTML. Применение этих форматов при обмене данными со сторонними системами описано в разделе 12 «Организация взаимодействия со сторонними ИС».

4. Облачная ИС как набор информационных ресурсов

Платформа БИП — набор ИР, каждый решает определенную задачу обработки информации в общем пространстве данных с большим количеством пользователей. Понятие «ИР» введено взамен понятия «ИС»: ИС решает определенный круг задач определенным кругом пользователей, а БИП позволяет создавать набор информационных сервисов с доработкой текущих и созданием новых по мере потребностей. Технологии позволяют развивать ИС по методологии Agile; сервисы могут создаваться, сопровождаться и развиваться разными командами разработчиков под разные классы пользователей.

Методы развития сервиса:

Хранение исходного кода и настроек в защищённой БД. В защищённой базе данных хранится не только информация, но и сама логика работы системы: исходный код бизнес-логики, а также раздельные конфигурации её настройки — отдельно для разных предприятий в одном облаке и отдельно для рабочих мест внутри одного предприятия, шаблоны документов с различными вариантами текста для разных предприятий и настройки интерфейса рабочего места. Исходный код компилируется непосредственно из базы данных. Поскольку на рабочих местах используется обычный браузер, обновление интерфейса и бизнес-логики у клиента происходит «на лету» — без каких-либо дополнительных действий по внедрению обновлений. Это обеспечивает централизованное управление версиями и контроль доступа.

Встроенная система документирования — интегрированная в платформу система для хранения всей документации в единой БД с предоставлением информации по правам доступа. Данные организованы древовидно: разделы нумерованы, имеют родителя и подчиненные, вложенность не ограничена. Программа чтения получает номер раздела как параметр — команды чтения размещаются в нужных местах. Каждому разделу назначается свой уровень доступа (нижний — «гость»). В текст кроме CSS-форматированного HTML можно вставлять ссылки на ИР с файлами, ссылки на графику, видео, аудио. Возможно формирование единого HTML-документа со всеми дочерними разделами для слитного просмотра.

5. Примеры проектов на базе платформы

Варианты построения ИР:

6. Разработка прикладного ПО

Базисные языки: BCLIP (бизнес-процессы) и JavaScript (браузерный интерфейс). При использовании браузера как интерфейса допустимы все языки, поддерживающие CGI-протокол.

Текстовый интерфейс: доступны те же варианты доступа к данным, что и у графических приложений, но вместо RDS — протокол SSH: на порядок меньше трафика, экономнее каналы связи. Используется системными программистами для работы с удаленными СБД/СП. Платформа позволяет создавать текстовые приложения и использовать их для низкоуровневой работы на удаленных ресурсах. Базовый язык — BCLIP; где не требуется сохранение в БД — любые языки Linux.

CGI (Common Gateway Interface): программа не имеет непосредственной связи с пользователем; вызывается HTTP-сервером при запросе браузера, ответ конвертируется в HTTP-ответ. По каналу связи идет трафик HTTP — самый продвинутый в части безопасности и надежности, развиваемый протокол. Стандарт HTTP и HTML управляется W3C — гарантирована кроссплатформенность. Отсутствие прямого общения с оператором требует механизмов контроля работы; платформа (20+ лет опыта) выработала такие механизмы на языке BCLIP для разработки и сопровождения сложных ИС. Также допустимы любые языки Linux там, где не требуется сохранение в БД.

Графический интерфейс: приложение на АРМе получает прямой доступ к удаленному СБД по локальной сети/Intranet/Internet и передает SQL-запросы. Альтернатива — клиент-серверная архитектура с «удалённым вызовом процедур» (RPC): снижает требования к каналу, но усложняет разработку (два приложения вместо одного). Третий вариант — размещение приложения на СП и удаленный рабочий стол (RDS) на АРМе: по каналу передаются изменения графического образа (имеет аналоги и в других ОС).

7. Исполняющая система BCLIP: технические возможности

Происхождение и эволюция. Исполняющая система BCLIP — компилятор, совместимый с языком CA-Clipper (xBase), созданный на рубеже 1990–2000-х годов московской компанией «АйтиК» как свободный проект под лицензией GPL. Его задача — перенос банковских и корпоративных приложений, написанных для CA-Clipper 5.2/5.3 под DOS, на Linux/Unix без переписывания. Общий предок BCLIP и проекта Harbour — язык CA-Clipper (Nantucket, 1985; с 1992 года — Computer Associates). Harbour — более поздняя параллельная ветвь той же линии xBase, а не предок BCLIP.

BCLIP в платформе БИП представляет собой узкоспециализированную реализацию, оптимизированную для работы в Linux-инфраструктуре Enterprise-уровня и интегрированную с СУБД PostgreSQL.

Языковая парадигма: лаконичный синтаксис для работы с БД и элементы метапрограммирования. BCLIP ориентирован на декларативное описание бизнес-логики и позволяет компактно выражать операции с данными. Ключевые возможности:

Операторы работы с базами данных — лаконичный синтаксис для создания экранных форм ввода данных с валидацией:

USE Customer SHARED NEW
@ 1, 0 SAY "CustNum" GET Customer->CustNum VALID Customer->CustNum > 0
READ

Оператор макросов (runtime-компилятор) — выполнение компиляции и исполнения произвольного выражения в рантайме, динамическое формирование обращений к полям БД, генерация кода на основе пользовательского ввода:

&( "Customer->" + cFieldName )
&( cExpression )

CodeBlocks (замыкания) — захват переменных из внешнего контекста, поддержка замыканий, делегатов и функциональных объектов:

{ |x, y| x + y + nExternalVar }

Объектно-ориентированное программирование — классы, наследование, инкапсуляция, полиморфизм:

CREATE CLASS Person
    VAR Name
    METHOD New( cName )
    METHOD Describe()
ENDCLASS

Архитектура подключения к базам данных. BCLIP реализует архитектуру Replaceable Database Drivers (RDD), обеспечивающую независимость от конкретной СУБД: PostgreSQL (основная), MySQL, SQLite, Firebird, Oracle, ODBC, а также совместимость с форматами xBase (DBF, DBFNTX, DBFCDX).

Лицензия и открытость. BCLIP распространяется под лицензией GPL (свободный проект «АйтиК»). Это обеспечивает независимость от вендора, доступ к исходному коду и задокументированный синтаксис, совместимый с CA-Clipper.

ХарактеристикаЗначение
СинтаксисЛаконичный, ориентирован на работу с БД
МетапрограммированиеОператор макросов & (runtime-компиляция)
Функциональные возможностиCodeBlocks (замыкания, лямбды)
Парадигма ООПКлассы, наследование, инкапсуляция
Целевая ОСLinux
Основная СУБДPostgreSQL
Дополнительные СУБДMySQL, SQLite, Firebird, Oracle, ODBC
ЛицензияGPL (свободный проект «АйтиК», открытый исходный код)
Год создания технологиирубеж 1990–2000-х
Совместимость с языкомCA-Clipper 5.2/5.3 (xBase)

Обоснование выбора. BCLIP выбран в качестве исполняющей системы платформы БИП по следующим причинам:

  1. Проверенная надёжность — технология эксплуатируется с 1985 года, миллионы приложений в банковской, страховой и управленческой сферах.
  2. Высокая производительность — компилируемый код с возможностью runtime-оптимизации.
  3. Масштабируемость — поддержка множества серверов приложений.
  4. Открытость — отсутствие vendor lock-in, полная отчуждаемость кода.
  5. Импортонезависимость — открытый исходный код, независимость от вендора.
  6. Совместимость — возможность переноса кода с других xBase-диалектов (Harbour, xHarbour, FlagShip, FoxPro).

8. Структура базы данных

Типы таблиц и разграничение прав

Рис. 3. Типы таблиц платформы и модель разграничения прав доступа

В БД платформы предусмотрены таблицы четырех типов (плюс кодификаторы), отличающиеся способом внесения, уровнем доступа и правилами хранения:

Операции изменения данных отражаются в журнале операций — возможность «разбора полетов» о причинах появления неверных данных. Ответственность за достоверность данных таблиц первого типа определяется должностными обязанностями сотрудников службы сопровождения.

9. Соответствие требованиям безопасности информации

Модель безопасности и аттестация ОАЦ

Рис. 4. Уровни защиты и аттестация ОАЦ

Различные информационные системы, развёрнутые на платформе БИП, неоднократно проходили аттестацию на соответствие требованиям классов защиты 3-ин, 3-юл, 3-спе и 3-ДСП. Аттестации подлежат конкретные развёрнутые ИС, а не операционная система и не платформа как таковая: в процессе аттестации определяются требования к работе ИС и способам подключения пользователей. Если организация подключается к уже аттестованному решению, собственная аттестация ей может не потребоваться; новое решение, созданное на базе платформы, проходит облегчённую аттестацию. В результате создаётся защищённое информационное пространство для обработки персональных, медицинских и специальных данных.

Опыт работы с белорусскими VPN-решениями. Компания имеет опыт построения защищённых каналов связи на базе белорусских VPN-решений: Bel VPN, itVPN, SCrypto. Оказывается техническая поддержка по их настройке и сопровождению.

Требования по подключению: каналы связи, проходящие через интернет, должны быть защищены от стороннего воздействия аттестованным способом; каждая локальная сеть и каждое рабочее место — через защищенный канал; по незащищенному каналу доступа к ИС нет.

По закону пользователи определяют ответственного — «офицера безопасности». В результате предприятие обрабатывает персональные данные своих клиентов в защищенной ИС и освобождается от необходимости самостоятельно выполнять мероприятия по аттестации своей локальной ИС. Выполняются требования нормативного документа ПРИКАЗ ОАЦ ПРИ ПРЕЗИДЕНТЕ РБ от 20 февраля 2020 г. N 66 «О мерах по реализации Указа Президента РБ от 9 декабря 2019 г. N 449».

10. Обеспечение сохранности информации и работоспособности

Репликация и переключение между ЦОД

Рис. 5. Параллельная репликация между двумя ЦОД и переключение при отказе основной площадки

Аппаратные сбои СБД (вплоть до разрушения дисковой подсистемы):

Нарушения работы ЦОДа: причина более редкая, но последствия разрушительные (пример — пожар ЦОДа в Одессе). Защита — репликация БД: одна из реплик в другом ЦОД. При выходе из строя основного ЦОДа ИС перераспределяется на запасные площадки, перенастройка занимает около часа. Пользователям достаточно зайти с резервного адреса без дополнительных действий.

Ошибки сотрудников:

Ошибки ПО: частично выполненная операция предотвращается транзакционностью; некорректно выполненная — исправляется сторнированием через журнал операций с последующим заказом исправления у поставщика.

Работа 24/7: резервные СБД и резервные СП размещены в разных ЦОДах; для СП — динамическое перераспределение нагрузки; для СБД — перераспределение запросов уже на уровне ПО в зависимости от их типов. В совокупности это позволяет наращивать мощность добавлением количества и мощности компьютеров.

11. Разграничение прав доступа

12. Организация взаимодействия со сторонними ИС

Файловый обмен — выгрузка/вкачка данных. Поддерживаемые форматы вкачки:

Помимо этих форматов — прием файлов практически любого формата с прикреплением к объектам ИС. Те же форматы поддерживаются и для передачи данных в сторонние ИС, плюс все форматы стандарта HTML, поддерживаемые современными браузерами.

Полный перечень протоколов и форматов приведён в разделе 3 «Каналы связи» (подраздел «Протоколы взаимодействия»).

Политика обработки персональных данных

← На главную