Zero Configuration

Материал из Course Orchestra
Перейти к: навигация, поиск
Showcase

Создание решений на КУРС:Showcase

Общее описание

ZERO-конфигурация призвана упростить процедуру разворачивания и настройки решений у клиентов, а также использование платформы новыми пользователями. Это достигается благодаря выводу в браузере (в веб-интерфейсе) на главной странице веб-приложения Showcase (http://host:port/Showcase) или Mellophone (http://host:port/mellophone) сообщений и ошибок, возникающих в процессе развертывания решений (отсутствие указания пути к папке пользовательских данных, отсутствие папки пользовательских данных, отсутствие подключения к базе данных или серверу аутентификации, отсутствие указания пути к файлу конфигурации Mellophone и т.д.), с рекомендациями по их устранению. Ранее, если при старте приложения возникала некоторая нештатная ситуация, то оно не стартовало, и для выяснения причин необходимо было смотреть длинные и запутанные файлы логов сервера, пытаясь найти причину с сообщением об ошибке. Как правило, сложности запуска связаны с тем, что разработчики решений забывают указывать пути к папке пользовательских данных и файлам конфигурации. Теперь, при наступлении такого случая приложение стартует, однако при попытке обратиться к приложению, например через браузер, пользователю будет выдано сообщение об ошибке с указанием возможной причины и рекомендациями. Это должно упростить и ускорить разворачивание приложений и избавить разработчиков от чтения log-файлов в большинстве случаев.

Алгоритм работы ZERO-конфигурации в Showcase

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

1. Проверка пути к папке пользовательских данных и наличия папки:

  • Вначале данный путь ищется в параметре showcase.rootpath.userdata в Application Context. Например, для tomcat это файл conf\Catalina\localhost\Showcase.xml или, что то же самое, файл conf\context.xml.
  • Если свойство showcase.rootpath.userdata отсутствует, то поиск продолжается по фиксированному пути в файле userdatas\general.properties (папка userdatas должна находиться на уровень выше папки с приложениями (варниками)). Файл должен содержать следующее свойство: rootpath.userdata = absolute_path_to_userdata.
  • Если данный файл отсутствует или не содержит путь, то поиск свойства rootpath.userdata выполняется в папке приложения (варника) в файле WEB-INF\classes\general.properties.
  • Если путь не найден, то Showcase выдает при обращении к нему соответствующее сообщение в веб-интерфейсе.
  • Если путь найден, но он указывает на несуществующую папку пользовательских данных, то при обращении к Showcase будет выведено сообщение с информацией об отсутствии папки.

2. Проверка подключения к БД:

  • Если в файле generalapp.properties папки пользовательских данных нет свойства rdbms.connection.url, то при обращении к Showcase в веб-интерфейсе будет выведено соответствующее сообщение.

3.Проверка подключения к Mellophone:

  • Если в файле generalapp.properties папки пользовательских данных нет свойства security.mellophoneurl, то при обращении к Showcase в веб-интерфейсе будет выведено соответствующее сообщение.

В случае, если все проверки прошли успешно, при обращении к веб-интерфейсу приложения будет выдано окно ввода логина и пароля.


ZeroShowcase.png

Алгоритм работы ZERO-конфигурации в Mellophone

Как вы знаете, для сервера аутентификации Mellophone необходимо задавать его настройки в файле config.xml.

Ранее, данный файл должен был находится внутри папки WEB-INF/classes/config/ веб-приложения Mellophone (внутри war-ника), иначе сервер аутентификации не стартовал и возникала ошибка.

Это вызывало много нареканий, так как пользователям приходилось руками влезать внутрь варника и копировать туда файл настроек. Более того, при замене war-ника файл с конфигурациями терялся, и его приходилось копировать заново.

C введением ZERO-конфигурации, алгоритм поиска файла конфигурации Mellophone изменился и стал более удобен для пользователей. Теперь местоположение файла можно задать самостоятельно. Задание пути к файлу настройки config.xml стал похож на задание пути к папке пользовательских данных в Showcase.

Для успешного запуска сервера аутентификации необходимо чтобы:

  • приложению Mellophone был выставлен путь к файлу конфигурации
  • файл конфигурации находился по этому пути.

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

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

1. Проверка наличия параметра mellophone.config.path в Application Context. Если данный параметр найден, то путь к файлу настроек считается определенным. Этот путь и будет использоваться далее. Если такого параметра нет, то см. пункт 2

2. Поиск свойства mellophone.config.path в файле general.properties, находящегося в /mellophone/WEB-INF/classes/ Если данное свойство найдено, то путь к файлу настроек считается определенным. Этот путь и будет использоваться далее. Если такого параметра нет, то см. пункт 3.

3. Если после выполнения предыдущих двух пунктов путь определить не удалось, то он устанавливается автоматически на уровень выше папки приложения mellophone (варника). Например, в случае tomcat, путь устанавливается равным tomcat_dir/config.xml

После установления пути к файлу настройки (полученного из Application Context, файла general.properties или же определенного автоматически), Mellophone производит проверку наличия данного файла на диске. Если такого файла нет, то при обращении к приложению (через браузер или сервлет) в ответе будет указана соответствующая ошибка с текстом и рекомендациями по устранению.


ZeroMellophone.png