СИСТЕМА И СПОСОБ ОБНОВЛЕНИЯ ПРОГРАММЫ ДЛЯ ПЕРЕНОСНОГО УСТРОЙСТВА С ПОДДЕРЖКОЙ ОТА

1. Способ обновления программы в сети, содержащий этапы, на которых:
формируют пакет обновления на основе различий между первой версией и второй версией программы;
уведомляют, по меньшей мере, одно устройство-получатель о выпуске пакета обновления на сервере пакетов обновлений; и
загружают пакет обновления с сервера пакетов обновлений в устройство-получатель, устанавливают пакет обновления в первое запоминающее устройство и объединяют пакет обновления и первую версию программы, которая должна быть загружена как вторая версия программы во второе запоминающее устройство в ответ на команду обновления.
2. Способ обновления программы по п.1, в котором пакет обновления включает в себя данные установки для объединения пакета обновления с первой версией программы и данные обновления, которые должны быть объединены с первой версией программы.
3. Способ обновления программы по п.2, в котором данные установки включают в себя исторические данные для объединения первой версии программы и пакета обновления и данные отображения для отображения данных обновления на первую версию программы.
4. Способ обновления программы по п.1, в котором формирование пакета обновления содержит этапы, на которых:
сравнивают первую и вторую версии программы в единицах блоков;
формируют данные установки, содержащие данные отображения для отображения блоков второй версии программы на первую версию программы на основе результатов сравнения; и
формируют пакет обновления посредством упаковки данных установки и данных обновления.
5. Способ обновления программы по п.4, в котором первая версия программы и, по меньшей мере, один пакет обновления отдельно сохранены в первом запоминающем устройстве.
6. Способ обновления программы по п.5, в котором команда обновления формируется с помощью выбора версии, когда устройство-получатель инициализируется, или посредством клавишного ввода.
7. Способ обновления программы по п.4, в котором данные отображения включают в себя индексы блоков второй версии программы, ассоциативно связанные с обновлением программы, и команды обновления для применения упомянутых блоков к первой версии программы.
8. Способ обновления программы по п.7, в котором данные отображения включают в себя командные строки, каждая из которых структурирована в форме [Cmd][# начального блока][число блоков][флаг][дальность], где поле [Cmd] имеет значение, указывающее, по меньшей мере, одну из команд "копирование", "модификация" и "сдвиг", поле [# начального блока] имеет индекс начального блока, поле [число блоков] имеет значение, указывающее число блоков от начального блока, поле [флаг] имеет значение, указывающее источник блоков, и поле [дальность] имеет значение, указывающее дальность от блока первой версии программы до блока второй версии программы, связанных друг с другом.
9. Способ обновления программы по п.8, в котором команда "модификация" подразумевает вставку нового блока или модификацию блока первой версии программы.
10. Способ обновления программы по п.7, в котором данные отображения включают в себя командные строки, каждая из которых структурирована в форме [Cmd][# начального блока, число блоков][флаг][дальность][различие], где поле [Cmd] имеет значение, указывающее одну из команд "копирование", "модификация" и "сдвиг", поле [# начального блока, число блоков] имеет индекс начального блока и значение, указывающее число блоков от начального блока, поле [флаг] имеет значение, указывающее источник блоков, поле [дальность] имеет значение, указывающее дальность от блока первой версии программы до блока второй версии программы, отображенных друг на друга, и поле [различие] имеет значение, указывающее различие между блоками первой версии и второй версии программы.
11. Способ обновления программы по п.10, в котором поле [различие] установлено для отмены формирования данных обновления соответствующего блока.
12. Способ обновления программы по п.11, в котором первая версия программы является первоначальной версией программы, установленной во время фазы изготовления устройства-получателя, а вторая версия программы является программой, обновленной из первой версии программы, вторая версия программы представляет множество версий программы, выпущенных после первой версии программы.
13. Способ формирования пакета обновления программы, содержащий этапы, на которых:
сравнивают первую версию и вторую версию программы в единицах блоков;
формируют данные обновления, содержащие данные отображения для отображения блоков второй версии программы на блоки первой версии программы на основе результатов сравнения;
формируют пакет обновления, посредством упаковки исторических данных для указания связи пакета обновления и первой версии программы и данных обновления;
извещают о выпуске пакета обновления; и
загружают пакет обновления, по меньшей мере, в одно устройство-получатель, устанавливают загруженный пакет обновления в энергонезависимую память, формируют вторую версию программы посредством объединения пакета обновления с первой версией в ответ на сигнал запроса обновления, и эксплуатируют устройство-получатель с помощью второй версии программы.
14. Способ обновления программы по п.13, в котором первая версия программы и, по меньшей мере, один пакет обновления отдельно хранятся в энергонезависимой памяти.
15. Способ обновления программы по п.14, в котором команда обновления формируется, когда устройство-получатель инициализируется, или посредством клавишного ввода, и пакет обновления является выбираемым среди множества пакетов обновлений.
16. Способ обновления программы по п.15, в котором пакет обновления включает в себя данные установки, имеющие исторические данные для указания связи пакета обновления и первой версии программы, чтобы поддерживать объединение пакета обновления и первой версии.
17. Способ обновления программы по п.16, в котором данные обновления включают в себя, по меньшей мере, одно из данных блока копирования, структурированных в строке [# начального блока][число блоков], данных блока модификации, структурированных в строке [# начального блока][число блоков][данные] и данных блока сдвига [# начального блока][число блоков][позиция предыдущей версии], где поле [# начального блока] имеет индекс начального блока, поле [число блоков] имеет значение, указывающее число блоков от начального блока, поле [данные] содержит данные соответствующего блока, и поле [позиция предыдущей версии] имеет индекс начального блока для блоков, которые должны быть сдвинуты.
18. Способ обновления программы по п.17, в котором поле [позиция предыдущей версии] указывает один из номера блока второй версии программы ± число блоков или номера блока второй версии программы - номер блока первой версии программы.
19. Способ обновления программы в сети, включающей в себя процессор пакетов обновлений для формирования пакета обновления программы и сервер пакетов обновлений, позволяющий устройству-получателю загрузить пакет обновления, способ содержит этапы, на которых:
формируют пакет обновления на основе различий между первой версией и второй версией программы в процессоре пакетов обновлений;
уведомляют устройство-получатель о выпуске пакета обновления на сервере пакетов обновлений;
загружают пакет обновления с сервера пакетов обновлений в устройство-получатель;
устанавливают пакет обновления в область пакета обновления первого запоминающего устройства, в котором установлена первая версия программы;
обновляют первую версию до второй версии программы, объединяя пакет обновления и первую версию программы в ответ на команду обновления; и
загружают вторую версию программы во второе запоминающее устройство.
20. Способ обновления программы по п.19, в котором формирование пакета обновления содержит этапы, на которых:
сравнивают первую версию и вторую версию программы в единицах блоков;
формируют данные установки, содержащие данные отображения для отображения блоков второй версии программы на блоки первой версии на основе результатов сравнения; и
формируют пакет обновления посредством упаковки данных установки и данных обновления.
21. Способ обновления программы по п.20, в котором первое запоминающее устройство содержит:
область хранения первой версии для хранения первой версии программы; и
область хранения пакетов обновлений, имеющую, по меньшей мере, две области для хранения разных пакетов обновлений, данные установки и данные обновления, упакованные в пакет обновления, хранятся отдельно.
22. Способ обновления программы по п.21, в котором данные установки включают в себя исторические данные для указания связи пакета обновления и первой версии программы, чтобы поддержать объединение пакета обновления и первой версии программы, и установка пакета обновления содержит этапы, на которых:
извлекают исторические данные, данные отображения и данные обновления из пакета обновления;
сохраняют исторические данные в области исторических данных соответствующей области пакета обновления;
сохраняют данные отображения в области данных отображения соответствующей области пакета обновления; и
сохраняют данные обновления в области данных обновления соответствующей области пакета обновления.
23. Способ обновления программы по п.22, в котором обновление первой версии до второй версии программы содержит этапы, на которых:
загружают пакет обновления самой последней версии программы из первого запоминающего устройства; и
применяют данные обновления загруженного пакета обновления к первой версии программы, ссылаясь на данные отображения пакета обновления.
24. Способ обновления программы по п.23, в котором первое запоминающее устройство является энергонезависимой памятью, а второе запоминающее устройство является энергозависимой памятью.
25. Способ обновления программы по п.24, в котором команда обновления формируется, когда устройство-получатель инициализируется, или посредством клавишного ввода, и последний выпущенный пакет обновления среди множественных пакетов обновлений выбирается для обновления программы.
26. Способ обновления программы в сети, включающей в себя процессор пакетов обновлений для формирования пакета обновления программы и сервер пакетов обновлений, позволяющий устройству-получателю загрузить пакет обновления, способ содержит этапы, на которых:
сравнивают первую версию и вторую версию программы в единицах блоков в процессоре пакетов обновлений;
формируют данные установки, содержащие данные отображения для отображения блоков второй версии программы на блоки первой версии программы на основе результатов сравнения; и
формируют пакет обновления, объединяя данные установки и данные обновления;
загружают пакет обновления в устройстве-получателе и
обновляют первую версию программы, установленную в устройстве-получателе, до второй версии программы, применяя пакет обновления к первой версии.
27. Способ обновления программы по п.26, в котором данные отображения структурированы как строка вида [Cmd][# начального блока][число блоков][флаг][дальность], где поле [Cmd] имеет значение, указывающее одну из команд "копирование", "модификация" и "сдвиг", поле [# начального блока] имеет индекс начального блока, поле [число блоков] имеет значение, указывающее число блоков от начального блока, поле [флаг] имеет значение, указывающее источник блоков, и поле [дальность] имеет значение, указывающее дальность от блока первой версии программы до блока второй версии программы, сопоставленных друг другу.
28. Способ обновления программы по п.27, в котором команда "модификация" подразумевает вставку нового блока или модификацию блока первой версии.
29. Способ обновления программы по п.26, в котором данные отображения включают в себя командные строки, каждая из которых структурирована в форме [Cmd][# начального блока, число блоков][флаг][дальность][различие], где поле [Cmd] имеет значение, указывающее одну из команд "копирование", "модификация" и "сдвиг", поле [# начального блока, число блоков] имеет индекс начального блока и значение, указывающее число блоков от начального блока, поле [флаг] имеет значение, информирующее об источнике блоков, поле [дальность] имеет значение, указывающее дальность от блока второй версии до блока первой версии программы, связанных друг с другом, и поле [различие] имеет значение, указывающее различие между блоками первой и второй версий программы.
30. Способ обновления программы по п.29, в котором поле [различие] установлено для отмены формирования данных обновления соответствующего блока.
31. Система обновления программы, содержащая:
процессор пакетов программ для формирования пакета обновления с помощью первой версии и второй версии программы;
сервер пакетов обновлений для хранения пакета обновления и извещения о выпуске пакета обновления; и
по меньшей мере, одно устройство-получатель для загрузки пакета обновления и обновления программы с помощью загруженного пакета, устройство-получатель включает в себя первое запоминающее устройство для отдельной установки первой версии программы и пакета обновления и второе запоминающее устройство для загрузки второй версии программы, обновленной посредством объединения первой версии программы и пакета обновления.
32. Система обновления программы по п.31, в которой процессор пакетов обновлений содержит:
компаратор для сравнения первой версии и второй версии программы в единицах блоков;
формирователь данных установки для формирования данных установки, имеющих данные отображения для установления связи блоков второй версии с блоками первой версии программы; и
формирователь пакетов для создания пакета обновления посредством объединения данных установки и данных обновления.
33. Система обновления программы по п.32, в которой устройство-получатель содержит:
установщик для установки пакета обновления в области пакетов обновлений первого запоминающего устройства; и
транслятор для загрузки первой версии программы и пакета обновления в первом запоминающем устройстве в ответ на команду обновления, формирования второй версии программы посредством применения пакета обновления к первой версии программы и загрузки второй версии программы во второе запоминающее устройство.
34. Система обновления программы по п.33, в которой команда обновления формируется, когда устройство-получатель инициализируется, или посредством клавишного ввода, и последний выпущенный пакет обновления среди множества пакетов обновлений выбирается для обновления программы.
35. Система обновления программы по п.34, в которой данные установки включают в себя исторические данные для указания связи между пакетом обновления и первой версией программы.
36. Система обновления программы по п.35, в которой данные отображения включают в себя индексы блоков второй версии программы, ассоциативно связанных с обновлением программы, и команды для применения этих блоков к первой версии программы.
37. Система обновления программы по п.35, в которой данные отображения включают в себя командные строки, каждая из которых структурирована в форме [Cmd][# начального блока][число блоков][флаг][дальность], где поле [Cmd] имеет значение, указывающее одну из команд "копирование", "модификация" и "сдвиг", поле [# начального блока] имеет индекс начального блока, поле [число блоков] имеет значение, указывающее число блоков от начального блока, поле [флаг] имеет значение, информирующее об источнике блоков, и поле [дальность] имеет значение, указывающее дальность от блока первой версии программы до блока второй версии программы, связанных друг с другом.
38. Система обновления программы по п.36, в которой команда "модификация" подразумевает вставку нового блока или модификацию блока первой версии.
39. Система обновления программы по п.35, в которой данные отображения включают в себя командные строки, каждая из которых структурирована в форме [Cmd][# начального блока, число блоков][флаг][дальность][различие], где поле [Cmd] имеет значение, указывающее одну из команд "копирование", "модификация" и "сдвиг", поле [# начального блока, число блоков] имеет индекс начального блока и значение, указывающее число блоков от начального блока, поле [флаг] имеет значение, информирующее об источнике блоков, поле [дальность] имеет значение, указывающее дальность от блока второй версии программы до блока второй версии программы, сопоставленных друг другу, и поле [различие] имеет значение, указывающее различие между блоками первой и второй версий программы.
40. Система обновления программы по п.39, в которой поле [различие] установлено для отмены формирования данных обновления соответствующего блока.
41. Система обновления программы по п.40, в которой первая версия программы является первоначальной версией программы, установленной во время фазы изготовления устройства-получателя, а вторая версия программы является программой, обновленной из первой версии программы, вторая версия программы является любой из множества версий программы, выпущенных после первой версии программы.
42. Система обновления программы по п.31, в которой процессор пакетов обновлений содержит:
компаратор для сравнения первой версии и второй версии программы в единицах блоков;
формирователь данных установки для формирования данных установки, имеющих данные обновления для объединения блоков второй версии и блоков первой версии программы; и
формирователь пакетов для создания пакета обновления посредством объединения данных обновления, содержащих данные отображения для отображения блоков второй версии на блоки первой версии программы, и исторических данных для указания связи между пакетом обновления и первой версией программы.
43. Система обновления программы по п.42, в которой устройство-получатель содержит:
установщик для извлечения данных отображения из пакета обновления и установки пакета обновления, содержащего исторические данные, данные отображения и данные обновления, в области хранения пакета обновления первого запоминающего устройства на основе данных отображения; и
транслятор для формирования второй версии программы посредством объединения данных обновления и первой версии программы на основе данных отображения и загрузки второй версии программы во второе запоминающее устройство.
44. Система обновления программы по п.43, в которой команда обновления формируется, когда устройство-получатель инициализируется, или посредством клавишного ввода, и последний выпущенный пакет обновления среди множества пакетов обновлений выбирается для обновления программы.
45. Система обновления программы по п.44, в которой данные обновления включают в себя, по меньшей мере, одно из копии данных блока, структурированных в строке [# начального блока][число блоков], модификации данных блока, структурированных в строке [# начального блока][число блоков][данные] и сдвига данных блока [# начального блока][число блоков][позиция предыдущей версии], где поле [# начального блока] имеет индекс начального блока, поле [число блоков] имеет значение, указывающее число блоков от начального блока, поле [данные] содержит данные соответствующего блока, и поле [позиция предыдущей версии] имеет индекс начального блока для блоков, которые должны быть сдвинуты.
46. Система обновления программы по п.45, в которой поле [позиция предыдущей версии] указывает одно из номера блока второй версии программы ± число блоков и номера блока второй версии программы - номер блока первой версии программы.