Технология автоматической установки и обновления программ


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

В связи с этим при разработке системы учтено требование минимизации затрат на обслуживание и установку системы. Важнейшую роль в реализации этих требований играет подсистема автоматической установки и обновления программ. Ее основные возможности заключаются в следующем:
  • Централизованное хранение всех программных модулей КМИС на сервере. Все приложения, созданные в рамках КМИС, хранятся на сервере. При установке КМИС администратору необходимо выполнить только установку клиентского программного обеспечения IBM Lotus Notes и настроить разрешения для работы конкретных пользователей. Эта операция занимает в среднем 15-20 минут и может быть существенно сокращена за счет использования установочных образов. В ходе установки IBM Lotus Notes администратор специальным образом настраивает "Начальную страницу КМИС" - специальную БД, предназначенную для навигации по различным подсистемам КМИС. Никакого другого программного обеспечения КМИС устанавливать не требуется - все, что нужно, система запросит с сервера и установит на рабочей станции пользователя автоматически.
  • Автоматическое обновление программных модулей КМИС. Идеология развития системы предусматривает постоянный (примерно 1 раз в месяц) выпуск новых версий системы. При этом установка этих обновлений осуществляется администраторами только на сервере КМИС. Все процедуры по обновлению БД, а также обновлению программного обеспечения КМИС, установленного системой на рабочих станциях пользователя, осуществляется полностью автоматически. Администраторам не нужно постоянно посещать рабочие места пользователей для установки различных кумулятивных обновлений и новых программ КМИС - все эти задачи система выполняет автоматически.
  • Поддержка хранения шаблонов форм. Кроме функций централизованного хранения и обновления приложений КМИС, подсистема установки и обновления программ поддерживает обработку шаблонов. Например, в специальный репозиторий КМИС могут быть помещены формы статистической отчетности. Для доступа к этому репозиторию в API системы встроен специальный набор функций. Программисты (в том числе и сторонние разработчики) могут написать вызов функций этого API. Таким образом, если какому-то приложению системы понадобиться выполнить, например, экспорт результатов работы в определенный шаблон, то приложение КМИС просто обратиться программным образом к этому репозиторию. Сама система автоматически найдет нужный шаблон, скачает его с сервера и установит в указанную папку программы. Администраторам и разработчикам нет нужны беспокоиться об установке этих шаблонов или их обновлении.
  • Поддержка территориально-распределенных инсталляций КМИС. В случае территориально распределенных серверов с независимыми базами данных между ними КМИС умеет автоматически обновлять все удаленные сервера, используя каналы связи между ними. Это обновление основано на применении технологии репликации, а также на наших фирменных технических решениях. В результате мы гарантируем автоматическое обновление приложений баз данных системы даже для территориально удаленных инсталляций системы. При этом возможна любая частота обновлений – от нескольких раз в час до, например, еженедельного. Для этого надо лишь правильно настроить расписание репликации между серверами Domino – и всю необходимую работу система выполнит сама.
  • Реализация поддержки автоматической установки и обновления программ для сторонних приложений. Для приложений, написанных сторонними средствами, например на Delphi, мы предлагаем специальный API, реализующий данную технологию. Для этого предусмотрена специальная база данных – «Центр программ». Она тесно интегрирована в ядро системы, где существует отдельная программная библиотека, реализующая сервисы для работы с этой технологией. Суть данной работы заключается в том, что физически программа инсталлируется системой на машину пользователя только при первой необходимости и при этом автоматически! В случае обновления файлов программы они помещаются в центр программ, и система производит обновление установленного приложения, опять же автоматически. При этом процессы инсталляции или обновления уже установленного ПО прозрачны для пользователя – он даже не знает, что именно выполняется. Пользователю достаточно просто дать команду на запуск программы, а уже все остальные задачи система решает самостоятельно. Т.к. центр программ встроен с ядро системы, то и обновление и синхронизация версий файлов, хранящихся в нем, производится автоматически для удаленных инсталляций. При этом архитектура "Центра программ КМИС" позволяет публиковать не только приложения в виде исполняемых (.exe) файлов, но и другие типы приложений - например, Java-программы. Более того, у разработчиков есть возможность публиковать несколько редакций одного и того же приложения - но для разных операционных систем. В результате КМИС сама определяет, какую редакцию приложения нужно инсталлировать или обновить - в зависимости от того, в какой операционной системе в данное время ведет работу пользователь.
Работа с центром программ в Карельской медицинской информационной системе
Работа с центром программ в Карельской медицинской информационной системе
  • Подробный протокол работы. Все операции по обновлению программных компонентов КМИС, а также по их установке, подробно протоколируются системой. Администратор КМИС всегда может посмотреть - какие приложения были инсталлированы или обновлены.
Работа с протоколами функционирования подсистемы установки и обновления программ в КМИС
Работа с протоколами функционирования подсистемы установки и обновления программ в КМИС
  • Автоматизация задач обновления. Наиболее критически значимые задачи обновления и синхронизации программного кода КМИС выполняются сервером КМИС автоматически (ежедневно в ночное время). За счет этого нагрузку на администраторов по обслуживанию системы удается сократить еще больше.