RU101229U1 - UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS - Google Patents

UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS Download PDF

Info

Publication number
RU101229U1
RU101229U1 RU2010107429/08U RU2010107429U RU101229U1 RU 101229 U1 RU101229 U1 RU 101229U1 RU 2010107429/08 U RU2010107429/08 U RU 2010107429/08U RU 2010107429 U RU2010107429 U RU 2010107429U RU 101229 U1 RU101229 U1 RU 101229U1
Authority
RU
Russia
Prior art keywords
update
files
file
differences
versions
Prior art date
Application number
RU2010107429/08U
Other languages
Russian (ru)
Original Assignee
Закрытое акционерное общество "Лаборатория Касперского"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Закрытое акционерное общество "Лаборатория Касперского" filed Critical Закрытое акционерное общество "Лаборатория Касперского"
Priority to RU2010107429/08U priority Critical patent/RU101229U1/en
Application granted granted Critical
Publication of RU101229U1 publication Critical patent/RU101229U1/en

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

1. Система обеспечения обновления баз данных и коллекций файлов от любого предыдущего состояния до новейшего, которая содержит средство построения различий, предназначенное для создания множества различий между последней версией файла и множеством предыдущих версий файла, которые хранятся на средстве предоставления информации о последних версиях файлов, и где различия предназначены для преобразования любой из множества предыдущих версий только к последней версии; упомянутое средство предоставления информации о последних версиях файлов, предназначенное для предоставления посреднику обновления информации о последних версиях файлов, множестве предыдущих версий файлов, о различиях между файлами, предоставленной упомянутым средством построения различий; упомянутый посредник обновления, предназначенный для получения информации о различиях от средства предоставления информации о последних версиях файлов, построения различий непосредственно для компьютера пользователя и передачи информации о построенном различии средству обновления; средство контроля обновлений, предназначенное для управления инициализацией работы средства обновления на компьютере пользователя, а также управлением очереди обновлений для программ компьютерной системы пользователя, связанное со средством обновления; упомянутое средство обновления, предназначенное для преобразования файлов и модулей приложения на компьютерной системе пользователя в последнюю версию файлов и модулей приложения, инициализируемое средством контроля обновлений и получающее информацию о построенном различии от посредника обновления. ! 2. Сист� 1. A system for updating databases and file collections from any previous state to the latest, which comprises a distinction tool for creating a plurality of differences between the latest version of a file and a plurality of previous versions of a file that are stored in a means for providing information about the latest versions of files, and where the differences are intended to convert any of the many previous versions only to the latest version; said means for providing information on the latest versions of files, intended to provide an intermediary with updates on information on recent versions of files, a plurality of previous versions of files, differences between files provided by said means for constructing differences; the said update proxy, intended to receive information about the differences from the means of providing information on the latest versions of files, build differences directly for the user's computer and transmit information about the differences to the update tool; update control means for controlling the initialization of the update tool on the user's computer, as well as managing the update queue for programs of the user's computer system, associated with the update tool; said updating tool for converting application files and modules on a user's computer system to the latest version of application files and modules, initialized by the update control tool and receiving information about the constructed difference from the update proxy. ! 2. System

Description

Область техникиTechnical field

Полезная модель относится к системам обновления баз данных и коллекций файлов, в том числе и тех, которые используются в антивирусной индустрии, основанных на различиях.The utility model relates to systems for updating databases and file collections, including those used in the antivirus industry, based on differences.

Уровень техникиState of the art

В настоящее время распространение получает частое обновление программного обеспечения (компьютерных программ и баз данных) их правообладателями. Для некоторых программ, таких как антивирусные программы, задача частого обновления является одной из приоритетных. Приложения по защите от вредоносных программ, такие как антивирусные программы, предназначены для обнаружения различных типов вредоносных программ и их удаления. Большинство антивирусных программ работает на основании данных об известных вредоносных программах и из-за того, что вредоносное программное обеспечение постоянно развивается и изменяется, возникает потребность в непрерывном обновлении антивирусных баз данных, в которых содержится информация об исследуемых файлах. Частое обновление также необходимо для правообладателей некоторых баз данных, которые должны содержать базу данных всегда в актуальном состоянии и удалять устаревшую информацию из базы. Также часто встречается периодическое обновление программного обеспечения для расширения его возможностей и устранения ошибок программирования.Currently, frequent software updates (computer programs and databases) are being distributed by their respective owners. For some programs, such as anti-virus programs, the task of frequent updates is one of the priorities. Anti-malware applications, such as anti-virus programs, are designed to detect and remove various types of malware. Most anti-virus programs work on the basis of data on known malicious programs and due to the fact that malicious software is constantly evolving and changing, there is a need for continuous updating of anti-virus databases that contain information about the files being examined. Frequent updating is also necessary for copyright holders of some databases, which must always contain the database and remove obsolete information from the database. It is also common to periodically update software to expand its capabilities and eliminate programming errors.

В текущем уровне техники известны несколько методов обновления программного обеспечения. Одним из самых простых вариантов реализации обновлений считается полная замена старого приложения новым. Однако, это «полноценное» обновление очень дорогое и неудобное в реализации. Когда подобные полные обновления распространяются через Интернет, то часто возникают проблемы высокой загрузки серверов, а также медленной скорости загрузки обновлений.Several methods for updating software are known in the art. One of the simplest options for implementing updates is the complete replacement of the old application with a new one. However, this “full” update is very expensive and inconvenient to implement. When such complete updates are distributed over the Internet, problems with high server load, as well as the slow download speed of updates, often arise.

Другой вариант реализации обновлений называется «инкрементальными обновлениями». Это обновления не требуют замены всего обновляемого приложения, а заменяют только ту информацию, которую необходимо обновить, и после обновления присваивают приложению новую версию, отличную от предыдущей. Обычно требуется изменение небольшой части приложения, поэтому изменяют только необходимые файлы, их части. Система инкрементальных обновлений пересылает небольшие объемы информации для обновления, поэтому эти обновления могут распространяться через Интернет. Одним из недостатков представленной системы является вопрос использования ресурсов как на стороне клиентского, так и на стороне серверного компьютера. В настоящее время базы данных и коллекции файлов, содержащие информацию о вредоносных программах, обновляются достаточно часто. В случае обнаружения антивирусного приложения, например, на клиентской стороне, там же сохраняется и множество файлов, содержащие маски известных вредоносных программ и другую информацию. Во время инкрементального обновления представленного множества файлов с сервера обычно загружается обновление в виде «небольшого различия», и сервер также передает инструкции о том, какой файл изменять. Другими словами, вместо того, чтоб обновить файл целиком, обновляется только его небольшая часть, и сервер передает инструкции о том, какую часть в каком файле нужно заменить. Представленное «различие» может быть следующего вида:Another implementation option for updates is called “incremental updates”. These updates do not require replacement of the entire updated application, but replace only the information that needs to be updated, and after the update, they assign the application a new version different from the previous one. Usually a small part of an application needs to be changed, so only the necessary files, their parts, are changed. An incremental update system sends small amounts of information for updating, so these updates can be distributed over the Internet. One of the drawbacks of the presented system is the issue of using resources both on the client side and on the server computer side. Currently, databases and file collections containing information about malicious programs are updated quite often. If an anti-virus application is detected, for example, on the client side, many files containing masks of known malicious programs and other information are also saved there. During an incremental update of a plurality of files presented, an update is typically downloaded from the server as a “slight difference", and the server also provides instructions on which file to modify. In other words, instead of updating the entire file, only a small part of it is updated, and the server sends instructions about which part in which file needs to be replaced. The presented "difference" may be of the following form:

Заменить строку 102 на [<Данные>];Replace line 102 with [<Data>];

Добавить к строке 103 [<Данные>];Add to line 103 [<Data>];

Удалить строку 121.Delete line 121.

Основной проблемой представленного метода является то, что существует достаточно много компьютеров, у которых нет доступа к сети Интернет, или они подключены к сети непродолжительное время, а, следовательно, для них будет недоступен сервер. Таким образом, версия файлов на компьютере пользователя может отличаться от последней версии этих же файлов, находящейся на сервере, и даже не на одну итерацию версии, а на несколько (или достаточно много версий).The main problem of the presented method is that there are a lot of computers that do not have access to the Internet, or they are connected to the network for a short time, and, therefore, the server will be unavailable for them. Thus, the version of files on the user's computer may differ from the latest version of the same files located on the server, and not even by one iteration of the version, but by several (or quite a lot of versions).

На данный момент появляется тенденция увеличивать частоту обновлений через Интернет до 15 минут, а иногда даже и до 5 минут (особенно часто она проявляется в области борьбы с различными вирусами, троянами, спам-сообщениями, червями, рекламным и шпионским программным обеспечением). Для обеспечения такого обмена обновлениями между клиентским и серверным компьютерами требуется структуризация системы сообщений между ними.At the moment, there is a tendency to increase the frequency of updates via the Internet up to 15 minutes, and sometimes even up to 5 minutes (it is especially often manifested in the field of combating various viruses, trojans, spam messages, worms, adware and spyware). To ensure such an exchange of updates between client and server computers, a structured messaging system between them is required.

Также существуют системы (например, операционная система Microsoft Windows), где пользователь сам может запланировать время загрузки обновлений и задать частоту обновления по усмотрению. Однако, пользователь не может выстроить список обновлений, поэтому при загрузке большого количества различных обновлений возникают проблемы в работе системы.There are also systems (for example, the Microsoft Windows operating system), where the user himself can schedule the time for downloading updates and set the frequency of updates at his discretion. However, the user cannot build a list of updates, so when downloading a large number of different updates there are problems in the system.

На стороне сервера, даже если объем данных, которые должны быть отправлены на клиентский компьютер, был максимально сжат и упрощен, появляется проблема, когда миллионы или даже десятки миллионов пользователей постоянно запрашивают обновления с одного и того же сервера. Очевидно, что чем больше частота обновлений, тем больше нагрузка на сервер, даже если ответ на запрос об обновлении будет пустым.On the server side, even if the amount of data that should be sent to the client computer was as compressed and simplified as possible, a problem arises when millions or even tens of millions of users constantly request updates from the same server. Obviously, the higher the update rate, the greater the load on the server, even if the response to the update request is empty.

На стороне пользователя желательно, чтобы осуществлялась некоторая подготовительная предобработка запроса. Например, клиентский компьютер должен собирать информацию о том, какая версия файла находится на клиентском компьютере, какую версию необходимо загрузить и нужно ли обновлять файлы или нет. Другими словами, необходимо максимально уменьшить нагрузку на сервер и выполнять основную работу перед составлением запроса на стороне клиента.On the user side, it is desirable that some preparatory pre-processing of the request is carried out. For example, the client computer must collect information about which version of the file is on the client computer, which version needs to be downloaded, and whether the files need to be updated or not. In other words, it is necessary to minimize the load on the server and perform the main work before compiling the request on the client side.

Одна из систем обновления описана, например, в патенте US 6,651,249, где клиенту нужно загрузить один или более каталогов и затем запустить их на клиентской стороне. Это увеличивает нагрузку на сервер и увеличивает количество обработок, необходимых клиентской стороне.One of the update systems is described, for example, in US Pat. No. 6,651,249, where a client needs to download one or more directories and then run them on the client side. This increases the load on the server and increases the number of processing required by the client side.

Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании их в одной системе, позволяют получить новый результат, а именно увеличить эффективность распознавания вредоносных программ, а также обнаруживать их до того, как неизвестная вредоносная программа окажется на компьютере.An analysis of the prior art and the possibilities that appear when combining them in one system allows you to get a new result, namely to increase the efficiency of malware detection, and also to detect them before an unknown malware appears on the computer.

Раскрытие полезной моделиUtility Model Disclosure

Настоящая полезная модель предназначена для обновления баз данных и коллекций файлов, в том числе и тех, которые используются в антивирусной индустрии.This useful model is intended for updating databases and file collections, including those used in the antivirus industry.

Технический результат заключается в обеспечении обновления баз данных и коллекций файлов от любого предыдущего состояния до новейшего. Этот результат достигается за счет создания системы, анализирующей файлы на компьютерных системах с файлами на сервере и создающей различия между имеющимися версиями.The technical result consists in providing updates to databases and file collections from any previous state to the latest. This result is achieved by creating a system that analyzes files on computer systems with files on the server and creates differences between existing versions.

Согласно одному объекту заявленной полезной модели обеспечения обновления баз данных и коллекций файлов от любого предыдущего состояния до новейшего, которая состоит из следующих средств:According to one object of the claimed utility model for updating databases and file collections from any previous state to the latest, which consists of the following tools:

средство построения различий предназначено для создания множества различий между последней версией файла и множеством предыдущих версий файла, которые хранятся на средстве предоставления информации о последних версиях файлов, и где различия предназначены для преобразования любой из множества предыдущих версий только к последней версии;the difference builder is intended to create a plurality of differences between the latest version of a file and a plurality of previous versions of a file that are stored on a means for providing information about the latest versions of files, and where the differences are intended to convert any of a plurality of previous versions to only the latest version;

упомянутое средство предоставления информации о последних версиях файлов предназначено для предоставления посреднику обновления информации о последних версиях файлов, множестве предыдущих версий файлов, о различиях между файлами, предоставленную упомянутым средством построения различий;said means for providing information on the latest versions of files is intended to provide an intermediary with updates on information on recent versions of files, a plurality of previous versions of files, differences between files provided by said means for constructing differences;

упомянутый посредник обновления, предназначенный для получения информации о различиях от средства предоставления информации о последних версиях файлов, построения различий непосредственно для компьютера пользователя и передачи информации о построенном различии средству обновления;the said update proxy, intended to receive information about the differences from the means of providing information on the latest versions of files, build differences directly for the user's computer and transmit information about the differences to the update tool;

средство контроля обновлений, предназначенное для управления инициализацией работы средства обновления на компьютере пользователя, а также управлением очереди обновлений для программ компьютерной системы пользователя;update control tool for controlling the initialization of the update tool on the user's computer, as well as managing the update queue for programs of the user's computer system;

упомянутое средство обновления, предназначенное для преобразования файлов и модулей приложения на компьютерной системе пользователя в последнюю версию файлов и модулей приложения, инициализируемое средством контроля обновлений и получающее информацию о построенном различии от посредника обновления.said updating tool for converting application files and modules on a user's computer system to the latest version of application files and modules, initialized by the update control tool and receiving information about the constructed difference from the update proxy.

В частном варианте реализации средство контроля обновлений также предназначено для инициализации средства обновления, если обновление является критическим.In a particular embodiment, the update control tool is also intended to initialize the update tool if the update is critical.

В частном варианте реализации средство контроля обновлений также предназначено для составления очереди обновлений, если обновления не являются критическими.In a particular embodiment, the update control tool is also intended to queue updates if updates are not critical.

В частном варианте реализации средство контроля обновлений также предназначено для инициализации средства обновления и передаче ему очереди обновлений в определенный момент времени.In a particular embodiment, the update control tool is also intended to initialize the update tool and transmit to it the update queue at a certain point in time.

В частном варианте реализации средство контроля обновлений устанавливает момент времени при возникновении следующих ситуаций:In a particular embodiment, the update control tool sets the point in time when the following situations occur:

(а) количество обновлений в очереди превышает заранее предустановленное значение;(a) the number of updates in the queue exceeds a predefined value;

(б) наступает момент времени по расписанию.(b) there comes a point in time according to a schedule.

В частном варианте реализации средство обновления также предназначено для загрузки новой версии запрашиваемого файла целиком, если не найдена версия файла клиентского компьютера.In a particular embodiment, the updater is also designed to download a new version of the requested file in its entirety if the client computer's file version is not found.

В частном варианте реализации средство предоставления информации о последних версиях файлов также предназначено для удаления различий, если размер различий больше размера последней версии файла.In a particular embodiment, the tool for providing information on the latest versions of files is also intended to remove differences if the differences are larger than the size of the latest version of the file.

В частном варианте реализации средство предоставления информации о последних версиях файлов также предназначено для регулирования выпуска обновлений в зависимости от времени выпуска.In a particular embodiment, the tool for providing information on the latest versions of files is also intended to control the release of updates depending on the time of release.

В частном варианте реализации средство обновления также предназначено для загрузки от посредника обновления файла целиком, когда затраты от загрузки и принятия различий больше, чем затраты от загрузки нового файла целиком.In a particular embodiment, the updater is also designed to download the entire file update from the intermediary when the costs of downloading and accepting the differences are greater than the costs of downloading the whole new file.

В частном варианте реализации посредник обновления дополнительно содержит файл описания состояний версий файлов, который содержит предписания для средства обновления, затем при исполнении предписаний средством обновления формируется запрос обновления файлов по списку, полученному через файл описания состояний версий файлов.In a particular embodiment, the update broker additionally contains a file describing the status of file versions, which contains instructions for the update tool, then when the instructions are executed by the update tool, a request is made to update the files from the list received through the file describing the status of file versions.

В частном варианте реализации средство обновления также предназначено для формирования оптимального плана обновления версий файлов и, исходя из информации файла описания состояния версий файлов, которые находятся в системе, передаче запроса обновления у посредника обновления.In a particular embodiment, the updater is also intended to form an optimal plan for updating file versions and, based on information from a file describing the state of versions of files that are in the system, transmitting an update request from an update broker.

Краткое описание чертежейBrief Description of the Drawings

Дополнительные цели, признаки и преимущества настоящей полезной модели будут очевидными из прочтения последующего описания осуществления полезной модели со ссылкой на прилагаемые чертежи, на которых:Additional objectives, features and advantages of the present utility model will be apparent from reading the following description of the implementation of the utility model with reference to the accompanying drawings, in which:

Фиг.1 показывает вариант реализации блок-схемы системы программного обновления баз данных и коллекций файлов.Figure 1 shows an embodiment of a block diagram of a system for updating databases and file collections.

Фиг.2 показывает вариант схемы приложения с набором файлов для обновления.Figure 2 shows an example application diagram with a set of files for updating.

Фиг.3А-3К показывают различные состояния системы, которые могут возникнуть во время обновления множества различий, когда появляется новая версия.3A-3K show various system states that may occur during updating of a plurality of differences when a new version appears.

Фиг.4 показывает вариант реализации алгоритма обновления, основанного на различиях, средство предоставления информации о последних версиях файлов.Figure 4 shows a variant implementation of the update algorithm based on differences, a means of providing information about the latest versions of files.

Фиг.5 показывает вариант реализации алгоритма обновления на стороне клиента.5 shows an embodiment of an update algorithm on the client side.

Фиг.6 показывает другой вариант реализации алгоритма обновления на стороне клиента.6 shows another embodiment of a client-side update algorithm.

Фиг.7 показывает пример компьютерной системы, с помощью которой может применяться представленная полезная модель.7 shows an example of a computer system with which the presented utility model can be applied.

Описание вариантов осуществления полезной моделиDescription of Embodiments of a Utility Model

Далее будут описаны варианты реализации настоящей полезной модели со ссылкой на сопровождающие чертежи. Объекты и признаки настоящей полезной модели, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящая полезная модель не ограничивается примерными вариантами осуществления, раскрытыми ниже, она может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании полезной модели, и настоящая полезная модель определяется только в объеме приложенной формулыNext, embodiments of the present utility model will be described with reference to the accompanying drawings. The objects and features of the present utility model, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present utility model is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The essence described in the description is nothing more than the specific details provided to assist the specialist in the field of technology in a comprehensive understanding of the utility model, and the present utility model is determined only in the scope of the attached formula

Настоящая полезная модель описывает систему программного обновления баз данных и коллекций файлов, в том числе и тех, которые используются в антивирусных технологиях, основанную на различиях.This useful model describes a system for updating databases and file collections, including those used in antivirus technologies, based on differences.

Хэш-функция или хэш-алгоритм - это функция, которая вычисляет значение фиксированной длины, называемое хэш-суммой. Два разных файла будут иметь разные хэш-суммы. Процесс вычисления данного значения называется хешированием и используется в криптографии.A hash function or hash algorithm is a function that calculates a fixed-length value called a hash sum. Two different files will have different hash amounts. The process of calculating this value is called hashing and is used in cryptography.

Одним из способов ограничить количество информации, которой обмениваются клиентская и серверная стороны, является включение в имя файла информации о версии файла на стороне клиента. Например, одним из способов такой реализации является включение идентификатора в имя файла, который запрашивается пользователем. Таким идентификатором может быть, например, хэш-функция, контрольная сумма, цифровая подпись, временная отметка. Хэш-функция наиболее часто используется в подобных случаях.One way to limit the amount of information exchanged between the client and server sides is to include client-side version information about the file in the file name. For example, one way to implement this is to include an identifier in the name of the file that is requested by the user. Such an identifier may be, for example, a hash function, checksum, digital signature, timestamp. The hash function is most often used in such cases.

Для обновления на основе различий клиентская сторона должна составить последовательность различий между файлами на клиентской стороне и последней версией файлов и выяснить, какие файлы нужно загрузить и установить для обновляемых программ. Для осуществления данных действий программа на стороне клиента должна получать информацию: ее текущую версию (1), финальную версию (2), и о множество обновлений, доступных для данной программы (3). Информацию о текущей версии (1) программа изначально запоминает, финальная версия (2) может быть получена от посредника обновлений, такого как сервер, а создание множества обновлений (3) является самой ресурсоемкой задачей с точки зрения количества действий, которое необходимо сделать серверу, чтобы выдать ответ. Возникает потребность в уменьшении количества попыток загрузки или самих загрузок с сервера, потому что каждая такая попытка или загрузка требует от сервера серии вычислений, например, какие обновления необходимо послать клиенту. Настоящая полезная модель предназначена для осуществления системы обновлений файлов клиентского компьютера с ограниченной потребностью в ресурсах сервера. В общем случае система выглядит следующим образом:To update based on differences, the client side must make a sequence of differences between files on the client side and the latest version of the files and find out which files need to be downloaded and installed for the updated programs. To carry out these actions, the client-side program must receive information: its current version (1), the final version (2), and about the many updates available for this program (3). The program initially remembers information about the current version (1), the final version (2) can be obtained from the update broker, such as a server, and the creation of many updates (3) is the most resource-intensive task in terms of the number of actions that the server needs to do to give an answer. There is a need to reduce the number of download attempts or downloads from the server itself, because each such attempt or download requires a series of calculations from the server, for example, which updates should be sent to the client. This utility model is intended to implement a system for updating client computer files with a limited need for server resources. In general, the system is as follows:

Изначально генерируется идентификатор, который сообщает текущему файлу о начале процесса обновления. Идентификатор может быть хэш-суммой, контрольной суммой, электронно-цифровой подписью или другим значением, вычисленным методом, который гарантирует, что для каждой версии файла будет создаваться уникальный идентификатор. Хэш-сумма файла может быть использована как часть имени файла, которая хранится на сервере и которую загружают каждый раз при обновлении файла.Initially, an identifier is generated that informs the current file about the start of the update process. The identifier may be a hash, a checksum, an electronic digital signature, or another value calculated by a method that ensures that a unique identifier is created for each version of the file. The hash of the file can be used as part of the file name that is stored on the server and that is downloaded every time the file is updated.

Когда программа на клиентском компьютере запрашивает обновление, программное обеспечение на серверном компьютере сравнивает переданное от клиентского компьютера имя файла (или какой-либо другой идеи тификатор, где хранится хэш-сумма) с множеством имен файлов, хранящихся на сервере. На основании имеющихся данных об имени файла и идентификаторах, полученных от клиентского компьютера, сервер определяет различие, которое необходимо отправить (например, с помощью FTP, DFTP или HTTP сервера) на клиентский компьютер.When a program on the client computer requests an update, the software on the server computer compares the file name (or some other idea of the identifier where the hash sum is stored) transmitted from the client computer with the set of file names stored on the server. Based on the available data about the file name and identifiers received from the client computer, the server determines the difference that needs to be sent (for example, using FTP, DFTP or HTTP server) to the client computer.

При получении для файла, запрашивающего обновление, принимается различие, и файл получает новый обновленный статус. После обновления вычисляется новая хэш-сумма, которая затем отправляется на проверку серверу. Если имя файла совпадает с именем последней версии, хранящейся на сервере, то больше ее не нужно пересылать.Upon receipt, the difference is accepted for the file requesting the update, and the file receives the new updated status. After the update, a new hash is calculated, which is then sent to the server for verification. If the file name matches the name of the latest version stored on the server, then you no longer need to forward it.

Средство предоставления информации о последних версиях файлов содержит множество файлов, каждый из которых имеет историю изменений. Данные файлы обычно располагаются на FTP, DFTP, HTTP серверах и доступны для загрузки. Содержимое файла содержит данные об актуальности данной базы данных. Файл описания состояний может содержать информацию об именах файлов, а также их хэш-суммы. Для каждого файла помимо его последнего состояния сервер хранит и множество различий. Каждый файл коррекции содержит информацию, необходимую для преобразования содержимого файла версии CURRENT - X в текущую версию CURRENT или в версию CURRENT - Y, где Y<X. Имена файлов могут быть в этом случае сформированы следующим образом:The tool for providing information on the latest versions of files contains many files, each of which has a history of changes. These files are usually located on FTP, DFTP, HTTP servers and are available for download. The contents of the file contain data on the relevance of this database. A state description file may contain information about file names, as well as their hash sums. In addition to its last state, the server stores many differences for each file. Each correction file contains the information necessary for converting the contents of a file of version CURRENT - X to the current version of CURRENT or to version CURRENT - Y, where Y <X. File names can be formed in this case as follows:

<имя файла>. <хэш-сумма><file name>. <hash amount>

Количество различий в общем случае относится к понятию «степени» обновления. Другими словами можно сказать, что когда размер суммы различий превышает размер финального состояния файла, то проще загрузить именно финальное состояние. Однако, следует учитывать некоторые поправки к принятию различий, связанные с затратами на то или иное решение. Например, решение о преобразовании файла или загрузке файла целиком зависит от того, насколько много различий (преобразование производится при различиях <80%).The number of differences generally refers to the concept of “degree” of update. In other words, we can say that when the size of the sum of the differences exceeds the size of the final state of the file, it is easier to load the final state. However, some amendments to the adoption of differences should be taken into account related to the cost of a decision. For example, the decision to convert a file or upload a file entirely depends on how many differences (conversion is performed with differences <80%).

Следует также отметить, что бывают критические обновления, которые являются высокоприоритетными, необходимыми для безопасности и надежности компьютера. Эти обновления компьютера необходимы для устранения уязвимостей и нестабильности работы компьютерной системы (например, обновления антивирусных баз).It should also be noted that there are critical updates that are high priority, necessary for the security and reliability of the computer. These computer updates are necessary to eliminate vulnerabilities and instability of the computer system (for example, updating anti-virus databases).

Каждый раз при появлении новой версии, обновляется и множество различий, а также публикуется новое множество файлов и различий.Each time a new version appears, a lot of differences are updated, and a new set of files and differences are published.

Итак, для любых Файла 1 и Файла 2 можно создать некоторое различие Δ такое, что Файл 1+Δ=Файл 2. Для создания последовательности обновлений файлы, которые представляют не финальное состояние, могут быть сравнены друг с другом для вычисления различия между ними. Данные различия затем сохраняются в некоторой компактной форме. Если различий больше, чем размер самого файла, то принимается решение о том, чтобы сохранить сам файл, а не различия.So, for any File 1 and File 2, you can create some difference Δ such that File 1 + Δ = File 2. To create a sequence of updates, files that represent a non-final state can be compared with each other to calculate the difference between them. These differences are then stored in some compact form. If there are more differences than the size of the file itself, then a decision is made to save the file itself, not the differences.

Отметим, что для некоторых файлов различия создаются достаточно легко, а для других - нет. Например, текстовые файлы, ASCII файлы, MS Word файлы, и т.д. могут легко сравниваться со своими следующими версиями. Однако существуют зашифрованные файлы, упакованные файлы (например, ZIP, RAR и т.д.), для которых сложно просчитать разницу, даже если были незначительные изменения в оригинальных файлах (тех файлах, для которых было проведено шифрование или сжатие). И обычно результатом сравнения двух версий данного файла приведет к созданию большого числа различий.Note that for some files, differences are easy to create, while for others they are not. For example, text files, ASCII files, MS Word files, etc. can easily be compared with their next versions. However, there are encrypted files, packed files (for example, ZIP, RAR, etc.), for which it is difficult to calculate the difference, even if there were minor changes in the original files (those files for which encryption or compression was performed). And usually the result of comparing two versions of a given file will result in a large number of differences.

На Фиг.1 изображена блок-диаграмма, отображающая основную систему, представленную ранее. Как показано на Фиг.1, существует три основных элемента системы: компьютер пользователя 102 (или клиентский компьютер), средство предоставления информации о последних версиях файлов 106 и посредник обновления 104, которые может находиться как на разных компьютерах, так и на одном. Посредник обновления 104 обычно является сервером, таким как FTP или HTTP серверами, с которыми может сообщаться клиент 102, например, используя открытые сети (LAN, WAN и т.д.)Figure 1 shows a block diagram showing the main system presented earlier. As shown in FIG. 1, there are three main elements of the system: the user's computer 102 (or client computer), the means for providing information on the latest versions of files 106, and the update proxy 104, which can be located on different computers or on one. Update broker 104 is typically a server, such as FTP or HTTP servers, which client 102 can communicate with, for example, using open networks (LAN, WAN, etc.)

Далее в качестве правообладателя программного обеспечения будет описана компания, производящая антивирусные приложения. Следует также отметить, что технология, описанная в представленной полезной модели, не ограничивается только антивирусными технологиями, но может быть применена и в других отраслях программного обеспечения. Например, существуют случаи, когда компания занимается разработкой программного обеспечения и связана с распространением ценной информации, либо антиспам-технологиями, антивирусным программным обеспечением, базами данных, и т.д. Основным преимуществом данной технологии для антивирусных приложений является то, что антивирусное приложение обновляет свои базы достаточно часто (раз в несколько часов или несколько минут).Next, the company that produces antivirus applications will be described as the copyright holder of the software. It should also be noted that the technology described in the presented utility model is not limited only to antivirus technologies, but can also be applied in other software industries. For example, there are cases when a company is engaged in software development and is associated with the dissemination of valuable information, or anti-spam technologies, anti-virus software, databases, etc. The main advantage of this technology for anti-virus applications is that the anti-virus application updates its databases quite often (once every few hours or several minutes).

На примере антивирусного приложения представлен вариант реализации представленной полезной модели. На клиентском компьютере 102 установлено антивирусное программное обеспечение 120, например, антивирус, состоящий из исполняемого кода (средства хранения модулей приложения 108(x) и средства хранения файлов данных 110(x)). Вместе они составляют множество файлов 109(x), которое периодически необходимо обновлять. В описанном варианте реализации значение «x» обозначает версию файла, включая версию, которую сервер 104 не поддерживает. Значение n - текущая версия, значение (n+1) - следующая версия, которая появляется в случае, если что-то необходимо изменить, и, другими словами, будет являться последней доступной версией.On the example of an anti-virus application, an embodiment of the presented utility model is presented. Antivirus software 120 is installed on the client computer 102, for example, an antivirus program consisting of executable code (application module storage means 108 (x) and data file storage means 110 (x)). Together they comprise a plurality of 109 (x) files, which need to be updated periodically. In the described embodiment, the value “x” indicates a version of the file, including a version that server 104 does not support. The value n is the current version, the value (n + 1) is the next version, which appears if something needs to be changed, and, in other words, will be the last available version.

Также на стороне клиента находится средство обновления 122, которое основываясь на текущем состоянии файлов 109(x) и информации, полученной от посредника обновления 104, создает множество файлов 109(n+1), с исполняемым кодом модулей приложения 108(n+1) и файлами данных 110(n+1).Also on the client side there is an update tool 122, which, based on the current state of the files 109 (x) and information received from the update broker 104, creates a lot of files 109 (n + 1), with the executable code of the application modules 108 (n + 1) and data files 110 (n + 1).

Для антивирусного приложения и антиспам-технологий, наиболее подходящим является обновление файлов путем деления данных на несколько файлов, нежели чем передавать всю обновленную информацию в одном файле. Например, в одном из нескольких файлов может храниться информация о масках вредоносных объектов, во втором файле - информация о правилах взаимодействия с файлами, в третьем файле - информация об именах файлов. В представленном примере могут быть файлы, которые нуждаются в обновлении - файлы модулей приложения и файлы данных. Следует также отметить, что частота обновления данных в файлах варьируется. Для оптимизации процесса обновления предусматривается частота их выпуска по времени. Например, возможен вариант выпускать обновления днем чаще, чем ночью. Это позволит значительно снизить нагрузку на сервера. Например, обновление модулей приложения 108 (другими словами изменение исполняемого кода приложения) может осуществляться не часто, например, обновляться раз в несколько недель или даже месяцев. Файлы данных 110, такие как, правила нахождения вирусов, могут обновляться чаще. Файлы, такие как, маски и имена вирусов могут обновляться практически непрерывно. Таким образом, одним из преимуществ системы обновления приложения на основе различий является возможность обновления только необходимых файлов.For an anti-virus application and anti-spam technologies, updating files by dividing data into several files is most suitable than transferring all updated information in one file. For example, information on masks of malicious objects can be stored in one of several files, information on rules for interacting with files in the second file, and information on file names in the third file. In the presented example, there may be files that need updating - application module files and data files. It should also be noted that the frequency of updating data in files varies. To optimize the update process, the frequency of their release over time is provided. For example, it’s possible to release updates during the day more often than at night. This will significantly reduce the load on the server. For example, updating application modules 108 (in other words, changing the executable code of an application) may not occur often, for example, being updated every few weeks or even months. Data files 110, such as virus detection rules, may be updated more frequently. Files such as masks and virus names can be updated almost continuously. Thus, one of the advantages of the differences-based application update system is the ability to update only the necessary files.

Возвращаясь вновь к рассмотрению Фиг.1, рассмотрим средство предоставления информации о последних версиях файлов 106. Рассмотрим состояние множества файлов - 109(n), где n - состояние файлов в текущий момент времени. Представленное множество состоит из средства хранения модулей приложения 108(n) и средства хранения файлов данных 110(n). Возникновение новой версии (n+1) может быть связано с исправлением модуля приложений, обнаружением новых вирусов, изменением правил поиска некоторых вирусов, и т.д. На Фиг.1 обновление изображено значением (n+1), другими словами, это множество файлов 109(n+1), которое включает в себя модули приложений 108(n+1) и файлы данных 110(n+1). В одном из вариантов реализации средство предоставления информации о последних версиях файлов 106 может хранить информацию о последних версиях файлах в виде списка с указанием названия файла и его последней версии. Такой список может быть сохранен в виде файла описания, который может быть предоставлен посреднику обновления 104. Подобное действие может происходить периодически с заданными интервалами времени или же в тот момент, когда средство предоставления информации о последних версиях файлов 106 получает новую версию какого-либо файла. Механизм передачи информации о последних версиях файлов рассмотрен в таких патентах и заявках как JP2270029, JP7084775, JP4195567, W09825205, KR100288561.Returning again to Figure 1, we consider a means of providing information about the latest versions of files 106. Consider the state of a plurality of files — 109 (n), where n is the state of the files at the current time. The presented set consists of means for storing application modules 108 (n) and means for storing data files 110 (n). The emergence of a new version (n + 1) may be associated with fixing the application module, detecting new viruses, changing the rules for searching for some viruses, etc. 1, the update is depicted by the value (n + 1), in other words, this is a plurality of files 109 (n + 1), which includes application modules 108 (n + 1) and data files 110 (n + 1). In one embodiment, the means for providing information about the latest versions of files 106 may store information about the latest versions of files in the form of a list with the name of the file and its latest version. Such a list can be saved as a description file, which can be provided to the update proxy 104. A similar action can occur periodically at predetermined time intervals or at the moment when the tool for providing information on the latest versions of files 106 receives a new version of a file. The mechanism for transmitting information about the latest versions of files is discussed in such patents and applications as JP2270029, JP7084775, JP4195567, W09825205, KR100288561.

Средство построения различий 112 - это программный модуль, который определяет и выбирает соответствующие различия между предыдущими файлами (со значением n) с новыми файлами (со значением (n+1)). Средство построения различий 112 создает множество различий 118(n,n+1), при описании, как преобразовать файл со значением n в файл (n+1). Например, этими различиями могут быть различия для модулей приложения 114 (то есть в исполняемом коде) и различия для файлов с данными 116. В одном из вариантов реализации метод работы средства построения различий 112 может основываться на нахождении наибольшей общей подпоследовательности (http://ru.wikipedia.org/wiki/Наибольшая_общая_подпоследовательность).Difference Builder 112 is a software module that determines and selects the appropriate differences between previous files (with value n) and new files (with value (n + 1)). Difference Builder 112 creates many differences 118 (n, n + 1) when describing how to convert a file with a value of n to a file (n + 1). For example, these differences may be differences for application modules 114 (that is, in executable code) and differences for data files 116. In one embodiment, the method for constructing differences 112 may work based on finding the greatest common subsequence (http: // ru .wikipedia.org / wiki / Largest_common_sequence).

Представленные различия 114 и 116 затем передаются посреднику обновления 104, который обычно представляет собой FTP, DFTP или HTTP сервер. На сервере 104 публикуется множество различий, которые составляются последовательно (от версии к версии) между последней версией файлов (n+1) и более ранними версиями (1…n). После публикации новых различий, которые указывают на наличие новых версий файлов, в одном из вариантов реализации средству обновления 122 отправляется информация о том, какие файлы имеют более новую версию. В другом варианте реализации средство обновления 122 периодически обращается к посреднику обновления 104 за информацией о новых версиях файлов.The presented differences 114 and 116 are then passed to the proxy update 104, which is usually an FTP, DFTP or HTTP server. There are many differences published on server 104 that are compiled sequentially (from version to version) between the latest version of files (n + 1) and earlier versions (1 ... n). After the publication of new differences, which indicate the presence of new versions of files, in one embodiment, the updater 122 sends information about which files have a newer version. In another embodiment, the updater 122 periodically contacts the proxy update 104 for information about new versions of files.

На Фиг.2 изображен оптимизированный процесс обнаружения того, какие версии, для каких файлов необходимо загрузить. Как показано на Фиг.2, средство обновления 122 на компьютере клиента имеет доступ к информации о файлах, находящихся на нем, т.е. о модулях приложений 108 и файлах данных 110. Средство обновления 122 также может загружать с сервера 104 информацию 202 о том, какие файлы можно обновить. Средство обновления 122 компьютера пользователя может сравнить файл описания состояний с его версиями файлов, и легко определить, какие файлы нужно обновить. Средство контроля обновлений 124 предназначено для управления обновлениями, а именно, их инициализацией, управлением очереди обновлений для различных программ компьютерной системы пользователя. Например, средство контроля обновления 124 может инициализировать регулярные обновления программ в вечернее время, как только пользователь перестанет активно работать с системой. Однако средство контроля обновлений 124 также разрешает обновляться программам в случае, если необходимо загрузить критическое обновление.Figure 2 shows an optimized process for detecting which versions, for which files to download. As shown in FIG. 2, the updater 122 on the client computer has access to information about files located on it, i.e. about application modules 108 and data files 110. The updater 122 can also download information 202 from the server 104 about which files can be updated. The user computer updater 122 can compare the state description file with its file versions, and it is easy to determine which files need to be updated. The update control tool 124 is intended for managing updates, namely, initializing them, managing the update queue for various programs of a user's computer system. For example, update control tool 124 may initiate regular program updates in the evening as soon as the user no longer actively works with the system. However, update control tool 124 also allows programs to be updated if a critical update is to be downloaded.

Данная схема обновления также применима к приложениям, которые состоят из нескольких приложений. Например, антивирусный комплекс может состоять из межсетевого экрана, антивирусного модуля, антиспам модуля, и т.д. Каждый из этих компонентов содержит свое собственное множество модулей приложений и файлов данных, которые необходимо обновлять. Основное приложение также содержит эти файлы, которые также необходимо обновлять. Как показано на Фиг.2, программное обеспечение на клиентском компьютере может обмениваться небольшими порциями данных с сервером 104 для оптимизации процесса. Механизмы работы средства обновления 122 и средства контроля обновлений могут быть реализованы в виде систем, описанных в таких патентах как US6477703, US2002116665, US2004073900.This update scheme also applies to applications that consist of multiple applications. For example, an anti-virus complex may consist of a firewall, an anti-virus module, an anti-spam module, etc. Each of these components contains its own set of application modules and data files that need to be updated. The main application also contains these files, which also need to be updated. As shown in FIG. 2, software on a client computer can exchange small portions of data with server 104 to optimize the process. The mechanisms of the update tool 122 and the update control tool can be implemented in the form of systems described in such patents as US6477703, US2002116665, US2004073900.

На Фиг.3А-3К изображен процесс обновления различий. Когда появляется новое обновления, текущее состояние различия отмечено значением n, а уже следующее состояние - значением (n+1). Как показано на Фиг.3А, для состояния n различие Δ(n)(n) - нулевое. Другие различия Δ(k)(n),… Δ(3)(n), Δ(2)(n), Δ(1)(n) считаются от предыдущих состояний (…k… 3, 2, 1) для текущего состояния n в момент времени t1.3A-3K depict a process for updating differences. When a new update appears, the current state of the difference is marked with the value n, and the next state is marked with the value (n + 1). As shown in FIG. 3A, for state n, the difference Δ (n) (n) is zero. Other differences Δ (k) (n), ... Δ (3) (n), Δ (2) (n), Δ (1) (n) are considered from the previous states (... k ... 3, 2, 1) for the current state n at time t1.

На Фиг.3Б изображена ситуация, когда наступает состояние (n+1). В этот момент времени t2 существуют нулевые различия Δ(n)(n) и Δ(n+1)(n+1).FIG. 3B shows a situation where the state (n + 1) occurs. At this point in time t2, there are zero differences Δ (n) (n) and Δ (n + 1) (n + 1).

На Фиг.3В изображено среднее состояние между обновлениями, где различие, которое было Δ(n)(n) становится различием Δ(n)(n+1). Остальные различия не меняются, т.е. существует путь от любого предыдущего состояния до состояния (n+1), однако этот путь необязательно прямой.FIG. 3B shows the average state between updates, where the difference that was Δ (n) (n) becomes the difference Δ (n) (n + 1). The remaining differences do not change, i.e. there is a path from any previous state to state (n + 1), however this path is not necessarily direct.

На Фиг.3Г изображен следующий шаг процесса, где различия, указывающие на состояние n, перемещаются к различию, указывающему на состояние (n+1). В этом случае различие Δ(k)(n) перемещается к различию Δ(k)(n+1).On Figg shows the next step of the process, where the differences indicating the state n are moved to the difference indicating the state (n + 1). In this case, the difference Δ (k) (n) moves to the difference Δ (k) (n + 1).

На Фиг.3Д изображена часть процесса в момент времени t5, а именно различие, изменяющее состояние 3 в состояние n (различие, описанное как Δ(3)(n)), заменяется различием Δ(3)(n+1).3D shows a part of the process at time t5, namely, the difference changing state 3 to state n (the difference described as Δ (3) (n)) is replaced by the difference Δ (3) (n + 1).

На Фиг.3Е изображена часть процесса в момент времени t6, когда различие Δ(2)(n) заменяется различием Δ(2)(n+1). Процесс завершается в момент времени t7, как показано на Фиг.3Ж, где различие Δ(1)(n) заменяется различием Δ(1)(n+1).FIG. 3E shows a part of the process at time t6 when the difference Δ (2) (n) is replaced by the difference Δ (2) (n + 1). The process ends at time t7, as shown in FIG. 3G, where the difference Δ (1) (n) is replaced by the difference Δ (1) (n + 1).

На Фиг.3З-3К изображена ситуация, в которой новое обновление появилось до загрузки всех различий между текущим состоянием и обновленным. Например, на Фиг.3Д описывается момент времени t5, который на Фиг.3З представлен как t5a. На Фиг.3З в этот момент времени появляется новое состояние (n+2). В этом случае нулевое различие для этого состояния будет Δ(n+2)(n+2). Однако, в этом случае еще нет прямого пути к состоянию (n+2) от предыдущих состояний.On Fig.3Z-3K depicts a situation in which a new update appeared before downloading all the differences between the current state and the updated. For example, FIG. 3D describes a point in time t5, which in FIG. 3Z is represented as t5a. In FIG. 3Z, a new state (n + 2) appears at this point in time. In this case, the null difference for this state will be Δ (n + 2) (n + 2). However, in this case there is still no direct path to the state (n + 2) from previous states.

На Фиг.3И вместо того, чтобы продолжать процесс, изображенный на Фиг.3Е-ЗЖ, добавляется различие Δ(n+1)(n+2), для создания пути от состояния (n+1)к состоянию (n+2). Затем это различие заменяется на нулевое Δ(n+1)(n+1). Вместе с этим различием получается путь от любого предыдущего состояния к финальному состоянию (n+2). Как показано на Фиг.3Й различие Δ(n)(n+1) заменяется различием Δ(n)(n+2), которое указывает на переход от состояния n к состоянию (n+2).In FIG. 3I, instead of continuing with the process depicted in FIGS. 3E-3J, the difference Δ (n + 1) (n + 2) is added to create a path from state (n + 1) to state (n + 2) . Then this difference is replaced by zero Δ (n + 1) (n + 1). Together with this difference, a path is obtained from any previous state to the final state (n + 2). As shown in FIG. 3Y, the difference Δ (n) (n + 1) is replaced by the difference Δ (n) (n + 2), which indicates a transition from state n to state (n + 2).

На Фиг.3К различие Δ(к)(n+1) заменяется различием Δ(k)(n+2). Процесс продолжается далее в соответствии с описанной полезной моделью, пока все различия не укажут с предыдущего состояния к финальному состоянию (n+2).In FIG. 3K, the difference Δ (k) (n + 1) is replaced by the difference Δ (k) (n + 2). The process continues further in accordance with the described utility model until all the differences indicate from the previous state to the final state (n + 2).

Следует также отметить, что аналогичный подход применим и к появлению новых состояний ((n+3), (n+4), и т.д.) при незавершенном обновлении, и различия для данных состояний могут быть созданы аналогичным образом.It should also be noted that a similar approach is applicable to the emergence of new states ((n + 3), (n + 4), etc.) with incomplete updating, and differences for these states can be created in a similar way.

На Фиг.4 изображена блок-схема, описывающая ход работы представленной полезной модели на стороне средства предоставления информации о последних версиях файлов 106. Процесс начинается на шаге 402. На шаге 404 создается новое множество файлов F(i, n+1), которое представляет собой новые версии файлов предыдущего состояния n, и где i - индекс файла. На шаге 406 вводится значение k - номер версии, равный (n+1), а на шаге 408 вводится значение i - текущий индекс файла, равный n. На шаге 410 публикуется новый файл F(i, k), т.е. становится доступным на сервере 104.4 is a flowchart describing the operation of the presented utility model on the side of the means for providing information on the latest versions of files 106. The process begins at step 402. At step 404, a new set of files F (i, n + 1) is created, which represents are new versions of files of the previous state n, and where i is the file index. At step 406, the value k is entered - the version number equal to (n + 1), and at step 408 the value i is entered - the current file index equal to n. At step 410, a new file F (i, k) is published, i.e. becomes available on server 104.

На шаге 414 проверяется равенство k=n+1. Если равенство верное, то на шаге 416 создается нулевое различие. Если k не равно n, то на шаге 417 создается различие для текущего файла (где i - индекс файла) между последней (n+1) и текущей версией (k). После прохождения шагов 417 или 416, на шаге 418 проверяется, является ли различие больше, чем размер файла, для которого оно было создано. Если нет, то на шаге 422 различие публикуется на сервере 104 (в противном случае на шаге 420 различие удаляется). После прохождения шага 422 на шаге 423 проверяется, доступно ли новое множество. Если доступно, тогда ход процесса передается на шаг 404. Иначе процесс переходит на шаг 424. Если не доступно новое множество на шаге 423, то на шаге 424 проверяется равенство между i и 1, т.е. проверяется, остались ли файлы, для которых еще нужно создать различия. Если файлы не остались, то на шаге 432 i уменьшается на 1, и затем выполняется шаг 412. Иначе на шаге 426 проверяется для этого файла существование версии (k-1). Если она существует, то k уменьшается на 1 на шаге 434 и выполняется шаг 410. Иначе обновленный файл публикуется на шаге 428. Процесс заканчивается на шаге 430.At step 414, the equality k = n + 1 is checked. If the equality is true, then at step 416 a null difference is created. If k is not equal to n, then at step 417, a difference is created for the current file (where i is the file index) between the last (n + 1) and the current version (k). After passing steps 417 or 416, at step 418 it is checked whether the difference is larger than the size of the file for which it was created. If not, then at 422 the difference is published to the server 104 (otherwise, at 420, the difference is removed). After passing step 422, at step 423 it is checked whether a new set is available. If available, then the process goes to step 404. Otherwise, the process proceeds to step 424. If a new set is not available in step 423, then in step 424 the equality between i and 1 is checked, i.e. checks if there are any files for which you still need to create differences. If there are no files left, then at step 432 i decreases by 1, and then step 412 is performed. Otherwise, at step 426, the existence of the version (k-1) is checked for this file. If it exists, then k decreases by 1 at step 434 and step 410 is performed. Otherwise, the updated file is published at step 428. The process ends at step 430.

На Фиг.5 изображен случай применения алгоритма на стороне клиента в соответствии с вариантом реализации. Процесс начинается на шаге 502. Затем определяется значение k - версия текущей базы данных файлов на стороне клиента на шаге 504. На шаге 505 запрашивается различие для определенного файла. Если на шаге 510 различие для того файла доступно для загрузки, то различие Δ(k) для файла F(k) загружается на шаге 514. На шаге 515 проверяется, пустой ли файл различия, а именно, есть ли различия между текущей версией и последней доступной на сервере. И если оказывается пустой, т.е. текущая версия является последней, то процесс завершается на шаге 518. Если же на шаге 510 не обнаружено доступных для загрузки различий, то на шаге 512 загружается файл F(n+1) целиком и процесс завершается на шаге 518. Если на шаге 515 полученное различие ненулевое, тогда на шаге 508 принимается различие, и файл на стороне клиента обновляется и выполняется шаг 504.Figure 5 shows the case of applying the algorithm on the client side in accordance with a variant implementation. The process starts at step 502. Then, the k value is determined — the version of the current client-side database of files at step 504. At step 505, a difference is requested for a specific file. If at step 510 the difference for that file is available for download, then the difference Δ (k) for the file F (k) is loaded at step 514. At step 515, it is checked whether the file is empty, namely, are there any differences between the current version and the latest available on the server. And if it turns out to be empty, i.e. the current version is the last one, the process ends at step 518. If, however, at step 510 no differences are available for download, then at step 512 the entire file F (n + 1) is loaded and the process ends at step 518. If at step 515 the resulting difference non-zero, then at step 508 the difference is accepted, and the file on the client side is updated and step 504 is performed.

На Фиг.6 изображен другой вариант реализации части полезной модели, а именно работы на клиентской стороне. Как показано на Фиг.6 процесс начинается на шаге 602. Затем происходит соединение с сервером 104 и загрузка обновлений файлов (например, состояния файла описания) с сервера 104 на шаге 604, и, таким образом, получение информации о том, какие файлы необходимо обновить (как было оговорено ранее при рассмотрении Фиг.2.). На шаге 606 определяются файлы, которые необходимо обновить, если такие существуют, например, используя файл описания состояний 202 (этот шаг дополнительный - можно загружать различие для всех файлов, как нулевое, так и ненулевое.).Figure 6 shows another embodiment of part of the utility model, namely, work on the client side. As shown in FIG. 6, the process starts at step 602. Then, a connection is made to the server 104 and downloading file updates (for example, the description file status) from the server 104 in step 604, and thus obtaining information about which files need to be updated (as previously agreed upon when considering Figure 2.). At step 606, the files that need to be updated are determined if they exist, for example, using the state description file 202 (this step is optional - you can load the difference for all files, both zero and non-zero.).

На шаге 607 проверяется, разрешает ли средство контроля 124 загрузку обновлений. И если не разрешает, то на шаге 608 процесс переводится в состояние ожидания инициализации обновления. Иначе на шаге 609 принимается значение i - индекс файла, который нужно заменить (другими словами, i может быть файлом маски вредоносной программы, файлом правил, и т.д.).At step 607, it is checked whether the control means 124 allows downloading updates. And if it doesn’t allow it, then at step 608 the process is put into a waiting state for initialization of the update. Otherwise, at step 609, the value i is taken - the index of the file to be replaced (in other words, i can be a malware mask file, rules file, etc.).

На шаге 612 для файла F(i, k) будет запрошено различие с сервера 104, где k - номер версии множества файлов 109 на стороне клиента. На шаге 614 выясняется, доступно ли для загрузки различие для представленного файла. Если различие не доступно, то на шаге 616 загружается файл последней версии целиком. Если различие доступно для загрузки, то оно загружается и применяется к файлу 109 на шаге 618. Если на шаге 620 получившийся файл соответствует ожидаемой версии, тогда на шаге 622 запрашивается верность равенства i=1. Если равенство верное, то процесс завершается на шаге 624. Если равенство неверное, то на шаге 626 индекс i уменьшается на 1, и выполнение процесса возвращается на шаг 612. Также после выполнения шага 616 процесс переходит на шаг 622 для того, чтобы проверить, остались ли еще файлы для обновления на сервере.At step 612, a file will be requested for the file F (i, k) from the server 104, where k is the version number of the plurality of files 109 on the client side. At step 614, it is determined whether the difference for the file presented is available for download. If the difference is not available, then at step 616 the entire latest version file is downloaded. If the difference is available for download, then it is downloaded and applied to the file 109 in step 618. If in step 620 the resulting file corresponds to the expected version, then in step 622 the equality i = 1 is requested. If the equality is true, then the process ends at step 624. If the equality is incorrect, then at step 626 the index i decreases by 1, and the process returns to step 612. Also, after performing step 616, the process proceeds to step 622 in order to verify that are there any more files to update on the server.

На Фиг.7 изображен примерный вариант реализации алгоритма проверки обновления средством контроля обновлений. Процесс начинается на шаге 702. На шаге 704 проверяется, появились ли приложения в системе, которым необходимо обновление. Если появились, то на шаге 706 проверяется, является ли обновление критическим (необходимым как можно скорее). Если обновление критическое, то на шаге 712 обновление загружается, иначе на шаге 708 проверяется, составлен ли список приложений для обновления. Данный список составляется с некоторой периодичностью и загружается после наступления определенного момента времени. Если список составлен для обновления, то обновления загружаются на шаге 710 и процесс завершается на шаге 714, иначе система переходит в состояние ожидания и выполнение возвращается на шаг 704.7 shows an exemplary embodiment of an update verification algorithm by the update control tool. The process begins at step 702. At step 704, it is checked whether applications have appeared on the system that need updating. If there are, then at step 706 it is checked whether the update is critical (necessary as soon as possible). If the update is critical, then at step 712 the update is downloaded, otherwise at step 708 it is checked whether the list of applications for updating is compiled. This list is compiled at some intervals and is loaded after a certain point in time. If the list is made for updating, then the updates are downloaded at step 710 and the process ends at step 714, otherwise the system enters the standby state and execution returns to step 704.

На Фиг.8 показана примерная компьютерная система, которая может выступать в роли клиентского компьютера 102. Клиентский компьютер 102 включает в себя один или более процессоров, таких как процессор 801. Процессор 801 соединяется с коммуникационной инфраструктурой 806, такой как шина или сеть.FIG. 8 shows an example computer system that can act as a client computer 102. The client computer 102 includes one or more processors, such as a processor 801. The processor 801 is connected to a communications infrastructure 806, such as a bus or network.

Клиентский компьютер 802 включает в себя основную память 808, (RAM), и может также включать в себя вторичную память 810. Вторичная память 810 может включать в себя, например, внутренний диск или хранилище данных 812 (например, жесткий или оптический диск) и/или устройство чтения/записи 814 носителя данных 816 (устройство хранения данных на магнитной ленте, оптический привод и т.д.). Съемный запоминающий блок 816 представляет собой магнитную ленту, оптический диск или другие запоминающие носители, считываемые или записываемые с помощью соответствующего устройства чтения/записи 814 носителя данных 816. Как можно видеть, съемный запоминающий блок 816 может включать в себя машиночитаемый запоминающий носитель, имеющий хранимое на нем компьютерное программное обеспечение и/или данные.Client computer 802 includes main memory 808, (RAM), and may also include secondary memory 810. Secondary memory 810 may include, for example, an internal disk or data storage 812 (eg, a hard or optical disk) and / or a reader / writer 814 of the storage medium 816 (magnetic tape storage device, optical drive, etc.). The removable storage unit 816 is a magnetic tape, an optical disk, or other storage media read or written using a corresponding reader / writer 814 of the storage medium 816. As can be seen, the removable storage unit 816 may include a computer-readable storage medium having computer software and / or data.

В альтернативном варианте реализации вторичная память 810 включает в себя другие средства для загрузки компьютерных программ или других команд в клиентский компьютер 802. Она включает в себя, например, съемный блок памяти 822 и интерфейс 820. Она может включать в себя съемный чип памяти (такой как EPROM или PROM) и связанный с ним разъем или другие съемные блоки памяти 822 и интерфейсы 820, которые позволяют передавать программное обеспечение и данные со съемных блоков памяти 822 на клиентский компьютер 802.In an alternative embodiment, secondary memory 810 includes other means for downloading computer programs or other instructions to client computer 802. It includes, for example, a removable memory unit 822 and an interface 820. It may include a removable memory chip (such as EPROM or PROM) and its associated connector or other removable memory units 822 and interfaces 820, which allow you to transfer software and data from removable memory units 822 to a client computer 802.

Клиентский компьютер 802 также включает в себя один или более интерфейсов соединения, таких как сетевой интерфейс 824. Сетевой интерфейс 824 позволяет передавать данные между клиентским компьютером 802 и внешними устройствами. Например, сетевой интерфейс 824 включает в себя модем, сетевой интерфейс (например, карту Ethernet), порт соединения, PCMCIA слот и карту и т.д. Программное обеспечение и данные, передаваемые по сетевому интерфейсу 824, выполняются в форме сигналов 828, электронных, электромагнитных, оптических и других типов, которые могут быть приняты посредством сетевого интерфейса 824. Сигналы 828 выдаются сетевым интерфейсом 824 через канал связи 826. Этот канал 826 передает сигналы 828 и выполняется проводным или кабельным, оптоволоконным, радиочастотным каналом и другими каналами связи. В варианте осуществления полезной модели сигналы 828 содержат пакеты данных, отправленные процессору 801. Информация, представляющая обрабатываемые пакеты, может отправляться в форме сигналов 828 от процессора 801 через канал связи 826.Client computer 802 also includes one or more connection interfaces, such as network interface 824. Network interface 824 allows data to be transferred between client computer 802 and external devices. For example, the network interface 824 includes a modem, a network interface (e.g., an Ethernet card), a connection port, a PCMCIA slot and a card, etc. The software and data transmitted via the network interface 824 are implemented in the form of signals 828, electronic, electromagnetic, optical and other types that can be received via the network interface 824. The signals 828 are provided by the network interface 824 via the communication channel 826. This channel 826 transmits signals 828 and is performed by wire or cable, fiber optic, radio frequency channel and other communication channels. In an embodiment of the utility model, signals 828 comprise data packets sent to processor 801. Information representing the packets being processed may be sent in the form of signals 828 from processor 801 via communication channel 826.

Термином «машиночитаемый носитель программ» или «машиночитаемый носитель информации» обычно называют носитель, такой как съемные носители данных 816 и 822, жесткий диск, установленный в виде встроенного жесткого диска 812, и сигналы 828, которые обеспечивают передачу программного обеспечения в клиентский компьютер 802.The term “computer-readable storage medium” or “computer-readable storage medium” is usually used to refer to a medium, such as removable storage media 816 and 822, a hard disk installed in the form of an internal hard disk 812, and signals 828 that transmit software to a client computer 802.

Компьютерные программы хранятся в основной памяти 808 и/или вторичной памяти. Компьютерные программы могут быть также получены через сетевой интерфейс 824.Computer programs are stored in main memory 808 and / or secondary memory. Computer programs can also be obtained through the 824 network interface.

В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящей полезной модели, определенной формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящей полезной модели, согласующиеся с сущностью и объемом настоящей полезной модели.In conclusion, it should be noted that the information given in the description are only examples that do not limit the scope of this utility model defined by the formula. The person skilled in the art will understand that there may be other options for implementing this utility model, consistent with the nature and scope of this utility model.

Claims (11)

1. Система обеспечения обновления баз данных и коллекций файлов от любого предыдущего состояния до новейшего, которая содержит средство построения различий, предназначенное для создания множества различий между последней версией файла и множеством предыдущих версий файла, которые хранятся на средстве предоставления информации о последних версиях файлов, и где различия предназначены для преобразования любой из множества предыдущих версий только к последней версии; упомянутое средство предоставления информации о последних версиях файлов, предназначенное для предоставления посреднику обновления информации о последних версиях файлов, множестве предыдущих версий файлов, о различиях между файлами, предоставленной упомянутым средством построения различий; упомянутый посредник обновления, предназначенный для получения информации о различиях от средства предоставления информации о последних версиях файлов, построения различий непосредственно для компьютера пользователя и передачи информации о построенном различии средству обновления; средство контроля обновлений, предназначенное для управления инициализацией работы средства обновления на компьютере пользователя, а также управлением очереди обновлений для программ компьютерной системы пользователя, связанное со средством обновления; упомянутое средство обновления, предназначенное для преобразования файлов и модулей приложения на компьютерной системе пользователя в последнюю версию файлов и модулей приложения, инициализируемое средством контроля обновлений и получающее информацию о построенном различии от посредника обновления.1. A system for updating databases and file collections from any previous state to the latest, which comprises a distinction tool for creating a plurality of differences between the latest version of a file and a plurality of previous versions of a file that are stored in a means for providing information about the latest versions of files, and where the differences are intended to convert any of the many previous versions only to the latest version; said means for providing information on the latest versions of files, intended to provide an intermediary with updates on information on recent versions of files, a plurality of previous versions of files, differences between files provided by said means for constructing differences; the said update proxy, intended to receive information about the differences from the means of providing information on the latest versions of files, build differences directly for the user's computer and transmit information about the differences to the update tool; update control means for controlling the initialization of the update tool on the user's computer, as well as managing the update queue for programs of the user's computer system, associated with the update tool; said updating tool for converting application files and modules on a user's computer system to the latest version of application files and modules, initialized by the update control tool and receiving information about the constructed difference from the update proxy. 2. Система по п.1, в которой средство контроля обновлений также предназначено для инициализации средства обновления, если обновление является критическим.2. The system of claim 1, wherein the update control tool is also intended to initialize the update tool if the update is critical. 3. Система по п.1, в которой средство контроля обновлений также предназначено для составления очереди обновлений, если обновления не являются критическими.3. The system of claim 1, wherein the update control tool is also intended to queue updates if updates are not critical. 4. Система по п.3, в которой средство контроля обновлений также предназначено для инициализации средства обновления и передаче ему очереди обновлений в определенный момент времени.4. The system according to claim 3, in which the update control tool is also intended to initialize the update tool and transfer it the update queue at a certain point in time. 5. Система по п.4, в которой средство контроля обновлений устанавливает момент времени при возникновении следующих ситуаций:5. The system according to claim 4, in which the update control tool sets the time when the following situations occur: (а) количество обновлений в очереди превышает заранее предустановленное значение;(a) the number of updates in the queue exceeds a predefined value; (б) наступает момент времени по расписанию.(b) there comes a point in time according to a schedule. 6. Система по п.1, в которой средство обновления также предназначено для загрузки новой версии запрашиваемого файла целиком, если не найдена версия файла клиентского компьютера.6. The system according to claim 1, in which the updater is also designed to download a new version of the requested file in its entirety, if no version of the client computer file is found. 7. Система по п.1, в которой средство предоставления информации о последних версиях файлов также предназначено для удаления различий, если размер различий больше размера последней версии файла.7. The system of claim 1, wherein the means for providing information on the latest versions of files is also intended to remove differences if the differences are larger than the size of the latest version of the file. 8. Система по п.1, в которой средство предоставления информации о последних версиях файлов также предназначено для регулирования выпуска обновлений в зависимости от времени выпуска.8. The system according to claim 1, in which the means of providing information on the latest versions of files is also intended to regulate the release of updates depending on the time of release. 9. Система по п.1, в которой средство обновления также предназначено для загрузки от посредника обновления файла целиком, когда затраты от загрузки и принятия различий больше, чем затраты от загрузки нового файла целиком.9. The system according to claim 1, in which the updater is also designed to download from the intermediary to update the entire file when the costs of downloading and making the difference are greater than the costs of downloading a new file as a whole. 10. Система по п.1, в которой посредник обновления дополнительно содержит файл описания состояний версий файлов, который содержит предписания для средства обновления, затем при исполнении предписаний средством обновления формируется запрос обновления файлов по списку, полученному через файл описания состояний версий файлов.10. The system according to claim 1, in which the update proxy additionally contains a file describing the status of file versions, which contains instructions for the update tool, then when the instructions are executed by the update tool, a request is made to update the files from the list received through the file describing the status of file versions. 11. Система по п.10, в которой средство обновления также предназначено для формирования оптимального плана обновления версий файлов и, исходя из информации файла описания состояния версий файлов, которые находятся в системе, передачи запроса обновления у посредника обновления.
Figure 00000001
11. The system of claim 10, in which the updater is also designed to form an optimal plan for updating file versions and, based on the information of the file describing the status of the versions of files that are in the system, transmitting the update request from the update intermediary.
Figure 00000001
RU2010107429/08U 2010-03-02 2010-03-02 UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS RU101229U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010107429/08U RU101229U1 (en) 2010-03-02 2010-03-02 UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010107429/08U RU101229U1 (en) 2010-03-02 2010-03-02 UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS

Publications (1)

Publication Number Publication Date
RU101229U1 true RU101229U1 (en) 2011-01-10

Family

ID=44055135

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010107429/08U RU101229U1 (en) 2010-03-02 2010-03-02 UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS

Country Status (1)

Country Link
RU (1) RU101229U1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2494453C2 (en) * 2011-11-24 2013-09-27 Закрытое акционерное общество "Лаборатория Касперского" Method for distributed performance of computer security tasks
RU2514140C1 (en) * 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" System and method for improving quality of detecting malicious objects using rules and priorities

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2494453C2 (en) * 2011-11-24 2013-09-27 Закрытое акционерное общество "Лаборатория Касперского" Method for distributed performance of computer security tasks
US9582335B2 (en) 2011-11-24 2017-02-28 AO Kaspersky Lab System and method for distributing processing of computer security tasks
RU2514140C1 (en) * 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" System and method for improving quality of detecting malicious objects using rules and priorities

Similar Documents

Publication Publication Date Title
US7665081B1 (en) System and method for difference-based software updating
RU2444056C1 (en) System and method of speeding up problem solving by accumulating statistical information
EP2055049B1 (en) A push update system
EP4099154A1 (en) Shared software libraries for computing devices
CN110012096B (en) Mobile client service update management method, device and system
US20150222765A9 (en) Client device state collection and network-based processing solution
CN113691486A (en) Message modification method, device, equipment and storage medium
CN104008104A (en) Method for processing document change and electronic device
US10983718B2 (en) Method, device and computer program product for data backup
EP3462699B1 (en) System and method of identifying a malicious intermediate language file
US7949641B1 (en) Systems and methods for validating a portion of a file that is downloaded from another computer system
RU101229U1 (en) UPDATE SYSTEM BASED ON THE DIFFERENCES OF VERSIONS
CN113515303B (en) Project transformation method, device and equipment
CN114296835A (en) Application program starting method and device
CN110958293B (en) File transmission method, system, server and storage medium based on cloud server
US8706745B1 (en) Systems and methods for determining a file set
CN115994124A (en) File scanning method, device, electronic equipment and computer readable storage medium
CN115543429A (en) Project environment building method, electronic equipment and computer readable storage medium
US11347689B2 (en) Method, device and computer program product for event ordering
US8364705B1 (en) Methods and systems for determining a file set
CN112913215B (en) Method and system for managing operations associated with objects on IOT-enabled devices
CN109657481B (en) Data management method and device
US8656419B2 (en) Dynamic distributed evaluator
CN113688289A (en) Data packet key field matching method, device, equipment and storage medium
CN111104251B (en) Method, apparatus and computer readable medium for restoring files