Способ управления синхронизацией обновлений программного обеспечения

Изобретение относится к области вычислительной техники. Техническим результатом является повышение надежности инсталяции и безотказности процесса установки сложных программных средств. Способ управления синхронизацией обновлений программного обеспечения заключается в записи в системную память компьютерного устройства пользователя одного программного приложения, обновлении этого приложения в виде его полной версии или в виде набора отдельных элементов приложения, сравнении поставленного в качестве обновления программного обеспечения и имеющегося у пользователя программного обеспечения в его текущем состоянии для выявления различий, формировании по результатам сравнения записи выявленных различий, объединении элементов имеющегося у пользователя программного обеспечения и элементов поставленного в качестве обновления программного обеспечения в режиме перезаписи. 5 з.п. ф-лы, 1 ил.

 

Изобретение относится к области вычислительной техники и программирования, а именно к области разработки прикладных программных средств (приложений) на определенных технологических программных платформах и доставки их обновлений на компьютеры пользователей.

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

Здесь и далее под «приложением» будет пониматься прикладное программное обеспечение ЭВМ, выполняющее множество разных функций и позволяющих пользователю решать множество разных задач, при этом термины «приложение», «компьютерная программа» и «программное обеспечение» будут употребляться как синонимы.

Поскольку при проектировании и разработке прикладного программного обеспечения в настоящее время широко используются объектно-ориентированные подходы, то приложение и для разработчика, и для пользователя представляется не в виде сплошной последовательности данных и команд (чем фактически и является любая программа для ЭВМ, если ее рассматривать на низком машинном уровне), а в виде четко структурированного набора программных объектов, обладающих определенным функциональным предназначением. При этом каждому объекту обычно присваивается какое-либо наименование и уникальный (в пределах приложения) идентификатор. Ниже как синонимы могут использоваться термины «объекты», «компоненты», «части приложения» и «элементы приложения».

Способы установки и конфигурирования программного обеспечения известны (Андреев А.Г. и др. Microsoft Windows 2000 Server и Professional / Под общим редактированием Чекмарева А.Н. и Вишнякова Д.Б. - СПб: БХВ - Санкт-Петербург, 2000 - 992 с.: стр. 145, 373). Эти способы реализованы в современных цифровых вычислительных машинах в виде программ инсталляции, которые выполняют копирование файлов программного обеспечения на компьютер назначения, а также запись параметров конфигурации и другие действия по настройке программного обеспечения. Последовательность технологических операций в известных способах установки и конфигурации программного обеспечения должна строго выполняться в порядке, заданном разработчиком программы инсталляции.

Известна программа инсталляции Windows Installer - составная часть технологии IntelliMirror, используемая для работы с приложениями Windows 200 (Integrates with Microsoft. Visual Studio. Net Help.1992-2003. Microsoft Corporation. 0103 Part №X 09-19409, 19410, 19411). С ее помощью упрощается установка приложений и их обновление, устраняется возможность "конфликта версий", появляются дополнительные возможности по управлению программами, установленными в системе. Программа инсталляции состоит из главного установочного пакета и связанных с ним установочных пакетов. В свою очередь каждый установочный пакет состоит из одной или нескольких операций, объединенных согласно логике функционирования установочного пакета. Установочный пакет может содержать ссылки на другие установочные пакеты. При этом при выполнении установки и конфигурирования программного обеспечения могут быть использованы не все операции каждого установочного пакета, а только их произвольная выборка, определяемая целями и составом программного обеспечения, а также конфигурацией технических средств. Способ установки и конфигурирования программного обеспечения требует выполнения установочных операций в составе этих пакетов в строгой последовательности, заданной разработчиком.

С целью оптимизации инсталляционных процессов внутри каждого установочного продукта к каждому параметру установки может быть назначен весовой коэффициент (US №2003/0163807, G 06 F 009/445, опубл. 28.08.2003). Каждый весовой коэффициент в комбинации с состоянием параметров инсталляции, информацией о разбиении потенциальных компьютеров назначения используется в процедуре выбора для каждой потенциально возможной компьютерной системы назначения соответствующего пакета установочных пакетов. Каждый установочный пакет, составляющий программную систему установки и настройки программного обеспечения по способу, разрабатывается независимо от других пакетов и может впоследствии быть использован в других программах инсталляции в комбинации с иными установочными пакетами без каких-либо модификаций. Поэтому, во-первых, в рамках каждого установочного пакета задается абсолютный порядок выполнения всех действий, а выполнение установочных пакетов начинается с главного установочного пакета методом последовательного перебора. Во-вторых, возможно наличие однотипных действий в двух или более установочных пакетах. Следовательно, в процессе установки и настройки программного обеспечения однотипные действия будут выполняться такое число раз, в скольких установочных пакетах они повторяются. Это существенно затрудняет осуществление объективного контроля над последовательностью выполнения действий в установочных пакетах, это снижает надежность, делает невозможным процесс установки сложных программных систем.

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

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

Известно решение, предлагающее предоставление расширений программного обеспечения на основе использования сети. Данный способ предполагает, в частности, что прикладная программа или компьютерная платформа установлена на компьютере пользователя, а посредством сети, например сети Интернет, пользователю доставляются описания расширений программного обеспечения, при этом данные расширения конфигурируют таким образом, чтобы загруженные и установленные расширения могли быть включены в программную платформу пользователя (RU 2250490, G 06 F 9/445, опубл. 2005.04.20).

Известен способ установки и конфигурирования программного обеспечения, включающий выделение и загрузку установочных пакетов, начиная с главного, назначение в каждом установочном пакете веса каждому одному или более чем одному выбранному значению одного или нескольких параметров установки, связанных с установкой и конфигурацией установочного пакета программного обеспечения, определение множества компьютеров назначения, на которых может быть осуществлена установка установочного пакета программного обеспечения, определение процедуры вычисления каждого из параметров установки, разбиение множества компьютеров назначения в соответствии с каждым параметром установки с использованием назначенных весов в комбинации с состоянием параметров установки, вычисление соответствия каждого параметра установки для каждой из потенциальных систем компьютеров назначения, при этом одна или несколько операций в каждом установочном пакете объединяются согласно логике функционирования установочного пакета в фазу, которой присваивается один или несколько атрибутов, последовательно выбирается, анализируется, идентифицируется и помечается меткой каждая очередная фаза текущего установочного пакета, при этом, если очередная фаза загруженного установочного пакета помечена как обработанная, осуществляется переход к следующей фазе загруженного установочного пакета, а если очередная фаза загруженного установочного пакета не помечена как обработанная, то осуществляется вызов очередной фазы в каждом вложенном установочном пакете, при этом если очередная фаза не имеет вызовов в каждый вложенный установочный пакет, то ее идентификатор заносится в абсолютную последовательность выполнения фаз, а если текущая фаза найдена в одном из установочных пакетов, то в нем последовательно выбираются, анализируются и идентифицируются все фазы, расположенные до найденной, и сама найденная фаза, каждая из которых после обработки помечается меткой как обработанная (RU 2260839, G 06 F 9/445, опубл. 2005.09.20).

Данное известное решение предлагает способ установки и конфигурирования программного обеспечения на компьютере пользователя с возможностью объективного контроля над процессом инсталляции программ, в том числе при использовании набора установочных пакетов. Это, в частности, позволяет производить установку и обновление сложного программного обеспечения, включая выборочное обновление отдельных компонентов такого программного обеспечения на компьютере у пользователя.

Данное техническое решение принято в качестве прототипа для заявленного объекта.

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

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

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

Настоящее изобретение направлено на решение технической задачи по обновлению настраиваемого программного обеспечения, эксплуатируемого на компьютере пользователя, в тех случаях, когда требуется обеспечить:

- обновление не всех, а лишь отдельных частей (модулей, объектов) программного приложения, в тех случаях, когда обновление определенных частей по различным причинам нежелательно для пользователя;

- обновление различных частей одного и того же программного приложения за счет пакетов обновления, поставляемых различными разработчиками.

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

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

Указанный технический результат достигается тем, что реализуется способ поставки обновлений, установки и конфигурирования программного обеспечения, который включает в себя следующие операции: доставку обновлений на материальных носителях или по сети и их запись в ОЗУ или ПЗУ компьютерного устройства пользователя, сравнение поставленного в качестве обновления программного обеспечения и имеющегося у пользователя программного обеспечения в его текущем состоянии на предмет выявления различий, объединение элементов имеющегося у пользователя программного обеспечения и элементов поставленного в качестве обновления программного обеспечения, при этом отбор элементов имеющегося у пользователя программного обеспечения, подлежащих замещению за счет поставленного обновления, осуществляют на основе данных о правилах поддержки конкретного элемента и на основе данных о выявленных в результате сравнения различиях в версиях.

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

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

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

По результатам сравнения имеющегося у пользователя программного обеспечения и поставленного в качестве обновления программного обеспечения перед объединением у пользователя имеется возможность самостоятельно пометить элементы программного обеспечения как соответствующие (сопоставимые) или отменить установленное автоматически соответствие элементов.

Сравнение и объединение имеющегося у пользователя программного обеспечения и поставленного в качестве обновления программного обеспечения может быть реализовано как средствами установленной на компьютерном устройстве пользователя программной платформы, в среде которой работает подлежащее обновлению программное обеспечение, так и с помощью специального отдельно поставляемого программного инструментального средства, предназначенного для сравнения и/или объединения версий программного обеспечения.

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

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

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

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

Технический результат от применения предложения состоит в том, что производится выборочная запись на компьютеры пользователей поставляемых обновленных частей (модулей, объектов) программного приложения, т.е. выпущенные разработчиком или несколькими разработчиками обновления применяются лишь к строго определенным частям записанного на компьютере пользователя прикладного приложения без нарушения его логической целостности и работоспособности в целом.

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

Во избежание этого разработчик сам должен указывать, какие из объектов являются ключевыми для приложения и их модификация или удаление способны нарушить его целостность. При попытке модификации или удаления таких объектов пользователь будет, по крайней мере, проинформирован о последствиях своих действий. Таким образом, для каждого из объектов в зависимости от его значимости разработчик устанавливает правила изменения. Эти правила могут представлять собой булевы значения (флаги), принимающие значения 0/1, например, «модификация объекта разрешена»/«модификация объекта пользователем нежелательна», но могут представлять собой и более сложные наборы значений, например, для каждого объекта разработчиком может быть задано одно из трех или более состояний.

Значения правил поддержки и правил изменения удобно записывать и хранить в памяти компьютера вместе с самими объектами приложений, но подобные значения могут храниться и во внешних информационных хранилищах, в частности в удаленных базах данных. Фиксация правил изменения, установленных разработчиком для каждого из объектов приложения, и правил поддержки объектов, установленных пользователем, позволяет учитывать их при автоматизированной процедуре выборочного обновления.

На чертеже представлен вариант алгоритма обновления версии.

Ниже рассматривается пример конкретной реализации способа согласно изобретению.

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

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

Рассмотрим одну из форм осуществления изобретения.

На компьютере у пользователя установлена программная платформа, которая обеспечивает функционирование одного или нескольких прикладных приложений, также установленных на компьютере пользователя. Под компьютером пользователя понимается любая компьютерная система, включающая микропроцессорное устройство и запоминающее устройство. Компьютер пользователя может, в частности, иметь обычную для IBM-совместимого компьютера конфигурацию: содержать один или несколько процессоров, системную память (ПЗУ и ОЗУ), системную шину, устройства ввода, такие как клавиатура и манипулятор-«мышь», устройства для чтения внешних носителей информации, устройства вывода информации, и работать под управлением базовой системы ввода-вывода (BIOS) и какой-либо операционной системы. Программная платформа записывается в ОЗУ и/или ПЗУ компьютера и ее команды обрабатываются процессором. В ОЗУ и/или ПЗУ компьютера также записывается одно или более прикладных приложений, команды которых выполняются процессором либо непосредственно, либо опосредованно, в частности - с задействованием интерпретатора, встроенного в программную платформу.

Поставка обновлений для определенных приложений может принимать форму поставки пакетов обновления, включающих либо полную обновленную версию приложения, либо набор отдельных элементов (объектов) приложения, подлежащих обновлению по сравнению с предыдущей версией. Пакеты обновления поставляются разработчиком пользователю записанными на материальных носителях информации либо по сети, в частности это может сеть Интернет.

Пакеты обновления снабжаются служебной информацией, указывающей на то, к каким версиям (номерам версии) программного приложения применим данный пакет обновлений. Например, разработчик может указать, что пакет обновления до версии 1.3 может быть применен к приложению версии 1.1 и 1.2, но не к более ранним версиям.

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

Также производится определение статуса поддержки текущей версии приложения, установленного у пользователя на компьютере. Приложение в зависимости от степени и характера изменений, внесенных в него пользователем или третьими лицами, может, в частности, считаться находящимся на полной (автоматической) поддержке разработчика или быть снятым с полной поддержки. Изменения статуса приложения фиксируются в служебных полях файла (файлов) приложения.

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

Если же в текущую версию приложения, установленного у пользователя, последним вносятся изменения, то статус полной (автоматической) поддержки приложения снимается. При этом, однако, сохраняется возможность применения обновлений, поставляемых разработчиком, к отдельным объектам такого приложения.

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

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

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

Алгоритм анализа структуры приложения, в частности, может предусматривать сравнение по внутренним идентификаторам (уникальным кодам) объектов, которые присваиваются автоматически при создании объекта. Сравнение по внутренним идентификаторам объектов эффективно в тех случаях, когда сравниваемые версии приложения являются потомками одной и той же предыдущей версии.

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

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

Результаты сравнения, как правило, отображаются в виде таблицы. Объекты двух сравниваемых версий, соответствие между которыми установлено, обычно располагаются в одной строке таблицы. При выводе результата сравнения пользователь имеет возможность выбрать различные режимы отображения информации о выявленных отличиях сравниваемых приложений, по крайней мере, предусмотрены следующие режимы: отображение списка элементов, присутствующих в одном из выбранных сравниваемых приложений и при этом отсутствующих в другом; отображение полного списка отличающихся элементов обоих приложений; отображение полного списка элементов обоих программных приложении, как отличающихся, так и идентичных.

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

В этой связи по результатам сравнения пользователю в интерактивном режиме предлагается подтвердить выявленные соответствия между объектами, компонентами и иными элементами двух приложений либо для определенных элементов отменить автоматически установленное соответствие. Пользователь с помощью устройств ввода (например, манипулятора-«мышь») имеет возможность помечать определенные строки таблицы и тем самым подтверждать или отменять соответствие элементов разных версий приложения.

С учетом корректировок, произведенных пользователем, в системную память и/или в ПЗУ компьютера записываются в виде подходящей информационной структуры (массива переменных, виртуальной таблицы и т.п.) данные о выявленном соответствии между элементами сравниваемых версий приложения и о состоянии каждого из элементов одной версии приложения по отношению к аналогичному элементу другой версии (изменен, удален, неизменен и т.п.). Указанные данные в дальнейшем могут использоваться при процедуре объединения версий.

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

1) режим «Изменения разрешены» - правило, признающее модификацию в отношении объекта допустимой;

2) режим «Изменения не рекомендуются» - правило, признающее модификацию в отношении объекта также допустимой, однако при попытке модификации пользователю выдается дополнительное предупреждение о нежелательности изменения такого объекта;

3) режим «Изменения запрещены» - запрет любой модификации объекта приложения; в случае, если объект модифицируется, приложение полностью снимается с поддержки разработчика.

Если изменения, внесенные пользователем, согласуются с правилами, установленными разработчиком для конкретных объектов, то приложению присваивается статус находящегося «на [частичной] поддержке с возможностью изменения». При данном режиме имеется возможность отслеживания истории изменений в двух версиях-потомках (модифицированной пользователем и обновленной разработчиком) по отношению к первоначальной (предыдущей) версии поставщика.

Если же изменения не согласуются с правилами, установленными разработчиком, например, модифицируется объект, для которого установлен режим «Изменения запрещены», то приложение полностью снимается с поддержки. При полном снятии с поддержки обновление объектов модифицированной пользователем версии приложения возможно за счет поставленных пакетов обновления только в ручном режиме, т.е. исходя из установленного приоритета сравниваемых версий или путем задания пользователем специальных правил объединения для каждой из пар соответствующих элементов.

К элементам двух приложений, соответствие между которыми установлено с помощью операции сравнения версий, могут быть применены, по крайней мере, два режима объединения:

1) режим, при котором происходит замещение (перезапись) в целом элементов установленной у пользователя версии приложения соответствующими элементами, поставленными в составе обновления разработчиком, а новые объекты, отсутствовавшие в пользовательской версии, просто добавляются в нее из пакета обновления;

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

В тех случаях, когда приложение имеет статус находящегося на поддержке (как на полной автоматической поддержке, так и на поддержке с возможностью изменений), как правило, применяется первый режим объединения.

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

Это значит, что описанная выше процедура сравнения может быть применена для выявления различий применительно к трем версиям одного и того же приложения:

(1) в новой поставке приложения разработчика по сравнению с предыдущей поставкой разработчика, например, разница между поставляемыми разработчиком версиями 1.00 и 1.01 приложения;

(2) в текущем состоянии приложения, модифицированного пользователем, по сравнению с первоначальной (предыдущей) поставкой разработчика, например, разница между версией 1.00, поставленной разработчиком, и ее модифицированным аналогом, эксплуатируемым пользователем (версия 1.00');

(3) в текущем состоянии приложения, модифицированного пользователем, по сравнению с новой поставкой приложения, например, разница между модифицированной пользователем версией 1.00' и поставляемой разработчиком обновленной версией 1.01.

Это позволяет наглядно проследить историю изменений объектов в приложениях-потомках, т.е. для каждой пары соответствующих элементов приложения можно определить, произошли ли в них изменения по сравнению с первоначальной поставкой разработчика. Результаты сравнения могут отражать следующие состояния объектов.

Пользовательская версия 1.00'Обновленная разработчиком версия 1.01
Элемент А не измененЭлемент А не изменен
Элемент Б не измененЭлемент Б изменен
Элемент В измененЭлемент В не изменен
Элемент Г измененЭлемент Г изменен

Результаты сравнения трех версий записываются в системную память и/или в ПЗУ компьютера в виде подходящей информационной структуры (массива переменных, виртуальной таблицы и т.п.), в дальнейшем они используются при процедуре объединения обновленной разработчиком версии с модифицированной версией пользователя.

С целью обеспечения максимальной гибкости средства программной платформы позволяют пользователю устанавливать правила поддержки объектов своего модифицированного приложения. Например, он может отказаться от поддержки поставщиком конкретного объекта или компонента приложения, если возьмет на себя ответственность за дальнейшую модификацию этого объекта или если данный объект не нужен для решения его прикладных задач (режим «Снят с поддержки»). Снятый с поддержки и удаленный пользователем объект, например, при обновлении не будет предлагаться к восстановлению. В описываемом варианте реализации предложения пользователь может установить для каждого объекта один из трех режимов поддержки: 1) снят с поддержки 2) редактируется с сохранением поддержки 3) не редактируется.

Правила поддержки элементов приложения, установленные пользователем, так же как и правила изменения для конкретных объектов, установленные разработчиком, хранятся в виде служебной информации в памяти компьютера, например, фиксируются в служебных полях файла (файлов) приложения. Но очевидно, что такие правила могут храниться и во внешней базе данных, в том числе на удаленных компьютерах, связанных с компьютером пользователя сетью или каналом и обеспечивающих передачу данных. Для изменения правил поддержки объектов пользователь использует устройства ввода информации, такие как клавиатура и/или манипулятор-«мышь», с помощью которых в память компьютера заносится информация о том, какое правило из числа возможных в рамках данной программной платформы устанавливается для конкретного объекта приложения. При этом пользователю нет необходимости устанавливать правила поддержки для каждого из десятков или сотен объектов, которые могут входить в состав приложения. Обычно по умолчанию для каждого из объектов в приложении уже установлено некое правило (предопределенное), и только для тех объектов, которые пользователь модифицирует в соответствии с собственными нуждами или удаляет, ему при необходимости требуется устанавливать правила поддержки, отличные от предопределенных.

Следующий этап синхронизации - объединение версий - производится с учетом правил поддержки объектов, установленных пользователем. Но пользователь устанавливает такие правила с учетом правил изменения объектов, установленных разработчиком, обеспечивающим поддержку. Например, для объекта, для которого разработчиком установлено правило «Изменения запрещены», автоматически устанавливается единственное доступное (из трех возможных) пользовательское правило «Не редактируется». Это логично, потому что при попытке редактирования или снятия такого объекта с поддержки пользователю придется целиком снимать приложение с поддержки.

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

Пользовательская версия 1.00'Обновленная разработчиком версия 1.01Правило поддержки, установленное пользователемРежим объединения, предлагаемый по умолчанию
Элемент не измененЭлемент не измененЛюбоеВзять из версии 1.00' (элемент остается таким же, как в версии 1.00 разработчика)
Элемент не измененЭлемент измененСнят с поддержкиВзять из версии 1.00' (элемент остается таким же, как в версии 1.00 разработчика)
Редактируется сВзять из версии 1.01 разработчика
Не редактируетсяВзять из версии 1.01 разработчика
Элемент измененЭлемент не измененЛюбоеВзять из версии 1.00'
Элемент измененЭлемент измененСнят с поддержкиВзять из версии 1.00'
РедактируетсяВзять из версии 1.01 разработчика

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

Данная процедура выполняется путем считывании данных о состоянии (истории изменений), по крайней мере, двух соответствующих объектов двух версий приложения (модифицированной версии пользователя и обновленной версии разработчика), а также информации о правиле поддержки, установленном для анализируемого объекта пользователем. Далее с использованием специального алгоритма, реализованного в виде команд программного инструментального средства, входящего в данном случае в состав программной платформы, определяется должен ли объект остаться неизменным в пользовательской версии приложения или он должен быть заменен объектом из пакета обновления, поставленного разработчиком. Вариант реализации алгоритма обновления версии, не снятой с поддержки разработчика, схематически представлен на фигуре.

Аналогичная процедура повторяется для каждой пары соответствующих объектов приложения. Для каждой пары формируется управляющий сигнал, на основании которого и происходит в случае необходимости замещение конкретного объекта новым, поставленным разработчиком в составе обновления.

Результатом операции объединения версий является запись в память компьютера пользователя новой выборочно обновленной версии приложения. Данной версии условно присваивается номер, соответствующий номеру последнего поставленного разработчиком обновления. В рассмотренном выше примере записанная на компьютере пользователя версия приложения после обновления будет иметь номер «1.01».

Таким образом, способ обновления модифицированного пользователем приложения, находящегося при этом на [частичной] поддержке разработчика, состоит из следующих основных этапов:

1) получение пакетов обновления и запись их в ОЗУ или ПЗУ компьютерного устройства пользователя;

2) загрузка в память компьютерного устройства пользователя 3-х версий приложения (модифицированной пользователем версии, обновленной разработчиком версии и предыдущей версии разработчика);

3) выполнение операции сравнения 3-х загруженных в системную память версий приложения и формирование в памяти компьютерного устройства пользователя информационной структуры, отражающей установленное соответствие элементов версий приложения и факт их изменения;

4) считывание в память установленных пользователем правил поддержки для каждого элемента приложения при том, что такие правила поддержки предварительно установлены пользователем с учетом ограничений, заданных разработчиком (установленные разработчиком правила изменений элементов);

5) определение на основании информационной структуры, сформированной в результате сравнения 3-х версий приложения, и правил поддержки, установленных пользователем, какие из элементов версии, модифицированной пользователем, подлежат замещению (обновлению) за счет элементов из обновленной разработчиком версии;

6) запись в память компьютера пользователя новой выборочно обновленной версии приложения, пригодной для непосредственной эксплуатации.

Настоящее изобретение промышленно применимо, так как может быть реализовано с использованием компьютерных средств.

1. Способ управления синхронизацией обновлений программного обеспечения, включающий запись в системную память компьютерного устройства, на котором установлена программная платформа, обеспечивающая функционирование, по крайней мере, одного прикладного приложения, обновления этого приложения в виде его полной обновленной версии или в виде набора отдельных элементов приложения, подлежащих обновлению по сравнению с предыдущей версией, и осуществление инсталляции обновления в указанное прикладное приложение, отличающийся тем, что после записи в системную память компьютерного устройства обновления прикладного приложения осуществляют детальное сравнение этого обновления и инсталлированного в компьютерном устройстве прикладного приложения в его текущем состоянии для выявления различий, по крайней мере, в общих свойствах и/или параметров приложения, и/или отдельных объектов, и по результатам сравнения формируют запись выявленных различий с указанием для каждой позиции сравниваемых элементов установленных ограничений по их изменению, исходя из значения данного элемента для обеспечения целостности и работоспособности инсталлированного прикладного приложения в целом, а затем осуществляют объединение элементов инсталлированного на компьютерном устройстве приложения и элементов поставленного в качестве обновления приложения, в режиме перезаписи в целом элементов инсталлированной версии прикладного приложения соответствующими элементами, поставленными в составе обновления, с добавлением из пакета обновления новых объектов, отсутствовавших в ранее инсталлированной версии, или в режиме перезаписи соответствующих отдельных элементов прикладного приложения, при этом при объединении используют те элементы обновления прикладного приложения, у которых отсутствуют ограничения.

2. Способ по п.1, отличающийся тем, что при сравнении инсталлированного прикладного приложения и поставленного обновления этого прикладного приложения осуществляют детальное сравнение тех элементов двух указанных версий приложений, которые помечены как сопоставимые, при этом соответствие элементов определяется по присущим им свойствам и признакам.

3. Способ по п.1, отличающийся тем, что результат сравнения инсталлированного прикладного приложения и поставленного обновления выводят на устройство отображения информации и/или записывают в виде, по крайней мере, одного файла на носитель информации.

4. Способ по п.3, отличающийся тем, что при выводе результата сравнения на устройстве отображения информации демонстрируют отображение списка элементов, присутствующих в одном из выбранных сравниваемых приложений и отсутствующих в другом, или отображение полного списка отличающихся элементов обоих прикладных приложений или отображение полного списка отличающихся и идентичных элементов обоих прикладных приложений.

5. Способ по п.4, отличающийся тем, что в результатах сравнения перед объединением отмечают вручную сопоставимые элементы прикладного приложения и его обновления или отменяют установку отдельных элементов обновления.

6. Способ по п.1, отличающийся тем, что сравнение и объединение инсталлированного прикладного приложения и его обновления осуществляют средствами установленной на компьютерном устройстве программной платформы, в среде которой работает подлежащее обновлению прикладное приложение, или с помощью отдельно поставляемого программного инструментального средства.



 

Похожие патенты:

Изобретение относится к защищенной от несанкционированного доступа разработке исполняемого программного кода для портативных программируемых носителей информации.
Изобретение относится к области приборостроения. .

Изобретение относится к компьютерным системам, в частности к проверке идентичности прикладной программы в среде динамической загрузки. .

Изобретение относится к устройству и способу обработки внутренних данных в подвижной станции (ПС) и, в частности, к устройству и способу для сопряжения между модемом и памятью подвижной станции.

Изобретение относится к способам и системам доставки программ с использованием сети и обеспечивает технический результат в виде хорошего приспособления к сети Интернет.

Изобретение относится к средствам для обработки сигнала с множеством устройств для обработки данных. .

Изобретение относится к области вычислительной техники. .

Изобретение относится к технике связи и предназначено для добавления усовершенствованной функции кодирования переменной скорости (УКПС) к вокодеру в контроллере базовой станции (КБС) сотовой системы.

Изобретение относится к системе и способу для загрузки файлов программных средств в системе связи. .

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

Изобретение относится к вычислительной технике. .

Изобретение относится к конфигурируемым по длине вычислительным устройствам для длинных чисел. .

Изобретение относится к цифровым процессорам, в частности к микропроцессорам с уменьшенным энергопотреблением. .

Изобретение относится к цифровым процессорам, в частности к микропроцессорам с уменьшенным энергопотреблением. .

Изобретение относится к области вычислительной техники и может быть использовано в системах обмена данными и локальных вычислительных сетях. .

Изобретение относится к защищенной от несанкционированного доступа разработке исполняемого программного кода для портативных программируемых носителей информации.

Изобретение относится к микропроцессорным системам, в частности к расширению набора команд с использованием 3-байтовых значений кода операции перехода в поле кода операции.

Изобретение относится к области вычислительной техники и может быть использовано в системах обмена данными и локальных вычислительных сетях. .

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