Система контроля актуальности версий и своевременного обновления САПР «БАЗИС»
Общеизвестными и наиболее существенными преимуществами облачных технологий являются централизация управления, консолидация ресурсов и возможность их быстрого увеличения по запросу, возможность доступа с любых платформ, повышенная отказоустойчивость. В данной статье рассматривается еще одно преимущество от их использования в виде новой услуги, предоставление которой возможно по принципу SaaS (англ. Software-as-a-Service — программное обеспечение как услуга). Оно, несомненно, может заинтересовать, прежде всего крупные промышленные предприятия отечественного
и зарубежного мебельного бизнеса.
Проблемы актуальности
Одной из основных проблем, с которыми сталкиваются системные администраторы крупных компаний, является контроль актуальности версий используемого программного обеспечения. Можно, конечно, нанять целый штат помощников, которые будут периодически удаленно проверять и актуализировать его версии. Однако данный подход имеет большое количество недостатков, таких как отсутствие централизации, большая зависимость от человеческого фактора, огромные время и трудозатраты при низком КПД и многие другие. Несмотря на это, многие компании до сих пор применяют такой подход изза отсутствия достойных альтернатив, которые можно без проблем использовать в условиях территориально распределенной сетевой инфраструктуры.
В случае мебельной промышленности эта инфраструктура, как правило, выглядит следующим образом: само производство и центральный склад, совмещенный с центральным офисом, региональные склады с местными офисами и большая сеть мебельных салоновмагазинов. Во всех ее точках присутствуют элементы САПР, с помощью которых принимаются заказы, проектируются изделия, производится технологическая подготовка производства, реализуются функции управления производством и решается ряд других задач. Естественно, что все имеющееся там программное обеспечение (ПО) необходимо поддерживать в актуальном состоянии.
Решить данную проблему можно путем внедрения системы, способной в автоматизированном режиме производить контроль и обновление версий и компонентов используемого программного обеспечения. Система должна обладать следующими ключевыми возможностями:
- быть легко масштабируемой;
- не зависеть от контролируемого ПО;
- иметь систему мониторинга инсталляций;
- иметь возможность самообновления.
К сожалению, в отличие от мобильных платформ на базе таких операционных систем, как Android и iOS, ОС Windows не имеет встроенного инструментария для контроля версий установленных приложений, за исключением Центра Обновления Windows, который следит за приложениями, разработанными корпорацией Microsoft. Многие другие производители ПО тоже поддерживают собственные системы автоматического обновления, которые, тем не менее, не отличаются универсальностью, поскольку создаются под конкретный программный продукт.
По этой причине системным администраторам приходится придумывать различные ухищрения, например, использование скриптов собственной разработки вкупе с групповыми политиками домена [2]. Такой подход имеет ряд недостатков, поскольку, вопервых, в сети должен присутствовать сам единый домен, а вовторых, произвести установку и обновление таким способом возможно далеко не для любого программного пакета. В некоторых случаях вообще может потребоваться самостоятельная подготовка пакета установки msi, что, в свою очередь, повлечет необходимость приобретения дополнительного ПО и привлечения более квалифицированного персонала.
Поисковые системы также не могут дать однозначного ответа на запрос, как автоматически обновлять программное обеспечение в локальной сети. Поэтому специалистами компании «БазисЦентр», которая является разработчиком отечественной САПР для автоматизации мебельного производства «БАЗИС» [3], создана система, позволяющая производить обновление программных модулей в автоматизированном режиме в больших вычислительных сетях.
Структура системы
За основу разработанной системы была взята система управления версиями файлов с открытым исходным кодом Mercurial [4]. Она предоставляет пользователю большой набор инструментов для контроля версий файлов. В основе системы Mercurial лежат так называемые репозитарии — хранилища, содержащие сами файлы, а также все изменения, приведшие к их модификациям. Таким образом, системный администратор может просмотреть историю изменения любого файла в хранилище и восстановить любую его версию, что невозможно при использовании других систем синхронизации файлов, таких, например, как GoodSync или PureSync, которые содержат только результирующую версию файла и больше подходят для проведения операций резервного копирования.
Аналогичными недостатками обладают системы «Яндекс.Диск» и Google Drive. В них, помимо всего прочего, конечный пользователь может сам изменить файл, и все его изменения попадут на сервер хранения без возможности отката изменений. Происходит это потому, что подобные системы рассчитаны на то, что всеми компьютерами управляет один пользователь. Они идеально подходят в случаях, когда необходимо, например, синхронизировать документы, расположенные на рабочем компьютере, с документами на домашнем компьютере без использования внешних накопителей.
Помимо этого использование в качестве платформы системы с открытым исходным кодом, что подразумевает наличие развернутой документации и разнообразного API, делает возможным гибкую ее доработку под собственные нужды — при условии, что на предприятии имеется программист или даже опытный системный администратор.
Система контроля и мониторинга версий ПО, разработанная компанией «БазисЦентр», представляет собой надстройку над CVS Mercurial. Она позволяет управлять обновлением локальных репозитариев, а также контролировать их текущее состояние и представлять их в удобном виде.
Фактически, система состоит из трех частей:
- сервис, устанавливаемый на клиентский компьютер;
- серверная часть, которая может быть как развернута на одном из серверов предприятия, так и предоставлена компанией «БазисЦентр» по технологии SaaS;
- администраторская часть.
Сервис клиента
Сервис для ОС Windows, который устанавливается на клиентский компьютер в виде службы, периодически запрашивает сервер о наличии изменений и скачивает их на клиентский компьютер. Помимо этого он отправляет на сервер информацию о текущем состоянии обновления. Здесь следует отметить одну важную особенность работы сервиса.
Для того чтобы произвести обновление, необходимо, чтобы директория, в которой производится обновление, не была занята другими процессами. Другими словами, из этой директории не должна быть запущена ни одна программа, и файлы, находящиеся в ней, не должны быть открыты в других программах. Таким образом, во время работы системы обновления пользоваться обновляемым ПО невозможно. Поскольку обновление файлов выполняется через Интернет, который не всегда работает стабильно и быстро, особенно в регионах, работа мебельного салона может остановиться на довольно значительное время. Это еще один существенный недостаток имеющихся систем синхронизации.
Предлагаемый сервис работает по другой схеме. Обновление всегда выполняется во временную директорию, и только после успешного завершения процесса производится обновление рабочей директории, которое занимает всего несколько секунд. Если же в процессе получения обновлений происходит какойлибо сбой, то через некоторое время сервис пробует повторить операцию загрузки. Это позволяет исключить возможность частичного обновления рабочей директории, что может привести к неработоспособности всего обновляемого ПО.
Кроме того, в процессе обновления сервис отменяет все изменения, сделанные пользователем в рабочей директории, если таковые имеются. Таким образом, администратор может быть уверен, что содержимое рабочей директории программы у пользователя не отличается от серверного эталона в случае, если обновление прошло успешно.
Серверная часть системы
Рис. 1. Список инсталляций
Серверная часть разработанной системы представляет собой непосредственно набор репозитариев, в которых хранятся файлы и их модификаторы. Она имеет удобный вебинтерфейс для администратора (рис. 1), в котором отображается список всех инсталляций. Для каждой из них указываются следующие основные параметры:
- время первоначальной установки;
- время, прошедшее с момента последнего подключения пользовательского сервиса к серверу мониторинга;
- номера ревизий (версий), которые находятся в данный момент на сервере, а также во временном и рабочем репозитариях пользователя.
Желтым цветом выделяются те инсталляции, на которых обновленные файлы успешно скачиваются на локальный компьютер, но не могут быть обновлены в рабочей директории, красным — на которых обновления не могут быть скачаны даже во временную директорию. Таким образом, администратор может в режиме реального времени выявлять проблемные компьютеры, в процесс обновления которых требуется его личное вмешательство. Кроме того, для каждой инсталляции администратор может задать вспомогательную информацию: ее название (идентификатор) и контактный телефон лица, ответственного за данное рабочее место (рис. 2).
Рис. 2. Параметры инсталляции
Рис. 3. График состояния инсталляций
В системе предусмотрен механизм, позволяющий руководству компании оперативно оценивать эффективность работы системы обновления. Он реализован в виде команды, позволяющей формировать удобный отчет о работе в виде диаграммы, на которой видно соотношение проблемных и работоспособных инсталляций (рис. 3). Это очень удобно при большом количестве последних.
Серверная часть является платформонезависимой и может быть установлена как на сервер под управлением ОС Windows, так и на сервер под управлением ОС семейства Linux. Благодаря низким системным требованиям, сводящимся практически к объему требуемого хранилища, серверная часть может быть установлена даже на виртуальном выделенном сервере (VPS). Эту услугу в настоящее время предоставляют практически все хостинговые компании.
При интеграции с программными модулями системы «БАЗИС» серверная часть может быть развернута на серверах компании «БазисЦентр» и предоставлена по принципу аренды программного обеспечения в облаке (SaaS). В процессе тестирования и отладки рассматриваемого программного комплекса использовался именно такой подход.
Графическая оболочка
Последняя часть системы, устанавливаемая на компьютер администратора, — это графическая оболочка для системы Mercurial под названием Tortoise HG [5]. Она позволяет в удобном виде просматривать текущее состояние серверного репозитария, отслеживать все произведенные в нем изменения, отменять их, а также вносить новые изменения, которые затем будут применены на компьютерах пользователей (рис. 4).
Рис. 4. Окно утилиты TortoiseHG
Помимо этого у администратора есть возможность воспользоваться вебинтерфейсом системы Mercurial, чтобы оперативно получать списки изменений (рис. 5).
Отдельно следует отметить, что разработанный сервис обновлений не привязан к конкретной САПР и при соответствующей настройке может быть использован для любого ПО. Он также может применяться для обычной синхронизации файлов с сервером в том случае, если требуется, чтобы рабочие директории на пользовательских компьютерах не имели различий с серверным репозитарием.
Иногда после обновления возникает необходимость выполнения определенных команд на компьютере пользователя, позволяющих успешно завершить процесс. Для этого в системе предусмотрена возможность выполнения постустановочных сценариев. Поскольку сервис работает в ОС Windows как системная служба и запускается с системными правами, для пользователя весь процесс будет прозрачен и не потребуется никаких дополнительных подтверждений, что очень удобно в условиях большой корпоративной сети.
Внедрение системы
Рассматриваемое программное обеспечение было успешно внедрено и уже более года эффективно используется в бизнеспроцессах одного из ведущих российских производителей мебели — компании «Ангстрем» (г.Воронеж) [6], работающей на отечественном рынке уже более 20 лет и имеющей огромную сеть мебельных салонов во всех регионах России.
Рис. 5. Веб-интерфейс Mercurial
В настоящее время модуль «БазисСалон», предназначенный для моделирования интерьеров помещений и оформления заказов на изготовление типовой и нестандартной корпусной мебели в присутствии заказчика, установлен более чем на 400 компьютерах, находящихся в мебельных салонах компании «Ангстрем». Актуальность его компонентов, включая пользовательские базы материалов и прайслисты, контролируется с помощью описанного выше сервиса обновлений и мониторинга. Удобство и простота интерфейса объясняются тесным взаимодействием при разработке специалистов компании «БазисЦентр» и ИТслужбы компании «Ангстрем», которая непосредственно эксплуатирует систему.
Список литературы:
- Плетнёв А.А. Технологии дистрибьюции и контроля лицензий у конечных пользователей САПР «БАЗИС» // САПР и графика. 2013. № 11(205). С. 3639.
- Централизованная установка приложений в домене AD [Электронный ресурс] / http://odminblog.ru/centralizovannayaustanovkaprilozhenijvdomenead/
- Бунаков П.Ю. Автоматизация проектирования корпусной мебели: основы, инструменты, практика / П.Ю. Бунаков, А.В. Стариков.
М.: ДМК Пресс, 2009. 864 с., ил. - «Mercurial SCM» [Электронный ресурс] / http://mercurial.selenic.com/
- «TortoiseHG» [Электронный ресурс] / http://tortoisehg.bitbucket.org/
- Мебельный холдинг «Ангстрем» [Электронный ресурс] / http://www.angstremmebel.ru/