пятница, 11 марта 2016 г.

Система доступа

Систему удалённой обработки сообщений в реальном времени с обеспечением криптозащиты передаваемых данных (Система доступа) рассмотрим на примере Автоматизированной системы торгов (АСТ) предназначенной для проведения аукционов и торгов в масштабах отрасли. Аналогично может быть рассмотрен комплекс задач дистанционного банковского обслуживания (ДБО), Интернет вещей, комплексы управления в распределённых прикладных системах различного назначения.
Система обеспечивает доступ к центральной базе данных (ЦБД), находящейся в Расчетном центре АСТ (РЦ), по объектно-ориентированной технологии с использованием серверов приложений.
Пользователи АСТ работают в режиме реального времени с документами - сообщениями ЦБД. Все передаваемые по линиям связи данные шифруются. Документы защищаются электронно-цифровой подписью (ЭЦП). Доступ к задачам контролируется комплексом средств, включая аутентификацию на базе криптографических средств. На рисунке ниже приведена архитектура построения Системы.


Технология

Каждый пользователь видит и может обрабатывать документы только своего портфеля. Диспетчеру АСТ доступны для просмотра и обработки все сообщения. После проставления первой ЭЦП документ становится недоступным для редактирования. В случае отказа в проводке документа создается соответствующая квитанция с причиной отказа и документ становится доступен для исправления. Все основные действия по обработке документа (создание, авторизация, передача в ЦБД, отказ, подтверждение) фиксируются в журнале операций (таблица ЦБД). Журнал операций позволяет установить, кто, когда и какие операции произвел над данным документом. В ЦБД также ведется системный журнал, фиксирующий системные события, а также журнал сеансов.
Весь процесс обработки документов происходит в ЦБД, файлы для хранения и передачи документов не используются.

Реализация

Комплекс задач построен с использованием объектно-ориентированной технологии и состоит из следующих программных компонент:
Центральная БД, располагающаяся на сервере в АСТ, включающая справочники, служебные справочники, сообщения клиентов на разных этапах обработки, шаблоны, протоколы обработки, оперативный архив сообщений за определенный период (порядка года).
Серверное программное обеспечение (ПО), выполняющее необходимый набор операций с БД по запросам от клиентов, т.е. предлагающее набор сервисов. Серверное ПО служит также для мониторинга задач, обеспечения защиты БД, сеансов, коммуникации клиентских задач.
Объектно-ориентированное middleware CDIS, с помощью которого  разрабатываются прикладные и серверные программы по доставке запросов от клиентов, распределению запросов по обслуживающим объектам, непосредственно взаимодействующим с БД, доставке результатов клиентам, выполнение асинхронных вызовов клиентских задач для мониторинга и коммуникации клиентов.
Прикладные задачи, исполняющиеся удаленно от центрального сервера (на АРМ клиентов)(Astra Linux).

Архитектура комплекса

В процессе разработки Системы доступа вопросы переносимости и масштабируемости были приоритетными, поэтому разработанная технология может быть использована для решения других задач. В частности, СД легко адаптируется для других систем удалённого доступа и систем Интернета вещей. Поскольку в торгах через АСТ используются разнообразные, достаточно сложные форматы, СД содержит средства настройки на форматы, которые позволяют достаточно легко перенести его для расчетов по рублям через ЦБ РФ или СБ РФ.
В качестве ЦБД может использоваться любая промышленная реляционная (SQL) СУБД. В качестве серверной платформы может быть выбрана среда Astra Linux или Windows. Клиентские места могут работать под Windows или под Astra Linux.
Обеспечивается кратное увеличение количества одновременно работающих станций клиентов, по сравнению с традиционными технологиями клиент-сервер.
Реализована функция автоматического самообновления клиентского ПО на станции при смене версии ПО на сервере приложений.
На нижнем уровне используется протокол UDP из стека протоколов TCP/IP. Объектно-ориентированное middleware CDIS обладает развитыми возможностями настройки и позволяет регулировать загрузку сети и время ожидания восстановления доступа к удаленному ресурсу в зависимости от используемого канала связи (коммутируемые линии, выделенные и т.п.).
 Комплекс CDIS претендует на роль инструмента создания сложных распределённых информационных систем работающих, в том числе,  в реальном масштабе времени. В первую очередь следует обратить внимание на то, как с его помощью решаются основные архитектурные проблемы, которые присутствуют при разработке любой компонентно-ориентированной системы:

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

Следует также учитывать, как решаются вопросы:

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

Комплекс CDIS обеспечивает:

прозрачность среды связи для прикладных компонент (сетевая работа не сложнее локальной - необходимое условие использования middleware CDIS);
возможность работы с различными средствами связи (UDP, TCP/IP, multicast и др.);
устойчивость к сбоям и отказам средств связи, возможность регулирования параметров middleware в части устойчивости к сбоям и отказам;
малые накладные расходы и, как следствие, повышенная производительность работы по линиям связи, возможность балансировки нагрузки на сеть передачи данных;
наличие интерфейса для прикладного программиста в различных языках и прежде всего в языках С и С++;
многоплатформенность middleware CDIS (обеспечение работы в среде UNIX различных версий, в Windows и IBM OS 390 и др.;
совместное функционирование с другими аналогичными по назначению  программными средствами (Java – технологии(JMS), CORBA  - технологии, мониторы транзакций и т. п.);
возможность подключения сертифицированных средств криптозащиты.
Перечисленные выше проблемы естественно и эффективно решаются в рамках объектно-ориентированной модели распределенного программирования. В настоящее время такой подход является достаточно распространенным (CORBA - 1990-1998, OPC Foundation - 199x-2016, Java RMI - 199x-2014, DDS OMG, RPC). Однако общепринятый стандарт отсутствует, идет активное соревнование различных подходов в рамках общей объектно-ориентированной модели. Для этого, по нашему мнению, кроме коммерческих есть и объективные причины. В целом правильные модели страдают от непроработанности, а часто и отсутствия нескольких необходимых черт, что существенно усложняет их реализацию и использование, затрудняет понимание потенциальными пользователями (на практике это означает, что пользователь ощущает наличие проблемы, испытывает затруднения при программировании, однако проблема явно не сформулирована в системе и решается частными экзотическими средствами "по месту").
 Предлагаемый продукт основан на модели объектно-ориентированных распределенных вычислений, разработанной Илюшиным А.И. и его учениками в ИПМ АН СССР (1978-1991), НТВЦ РУСЛАН (1991-1998) и успешно использованной в ряде больших распределённых прикладных систем (в ИПМ РАН, в Сбербанке Москвы и Сбербанке РФ (АС СПООБК-1 на 20 тысяч терминалов). За указанный достаточно продолжительный срок было проведено несколько итераций модели, протоколов, интерфейсов и использующих их прикладных систем. В результате предлагаемая модель и набор соответствующих средств программирования в ряде ключевых черт являются существенно более эффективными, чем упомянутые выше известные системы.
Относительно комплекса CDIS утверждается следующее:

комплекс CDIS позволяет строить распределенные прикладные системы в виде объектов, взаимодействующих между собой через вызовы операций друг в друге, причем ссылки на сами объекты могут передаваться по сети как обыкновенные параметры вызова. Расположение взаимодействующих объектов в сети скрыто (прозрачно) для прикладного уровня;
для функционирования в сетевой обстановке систем, разработанных на базе CDIS, в настоящее время на нижнем уровне используется протокол UDP из состава стека протоколов TCP/IP. Возможна адаптация работающих прикладных систем к функционированию на базе других сетевых протоколов, примерно соответствующих канальному (2-му) уровню модели МОС или более высокому. Для этого необходимы наличие соответствующего программного интерфейса и некоторая доработка в сетевой части комплекса CDIS для сопряжения с этим протоколом;
для обеспечения удаленной работы в условиях неустойчивой работы каналов связи целесообразно разрабатывать распределенные системы в виде взаимодействующих на встречных вызовах объектах, где инициатор работы (пользователь) передает ссылку на свой объект удаленному исполнителю наряду с другими данными. Тогда в случае недоступности в какой-то момент времени удаленного объекта данные сохраняются в файлах или БД и периодически или по команде оператора повторяются попытки их передачи до получения подтверждения о приеме вызова. Аналогично в обратную сторону. Кроме того, существует возможность в конфигурационных файлах middleware CDIS устанавливать параметр величины таймаута на ожидание подтверждения о начале или завершении вызванной операции и/или  параметр количества повторов  запрашиваемого действия;
удаленный вызов операции в объекте осуществляется без процедур установления соединения между взаимодействующими объектами, в отличие, например, от использования механизмов, основанных на TCP, и не требует дополнительных расходов на установку и разрыв соединения. Кроме того, существует возможность в конфигурационном файле запускаемой задачи устанавливать размер передаваемого по сети пакета, тем самым за счет увеличения времени передачи вызовов регулировать нагрузку на сеть передачи данных или подстраиваться под пропускную возможность сети по ее самому слабому звену;
в состав средств комплекса входят библиотеки и заголовочные файлы языка С для сред ОС UNIX и языка С++ для Windows. Реализация существенно использует возможность многопроцессной обработки над разделяемой памятью в среде Unix и/или наличие многопоточной  обработки в среде Windows. Перенос данных средств на другие платформы обусловлен наличием там указанных трансляторов и соответствующих средств поддержки многопроцессной или многопоточной работы.  Легкость включения в создаваемую распределенную систему прикладных компонент сторонних организаций обусловлен наличием у этих компонент интерфейса на языках С и/или С++;
аналогично, в необходимых местах комплекса при наличии соответствующего интерфейса относительно просто подключаются сертифицированные программные средства защиты информации;
интерфейс с СУБД строится на объектах-серверах приложений с использованием встроенных языковых средств самой СУБД, допускающих обращение из языков С и С++;
многоплатформенность обусловлена выполнением перечисленных выше требований для ОС рассматриваемой платформы;
при рассмотрении возможностей перспективных разработок и модернизации или замены поставляемого ПО на другие продукты необходимо отметить возможность одновременного функционирования, в том числе на переходный период, комплекса CDIS и других сетевых технологий;
в CDIS реализован специализированный объект, позволяющий легкое подключение и интеграцию в единый комплекс программных компонент, создаваемых с помощью средств быстрой разработки на языках С++, Java, Visual Basic, Python и т. д.;
дополнительно, на основе разработанных и включенных в комплекс оригинальных средств синхронизации, сочетающих в себе одновременно возможности таких механизмов синхронизации как мониторы, критические области и «рандеву», реализована и уже эксплуатируется система с мультиплексированием запросов к БД как в мониторах транзакций. Это позволяет многократно увеличить количество одновременно работающих клиентов БД и ведет к существенному сокращению затрат на закупаемое лицензионное ПО;
комплекс полностью является авторской технологией и может быть сертифицирован и включён в состав специальных ОС и ОС общего назначения, применяемых при создании систем мониторинга, управления объектами в реальном масштабе времени, АСУ ТП, Интернета вещей и АСУ управления оружием.


Илюшин А.И., кфмн
Васильев С.А., кфмн
Селезнёв С.П., ктн

Телефон разработчиков: +7 916 4421081
(В настоящее время работают в МГУ, ИПМ им. М.В. Келдыша РАН и компании Фактор-ТС)

Комментариев нет: