RU2295752C1 - Method for controlling synchronization of software updates - Google Patents
Method for controlling synchronization of software updates Download PDFInfo
- Publication number
- RU2295752C1 RU2295752C1 RU2006108575/09A RU2006108575A RU2295752C1 RU 2295752 C1 RU2295752 C1 RU 2295752C1 RU 2006108575/09 A RU2006108575/09 A RU 2006108575/09A RU 2006108575 A RU2006108575 A RU 2006108575A RU 2295752 C1 RU2295752 C1 RU 2295752C1
- Authority
- RU
- Russia
- Prior art keywords
- application
- elements
- software
- user
- update
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000009434 installation Methods 0.000 claims abstract description 53
- 230000008859 change Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 8
- 239000000126 substance Substances 0.000 abstract 1
- 238000012384 transportation and delivery Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 239000000243 solution Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000012086 standard solution Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
Description
Изобретение относится к области вычислительной техники и программирования, а именно к области разработки прикладных программных средств (приложений) на определенных технологических программных платформах и доставки их обновлений на компьютеры пользователей.The invention relates to the field of computer engineering and programming, and in particular to the field of development of applied software tools (applications) on certain technological software platforms and the delivery of their updates to user computers.
Понятие программной платформы и платформенно-ориентированного построения приложений сейчас является общепринятым и трактуется гораздо шире, чем просто способность приложения работать в определенной операционной системе. Под платформой понимается среда исполнения и набор технологий, используемые в качестве основы для построения определенного круга приложений.The concept of a software platform and platform-oriented application building is now generally accepted and is interpreted much more widely than just the ability of an application to work in a specific operating system. A platform is understood as a runtime environment and a set of technologies used as the basis for building a certain range of applications.
Здесь и далее под «приложением» будет пониматься прикладное программное обеспечение ЭВМ, выполняющее множество разных функций и позволяющих пользователю решать множество разных задач, при этом термины «приложение», «компьютерная программа» и «программное обеспечение» будут употребляться как синонимы.Hereinafter, “application” will mean computer application software that performs many different functions and allows the user to solve many different tasks, while the terms “application”, “computer program” and “software” will be used synonymously.
Поскольку при проектировании и разработке прикладного программного обеспечения в настоящее время широко используются объектно-ориентированные подходы, то приложение и для разработчика, и для пользователя представляется не в виде сплошной последовательности данных и команд (чем фактически и является любая программа для ЭВМ, если ее рассматривать на низком машинном уровне), а в виде четко структурированного набора программных объектов, обладающих определенным функциональным предназначением. При этом каждому объекту обычно присваивается какое-либо наименование и уникальный (в пределах приложения) идентификатор. Ниже как синонимы могут использоваться термины «объекты», «компоненты», «части приложения» и «элементы приложения».Since object-oriented approaches are currently widely used in the design and development of application software, the application for both the developer and the user does not appear as a continuous sequence of data and commands (which is actually any computer program if it is considered on low machine level), but in the form of a clearly structured set of software objects that have a certain functional purpose. Moreover, each object is usually assigned a name and a unique (within the application) identifier. Below, synonyms can use the terms “objects”, “components”, “parts of an application” and “elements of an application”.
Способы установки и конфигурирования программного обеспечения известны (Андреев А.Г. и др. Microsoft Windows 2000 Server и Professional / Под общим редактированием Чекмарева А.Н. и Вишнякова Д.Б. - СПб: БХВ - Санкт-Петербург, 2000 - 992 с.: стр. 145, 373). Эти способы реализованы в современных цифровых вычислительных машинах в виде программ инсталляции, которые выполняют копирование файлов программного обеспечения на компьютер назначения, а также запись параметров конфигурации и другие действия по настройке программного обеспечения. Последовательность технологических операций в известных способах установки и конфигурации программного обеспечения должна строго выполняться в порядке, заданном разработчиком программы инсталляции.Methods for installing and configuring software are known (Andreev A.G. et al. Microsoft Windows 2000 Server and Professional / Under general editing by Chekmarev A.N. and Vishnyakova D.B. - St. Petersburg: BHV - St. Petersburg, 2000 - 992 s. .: p. 145, 373). These methods are implemented in modern digital computers in the form of installation programs that copy software files to the destination computer, as well as record configuration parameters and other software configuration steps. The sequence of technological operations in known methods of installing and configuring software must be strictly carried out in the order specified by the developer of the installation program.
Известна программа инсталляции Windows Installer - составная часть технологии IntelliMirror, используемая для работы с приложениями Windows 200 (Integrates with Microsoft. Visual Studio. Net Help.1992-2003. Microsoft Corporation. 0103 Part №X 09-19409, 19410, 19411). С ее помощью упрощается установка приложений и их обновление, устраняется возможность "конфликта версий", появляются дополнительные возможности по управлению программами, установленными в системе. Программа инсталляции состоит из главного установочного пакета и связанных с ним установочных пакетов. В свою очередь каждый установочный пакет состоит из одной или нескольких операций, объединенных согласно логике функционирования установочного пакета. Установочный пакет может содержать ссылки на другие установочные пакеты. При этом при выполнении установки и конфигурирования программного обеспечения могут быть использованы не все операции каждого установочного пакета, а только их произвольная выборка, определяемая целями и составом программного обеспечения, а также конфигурацией технических средств. Способ установки и конфигурирования программного обеспечения требует выполнения установочных операций в составе этих пакетов в строгой последовательности, заданной разработчиком.The known installation program Windows Installer is an integral part of IntelliMirror technology used to work with Windows 200 applications (Integrates with Microsoft. Visual Studio. Net Help. 1992-2003. Microsoft Corporation. 0103 Part No. X 09-19409, 19410, 19411). With its help, the installation of applications and their updating is simplified, the possibility of a “version conflict” is eliminated, and additional features for managing programs installed in the system appear. The installation program consists of a main installation package and associated installation packages. In turn, each installation package consists of one or more operations, combined according to the logic of the functioning of the installation package. The installation package may contain links to other installation packages. In this case, when performing the installation and configuration of the software, not all operations of each installation package can be used, but only their arbitrary selection, determined by the goals and composition of the software, as well as the configuration of hardware. The way to install and configure the software requires installation operations as part of these packages in the strict sequence specified by the developer.
С целью оптимизации инсталляционных процессов внутри каждого установочного продукта к каждому параметру установки может быть назначен весовой коэффициент (US №2003/0163807, G 06 F 009/445, опубл. 28.08.2003). Каждый весовой коэффициент в комбинации с состоянием параметров инсталляции, информацией о разбиении потенциальных компьютеров назначения используется в процедуре выбора для каждой потенциально возможной компьютерной системы назначения соответствующего пакета установочных пакетов. Каждый установочный пакет, составляющий программную систему установки и настройки программного обеспечения по способу, разрабатывается независимо от других пакетов и может впоследствии быть использован в других программах инсталляции в комбинации с иными установочными пакетами без каких-либо модификаций. Поэтому, во-первых, в рамках каждого установочного пакета задается абсолютный порядок выполнения всех действий, а выполнение установочных пакетов начинается с главного установочного пакета методом последовательного перебора. Во-вторых, возможно наличие однотипных действий в двух или более установочных пакетах. Следовательно, в процессе установки и настройки программного обеспечения однотипные действия будут выполняться такое число раз, в скольких установочных пакетах они повторяются. Это существенно затрудняет осуществление объективного контроля над последовательностью выполнения действий в установочных пакетах, это снижает надежность, делает невозможным процесс установки сложных программных систем.In order to optimize installation processes within each installation product, a weight factor can be assigned to each installation parameter (US No. 2003/0163807, G 06 F 009/445, published on 08.28.2003). Each weighting factor, in combination with the state of the installation parameters and information about the partition of potential destination computers, is used in the selection procedure for each potential destination computer system for the corresponding package of installation packages. Each installation package that makes up the software installation and software configuration system by the method is developed independently of other packages and can subsequently be used in other installation programs in combination with other installation packages without any modifications. Therefore, firstly, within each installation package, the absolute order of execution of all actions is specified, and the installation packages are started from the main installation package by sequential search. Secondly, there may be the same type of actions in two or more installation packages. Therefore, during the installation and configuration of the software, the same type of actions will be performed as many times in how many installation packages they are repeated. This significantly complicates the exercise of objective control over the sequence of actions in the installation packages, it reduces reliability, makes the installation of complex software systems impossible.
Одним из существенных преимуществ четкого разграничения между программной платформой и прикладным приложением, особенно в таких сферах задач как экономический анализ или учет, но не только в них, является высокий уровень адаптируемости прикладных решений под требования конкретных пользователей.One of the significant advantages of a clear distinction between the software platform and the application, especially in such areas of tasks as economic analysis or accounting, but not only in them, is the high level of adaptability of application solutions to the requirements of specific users.
Многие производители программных платформ и прикладных программ предусматривают в них механизмы для обновления версий, а также для расширений функций приложений, в том числе с помощью загружаемых на компьютер пользователя из сети, например сети Интернет, дополнительных компонентов.Many manufacturers of software platforms and application programs provide mechanisms for updating versions, as well as for expanding application functions, including using additional components downloaded onto a user's computer from the network, such as the Internet.
Известно решение, предлагающее предоставление расширений программного обеспечения на основе использования сети. Данный способ предполагает, в частности, что прикладная программа или компьютерная платформа установлена на компьютере пользователя, а посредством сети, например сети Интернет, пользователю доставляются описания расширений программного обеспечения, при этом данные расширения конфигурируют таким образом, чтобы загруженные и установленные расширения могли быть включены в программную платформу пользователя (RU 2250490, G 06 F 9/445, опубл. 2005.04.20).A solution is known for providing network-based software extensions. This method assumes, in particular, that the application program or computer platform is installed on the user's computer, and via the network, for example, the Internet, descriptions of software extensions are delivered to the user, and these extensions are configured so that the downloaded and installed extensions can be included in user software platform (RU 2250490, G 06 F 9/445, publ. 2005.04.20).
Известен способ установки и конфигурирования программного обеспечения, включающий выделение и загрузку установочных пакетов, начиная с главного, назначение в каждом установочном пакете веса каждому одному или более чем одному выбранному значению одного или нескольких параметров установки, связанных с установкой и конфигурацией установочного пакета программного обеспечения, определение множества компьютеров назначения, на которых может быть осуществлена установка установочного пакета программного обеспечения, определение процедуры вычисления каждого из параметров установки, разбиение множества компьютеров назначения в соответствии с каждым параметром установки с использованием назначенных весов в комбинации с состоянием параметров установки, вычисление соответствия каждого параметра установки для каждой из потенциальных систем компьютеров назначения, при этом одна или несколько операций в каждом установочном пакете объединяются согласно логике функционирования установочного пакета в фазу, которой присваивается один или несколько атрибутов, последовательно выбирается, анализируется, идентифицируется и помечается меткой каждая очередная фаза текущего установочного пакета, при этом, если очередная фаза загруженного установочного пакета помечена как обработанная, осуществляется переход к следующей фазе загруженного установочного пакета, а если очередная фаза загруженного установочного пакета не помечена как обработанная, то осуществляется вызов очередной фазы в каждом вложенном установочном пакете, при этом если очередная фаза не имеет вызовов в каждый вложенный установочный пакет, то ее идентификатор заносится в абсолютную последовательность выполнения фаз, а если текущая фаза найдена в одном из установочных пакетов, то в нем последовательно выбираются, анализируются и идентифицируются все фазы, расположенные до найденной, и сама найденная фаза, каждая из которых после обработки помечается меткой как обработанная (RU 2260839, G 06 F 9/445, опубл. 2005.09.20).A known method of installing and configuring software, including the allocation and download of installation packages, starting with the main one, assigning in each installation package the weight of each one or more than one selected value of one or more installation parameters associated with the installation and configuration of the software installation package, determining the set of destination computers on which the installation of the software installation package can be carried out, determining the procedure Calculation of each of the installation parameters, partitioning the set of destination computers in accordance with each installation parameter using the assigned weights in combination with the state of the installation parameters, calculating the correspondence of each installation parameter for each of the potential destination computer systems, with one or more operations in each installation the package are combined according to the logic of the functioning of the installation package into a phase to which one or more attributes are assigned, followed by Each successive phase of the current installation package is selected, analyzed, identified and marked with a label; in this case, if the next phase of the downloaded installation package is marked as processed, the system proceeds to the next phase of the downloaded installation package, and if the next phase of the downloaded installation package is not marked as processed, then the next phase is called in each nested installation package, and if the next phase does not have calls in each nested installation package, then its identifier is entered in the absolute sequence of the phases, and if the current phase is found in one of the installation packages, then all phases located before the found one are found, analyzed and identified, and the found phase itself, each of which is marked with processing as processed (RU 2260839, G 06 F 9/445, publ. 2005.09.20).
Данное известное решение предлагает способ установки и конфигурирования программного обеспечения на компьютере пользователя с возможностью объективного контроля над процессом инсталляции программ, в том числе при использовании набора установочных пакетов. Это, в частности, позволяет производить установку и обновление сложного программного обеспечения, включая выборочное обновление отдельных компонентов такого программного обеспечения на компьютере у пользователя.This well-known solution offers a way to install and configure software on a user's computer with the ability to objectively control the process of installing programs, including when using a set of installation packages. This, in particular, allows the installation and updating of complex software, including the selective updating of individual components of such software on a user's computer.
Данное техническое решение принято в качестве прототипа для заявленного объекта.This technical solution was made as a prototype for the claimed object.
Но для ряда программных приложений, например предназначенных для решения задач экономического анализа, учета и планирования, управления производственными процессами, особо важна возможность эффективного изменения готового приложения пользователем или третьим лицом, не участвовавшими в его создании. При индустриальном подходе к разработке и поддержке приложений, как правило, программы создаются коллективами программистов не "с чистого листа", а дорабатываются и развиваются типовые решения. Такие программные приложения часто предусматривают возможность их гибкого конфигурирования и внесения в них изменений самим пользователем или сторонним разработчиками по заказу пользователя. Подобные изменения, вносимые пользователем, могут быть весьма существенными и могут затрагивать, в частности, пользовательский интерфейс приложения, отдельные его объекты (формы, модули, справочники, отчеты и т.п.), обеспечивающие решение прикладных задач пользователя, но при этом тесно связанные друг с другом, и даже структуру хранения данных.But for a number of software applications, for example, designed to solve the problems of economic analysis, accounting and planning, and control of production processes, the ability to effectively modify the finished application by a user or a third party who was not involved in its creation is especially important. With an industrial approach to the development and support of applications, as a rule, programs are created by teams of programmers not from scratch, but standard solutions are finalized and developed. Such software applications often provide for the possibility of their flexible configuration and making changes to them by the user or third-party developers on the request of the user. Such changes made by the user can be very significant and can affect, in particular, the user interface of the application, its individual objects (forms, modules, directories, reports, etc.) that provide solutions to the user's application problems, but at the same time are closely related with each other, and even the data storage structure.
Таким образом, для ряда прикладных приложений задачи поставки обновлений и расширений программ, подготовленных разработчиком, и установки их на компьютеры пользователей представляют особую сложность. Например, для экономических программных приложений, используемых организациями и предпринимателями в целях ведения учета и подготовки регламентированной отчетности характерно то, что, во-первых, для таких экономических систем обновления и расширения выпускаются гораздо чаще (например, в связи с изменениями требований законодательства), чем для других программ, а, во-вторых, то, что достаточно часто, как было указано выше, практикуется изменение прикладных решений самими пользователями с целью адаптации тиражного программного продукта по свои нужды. Последняя особенность представляет особую сложность, так как при выпуске разработчиком любого обновления прикладного решения возникает необходимость синхронизации сделанных им изменений с теми, что были внесены в процессе внедрения и эксплуатации самим пользователем (или по его заказу).Thus, for a number of application applications, the task of delivering updates and extensions of programs prepared by the developer and installing them on users' computers is particularly difficult. For example, for economic software applications used by organizations and entrepreneurs to keep records and prepare regulated reporting, it is characteristic that, firstly, for such economic systems, updates and extensions are issued much more often (for example, due to changes in the requirements of the law) than for other programs, and, secondly, the fact that quite often, as mentioned above, it is practiced to change the applied solutions by the users themselves in order to adapt the circulation software product about their needs. The latter feature is particularly difficult, since when a developer releases any update of an application solution, it becomes necessary to synchronize the changes made by him with those that were made during implementation and operation by the user (or by his order).
Недостатками описанных выше решений является то, что при их применении в процессе поставки обновлений не удается в полной мере учесть те изменения, которые сделаны пользователем либо третьим лицом. Как следствие, пользователю приходится либо отказываться от обновления, предлагаемого разработчиком, либо, соглашаясь на обновление программного обеспечения, после установки полученных новых компонентов частично или полностью терять те настройки, изменения и дополнения, которые вносились им самостоятельно в используемое программное обеспечение.The disadvantages of the solutions described above are that when they are applied during the update delivery process, it is not possible to fully take into account the changes made by the user or a third party. As a result, the user either has to refuse the update offered by the developer, or, agreeing to update the software, after installing the received new components, partially or completely lose the settings, changes and additions that he made to the software used by himself.
Настоящее изобретение направлено на решение технической задачи по обновлению настраиваемого программного обеспечения, эксплуатируемого на компьютере пользователя, в тех случаях, когда требуется обеспечить:The present invention is directed to solving the technical problem of updating custom software running on a user's computer, in cases where it is required to provide:
- обновление не всех, а лишь отдельных частей (модулей, объектов) программного приложения, в тех случаях, когда обновление определенных частей по различным причинам нежелательно для пользователя;- updating not all, but only certain parts (modules, objects) of a software application, in cases where updating certain parts for various reasons is undesirable for the user;
- обновление различных частей одного и того же программного приложения за счет пакетов обновления, поставляемых различными разработчиками.- Updating various parts of the same software application through service packs supplied by various developers.
Достигаемый при этом технический результат заключается в повышении надежности инсталляции и обеспечении безотказности процесса установки сложных программных систем, особенно таких, которые подвержены частым изменениям и коррективам, за счет возможности объективного контроля над процессом обновления модифицируемого прикладного приложения.The technical result achieved in this case is to increase the reliability of the installation and ensure the reliability of the installation of complex software systems, especially those that are subject to frequent changes and adjustments, due to the possibility of objective control over the update process of the modified application.
Предложение также может быть использовано в процессе разработки комплекса прикладных приложений в тех случаях, когда одно или более простое приложение является потомком более сложного приложения и, соответственно, наследуют часть входящих в состав сложного приложения объектов. При этом разработчик модифицирует элементы в рамках сложного (основного) приложения, а затем с помощью механизма синхронизации обновления производит обновление модифицированных элементов во всех производных приложениях-потомках.The proposal can also be used in the process of developing a set of application applications in cases where one or more simple applications is a descendant of a more complex application and, accordingly, inherit some of the objects that make up the complex application. In this case, the developer modifies the elements within the framework of a complex (main) application, and then, using the update synchronization mechanism, updates the modified elements in all derived child applications.
Указанный технический результат достигается тем, что реализуется способ поставки обновлений, установки и конфигурирования программного обеспечения, который включает в себя следующие операции: доставку обновлений на материальных носителях или по сети и их запись в ОЗУ или ПЗУ компьютерного устройства пользователя, сравнение поставленного в качестве обновления программного обеспечения и имеющегося у пользователя программного обеспечения в его текущем состоянии на предмет выявления различий, объединение элементов имеющегося у пользователя программного обеспечения и элементов поставленного в качестве обновления программного обеспечения, при этом отбор элементов имеющегося у пользователя программного обеспечения, подлежащих замещению за счет поставленного обновления, осуществляют на основе данных о правилах поддержки конкретного элемента и на основе данных о выявленных в результате сравнения различиях в версиях.The specified technical result is achieved by the fact that a method for delivering updates, installing and configuring software is implemented, which includes the following operations: delivering updates on tangible media or over the network and writing them to RAM or ROM of a user's computer device, comparing the software delivered as an update software and user software in its current state to identify differences, combining elements of user software and elements supplied as a software update, while the selection of elements of user software available to be replaced by the installed update is carried out on the basis of data on the support rules for a particular element and on the basis of data on differences in versions identified as a result of comparison .
При этом при сравнении имеющегося у пользователя программного обеспечения и поставленного в качестве обновления программного обеспечения на предмет выявления различий, происходит детальное сравнение тех элементов двух указанных версий программного обеспечения, которые помечены как соответствующие (сопоставимые), при этом соответствие элементов определяется по специфическим присущим им свойствам и признакам автоматически.In this case, when comparing the user’s existing software and installed as a software update for differences, a detailed comparison is made of those elements of the two indicated software versions that are marked as corresponding (comparable), while the correspondence of the elements is determined by their specific properties and featured automatically.
Результат сравнения имеющегося у пользователя программного обеспечения и поставленного в качестве обновления программного обеспечения предоставляется пользователю с выводом на определенное устройство отображения информации и/или записывается в виде одного или нескольких файлов на носитель информации.The result of comparing the software available to the user and delivered as a software update is provided to the user with output to a specific information display device and / or is recorded as one or more files on the storage medium.
При выводе результата сравнения пользователь имеет возможность выбрать различные режимы отображения информации о выявленных отличиях сравниваемых приложений, по крайней мере, предусмотрены следующие режимы: отображение списка элементов, присутствующих в одном из выбранных сравниваемых приложений и при этом отсутствующих в другом; отображение полного списка отличающихся элементов обоих приложений; отображение полного списка элементов обоих программных приложении, как отличающихся, так и идентичных.When displaying the result of the comparison, the user has the opportunity to select various modes of displaying information about the revealed differences of the compared applications, at least the following modes are provided: displaying a list of elements that are present in one of the selected compared applications and are absent in the other; displaying a complete list of different elements of both applications; displaying a complete list of elements of both software applications, both different and identical.
По результатам сравнения имеющегося у пользователя программного обеспечения и поставленного в качестве обновления программного обеспечения перед объединением у пользователя имеется возможность самостоятельно пометить элементы программного обеспечения как соответствующие (сопоставимые) или отменить установленное автоматически соответствие элементов.According to the results of comparing the user’s software and delivered as a software update before combining, the user has the opportunity to independently mark the software elements as appropriate (comparable) or cancel the automatically matching elements.
Сравнение и объединение имеющегося у пользователя программного обеспечения и поставленного в качестве обновления программного обеспечения может быть реализовано как средствами установленной на компьютерном устройстве пользователя программной платформы, в среде которой работает подлежащее обновлению программное обеспечение, так и с помощью специального отдельно поставляемого программного инструментального средства, предназначенного для сравнения и/или объединения версий программного обеспечения.Comparison and integration of the software available to the user and delivered as an update of the software can be implemented both by means of the software platform installed on the user's computer device, in the environment of which the software to be updated is running, and by using a special separately supplied software tool intended for comparing and / or combining software versions.
Правила поддержки конкретных элементов имеющегося у пользователя программного обеспечения в его текущем состоянии устанавливаются пользователем с учетом ограничений, заданных разработчиком программного обеспечения для каждого из элементов исходя из значения данного элемента для обеспечения целостности и работоспособности программного обеспечения в целом.The rules for supporting specific elements of the user’s existing software in its current state are set by the user, taking into account the restrictions set by the software developer for each of the elements based on the value of this element to ensure the integrity and operability of the software as a whole.
В ОЗУ или ПЗУ компьютерного устройства пользователя также записана, по крайней мере, одна предыдущая версия программного обеспечения, поставленного разработчиком, что обеспечивает возможность сравнения поставленного в качестве обновления программного обеспечения и имеющегося у пользователя программного обеспечения в его текущем состоянии с этой предыдущей версией и выдачу результата в какой-либо форме об истории изменения элементов поставленного в качестве обновления программного обеспечения и имеющегося у пользователя программного обеспечения в его текущем состоянии.At least one previous version of the software supplied by the developer is also recorded in the RAM or ROM of the user's computer device, which makes it possible to compare the software delivered as an update with the user's current state with this previous version and output the result in any form about the history of changes in the elements of the software installed as an update and the user’s software security in its current condition.
Указанные признаки являются существенными и взаимосвязаны между собой с образованием устойчивой совокупности признаков, достаточной для получения требуемого технического результата.These features are significant and interconnected with the formation of a stable set of features sufficient to obtain the desired technical result.
Технический результат в указанной совокупности признаков достигается за счет анализа изменений (сравнения версий) и предоставления как разработчику, так и самому пользователю возможности управления синхронизацией обновлений вплоть до отдельных объектов и процедур программы. Возможность сравнения прикладных программных приложений также позволяет копировать отдельные функциональные программные элементы из одного приложения в другое в автоматическом или полуавтоматическом режиме (под контролем пользователя).The technical result in this set of features is achieved by analyzing the changes (comparing versions) and providing both the developer and the user with the ability to control the synchronization of updates up to individual objects and procedures of the program. The ability to compare applied software applications also allows you to copy individual functional program elements from one application to another in an automatic or semi-automatic mode (under user control).
Технический результат от применения предложения состоит в том, что производится выборочная запись на компьютеры пользователей поставляемых обновленных частей (модулей, объектов) программного приложения, т.е. выпущенные разработчиком или несколькими разработчиками обновления применяются лишь к строго определенным частям записанного на компьютере пользователя прикладного приложения без нарушения его логической целостности и работоспособности в целом.The technical result from the application of the proposal is that selective recording of the delivered updated parts (modules, objects) of the software application to the users' computers is performed, i.e. Updates issued by a developer or several developers apply only to strictly defined parts of an application recorded on the user's computer without violating its logical integrity and overall health.
Управление процессом синхронизации, т.е. выборочное обновление, обычно обеспечивается за счет предоставления пользователю возможности непосредственного указания, какие из элементов приложения подлежат обновлению, а какие не подлежат. Но когда речь идет о сложных прикладных приложениях, содержащих сотни объектов, такой анализ для пользователя становится крайне затруднительным. Пользователь не всегда может отследить взаимосвязь между объектами, и в результате его действий (например, отказа от обновления отдельных ключевых объектов и самостоятельной их модификации) может нарушиться функциональная целостность и работоспособность приложения.Management of the synchronization process, i.e. selective updating is usually provided by providing the user with the ability to directly indicate which elements of the application are subject to update and which are not. But when it comes to complex applications containing hundreds of objects, such an analysis becomes extremely difficult for the user. The user cannot always track the relationship between objects, and as a result of his actions (for example, refusal to update certain key objects and independently modify them), the functional integrity and performance of the application may be violated.
Во избежание этого разработчик сам должен указывать, какие из объектов являются ключевыми для приложения и их модификация или удаление способны нарушить его целостность. При попытке модификации или удаления таких объектов пользователь будет, по крайней мере, проинформирован о последствиях своих действий. Таким образом, для каждого из объектов в зависимости от его значимости разработчик устанавливает правила изменения. Эти правила могут представлять собой булевы значения (флаги), принимающие значения 0/1, например, «модификация объекта разрешена»/«модификация объекта пользователем нежелательна», но могут представлять собой и более сложные наборы значений, например, для каждого объекта разработчиком может быть задано одно из трех или более состояний.To avoid this, the developer himself must indicate which of the objects are key to the application and their modification or deletion can violate its integrity. When attempting to modify or delete such objects, the user will be at least informed of the consequences of their actions. Thus, for each of the objects, depending on its significance, the developer sets the rules for change. These rules can be Boolean values (flags), taking values 0/1, for example, “modification of the object is allowed” / “modification of the object by the user is undesirable”, but they can also be more complex sets of values, for example, for each object, the developer one of three or more states is specified.
Значения правил поддержки и правил изменения удобно записывать и хранить в памяти компьютера вместе с самими объектами приложений, но подобные значения могут храниться и во внешних информационных хранилищах, в частности в удаленных базах данных. Фиксация правил изменения, установленных разработчиком для каждого из объектов приложения, и правил поддержки объектов, установленных пользователем, позволяет учитывать их при автоматизированной процедуре выборочного обновления.The values of support rules and change rules can be conveniently written and stored in the computer memory together with the application objects themselves, but similar values can be stored in external information storages, in particular, in remote databases. Fixing the change rules established by the developer for each of the application objects and the rules for supporting objects set by the user allows them to be taken into account during the automated selective update procedure.
На чертеже представлен вариант алгоритма обновления версии.The drawing shows a version of the algorithm update version.
Ниже рассматривается пример конкретной реализации способа согласно изобретению.The following is an example of a specific implementation of the method according to the invention.
Согласно настоящему изобретению рассматривается способ управления синхронизацией обновлений программного обеспечения, включающий запись в системную память компьютерного устройства, на котором установлена программная платформа, обеспечивающая функционирование, по крайней мере, одного прикладного приложения, обновления этого приложения в виде его полной обновленной версии или в виде набора отдельных элементов приложения, подлежащих обновлению по сравнению с предыдущей версией, и осуществление инсталляции обновления в указанное прикладное приложение.According to the present invention, there is considered a method for controlling the synchronization of software updates, including writing to the system memory of a computer device on which a software platform is installed that provides operation of at least one application application, updating this application in the form of its full updated version or as a set of separate application elements to be updated compared to the previous version, and the installation of the update in the specified application Kladno application.
Особенностью данного способа является то, что после записи в системную память компьютерного устройства обновления прикладного приложения осуществляют детальное сравнение этого обновления и инсталлированного в компьютерном устройстве прикладного приложения в его текущем состоянии для выявления различий по крайней мере в общих свойствах и/или параметров приложения, и/или отдельных объектов и по результатам сравнения формируют запись выявленных различий с указанием для каждой позиции сравниваемых элементов установленных ограничений по их изменению исходя из значения данного элемента для обеспечения целостности и работоспособности инсталлированного прикладного приложения в целом, а затем осуществляют объединение элементов инсталлированного на компьютерном устройстве приложения и элементов поставленного в качестве обновления приложения в режиме перезаписи в целом элементов инсталлированной версии прикладного приложения соответствующими элементами, поставленными в составе обновления, с добавлением из пакета обновления новых объектов, отсутствовавших в ранее инсталлированной версии, или в режиме перезаписи соответствующих отдельных элементов прикладного приложения, при этом при объединении используют те элементы обновления прикладного приложения, у которых отсутствуют ограничения.A feature of this method is that after writing to the system memory of a computer device, application application updates perform a detailed comparison of this update and the application application installed in the computer device in its current state to detect differences in at least the general properties and / or parameters of the application, and / or individual objects and, based on the results of the comparison, form a record of the revealed differences indicating for each position of the compared elements the established limits to change them based on the value of this element to ensure the integrity and operability of the installed application as a whole, and then combine the elements of the application installed on the computer device and the elements of the application installed as an update in the mode of rewriting the whole elements of the installed version of the application by the corresponding elements supplied as part of the update, with the addition of new objects that were not in the wound from the update package e installed version, or in the overwrite mode of the corresponding individual elements of the application, while combining using those update elements of the application that have no restrictions.
Рассмотрим одну из форм осуществления изобретения.Consider one of the forms of carrying out the invention.
На компьютере у пользователя установлена программная платформа, которая обеспечивает функционирование одного или нескольких прикладных приложений, также установленных на компьютере пользователя. Под компьютером пользователя понимается любая компьютерная система, включающая микропроцессорное устройство и запоминающее устройство. Компьютер пользователя может, в частности, иметь обычную для IBM-совместимого компьютера конфигурацию: содержать один или несколько процессоров, системную память (ПЗУ и ОЗУ), системную шину, устройства ввода, такие как клавиатура и манипулятор-«мышь», устройства для чтения внешних носителей информации, устройства вывода информации, и работать под управлением базовой системы ввода-вывода (BIOS) и какой-либо операционной системы. Программная платформа записывается в ОЗУ и/или ПЗУ компьютера и ее команды обрабатываются процессором. В ОЗУ и/или ПЗУ компьютера также записывается одно или более прикладных приложений, команды которых выполняются процессором либо непосредственно, либо опосредованно, в частности - с задействованием интерпретатора, встроенного в программную платформу.The user has a software platform installed on the computer that enables the operation of one or more application applications also installed on the user's computer. By a user's computer is meant any computer system including a microprocessor device and a storage device. A user's computer can, in particular, have the usual configuration for an IBM-compatible computer: contain one or more processors, system memory (ROM and RAM), a system bus, input devices such as a keyboard and a mouse, and devices for reading external information carriers, information output devices, and run under the control of the basic input-output system (BIOS) and any operating system. The software platform is written to the RAM and / or ROM of the computer and its instructions are processed by the processor. One or more application applications are written to the RAM and / or ROM of the computer, the commands of which are executed by the processor either directly or indirectly, in particular with the use of an interpreter built into the software platform.
Поставка обновлений для определенных приложений может принимать форму поставки пакетов обновления, включающих либо полную обновленную версию приложения, либо набор отдельных элементов (объектов) приложения, подлежащих обновлению по сравнению с предыдущей версией. Пакеты обновления поставляются разработчиком пользователю записанными на материальных носителях информации либо по сети, в частности это может сеть Интернет.The delivery of updates for certain applications may take the form of delivery of service packs, including either a fully updated version of the application, or a set of individual elements (objects) of the application to be updated compared to the previous version. Service packs are delivered by the developer to the user recorded on tangible media or over the network, in particular, it can be the Internet.
Пакеты обновления снабжаются служебной информацией, указывающей на то, к каким версиям (номерам версии) программного приложения применим данный пакет обновлений. Например, разработчик может указать, что пакет обновления до версии 1.3 может быть применен к приложению версии 1.1 и 1.2, но не к более ранним версиям.Service packs are provided with service information indicating to which versions (version numbers) of the software application the given service pack is applicable. For example, the developer may indicate that the service pack to version 1.3 can be applied to the application versions 1.1 and 1.2, but not to earlier versions.
При доставке пакетов обновления пользователю средствами программной платформы производится проверка версий и выявляется потенциальная возможность обновления установленного у пользователя приложения с помощью данных пакетов обновления.When the service packs are delivered to the user by means of the software platform, the version is checked and the potential possibility of updating the application installed by the user using these service packs is revealed.
Также производится определение статуса поддержки текущей версии приложения, установленного у пользователя на компьютере. Приложение в зависимости от степени и характера изменений, внесенных в него пользователем или третьими лицами, может, в частности, считаться находящимся на полной (автоматической) поддержке разработчика или быть снятым с полной поддержки. Изменения статуса приложения фиксируются в служебных полях файла (файлов) приложения.It also determines the support status of the current version of the application installed on the computer by the user. The application, depending on the degree and nature of changes made to it by the user or third parties, can, in particular, be considered to be fully (automatically) supported by the developer or be withdrawn from full support. Changes in the application status are recorded in the service fields of the application file (s).
Если приложение имеет статус находящегося на полной (автоматической) поддержке разработчика, поставляющего обновления, то производится автоматическое обновление за счет полученных пакетов обновления без задействования процедуры сравнения и объединения версий приложения, при этом все элементы, принадлежащие к предыдущей версии, просто заменяются новыми. Копия предыдущей версии приложения, однако, может сохраняться на компьютере пользователя, в частности для целей отслеживания истории изменений объектов (см. ниже).If the application has the status of a developer who provides updates that is fully (automatically) supported, then an automatic update is performed due to the received service packs without involving the comparison and merging of application versions, while all elements belonging to the previous version are simply replaced with new ones. A copy of the previous version of the application, however, can be stored on the user's computer, in particular for the purpose of tracking the history of changes in objects (see below).
Если же в текущую версию приложения, установленного у пользователя, последним вносятся изменения, то статус полной (автоматической) поддержки приложения снимается. При этом, однако, сохраняется возможность применения обновлений, поставляемых разработчиком, к отдельным объектам такого приложения.If changes are made to the current version of the application installed by the user, the status of full (automatic) application support is removed. At the same time, however, it remains possible to apply the updates supplied by the developer to individual objects of such an application.
Для этих целей используются процедуры сравнения и объединения версий приложений, которые в данной реализации изобретения обеспечиваются инструментальными средствами программной платформы.For these purposes, the procedures for comparing and combining application versions are used, which in this implementation of the invention are provided by software platform tools.
Программная платформа предоставляет пользователю возможность детального сравнения различных элементов двух версий приложения: сравнению могут подвергаться общие свойства и параметры приложения, отдельные объекты, в частности отдельно сравниваются экранные формы, модули, тексты описаний, макеты печатных форм и так далее вплоть до отдельных процедур и функций, написанных на языке программирования.The software platform allows the user to make detailed comparisons of the various elements of two versions of the application: the general properties and parameters of the application can be compared, individual objects, in particular, screen forms, modules, description texts, layouts of printing forms, and so on, up to individual procedures and functions, can be compared, written in a programming language.
В одном из вариантов осуществления предложения сравнение производится путем записи в оперативную память компьютера пользователя по крайней мере двух версий приложения и анализа их структуры с использованием специального алгоритма, реализованного в виде команд программного инструментального средства, входящего в данном случае в состав программной платформы.In one embodiment of the proposal, the comparison is made by writing at least two versions of the application to the user's computer’s RAM and analyzing their structure using a special algorithm implemented in the form of instructions from a software tool included in this case as part of a software platform.
Алгоритм анализа структуры приложения, в частности, может предусматривать сравнение по внутренним идентификаторам (уникальным кодам) объектов, которые присваиваются автоматически при создании объекта. Сравнение по внутренним идентификаторам объектов эффективно в тех случаях, когда сравниваемые версии приложения являются потомками одной и той же предыдущей версии.The algorithm for analyzing the structure of the application, in particular, may provide for a comparison by internal identifiers (unique codes) of objects that are assigned automatically when the object is created. Comparison by internal object identifiers is effective when the compared versions of the application are descendants of the same previous version.
Дополнительно проводится сравнение по наименованиям объектов - при совпадении такие объекты считаются одной и той же сущностью и далее происходит более детальное их сравнение. Применительно к формам, например, может производиться сравнение по именам формы, затем по заголовкам страниц формы и идентификаторам, если установлено соответствие страниц, то будут сравниваться расположенные в них элементы управления пользовательского интерфейса.In addition, a comparison is made according to the names of objects - if they coincide, such objects are considered the same entity and then a more detailed comparison of them occurs. In relation to forms, for example, a comparison can be made by the form names, then by the page headings of the form and identifiers, if the correspondence of the pages is established, then the user interface controls located in them will be compared.
Результаты сравнения двух приложений могут быть выведены на любое устройство отображения, например, монитор или принтер, а также записаны в файл.The results of comparing two applications can be displayed on any display device, for example, a monitor or printer, and also recorded in a file.
Результаты сравнения, как правило, отображаются в виде таблицы. Объекты двух сравниваемых версий, соответствие между которыми установлено, обычно располагаются в одной строке таблицы. При выводе результата сравнения пользователь имеет возможность выбрать различные режимы отображения информации о выявленных отличиях сравниваемых приложений, по крайней мере, предусмотрены следующие режимы: отображение списка элементов, присутствующих в одном из выбранных сравниваемых приложений и при этом отсутствующих в другом; отображение полного списка отличающихся элементов обоих приложений; отображение полного списка элементов обоих программных приложении, как отличающихся, так и идентичных.Comparison results are usually displayed in tabular form. The objects of the two compared versions, the correspondence between which is established, are usually located on the same line of the table. When displaying the result of the comparison, the user has the opportunity to choose various modes of displaying information about the revealed differences of the compared applications, at least the following modes are provided: displaying a list of elements that are present in one of the selected compared applications and are absent in the other; displaying a complete list of different elements of both applications; displaying a complete list of elements of both software applications, both different and identical.
Два объекта двух сравниваемых версий считаются соответствующими, если они выполняют в различных версиях приложения одну и ту же функцию. Как правило, такие объекты имеют одинаковые наименования и внутренние идентификаторы. В процессе доработки версии, однако, пользователь может внести в свою версию приложения такие изменения, что соответствующие по внешним признакам объекты фактически меняют свою сущность и начинают выполнять иные функции. С другой стороны, различающиеся по внешним признакам (например, по наименованию) объекты двух версий приложения могут, по сути, являться однотипными и выполнять в сравниваемых версиях приложения одну и ту же функцию.Two objects of two compared versions are considered appropriate if they perform the same function in different versions of the application. As a rule, such objects have the same name and internal identifiers. In the process of finalizing the version, however, the user can make such changes in his version of the application that the objects corresponding in appearance will actually change their essence and begin to perform other functions. On the other hand, objects of two versions of the application that differ in appearance (for example, by name) can, in fact, be of the same type and perform the same function in the compared versions of the application.
В этой связи по результатам сравнения пользователю в интерактивном режиме предлагается подтвердить выявленные соответствия между объектами, компонентами и иными элементами двух приложений либо для определенных элементов отменить автоматически установленное соответствие. Пользователь с помощью устройств ввода (например, манипулятора-«мышь») имеет возможность помечать определенные строки таблицы и тем самым подтверждать или отменять соответствие элементов разных версий приложения.In this regard, according to the results of the comparison, the user is prompted in an interactive mode to confirm the revealed correspondences between the objects, components and other elements of the two applications or to cancel the automatically established correspondence for certain elements. The user using input devices (for example, the “mouse” manipulator) has the ability to mark certain rows of the table and thereby confirm or deselect elements of different versions of the application.
С учетом корректировок, произведенных пользователем, в системную память и/или в ПЗУ компьютера записываются в виде подходящей информационной структуры (массива переменных, виртуальной таблицы и т.п.) данные о выявленном соответствии между элементами сравниваемых версий приложения и о состоянии каждого из элементов одной версии приложения по отношению к аналогичному элементу другой версии (изменен, удален, неизменен и т.п.). Указанные данные в дальнейшем могут использоваться при процедуре объединения версий.Taking into account the corrections made by the user, data on the revealed correspondence between the elements of the compared versions of the application and the state of each element of one are written to the system memory and / or ROM of the computer in the form of a suitable information structure (array of variables) version of the application in relation to a similar element of another version (modified, deleted, unchanged, etc.). The indicated data can later be used in the version merging procedure.
Вместе с каждой версией приложения сохраняются данные, описывающие правила изменения для конкретных его объектов, установленные разработчиком. В данном рассматриваемом варианте реализации предложения для каждого объекта разработчик задает одно из трех правил изменения объектов:Together with each version of the application, data is stored that describes the change rules for its specific objects established by the developer. In this considered embodiment of the proposal for each object, the developer sets one of three rules for changing objects:
1) режим «Изменения разрешены» - правило, признающее модификацию в отношении объекта допустимой;1) “Changes allowed” mode - a rule that recognizes a modification with respect to an object as permissible;
2) режим «Изменения не рекомендуются» - правило, признающее модификацию в отношении объекта также допустимой, однако при попытке модификации пользователю выдается дополнительное предупреждение о нежелательности изменения такого объекта;2) “Changes are not recommended” mode - a rule that recognizes a modification with respect to an object as acceptable, however, when an attempt is made to modify the user is given an additional warning about the undesirability of changing such an object;
3) режим «Изменения запрещены» - запрет любой модификации объекта приложения; в случае, если объект модифицируется, приложение полностью снимается с поддержки разработчика.3) “Changes are prohibited” mode - prohibition of any modification of the application object; in case the object is modified, the application is completely removed from the support of the developer.
Если изменения, внесенные пользователем, согласуются с правилами, установленными разработчиком для конкретных объектов, то приложению присваивается статус находящегося «на [частичной] поддержке с возможностью изменения». При данном режиме имеется возможность отслеживания истории изменений в двух версиях-потомках (модифицированной пользователем и обновленной разработчиком) по отношению к первоначальной (предыдущей) версии поставщика.If the changes made by the user are consistent with the rules established by the developer for specific objects, then the application is assigned the status of being “on [partial] support with the possibility of change”. In this mode, it is possible to track the history of changes in two descendant versions (modified by the user and updated by the developer) in relation to the initial (previous) version of the provider.
Если же изменения не согласуются с правилами, установленными разработчиком, например, модифицируется объект, для которого установлен режим «Изменения запрещены», то приложение полностью снимается с поддержки. При полном снятии с поддержки обновление объектов модифицированной пользователем версии приложения возможно за счет поставленных пакетов обновления только в ручном режиме, т.е. исходя из установленного приоритета сравниваемых версий или путем задания пользователем специальных правил объединения для каждой из пар соответствующих элементов.If the changes are not consistent with the rules established by the developer, for example, an object is modified for which the "Changes are prohibited" mode is set, then the application is completely removed from support. When completely removed from support, updating objects of a user-modified version of the application is possible due to the delivered service packs only in manual mode, i.e. proceeding from the established priority of the compared versions or by setting by the user special union rules for each of the pairs of corresponding elements.
К элементам двух приложений, соответствие между которыми установлено с помощью операции сравнения версий, могут быть применены, по крайней мере, два режима объединения:At least two merge modes can be applied to elements of two applications, the correspondence between which was established using the version comparison operation:
1) режим, при котором происходит замещение (перезапись) в целом элементов установленной у пользователя версии приложения соответствующими элементами, поставленными в составе обновления разработчиком, а новые объекты, отсутствовавшие в пользовательской версии, просто добавляются в нее из пакета обновления;1) the mode in which there is a replacement (rewriting) of the whole elements of the application version installed by the user with the corresponding elements supplied as part of the update by the developer, and new objects that were not in the user version are simply added to it from the update package;
2) режим, при котором происходит объединение соответствующих элементов приложений - отдельных реквизитов объектов, форм, модулей, текстов описаний, макетов печатных форм, сохраненных запросов и так далее, вплоть до отдельных процедур и функций, написанных на языке программирования. При этом результат объединения определяется спецификой соответствующих элементов приложения и зависит от заданных пользователем или разработчиком правил объединения, в частности от заданного приоритета одного из сравниваемых приложений.2) a mode in which the combination of the corresponding application elements occurs - individual details of objects, forms, modules, description texts, layouts of printed forms, stored requests, and so on, up to individual procedures and functions written in a programming language. In this case, the result of the combination is determined by the specifics of the corresponding elements of the application and depends on the association rules set by the user or developer, in particular, on the given priority of one of the compared applications.
В тех случаях, когда приложение имеет статус находящегося на поддержке (как на полной автоматической поддержке, так и на поддержке с возможностью изменений), как правило, применяется первый режим объединения.In those cases when the application has the status of being supported (both full automatic support and support with the possibility of changes), as a rule, the first merge mode is applied.
Как указывалось выше, при обновлении приложения, находящегося на поддержке, может быть проведено сравнение текущего и первоначального состояния установленного на компьютере у пользователя приложения, т.е. приложения на момент предыдущей его поставки разработчиком, поскольку на компьютере пользователя также сохраняется эталонная версия предыдущей поставки.As indicated above, when updating an application that is supported, a comparison can be made of the current and initial state of the application installed on the computer by the user, i.e. applications at the time of its previous delivery by the developer, since the reference version of the previous delivery is also stored on the user's computer.
Это значит, что описанная выше процедура сравнения может быть применена для выявления различий применительно к трем версиям одного и того же приложения:This means that the comparison procedure described above can be applied to identify differences with respect to three versions of the same application:
(1) в новой поставке приложения разработчика по сравнению с предыдущей поставкой разработчика, например, разница между поставляемыми разработчиком версиями 1.00 и 1.01 приложения;(1) in the new delivery of the developer application compared to the previous delivery of the developer, for example, the difference between the versions 1.00 and 1.01 of the application supplied by the developer;
(2) в текущем состоянии приложения, модифицированного пользователем, по сравнению с первоначальной (предыдущей) поставкой разработчика, например, разница между версией 1.00, поставленной разработчиком, и ее модифицированным аналогом, эксплуатируемым пользователем (версия 1.00');(2) in the current state of the application modified by the user compared with the initial (previous) delivery of the developer, for example, the difference between the version 1.00 supplied by the developer and its modified analogue operated by the user (version 1.00 ');
(3) в текущем состоянии приложения, модифицированного пользователем, по сравнению с новой поставкой приложения, например, разница между модифицированной пользователем версией 1.00' и поставляемой разработчиком обновленной версией 1.01.(3) in the current state of the user-modified application compared to the new application delivery, for example, the difference between the user-modified version 1.00 'and the updated version 1.01 supplied by the developer.
Это позволяет наглядно проследить историю изменений объектов в приложениях-потомках, т.е. для каждой пары соответствующих элементов приложения можно определить, произошли ли в них изменения по сравнению с первоначальной поставкой разработчика. Результаты сравнения могут отражать следующие состояния объектов.This allows you to visually trace the history of changes in objects in descendant applications, i.e. for each pair of corresponding application elements, you can determine whether there have been changes in them compared to the initial delivery of the developer. The comparison results may reflect the following states of objects.
Результаты сравнения трех версий записываются в системную память и/или в ПЗУ компьютера в виде подходящей информационной структуры (массива переменных, виртуальной таблицы и т.п.), в дальнейшем они используются при процедуре объединения обновленной разработчиком версии с модифицированной версией пользователя.The results of the comparison of the three versions are recorded in the system memory and / or in the ROM of the computer in the form of a suitable information structure (an array of variables, a virtual table, etc.), later they are used in the procedure of combining the updated version with the modified version of the user.
С целью обеспечения максимальной гибкости средства программной платформы позволяют пользователю устанавливать правила поддержки объектов своего модифицированного приложения. Например, он может отказаться от поддержки поставщиком конкретного объекта или компонента приложения, если возьмет на себя ответственность за дальнейшую модификацию этого объекта или если данный объект не нужен для решения его прикладных задач (режим «Снят с поддержки»). Снятый с поддержки и удаленный пользователем объект, например, при обновлении не будет предлагаться к восстановлению. В описываемом варианте реализации предложения пользователь может установить для каждого объекта один из трех режимов поддержки: 1) снят с поддержки 2) редактируется с сохранением поддержки 3) не редактируется.In order to ensure maximum flexibility, the tools of the software platform allow the user to establish rules for supporting objects of his modified application. For example, he may refuse to support the supplier of a specific object or application component if he assumes responsibility for further modification of this object or if this object is not needed to solve its applied problems (“Discontinued” mode). An object removed from support and deleted by the user, for example, during the upgrade will not be offered for recovery. In the described embodiment of the proposal, the user can set one of three support modes for each object: 1) removed from support 2) is edited while maintaining support 3) is not edited.
Правила поддержки элементов приложения, установленные пользователем, так же как и правила изменения для конкретных объектов, установленные разработчиком, хранятся в виде служебной информации в памяти компьютера, например, фиксируются в служебных полях файла (файлов) приложения. Но очевидно, что такие правила могут храниться и во внешней базе данных, в том числе на удаленных компьютерах, связанных с компьютером пользователя сетью или каналом и обеспечивающих передачу данных. Для изменения правил поддержки объектов пользователь использует устройства ввода информации, такие как клавиатура и/или манипулятор-«мышь», с помощью которых в память компьютера заносится информация о том, какое правило из числа возможных в рамках данной программной платформы устанавливается для конкретного объекта приложения. При этом пользователю нет необходимости устанавливать правила поддержки для каждого из десятков или сотен объектов, которые могут входить в состав приложения. Обычно по умолчанию для каждого из объектов в приложении уже установлено некое правило (предопределенное), и только для тех объектов, которые пользователь модифицирует в соответствии с собственными нуждами или удаляет, ему при необходимости требуется устанавливать правила поддержки, отличные от предопределенных.The rules for supporting application elements set by the user, as well as the change rules for specific objects established by the developer, are stored as service information in the computer’s memory, for example, they are recorded in the service fields of the application file (s). But it is obvious that such rules can also be stored in an external database, including on remote computers connected to a user's computer via a network or channel and providing data transfer. To change the rules for supporting objects, the user uses information input devices, such as a keyboard and / or “mouse” manipulator, with the help of which information is stored in the computer’s memory about which rule among the possible within the given software platform is set for a particular application object. In this case, the user does not need to establish support rules for each of the tens or hundreds of objects that may be part of the application. Usually, by default, a rule (predefined) is already set for each of the objects in the application, and only for those objects that the user modifies in accordance with their own needs or deletes, if necessary, they need to set support rules that are different from the predefined ones.
Следующий этап синхронизации - объединение версий - производится с учетом правил поддержки объектов, установленных пользователем. Но пользователь устанавливает такие правила с учетом правил изменения объектов, установленных разработчиком, обеспечивающим поддержку. Например, для объекта, для которого разработчиком установлено правило «Изменения запрещены», автоматически устанавливается единственное доступное (из трех возможных) пользовательское правило «Не редактируется». Это логично, потому что при попытке редактирования или снятия такого объекта с поддержки пользователю придется целиком снимать приложение с поддержки.The next stage of synchronization - version merging - is carried out taking into account the rules for supporting objects set by the user. But the user sets such rules taking into account the rules for changing objects set by the developer providing support. For example, for an object for which the developer has set the rule “Changes are forbidden”, the only available (out of three possible) user rule “Not Editable” is automatically set. This is logical, because when you try to edit or remove such an object from support, the user will have to completely remove the application from support.
В процессе объединения модифицированной, но находящейся на поддержке версии пользователя, и обновленной версии приложения, поставленной разработчиком, используются следующие типовые правила обновления соответствующих элементов приложения.In the process of combining the modified but supported version of the user and the updated version of the application supplied by the developer, the following standard rules for updating the corresponding elements of the application are used.
Таким образом, на основании информации об истории изменений объектов в подвергнутых сравнению приложениях, а также на основании установленных пользователем для своей модифицированной версии приложения правил поддержки можно произвести синхронизацию объектов пользовательской версии в автоматическом режиме.Thus, based on the information about the history of changes in objects in the compared applications, as well as on the basis of the support rules set by the user for his modified version of the application, it is possible to synchronize the objects of the user version in automatic mode.
Данная процедура выполняется путем считывании данных о состоянии (истории изменений), по крайней мере, двух соответствующих объектов двух версий приложения (модифицированной версии пользователя и обновленной версии разработчика), а также информации о правиле поддержки, установленном для анализируемого объекта пользователем. Далее с использованием специального алгоритма, реализованного в виде команд программного инструментального средства, входящего в данном случае в состав программной платформы, определяется должен ли объект остаться неизменным в пользовательской версии приложения или он должен быть заменен объектом из пакета обновления, поставленного разработчиком. Вариант реализации алгоритма обновления версии, не снятой с поддержки разработчика, схематически представлен на фигуре.This procedure is performed by reading the status data (change history) of at least two corresponding objects of two versions of the application (modified version of the user and updated version of the developer), as well as information about the support rule established for the analyzed object by the user. Then, using a special algorithm implemented in the form of instructions of a software tool, which in this case is part of the software platform, it is determined whether the object should remain unchanged in the user version of the application or should it be replaced by the object from the update package supplied by the developer. An embodiment of an algorithm for updating a version not withdrawn from developer support is shown schematically in the figure.
Аналогичная процедура повторяется для каждой пары соответствующих объектов приложения. Для каждой пары формируется управляющий сигнал, на основании которого и происходит в случае необходимости замещение конкретного объекта новым, поставленным разработчиком в составе обновления.A similar procedure is repeated for each pair of corresponding application objects. For each pair, a control signal is generated, on the basis of which, if necessary, a specific object is replaced by a new one supplied by the developer as part of the update.
Результатом операции объединения версий является запись в память компьютера пользователя новой выборочно обновленной версии приложения. Данной версии условно присваивается номер, соответствующий номеру последнего поставленного разработчиком обновления. В рассмотренном выше примере записанная на компьютере пользователя версия приложения после обновления будет иметь номер «1.01».The result of the operation of combining versions is to write to the memory of the user's computer a new, selectively updated version of the application. This version is conditionally assigned a number corresponding to the number of the latest update provided by the developer. In the above example, the application version recorded on the user's computer after the update will have the number “1.01”.
Таким образом, способ обновления модифицированного пользователем приложения, находящегося при этом на [частичной] поддержке разработчика, состоит из следующих основных этапов:Thus, the method of updating a user-modified application, which is at the same time [partly] supported by the developer, consists of the following main steps:
1) получение пакетов обновления и запись их в ОЗУ или ПЗУ компьютерного устройства пользователя;1) receiving update packages and writing them to RAM or ROM of a user's computer device;
2) загрузка в память компьютерного устройства пользователя 3-х версий приложения (модифицированной пользователем версии, обновленной разработчиком версии и предыдущей версии разработчика);2) loading into the memory of the user's computer device 3 versions of the application (user-modified version, updated version of the developer and the previous version of the developer);
3) выполнение операции сравнения 3-х загруженных в системную память версий приложения и формирование в памяти компьютерного устройства пользователя информационной структуры, отражающей установленное соответствие элементов версий приложения и факт их изменения;3) performing the operation of comparing 3 versions of the application loaded into the system memory and forming an information structure in the memory of the user's computer device that reflects the established correspondence between the elements of the application versions and the fact of their change;
4) считывание в память установленных пользователем правил поддержки для каждого элемента приложения при том, что такие правила поддержки предварительно установлены пользователем с учетом ограничений, заданных разработчиком (установленные разработчиком правила изменений элементов);4) reading into the memory the user-established support rules for each element of the application, while such support rules are pre-set by the user, taking into account the restrictions set by the developer (the rules for changing elements established by the developer);
5) определение на основании информационной структуры, сформированной в результате сравнения 3-х версий приложения, и правил поддержки, установленных пользователем, какие из элементов версии, модифицированной пользователем, подлежат замещению (обновлению) за счет элементов из обновленной разработчиком версии;5) determining, on the basis of the information structure formed as a result of comparing 3 versions of the application, and the support rules established by the user, which of the elements of the version modified by the user are subject to replacement (updating) due to elements from the version updated by the developer;
6) запись в память компьютера пользователя новой выборочно обновленной версии приложения, пригодной для непосредственной эксплуатации.6) writing to the memory of the user's computer a new selectively updated version of the application suitable for direct operation.
Настоящее изобретение промышленно применимо, так как может быть реализовано с использованием компьютерных средств.The present invention is industrially applicable, as it can be implemented using computer tools.
Claims (6)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2006108575/09A RU2295752C1 (en) | 2006-03-20 | 2006-03-20 | Method for controlling synchronization of software updates |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| RU2006108575/09A RU2295752C1 (en) | 2006-03-20 | 2006-03-20 | Method for controlling synchronization of software updates |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2295752C1 true RU2295752C1 (en) | 2007-03-20 |
Family
ID=37994149
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| RU2006108575/09A RU2295752C1 (en) | 2006-03-20 | 2006-03-20 | Method for controlling synchronization of software updates |
Country Status (1)
| Country | Link |
|---|---|
| RU (1) | RU2295752C1 (en) |
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2445686C2 (en) * | 2010-01-21 | 2012-03-20 | Игорь Вячеславович Стручков | Method of software installation, set-up, administration and back-up |
| RU2490695C2 (en) * | 2008-07-28 | 2013-08-20 | Майкрософт Корпорейшн | Dividing operating modes for application changes |
| RU2536379C2 (en) * | 2008-11-26 | 2014-12-20 | Калгари Сайентифик Инк. | Method and system for providing remote access to state of application programme |
| US8949378B2 (en) | 2011-03-21 | 2015-02-03 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
| RU2546326C2 (en) * | 2009-05-01 | 2015-04-10 | Майкрософт Корпорейшн | Shared job scheduling in electronic notebook |
| RU2573783C1 (en) * | 2014-08-01 | 2016-01-27 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of modifying application functionality |
| US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
| US9686205B2 (en) | 2013-11-29 | 2017-06-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
| US9720747B2 (en) | 2011-08-15 | 2017-08-01 | Calgary Scientific Inc. | Method for flow control and reliable communication in a collaborative environment |
| US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
| US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
| US9986012B2 (en) | 2011-08-15 | 2018-05-29 | Calgary Scientific Inc. | Remote access to an application program |
| US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
| US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
| RU2671624C1 (en) * | 2017-05-17 | 2018-11-02 | Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук | Method of managing upgrades of software in cascade structure systems |
| US10284688B2 (en) | 2011-09-30 | 2019-05-07 | Calgary Scientific Inc. | Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL) |
| US10454979B2 (en) | 2011-11-23 | 2019-10-22 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
| RU2726318C1 (en) * | 2020-01-14 | 2020-07-13 | Юрий Иванович Стародубцев | Method for backing up complex object state |
| US11310348B2 (en) | 2015-01-30 | 2022-04-19 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
| RU2771970C1 (en) * | 2018-11-28 | 2022-05-16 | Хэфэй Хуалин Ко., Лтд. | Refrigerator production line, a method for updating refrigerator software in a production line and a data carrier |
| US11816467B2 (en) | 2018-11-28 | 2023-11-14 | Hefei Hualing Co., Ltd. | Refrigerator production line, method for upgrading refrigerator software on production line and medium |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2155372C2 (en) * | 1995-01-30 | 2000-08-27 | ТЕЛЕФОНАКТИЕБОЛАГЕТ ЛМ ЭРИКССОН (пабл.) | Method for flexible loading of software applications and device which implements said method |
| RU2250490C2 (en) * | 2000-06-21 | 2005-04-20 | Майкрософт Корпорейшн | Network-based presentation of software extensions |
| WO2005060387A2 (en) * | 2003-12-15 | 2005-07-07 | Microsoft Corporation | System and method for a software distribution service |
| RU2004110744A (en) * | 2004-04-08 | 2005-09-20 | Белле Гейт Инвестмент Б.В. (Nl) | STORAGE DEVICE FOR DIFFERENT VERSIONS OF THE DATA SET IN SEPARATE MEMORY AREAS AND METHOD FOR UPDATING THE DATA SET IN MEMORY |
| RU2260839C2 (en) * | 2003-09-22 | 2005-09-20 | ЗАО "Лизатек Каталист Патент" | Method for installing and configuring software |
| RU2005118556A (en) * | 2003-12-15 | 2006-01-20 | Майкрософт Корпорейшн (Us) | SYSTEM AND METHOD OF MANAGEMENT AND TRANSFER OF UPDATES OF SOFTWARE |
-
2006
- 2006-03-20 RU RU2006108575/09A patent/RU2295752C1/en active IP Right Revival
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2155372C2 (en) * | 1995-01-30 | 2000-08-27 | ТЕЛЕФОНАКТИЕБОЛАГЕТ ЛМ ЭРИКССОН (пабл.) | Method for flexible loading of software applications and device which implements said method |
| RU2250490C2 (en) * | 2000-06-21 | 2005-04-20 | Майкрософт Корпорейшн | Network-based presentation of software extensions |
| RU2260839C2 (en) * | 2003-09-22 | 2005-09-20 | ЗАО "Лизатек Каталист Патент" | Method for installing and configuring software |
| WO2005060387A2 (en) * | 2003-12-15 | 2005-07-07 | Microsoft Corporation | System and method for a software distribution service |
| RU2005118556A (en) * | 2003-12-15 | 2006-01-20 | Майкрософт Корпорейшн (Us) | SYSTEM AND METHOD OF MANAGEMENT AND TRANSFER OF UPDATES OF SOFTWARE |
| RU2004110744A (en) * | 2004-04-08 | 2005-09-20 | Белле Гейт Инвестмент Б.В. (Nl) | STORAGE DEVICE FOR DIFFERENT VERSIONS OF THE DATA SET IN SEPARATE MEMORY AREAS AND METHOD FOR UPDATING THE DATA SET IN MEMORY |
Cited By (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2490695C2 (en) * | 2008-07-28 | 2013-08-20 | Майкрософт Корпорейшн | Dividing operating modes for application changes |
| RU2536379C2 (en) * | 2008-11-26 | 2014-12-20 | Калгари Сайентифик Инк. | Method and system for providing remote access to state of application programme |
| US10334042B2 (en) | 2008-11-26 | 2019-06-25 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
| US10965745B2 (en) | 2008-11-26 | 2021-03-30 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
| US9871860B2 (en) | 2008-11-26 | 2018-01-16 | Calgary Scientific Inc. | Method and system for providing remote access to a state of an application program |
| US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
| RU2546326C2 (en) * | 2009-05-01 | 2015-04-10 | Майкрософт Корпорейшн | Shared job scheduling in electronic notebook |
| US9665413B2 (en) | 2009-05-01 | 2017-05-30 | Microsoft Technology Licensing, Llc | Shared job scheduling in electronic notebook |
| RU2445686C2 (en) * | 2010-01-21 | 2012-03-20 | Игорь Вячеславович Стручков | Method of software installation, set-up, administration and back-up |
| US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
| US10410306B1 (en) | 2011-01-04 | 2019-09-10 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
| US8949378B2 (en) | 2011-03-21 | 2015-02-03 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
| US10158701B2 (en) | 2011-03-21 | 2018-12-18 | Calgary Scientific Inc.. | Method and system for providing a state model of an application program |
| US9992253B2 (en) | 2011-08-15 | 2018-06-05 | Calgary Scientific Inc. | Non-invasive remote access to an application program |
| US9986012B2 (en) | 2011-08-15 | 2018-05-29 | Calgary Scientific Inc. | Remote access to an application program |
| US10693940B2 (en) | 2011-08-15 | 2020-06-23 | Calgary Scientific Inc. | Remote access to an application program |
| US10474514B2 (en) | 2011-08-15 | 2019-11-12 | Calgary Scientific Inc. | Method for flow control and for reliable communication in a collaborative environment |
| US9720747B2 (en) | 2011-08-15 | 2017-08-01 | Calgary Scientific Inc. | Method for flow control and reliable communication in a collaborative environment |
| US10904363B2 (en) | 2011-09-30 | 2021-01-26 | Calgary Scientific Inc. | Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL) |
| US10284688B2 (en) | 2011-09-30 | 2019-05-07 | Calgary Scientific Inc. | Tiered framework for proving remote access to an application accessible at a uniform resource locator (URL) |
| US10454979B2 (en) | 2011-11-23 | 2019-10-22 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
| US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
| US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
| US9686205B2 (en) | 2013-11-29 | 2017-06-20 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
| US10728168B2 (en) | 2013-11-29 | 2020-07-28 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
| US9979670B2 (en) | 2013-11-29 | 2018-05-22 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
| US10204036B2 (en) | 2014-08-01 | 2019-02-12 | AO Kaspersky Lab | System and method for altering application functionality |
| US10002070B2 (en) | 2014-08-01 | 2018-06-19 | AO Kaspersky Lab | System and method for altering functionality of an application |
| RU2573783C1 (en) * | 2014-08-01 | 2016-01-27 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of modifying application functionality |
| US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
| US11310348B2 (en) | 2015-01-30 | 2022-04-19 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
| RU2671624C1 (en) * | 2017-05-17 | 2018-11-02 | Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук | Method of managing upgrades of software in cascade structure systems |
| RU2771970C1 (en) * | 2018-11-28 | 2022-05-16 | Хэфэй Хуалин Ко., Лтд. | Refrigerator production line, a method for updating refrigerator software in a production line and a data carrier |
| US11816467B2 (en) | 2018-11-28 | 2023-11-14 | Hefei Hualing Co., Ltd. | Refrigerator production line, method for upgrading refrigerator software on production line and medium |
| RU2726318C1 (en) * | 2020-01-14 | 2020-07-13 | Юрий Иванович Стародубцев | Method for backing up complex object state |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| RU2295752C1 (en) | Method for controlling synchronization of software updates | |
| US10296305B2 (en) | Method and device for the automated production and provision of at least one software application | |
| US6526441B2 (en) | Input/output device information management system for multi-computer system | |
| US5909689A (en) | Automatic update of file versions for files shared by several computers which record in respective file directories temporal information for indicating when the files have been created | |
| US7194475B2 (en) | Method, system, and program for performing an impact analysis of program statements in at least one source code file | |
| US7836106B2 (en) | Method, apparatus and computer program product for change management in a data processing environment | |
| US10380085B2 (en) | Method, apparatus and computer program for migrating records in a database from a source database schema to a target database schema | |
| US20100005074A1 (en) | System and method for accessing data | |
| US20210224239A1 (en) | Recipe management system | |
| EP1965318A2 (en) | Method of assisting users in detection and correction of errors in complex database | |
| US20140304694A1 (en) | Software Automated Data and Data Model Upgrade System | |
| JPH0589045A (en) | Data processing system and method of creation | |
| US4833597A (en) | Dictionary/directory management method in database system | |
| EP1913451B1 (en) | Server-side project manager | |
| US7555752B2 (en) | Configurable levels of source control for the configuration of a process automation system | |
| US20100011018A1 (en) | Custom database system and method of building the same | |
| EP3712733A1 (en) | Method and system of preparing engineering data for industrial control systems | |
| CN120631331A (en) | A configurable processing method, system, device and medium for multi-form process event linkage | |
| Lausen et al. | The INCOME Approach for Conceptual Modelling and Prototyping of Information Systems. | |
| WO2025114678A1 (en) | System and method for sandboxing | |
| CN109634606A (en) | A kind of method and device of defined function menu | |
| US20080022258A1 (en) | Custom database system and method of building and operating the same | |
| JPH11102293A (en) | Automatic program generation method | |
| US8631393B2 (en) | Custom database system and method of building and operating the same | |
| KR102400068B1 (en) | System for base information management using digital information |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| TK4A | Correction to the publication in the bulletin (patent) |
Free format text: AMENDMENT TO CHAPTER -FG4A- IN JOURNAL: 8-2007 FOR TAG: (73) |
|
| PC41 | Official registration of the transfer of exclusive right |
Effective date: 20110125 |
|
| MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190321 |
|
| NF4A | Reinstatement of patent |
Effective date: 20200702 |