Средства создания дистрибутивов

Часть 2. Серверные Windows-приложения

Наталия Елманова

За пределами настольных приложений

Встраиваемые компоненты других производителей

Присвоение прав доступа

Приложения, включающие службы компонентов

Приложения, содержащие службы операционной системы

Удаление продукта

Несколько слов о тестировании дистрибутивов

Инструменты

 

В первой части данной статьи рассматривались вопросы, связанные с созданием дистрибутивов простейших Windows-приложений. Вторая часть посвящена созданию дистрибутивов серверных приложений, Web-приложений, вопросам включения в состав дистрибутива продуктов других производителей, служб операционной системы, компонентов COM+.

За пределами настольных приложений

Как известно, подавляющее большинство современных проектов, связанных с разработкой программного обеспечения, в том числе не относящихся к категории крупномасштабных, никоим образом не ограничивается созданием и внедрением настольных приложений. Даже однопользовательские приложения сейчас нередко используют локальные версии серверных СУБД, не говоря уже о многопользовательских и распределенных системах. И при создании дистрибутивов таких приложений, помимо задач, связанных с копированием файлов, с корректной установкой библиотек общего назначения, с регистрацией COM-серверов, с модификацией ini-файлов и реестра, возникают более сложные проблемы, от решения которых напрямую зависят затраты на внедрение и сопровождение проекта. К ним относятся вопросы установки встраиваемых компонентов других производителей, присвоения прав доступа к различным компонентам приложения, создания виртуальных Web-серверов, корректной установки приложений COM+, выполнения каких-либо нестандартных действий при установке приложения. Далее мы обсудим эти вопросы более подробно.

В начало В начало

Встраиваемые компоненты других производителей

Компоненты других производителей, предназначенные для встраивания в другие приложения, — встраиваемые СУБД, клиенты серверных СУБД, генераторы отчетов или их runtime-модули, и др.— как правило, можно установить отдельно: дистрибутивы таких компонентов обычно доступны или в виде отдельного продукта, или в комплекте поставки других продуктов. Так, Microsoft Desktop Engine можно найти в составе Microsoft SQL Server и некоторых других продуктов Microsoft либо загрузить с сайта производителя как отдельный продукт. Тем не менее многие пользователи предпочитают иметь один дистрибутив и выполнять одно инсталляционное приложение. Иногда в составе встраиваемого продукта поставляется инструкция о том, какие именно библиотеки из его комплекта поставки следует включить в дистрибутив использующего его приложения и какие изменения внести в ini-файлы или в реестр. Однако в последнее время у поставщиков встраиваемых компонентов принято создавать так называемые модули слияния (merge modules), позволяющие включить компонент непосредственно в дистрибутив использующего его приложения. Так, пользователи InstallShield Express могут включить в состав дистрибутива своего приложения такие компоненты, как runtime-модули Crystal Reports, СУБД Microsoft Desktop Engine (и при этом скрыть от пользователя пиктограмму этого приложения в аплете «Установка и удаление программ» панели управления Windows), библиотеки Microsoft Common Controls и Microsoft Data Access Components различных версий, Microsoft Jet Database Engine, DirectX, а наиболее дорогостоящие версии генераторов дистрибутивов (например, InstallShield Premium) позволяют создавать собственные модули слияния.

 

Добавление модулей слияния (InstallShield Express)

Добавление модулей слияния (InstallShield Express)

Клиентские части серверных СУБД могут устанавливаться отдельно, входить в состав дистрибутива приложения, а в ряде случаев — компилироваться в исполняемый файл самого приложения (например, существуют компоненты для доступа к Oracle, позволяющие включить в состав исполняемого файла код, содержащий базовые функции клиентской части этой СУБД).

Включение компонентов сторонних производителей в состав собственного продукта порождает не только технические, но и юридические и финансовые вопросы. Некоторые компоненты можно включать в состав собственного приложения при приобретении лицензии, или при включении лицензии на продукт в состав собственной лицензии, или при заключении с производителем компонента VAR-соглашения (Value-Added Reseller — компания, включающая в состав своего продукта компонент или продукт другой компании). Как правило, VAR-партнеры получают компоненты по ценам, отличным от цен для конечных пользователей, — в таких партнерах заинтересованы почти все производители программного обеспечения).

Нередко условия включения компонента в состав приложения предусматривают и иные требования — например указание логотипа производителя компонента или упоминание о компоненте в маркетинговых материалах конечного продукта. Иногда производитель разрешает установку компонента с применением только собственного дистрибутива. В любом случае при рассмотрении вопроса о включении продукта в состав дистрибутива следует руководствоваться лицензионным соглашением, причем тем, что предназначено для поставщиков решений на основе данного компонента, а не для конечных пользователей.

Отметим, что включение в состав продукта отдельных дистрибутивов свободно распространяемых продуктов (таких как Adobe Acrobat Reader) также сопровождается получением соответствующего разрешения производителя.

В начало В начало

Присвоение прав доступа

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

 

Присвоение прав доступа анонимному Интернет-пользователю (InstallShield Express)

Присвоение прав доступа анонимному Интернет-пользователю (InstallShield Express)

В начало В начало

Виртуальные каталоги и виртуальные сайты

Поставка Web-приложений предполагает создание виртуальных сайтов и виртуальных каталогов Web-серверов. В этом случае иногда бывает нужно определить, где именно на компьютере, на который производится установка такого приложения, расположены каталоги Web-сервера (и совершенно точно не стоит руководствоваться предположениями типа «корневой каталог Internet Information Services у большинства пользователей расположен в физическом каталоге C:\Inetpub\wwwroot»). Как правило, современные средства создания дистрибутивов могут найти, где расположен корневой каталог Web-сервера (например, InstallShield Express умеет находить корневой каталог Internet Information Services, обращаясь к его метабазе), и создать другой виртуальный каталог либо виртуальный сайт (если такое действие позволяет осуществить операционная система компьютера, на который устанавливается приложение), а также описать его свойства и права доступа к нему Интернет-пользователей.

 

Создание виртуального каталога IIS (InstallShield Express)

Создание виртуального каталога IIS (InstallShield Express)

Отметим, что при создании дистрибутивов Web-приложений иногда следует задаться вопросом: не нужно ли присвоить пользователям Интернета права на доступ к каталогам, не имеющим, казалось бы, прямого отношения к Web-серверам? Так, при обращении Web-приложения к клиентской части серверной СУБД вполне может потребоваться присвоение Интернет-пользователям подобных прав на каталог с клиентской частью этой СУБД. При этом, как и в предыдущем случае, при создании дистрибутивов не стоит полагаться на то, что присвоение прав не потребовалось в процессе разработки (например, права доступа пользователей Интернета к каталогам в разных компаниях могут различаться, равно как в разных версиях Windows различаются настройки безопасности по умолчанию).

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

В начало В начало

Приложения, включающие службы компонентов

Установка приложений, управляемых службами компонентов (называвшихся ранее приложениями COM+), не составляет труда: экспорт готового приложения в файл *.msi, предназначенный для Windows Installer, легко выполняется непосредственно из Microsoft Management Console. Средства создания дистрибутивов обычно также позволяют включить подобное приложение в состав дистрибутива продукта и при необходимости переопределить некоторые его свойства — правила доступа к компоненту или время, в течение которого компонент находится в памяти, если к нему не происходит обращений.

В начало В начало

Приложения, содержащие службы операционной системы

Служба операционной системы, по существу, представляет собой исполняемый файл, который может быть загружен в память при старте операционной системы. Как правило, установка службы производится следующим образом: исполняемый файл службы и связанные с ним файлы (библиотеки данных и др.) копируются на компьютер пользователя, затем исполняемый файл запускается с ключом — install, а затем устанавливаются параметры функционирования службы (автоматически ли она запускается, от имени какого пользователя происходит запуск службы и т.д.). Если используемое средство создания дистрибутивов не поддерживает непосредственную регистрацию служб операционной системы, то оно, как правило, поддерживает выполнение команд операционной системы, внешних приложений, административных скриптов, а нередко и вызов функций из библиотек, так что решение подобной задачи не вызывает проблем.

 

Описание параметров запуска внешнего приложения (InstallShield Express)

Описание параметров запуска внешнего приложения (InstallShield Express)

В начало В начало

Удаление продукта

Даже подумав о создании дистрибутива и выделив на это соответствующие ресурсы, разработчики далеко не всегда задумываются о том, что продукт иногда требуется не только установить, но и удалить. А это означает, что следует удалить не только файлы, но и ключи реестра, и созданные переменные окружения, и службы компонентов, и виртуальные каталоги, оставив при этом файлы, созданные пользователями. Как правило, дистрибутивы, созданные с использованием предназначенных для этой цели средств, поддерживают осуществление корректного удаления установленного продукта. Однако если при установке выполнялись команды операционной системы, административные скрипты, внешние приложения, то следует реализовать корректное удаление последствий их деятельности, создав соответствующие скрипты и внешние приложения, выполняющиеся не при установке, а при удалении продукта. Так, удаление службы операционной системы заключается в ее остановке, запуске приложения с ключом –uninstall и лишь затем — в удалении самого исполняемого файла службы. В противном случае пользователь либо получит при удалении приложения сообщение о невозможности удаления файла, либо каждый раз при загрузке операционной системы будет видеть сообщение о невозможности запуска одной из служб операционной системы.

В начало В начало

Несколько слов о тестировании дистрибутивов

Тестирование дистрибутивов — задача нетривиальная. Конфигурации компьютеров конечных пользователей значительно различаются, и в инсталляционном приложении это должно учитываться. Реально это означает, что дистрибутив следует испытать в различных операционных системах, иногда — в разных языковых версиях, с различными установленными пакетами обновления.

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

В начало В начало

Инструменты

Как правило, дистрибутивы с перечисленными выше возможностями создаются не с помощью версий инструментов создания инсталляционных приложений, включенных в состав средств разработки, а с помощью полнофункциональных версий генераторов дистрибутивов. Как было упомянуто в предыдущей статье данного цикла, компания Microsoft рекомендует средства создания дистрибутивов трех производителей — InstallShield, OnDemand Software и Wise Solutions. Каждая из этих компаний производит широкий спектр продуктов, предназначенных для создания различных типов инсталляционных приложений.

Продукт компании InstallShield, предназначенный для создания подобных приложений, выпускается в нескольких редакциях — InstallShield Express, InstallShield Professional и InstallShield Premier, различающихся по функциональности и стоимости. Возможности наиболее дешевой редакции — InstallShield Express (около 450 долл.) — позволяют решать задачи, описанные в обеих частях статьи, а самая дорогая редакция — InstallShield Premium — обеспечивает создание дистрибутивов ознакомительных версий, использование служб Update Services, редактирование диалогов инсталляционного приложения, установку базы данных Microsoft SQL Server и MySQL, создание дистрибутивов приложений для UNIX и Linux, а также Java-приложений.

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

Компания OnDemand Software производит семейство средств создания дистрибутивов Windows-приложений WinInstall. Данный продукт выпускается в нескольких редакциях, начиная с бесплатной редакции WinInstall LE, поддерживающей создание дистрибутивов для Windows Server 2003 и позволяющей преобразовывать старые дистрибутивы и дистрибутивы, созданные с помощью продуктов других производителей, в пакеты Windows Installer, поддерживающие их установку с помощью Microsoft Systems Management Server, и заканчивая продуктом WinInstall 8.6, позволяющим не только решать задачи, перечисленные в данной статье, но и осуществлять управление изменениями и обновлениями, проверять корректность установочных пакетов, осуществлять их установку по расписанию.

Помимо этого компания OnDemand Software выпускает продукт под названием Desktop Availability Suite, позволяющий удаленно устанавливать приложения и обновления на рабочие станции.

Компания Wise Solutions производит широкий спектр средств создания инсталляционных приложений, в том числе Wise Installation System для создания дистрибутивов Windows-приложений с помощью редактируемых скриптов и Setup API, а также Web-приложений и приложений для мобильных устройств; Wise for Windows Installer для создания пакетов Windows Installer; Wise Package Studio для создания обновлений корпоративных приложений и управления ими. Все эти продукты выпускаются в различных редакциях, отличающихся поддерживаемым набором функций.

В начало В начало

Заключение

В настоящей статье мы рассмотрели вопросы, связанные с созданием дистрибутивов серверных приложений, Web-приложений, с включением в состав дистрибутива продуктов других производителей, служб операционной системы, компонентов COM+, а также вопросы тестирования дистрибутивов. Отметим, что спектр инструментов, способных упростить решение указанных задач, сегодня достаточно широк и что в большинстве случаев их приобретение вполне оправданно, так как позволяет сэкономить человеко-дни, затрачиваемые как на разработку, так и на сопровождение приложений.

КомпьютерПресс 4'2005


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует