СПОСОБ АВТОМАТИЧЕСКОЙ УСТАНОВКИ ПРИЛОЖЕНИЯ БЕЗ УЧАСТИЯ ЧЕЛОВЕКА
METHOD FOR AUTOMATIC INSTALLATION OF APPLICATION WITHOUT HUMAN PARTICIPATION

Область техники
Изобретение относится к способам установки программного обеспечения, а более конкретно к способам автоматической установки программного обеспечения без участия человека.
Уровень техники
В настоящее время задача установки программного обеспечения (ПО) на компьютеры пользователей может быть решена несколькими путями. Первый заключается в ручной установке каждого дистрибутива программного обеспечения, но имеет ряд недостатков, одни из которых: требование прав администратора, наличие достаточной квалификации у пользователя и определенное количество времени на установку. В рамках корпоративной сети подобные функции выполняет администратор, что при большом количестве компьютеров делает ручной подход к установке ПО неприемлемым.
Другие варианты установки ПО включают использование образа операционной системы с уже установленными приложениями или установка ПО в автоматическом режиме. Последний вариант требует либо наличия у устанавливаемого приложения возможности установки в скрытом режиме (англ. silent или quiet mode), когда не требуется участия пользователя, либо использования специальных программ, которые записывают действия пользователя для их воспроизведения в будущем. Например, использование программы Auto Clicker Турег позволяет записывать нажатие определенных кнопок в окне (например, "Next>" или "Finish").
Однако в ряде случаев установка ПО в скрытом режиме может быть недоступна или же во время инсталляции требуется произвести ряд действий, которые могут быть связаны с программно-аппаратной частью компьютера (например, требование наличия предустановленного пакета NET Framework или проверка аппаратной поддержки функций приложения). Еще одним примером действий со стороны пользователя можно назвать обязательное согласие с условиями пользовательского соглашения (англ. EULA, End User License Agreement). В патенте US 8490079 описан подход установки ПО с учетом возникающих ошибок (например, вследствие отсутствия согласия с EULA) и последующим перезапуском процесса установки для их обхода.
Хотя в настоящее время существует достаточно большое количество средств автоматизации установки ПО, все они так или иначе основаны на анализе уже существующих приложений и способов их установки. При выходе нового ПО или изменении процедуры установки требуется участие человека для корректировки процедуры автоматической установки. Таким образом, требуется создать решение, способное производить автоматическую установку любого ПО без участия человека вне зависимости от условий установки.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно способом автоматизации процесса установки приложения.
Раскрытие изобретения
Технический результат настоящего изобретения заключается в обеспечении возможности автоматической установки приложения с помощью применения правила установки для инсталлятора приложения, создание которого происходит с помощью способа создания правила установки, при этом правило установки включает последовательность активации управляющих элементов при работе инсталлятора для успешного завершения установки, способ содержит этапы: а) запускают инсталлятор приложения с помощью средства установки; б) анализируют активное окно инсталлятора приложения на предмет наличия активных элементов с помощью средства исследования; в) производят поиск управляющих элементов в окне с помощью средства исследования, при этом управляющие элементы являются теми активными элементами, которые отвечают за переход на другие окна инсталлятора приложения; г) переходят по управляющим элементам к другим окнам инсталлятора с помощью средства исследования; д) повторяют этапы б) - г) для каждого активного окна инсталлятора до тех пор, пока не будут проанализированы все окна инсталлятора; е) создают правило установки в базе данных правил установки на основании обнаруженных управляющих элементов.
Согласно одному из вариантов реализации дополнительно проверяют успешность установки.
Согласно еще одному из вариантов реализации успешность установки может включать по крайней мере один из следующих критериев: наличие реестровых изменений в операционной системе; наличие файловых изменений в операционной системе; добавление приложения в список Add/Remove Programs; появление иконки для запуска приложения на рабочем столе или окне быстрого запуска; перезагрузка компьютера; появление новых служб; установка новых драйверов; запуск процессов из новых директорий; появление новых плагинов.
Согласно другому варианту реализации активным элементом может быть по меньшей мере один из следующих элементов интерфейса: Button, RadioButton, CheckBox, ComboBox, ListBox, Image, Label, TextBox, TabControl, Grid, StackPanel.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 отображает способ работы настоящего изобретения.
Фиг.2 приводит примеры экранов инсталлятора ПО VMware workstation.
Фиг.3 иллюстрирует граф переходов между окнами интерфейса одного из инсталляторов.
Фиг.4 иллюстрирует анализ окон инсталлятора с целью обнаружения управляющих элементов.
Фиг.5 показывает работу системы настоящего изобретения.
Фиг.6 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Инсталляционный пакет (далее просто пакет или инсталлятор) содержит, как правило, помимо дистрибутива программного обеспечения, набор определенных метаданных, которые могут включать в себя полное имя пакета, номер версии, описание пакета, имя разработчика, контрольную сумму и т.д. Установку ПО в операционной системе (ОС) производит, как правило, система управления пакетами (как, например, в Unix или Mac OS системах) или отдельная компонента операционной системы (Windows Installer для семейства систем Windows). При установке ПО могут требоваться действия пользователя, связанные с выбором компонент ПО, соглашением с пользовательским соглашением (EULA) и др. На Фиг.2 приведены примеры экранов инсталлятора ПО VMware workstation. Можно видеть, что активными элементами интерфейса (далее просто элементы) окон, доступных пользователю, являются кнопки (элемент Button) "Next>", "Cancel", "<Back", а также элементы типа RadioButton. Окна для других инсталляторов ПО могут содержать и элементы других типов, такие как CheckBox, ComboBox, ListBox, Image, Label, TextBox, TabControl, Grid, StackPanel и другие. Стоит отметить, что элементы могут быть как активными (пользователь может с ними взаимодействовать), так и неактивными (например, кнопка "Next>" может быть заблокирована, пока пользователь не согласится с условиями пользовательского соглашения). В свою очередь среди элементов можно выделить также управляющие элементы, которые отвечают за переход на другие окна или разблокировку других элементов в окне.
Нажимая на различные элементы интерфейса инсталлятора, пользователь может выбирать необходимые опции ПО, переходить между различными этапами установки, заканчивать инсталляцию и т.д. Фиг.3 иллюстрирует граф переходов между окнами интерфейса одного из инсталляторов. В виде кругов с цифрами приведены окна инсталлятора (как правило, окна также отражают определенные этапы установки ПО), стрелки с указанием соответствующих кнопок указывают на переходы между окнами. Например, нажатие кнопки "I agree" приводит к переходу между окнами 3 и 4, в то время как нажатие кнопки "Cancel" на окнах 1, 5, 6, 7 приводит к завершению процесса инсталляции на окне 2. Можно видеть, что последовательность нажатия ряда кнопок "next", "I agree", "Install" приведет к успешной установке ПО на компьютере. В рамках настоящего изобретения последовательность нажатия кнопок (или выбора других элементов интерфейса), которая приведет к успешной установке ПО, будет называться правилом установки.
Настоящее изобретение использует правила установки для различных инсталляторов с целью их автоматической установки без участия пользователя.
Фиг.1 отображает способ работы настоящего изобретения. На этапе 100 на компьютер пользователя попадает инсталляционный пакет ПО, который необходимо установить. На этапе 110 получают правило установки для инсталляционного пакета. Правило установки включает последовательность активации управляющих элементов (например, нажатий ряда кнопок) при работе инсталлятора для успешного завершения установки. Правило установки может применяться как под конкретный инсталлятор (т.е. это будет жестко заданный набор нажимаемых кнопок), так и может быть достаточно общим (например, многим инсталляторам будет достаточно несколько раз нажать кнопку "Next>"). На этапе 120 производится установка ПО с использованием правила установки, после чего на этапе 130 проверяется, была ли установка успешной. Примеры успешной установки могут включать одно или несколько следующих условий:
- Наличие файловых и/или реестровых изменений в ОС;
- Добавление приложения в список Add/Remove Programs;
- Появление иконки для запуска приложения на рабочем столе или окне быстрого запуска;
- Перезагрузка компьютера;
- Появление новых служб;
- Установка новых драйверов;
- Запуск процессов из новых директорий или исполняемых файлов;
- Появление новых плагинов (например, в браузерах).
В том случае если установка была признана успешной, то способ заканчивает свою работу на этапе 140. В ином случае на этапе 150 происходит исследование инсталлятора для проведения успешной установки с помощью нового или измененного правила установки. Исследование инсталлятора приведено ниже. После того как новое правило установки будет получено на этапе 160, способ возвращается к этапу 120 для повторного проведения установки, пока установка не будет успешно произведена.
В одном из вариантов реализации исследование инсталлятора приведено на Фиг.4 и иллюстрирует анализ окон инсталлятора с целью обнаружения управляющих элементов. На этапе 400 происходит получение инсталлятора для его исследования, после чего на этапе 410 происходит его запуск. Исследование может быть выполнено в виде запуска, который может быть произведен как в реальной среде, так и в виртуальной (виртуальная машина, эмулятор). Далее на этапе 415 происходит анализ активного окна инсталлятора на предмет наличия активных элементов. На этапе 420 происходит поиск управляющих элементов в окне, т.е. тех элементов, которые отвечают за переход на другие окна или разблокировку других элементов в окне (например, элемент CheckBox, связанный с принятием лицензионного соглашения, делает активным кнопку "next", что позволяет продолжить установку). После того как активные элементы определены, происходит переход по ним к другим окнам инсталлятора на этапе 425 (пример приведен на Фиг.3). В таких окнах процесс обнаружения управляющих элементов повторяется, пока на этапе 430 не обнаруживается, что были проанализированы все окна инсталлятора. После этого на этапе 440 происходит создание правила установки.
Ниже даны примеры правила установки, записанного в формате xml:
<steps>
<window>
<caption>caption 1</caption>
<button>Next</button>
</window>
<window>
<caption>caption 2</caption>
<button>I agree</button>
</window>
<window>
<caption>caption 3</caption>
<button>Next</button>
</window>
<window>
<caption>caption 4</caption>
<button>Next</button>
</window>
<window>
<caption>caption 5</caption>
<button>Install</button>
</window>
<window>
<caption>caption 6</caption>
<button>Finish</button>
</window>
</steps>
Используя данные правила, можно выбирать верный управляющий элемент в зависимости от текущего окна.
Приведем основные критерии создания правила установки:
- Выбирается минимальный маршрут по графу от начального до конечного окна инсталлятора;
- Конечным окном инсталлятора является то окно, после которого определяются файловые и, возможно, реестровые изменения в ОС (что означает успешную установку);
- Добавление приложения в список Add/Remove Programs;
- Появление иконки для запуска приложения на рабочем столе или окне быстрого запуска;
- Перезагрузка компьютера;
- Появление новых служб;
- Установка новых драйверов;
- Запуск процессов из новых директорий или новых исполняемых файлов.
После создания правила установки на этапе 440 оно проверяется на этапе 450. Проверка может быть произведена на компьютере пользователя и успешным результатом может быть как любое из условий успешной установки (перечислены выше), так и обратная связь от пользователя, что происходит на этапе 460, после чего способ заканчивает свою работу на этапе 470. В ином случае способ заново переходит к этапу 440 для создания нового (или измененного) правила установки.
Измененный вариант правила установки предполагает внесение изменений в последовательность нажатия (активации) управляющих элементов в окнах инсталлятора. В одном из вариантов реализации анализируется граф переходов (например, как отображен на Фиг.3) от начального окна до конечного, пока не будет выявлено то окно инсталлятора, после которого не работает ранее известный переход. Например, в измененном окне добавился новый управляющий элемент (например, согласие с дополнительным соглашением), который необходимо активировать. Следовательно, необходимым условием для перехода будет активация нового управляющего элемента.
Возможные трудности при создании правила установки включают следующие варианты:
- Локализация. Названия управляющих элементов могут быть разные в зависимости от локализации. Язык инсталлятора может быть выбран во время его запуска или определен в соответствии с локальными установками на компьютере. Для решения подобной проблемы можно использовать словари, которые приводят элементы с разными названиями к одному общему виду. Например, кнопки с названиями "Next>" и "Далее>" будут сохранены как кнопка "Next" с указанием функционала перехода на следующее окно. Другое решение заключается в использовании идентификаторов элементов в тех случаях, когда идентификаторы одинаковые для различных локализаций.
- Активация одних элементов с помощью других. Например, кнопка "Next>" может быть заблокирована, пока пользователь не согласится с условиями пользовательского соглашения (как правило, это элемент типа Checkbox). Решением данной проблемы является перебор всех активных элементов в окне с их последующей активацией и отслеживанием изменений статуса остальных элементов. Например, после активации одного элемента производят перебор всех остальных элементов окна для отслеживания изменения их статуса. В первую очередь выделяются те элементы, про которые известно, что они управляют переходом на другие окна или заканчивают установку, например кнопки "Next>","InstaH","Finish".
- Нестандартные управляющие элементы, как, например, изображения. В таком случае в правилах будет указан идентификатор изображения, на которое будет необходимо нажать, или даже указание координат для нажатия.
Созданные правила установки могут быть формализованы для того, чтобы они могли быть использованы не только для определенного приложения, но и для широкого круга ПО. Например, если для одного инсталлятора правило установки включает нажатие 2 кнопок "Next>" и одной кнопки "Finish", а для второго инсталлятора это - нажатие 3 кнопок "Next>" и одной кнопки "Finish", то формализация может быть следующей: нажатие N кнопок "Next>" и нажатие кнопки "Finish" в последнем окне. Такие правила также можно сохранять в формате xml.
Фиг.6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш-карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47 персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании сущности персонального компьютера 20, представленного на Фиг.6. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN - или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.