Program Starter & Updater

Принцип работы

У вас сетевая программа, с которой работают одновременно несколько десятков пользователей. Как лучше установить ее и обновлять? Существует несколько решений:
  1. Установить вашу программу на сетевой диск и сделать его доступным всем. При этом остается проблема обновления ключей реестра, да и саму программу можно обновлять только при условии, когда никто с ней не работает (это зависит от ОС на сервере).
  2. Установить вашу программу на Windows Terminal Server. При этом пользователи для работы с программой должны запустить Terminal Client и выполняют программу непосредственно на сервере, гоняя по сети только экраны. Решение достаточно производительное, но требует усиления сервера (рекомендуется для 1C). Впрочем, в этом варианте присутствуют все проблемы обновления из предыдущего. Еще один минус заключается в приобретении терминальных лицензий на Windows.
  3. Установить вашу программу на локальный диск. При этом запуск программы наиболее быстрый, сервер менее нагружается. Но ее обновление - головная боль администратора. Можно использовать обычные командные файлы (bat), но возможности команд Windows (особенно 9x) удручают. Можно использовать наборы утилит командной строки, портированные из Unix, но с ними еще нужно разбираться, да и к тому же Unix не знает про реестр, BDE и прочее. Поэтому была задумана небольшая программа для обновления и последующего запуска программы.

Windows не позволяет изменять файлы или программы «на лету», то есть когда они используются или выполняются. Как тогда обновить выполняемый модуль или библиотеку в сети с большим количеством пользователей?

Суть нашего решения в следующем:
В ярлыке вашей программы необходимо указать не саму программу, а программу-стартер с одним параметром - файлом настройки (ini-файлом). В этом файле указывается, что и откуда обновлять, какую программу запустить после всех действий. На сервере создается каталог, в котором должны находиться файлы последней версии Вашей программы и стартера. При запуске стартера он сначала обновляет сам себя и файлы настройки, а затем производит действия согласно файлу настройки. После этого запускает основную программу. Если каталог обновления не найден или произошли ошибки, то запуск программы не производится.

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

Возможности

Стартер является консольным приложением, написанным на Object Pascal (Turbo Delphi) c использованием API Windows, что позволило сделать его очень компактным (порядка 100К без сжатия). Консоль позволяет легко выделять фрагменты текста, запускать в ней подряд несколько консольных приложений, останавливать процесс нажатием кнопки Pause и т.д.

Стартер позволяет добавлять (вставлять), изменять (обновлять) и удалять
- папки (только создание и удаление);
- файлы;
- разделы и параметры системного реестра;
- секции и параметры в ini-файлах;
- псевдонимы (алиасы) баз данных BDE;
- строки в текстовых файлах (только вставка).

См. подробнее readme.

Версии

Официальная версияДатаРазмерСсылкиСтатус
1.423.09.08268.57 КБдля Windows


Based on design by xactive -