Автоматическое обновление файлов Гедымина (постановка)
SYSDBA (обсуждение | вклад) (Новая страница: « Процесс обновления выполняется в нити с низким приоритетом и включает следующие шаги: # П…») |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| + | Процесс обновления выполняется в нити с самым низким приоритетом и включает следующие шаги: | ||
| − | + | # Считать из файла настроек дату очередной проверки и сверить с текущей. Если подошло время или дата очередной проверки отсутствует, то: | |
| − | + | # Построить список файлов относительно корневого каталога Гедымина (при построении списка введем ограничения). Сформировать XML запрос. | |
| − | # | + | |
# Проверить коннект к интернету. | # Проверить коннект к интернету. | ||
| − | # | + | # Считать из файла настроек URL и послать на сервер запрос. |
# Получить ответ. | # Получить ответ. | ||
| − | # При необходимости выкачать нужные файлы. | + | # Если необходимо обновление, сначала проверяем и удаляем данные предыдущего обновления, если оно не было проведено (например, ни разу не вызывался загрузчик). |
| − | # При успешном выполнении поместить в | + | # При необходимости, выкачать нужные файлы. |
| + | # Поместить в файл настроек список файлов, которые нуждаются в замене, слиянии или удалении. | ||
| + | # При успешном выполнении поместить в файл настроек дату очередного обновления. | ||
| − | Если файл должен быть заменен, то новейшая версия располагается рядом с расширением ".replace". Если файл должен быть | + | Если файл должен быть заменен, то новейшая версия располагается рядом с расширением ".replace". Если файл должен быть объединен, то новейшая версия располагается рядом с расширением ".merge". Новые файлы просто выкачиваются и помещаются в нужную папку. |
| − | Операции над файлами выполняются загрузчиком при очередном запуске | + | Операции над файлами выполняются загрузчиком при очередном запуске. |
==== Структура запроса к серверу ==== | ==== Структура запроса к серверу ==== | ||
| + | |||
| + | <gedemin_update_request version="1"> | ||
| + | <params> | ||
| + | <company_name>...</company_name> | ||
| + | <company_ruid>...</company_ruid> | ||
| + | <company_phone>...</company_phone> | ||
| + | <company_email>...</company_email> | ||
| + | <tax_id>...</tax_id> | ||
| + | <licence>...</licence> | ||
| + | <db_version>...</db_version> | ||
| + | </params> | ||
| + | <file_list> | ||
| + | <file> | ||
| + | <full_name>...</full_name> | ||
| + | <file_version>...</file_version> | ||
| + | </file> | ||
| + | <file> | ||
| + | ... | ||
| + | </file> | ||
| + | ... | ||
| + | </file_list> | ||
| + | </gedemin_update_request> | ||
==== Структура ответа сервера ==== | ==== Структура ответа сервера ==== | ||
| + | |||
| + | <gedemin_update_answer version="1"> | ||
| + | <message>...</message> | ||
| + | <message_url>...</message_url> | ||
| + | <file_list> | ||
| + | <file> | ||
| + | <full_name>...</full_name> | ||
| + | <file_url>...</file_url> | ||
| + | <file_operation>...</file_operation> | ||
| + | </file> | ||
| + | <file> | ||
| + | ... | ||
| + | </file> | ||
| + | ... | ||
| + | </file_list> | ||
| + | </gedemin_update_answer> | ||
| + | |||
| + | Message -- это произвольное текстовое сообщение, которое будет показано пользователю по окончании процесса выкачивания файлов. Message_url -- адрес страницы, на который будет выполнен переход после успешного окончания выкачивания файлов. Если ни то, ни другое не указано, то выводится сообщение, что выполнено обновление до такой-то версии (берется версия файла gedemin.exe), необходимо перезапустить программу. | ||
| + | |||
| + | File_operation -- одно из следующих значений: ADD, DELETE, REPLACE, MERGE. Операция слияния применима только к INI файлам. | ||
| + | |||
| + | Отсутствие списка файлов в ответе означает, что обновление не требуется. | ||
| + | |||
| + | ==== Метапеременные для указания относительного пути файла ==== | ||
| + | |||
| + | {| | ||
| + | ! Наименование !! Описание | ||
| + | |- | ||
| + | |{GEDEMIN_ROOT} || Корневой каталог Гедымина. | ||
| + | |- | ||
| + | |{GEDEMIN_APP} || Корневой каталог Гедымина. | ||
| + | |} | ||
[[Category:Постановка]] | [[Category:Постановка]] | ||
Версия 18:20, 26 мая 2011
Процесс обновления выполняется в нити с самым низким приоритетом и включает следующие шаги:
- Считать из файла настроек дату очередной проверки и сверить с текущей. Если подошло время или дата очередной проверки отсутствует, то:
- Построить список файлов относительно корневого каталога Гедымина (при построении списка введем ограничения). Сформировать XML запрос.
- Проверить коннект к интернету.
- Считать из файла настроек URL и послать на сервер запрос.
- Получить ответ.
- Если необходимо обновление, сначала проверяем и удаляем данные предыдущего обновления, если оно не было проведено (например, ни разу не вызывался загрузчик).
- При необходимости, выкачать нужные файлы.
- Поместить в файл настроек список файлов, которые нуждаются в замене, слиянии или удалении.
- При успешном выполнении поместить в файл настроек дату очередного обновления.
Если файл должен быть заменен, то новейшая версия располагается рядом с расширением ".replace". Если файл должен быть объединен, то новейшая версия располагается рядом с расширением ".merge". Новые файлы просто выкачиваются и помещаются в нужную папку.
Операции над файлами выполняются загрузчиком при очередном запуске.
Структура запроса к серверу
<gedemin_update_request version="1">
<params>
<company_name>...</company_name>
<company_ruid>...</company_ruid>
<company_phone>...</company_phone>
<company_email>...</company_email>
<tax_id>...</tax_id>
<licence>...</licence>
<db_version>...</db_version>
</params>
<file_list>
<file>
<full_name>...</full_name>
<file_version>...</file_version>
</file>
<file>
...
</file>
...
</file_list>
</gedemin_update_request>
Структура ответа сервера
<gedemin_update_answer version="1">
<message>...</message>
<message_url>...</message_url>
<file_list>
<file>
<full_name>...</full_name>
<file_url>...</file_url>
<file_operation>...</file_operation>
</file>
<file>
...
</file>
...
</file_list>
</gedemin_update_answer>
Message -- это произвольное текстовое сообщение, которое будет показано пользователю по окончании процесса выкачивания файлов. Message_url -- адрес страницы, на который будет выполнен переход после успешного окончания выкачивания файлов. Если ни то, ни другое не указано, то выводится сообщение, что выполнено обновление до такой-то версии (берется версия файла gedemin.exe), необходимо перезапустить программу.
File_operation -- одно из следующих значений: ADD, DELETE, REPLACE, MERGE. Операция слияния применима только к INI файлам.
Отсутствие списка файлов в ответе означает, что обновление не требуется.
Метапеременные для указания относительного пути файла
| Наименование | Описание |
|---|---|
| {GEDEMIN_ROOT} | Корневой каталог Гедымина. |
| {GEDEMIN_APP} | Корневой каталог Гедымина. |