+

UA79943C2 - Method and system for updating a remote data base (variants) - Google Patents

Method and system for updating a remote data base (variants) Download PDF

Info

Publication number
UA79943C2
UA79943C2 UA20040504107A UA20040504107A UA79943C2 UA 79943 C2 UA79943 C2 UA 79943C2 UA 20040504107 A UA20040504107 A UA 20040504107A UA 20040504107 A UA20040504107 A UA 20040504107A UA 79943 C2 UA79943 C2 UA 79943C2
Authority
UA
Ukraine
Prior art keywords
update
periodic
last
transaction
time
Prior art date
Application number
UA20040504107A
Other languages
Russian (ru)
Ukrainian (uk)
Inventor
Арістотель Ніколас Белоу
мол. Хауорт Уілльям Фредерік
Бредлі Томас МакМіллен
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 claimed from PCT/US2002/035083 external-priority patent/WO2003038654A1/en
Publication of UA79943C2 publication Critical patent/UA79943C2/en

Links

Landscapes

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

Abstract

A method and system for updating a remote database (210) over a network. A plurality of periodic updates, called sendfiles (300-F), based on incremental changes to a local database (200) are generated. Each of the periodic updates includes at least one transaction. An initialization update, called an initializing sendfile, including a version of the local database at a start time is generates. Additionally, an identifier associated with the last periodic update generated before the start time and an identifier associated with the last transaction committed prior to the start time are generated.

Description

Опис винаходуDescription of the invention

Вимога на пріоритет/перехресне посилання на пов'язані заявки. 2 Дана не попередня заявка заявляє пріоритет попередньої (заявки на патент США з реєстраційнім номером 60/330.842 від 1 листопада 2001 року), повністю включеної у даний опис за допомогою посилання, і попередньої заявки на патент США з реєстраційним номером 60/365.169 від 19 березня 2002 року), повністю включеної у даний опис за допомогою посилання.Priority claim/cross-reference to related applications. 2 This non-prior application claims priority to the prior (US Patent Application Serial No. 60/330,842 dated November 1, 2001), fully incorporated herein by reference, and the prior US Patent Application Serial No. 60/365,169 dated March 19 2002), fully incorporated into this description by reference.

Даний винахід відноситься до комп'ютерних баз даних, більш конкретно, до способу і системи для достовірного оновлення бази даних.The present invention relates to computer databases, more specifically, to a method and system for reliably updating a database.

Зі збільшенням розміру баз даних і внаслідок їх сильно розподіленої структури стає все в більшій мірі проблематичним забезпечення однакових версій даних у пов'язаних базах даних. Якщо відбуваються істотні зміни в одній базі даних, то може бути потрібне оновлення інших баз даних для включення вказаних змін у найкоротші терміни. Здійснення таких оновлень може спричинити часте переміщення великих об'ємів даних 79 оновлення у декілька баз даних. Потенційно такий процес може бути надзвичайно складним.As databases grow in size and due to their highly distributed structure, it becomes increasingly problematic to ensure identical versions of data across linked databases. If significant changes occur in one database, it may be necessary to update other databases to incorporate these changes as soon as possible. Performing such updates may cause large amounts of 79 update data to be moved frequently to multiple databases. Potentially, such a process can be extremely complex.

Вказана проблема додатково поєднується з ненадійним зв'язком у системах. У цьому випадку дані можуть бути втрачені при транспортуванні. При цьому потрібна повторна передача даних, і інші бази даних знову оновлюються. Таке повторення істотно знижує ефективність системи і зменшує ділянку, в якій бази даних містять найновіші дані.This problem is additionally combined with unreliable communication in systems. In this case, data may be lost in transit. This requires a retransmission of the data, and other databases are updated again. Such repetition significantly reduces the efficiency of the system and reduces the area in which the databases contain the most recent data.

Фіг.1 - структурна схема системи, відповідно до варіанту здійснення даного винаходу.Fig. 1 is a structural diagram of the system according to an embodiment of the present invention.

Фіг.2 - структурна схема системи концентратора, відповідно до варіанту здійснення даного винаходу.Fig. 2 is a structural diagram of the concentrator system according to an embodiment of the present invention.

Фіг.3 ілюструє можливу передачу оновлень бази даних з локальної бази даних у віддалену базу даних, відповідно до варіанту здійснення даного винаходу.Figure 3 illustrates a possible transfer of database updates from a local database to a remote database, according to an embodiment of the present invention.

Фіг.4 ілюструє файл відправки, відповідно до варіанту здійснення даного винаходу. сFig. 4 illustrates a sending file according to an embodiment of the present invention. with

Фіг.5 ілюструє файл ініціалізації відправки, відповідно до варіанту здійснення даного винаходу. Ге)Fig. 5 illustrates the initialization file of the shipment, according to an embodiment of the present invention. Gee)

Фіг - часова діаграма, що ілюструє формування файлу відправки та файлу ініціалізації відправки, відповідно до варіанту здійснення даного винаходу.Fig is a timing diagram illustrating the formation of a shipment file and a shipment initialization file, according to an embodiment of the present invention.

Фіг.7 - блок-схема варіанту здійснення даного винаходу, в якому можуть бути сформовані файли оновлення локальної бази даних. ШеFig. 7 is a block diagram of an embodiment of this invention in which local database update files can be created. She

Фіг.8 - блок-схема варіанту здійснення даного винаходу, в якому віддалена база даних може одержувати «Її файли оновлення з локальної бази даних.Fig. 8 is a block diagram of an embodiment of this invention in which a remote database can receive its update files from a local database.

Фіг.9 - блок-схема іншого варіанту здійснення даного винаходу, в якому віддалена база даних може Ме. одержувати файли оновлення з локальної бази даних і перевіряти їх достовірність. Ге»)Fig. 9 is a block diagram of another variant of the implementation of this invention, in which the remote database can Me. retrieve update files from the local database and verify their authenticity. Ge")

Фіг1ОА - блок-схема варіанту здійснення даного винаходу, в якому може бути перевірена достовірність 3о файлів оновлення. вFig. 1OA is a block diagram of an embodiment of the present invention in which the authenticity of 30 update files can be checked. in

Фіг1оВ - блок-схема іншого варіанту здійснення даного винаходу, в якому може бути перевірена достовірність файлів оновлення.Fig. 10B is a block diagram of another embodiment of the present invention in which the authenticity of update files can be verified.

Фіг.11 - ілюстрація перевірки достовірності файлу оновлення, відповідно до варіанту здійснення даного « винаходу. ЗFig. 11 is an illustration of checking the authenticity of the update file, according to an embodiment of this invention. WITH

Варіанти здійснення даного винаходу забезпечують спосіб і систему для достовірного оновлення віддаленої с бази даних через мережу зв'язку. Відповідно до варіантів здійснення, формується декілька періодичних оновленьEmbodiments of the present invention provide a method and system for reliably updating a remote database over a communication network. According to the implementation options, several periodic updates are generated

Із» (далі по тексту "файл відправки"), що базуються на додаткових змінах у локальній базі даних. Кожне з періодичних оновлень містить, щонайменше, одну транзакцію. Формується оновлення ініціалізації (далі по тексту "файл ініціалізації відправки"), що містить версію локальної бази даних у момент часу запуску. Додатково формуються ідентифікатор, що відповідає останньому періодичному оновленню, сформованому перед і моментом часу запуску, та ідентифікатор, що відповідає останній транзакції, завершеній до моменту часу (се) запуску. Варіанти здійснення, переважно, забезпечують автономізацію файлів відправки та файлу ініціалізації відправки для достовірного оновлення віддалених баз даних. о Фіг.1 - структурна схема, що ілюструє систему, відповідно до варіанту здійснення даного винаходу. В ї» 20 основному система 100 може містити велику резиденту базу даних, через мережу зв'язку одержувати запити на пошук і забезпечувати відповіді по пошуку. Наприклад, система 100 може являти собою симетричний с» багатопроцесорний (ЗМР) комп'ютер, наприклад, такий як ІВМ К5З/б60009М80 або 580, що виробляється компанією ІВМ (АгтопКк, штат Нью-Йорю), Зп Епіегргізетм 10000, що виробляється Зцп Місговувіетв (ЗапіаFrom" (hereinafter referred to as "sending file"), based on additional changes in the local database. Each of the periodic updates contains at least one transaction. An initialization update (hereinafter referred to as the "send initialization file") is generated, containing the version of the local database at the time of startup. Additionally, an identifier corresponding to the last periodic update generated before and at the trigger time and an identifier corresponding to the last transaction completed before the trigger time (se) are generated. The implementation options preferably provide for the automation of the send files and the send initialization file for reliable updating of remote databases. o Fig. 1 is a schematic diagram illustrating a system according to an embodiment of the present invention. Basically, the system 100 can contain a large resident database, receive search requests and provide search responses through the communication network. For example, system 100 may be a symmetric multiprocessor (SMP) computer, such as an IBM K5Z/b60009M80 or 580 manufactured by IBM (AgtopKc, New York), Zp Epiegrgisetm 10000 manufactured by Zcp Misgovuvietv (Zapia

Сіага, штат Каліфорнія), і т.д. Система 100 також може являти собою багатопроцесорний персональний 99 комп'ютер, наприклад, такий як СотрадР"гої іапітмМІі 530 (що має два процесори Іпів! РепіїштФ Ії, 866МГц), щоCiaga, California), etc. The system 100 may also be a multiprocessor personal computer 99, such as a SotradR"goi iapitmMIi 530 (having two IPov!RepishtF Ii, 866MHz processors) that

ГФ) виробляється компанією Неміейк-Раскага (Раю Айо, штат Каліфорнія). Система 100 може також містити 7 багатопроцесорну операційну систему, наприклад, таку як ІВМ АЇХФО 4, Зи!ип Зоіагізтм 8 Орегайпд Епмігоптепі,GF) is produced by Nemiek-Raskaga (Rayu Ayo, California). The system 100 may also include a multi-processor operating system, such as an IVM AIHFO 4, Zy!ip Zoiagistm 8 Oregypd Epmigoptepi,

Кей Нас і ІМмОхе 6.2, і т.д. Система 100 може одержувати через мережу 124 зв'язку періодичні оновлення, які до Можуть паралельно включатися у базу даних. Варіанти здійснення даного винаходу можуть досягати дуже високої продуктивності оновлення і пошуку по базі даних за допомогою включення кожного оновлення у базу даних без використання блокування бази даних або засобів керування доступом.Kay Us and IMmOhe 6.2, etc. The system 100 can receive periodic updates through the communication network 124, which can be included in the database in parallel. Embodiments of the present invention can achieve very high database update and search performance by incorporating each update into the database without using database locking or access controls.

У варіанті здійснення система 100 може містити, щонайменше, один процесор 102-1, приєднаний до шини 101. Процесор 102-1 може містити внутрішній кеш (наприклад, кеш 11, не зображений). Між процесором 102-1 і в5 шиною 101 може бути резидентно розміщений кеш 103-1 вторинної пам'яті (наприклад, кеш 12, кеші І 2/3 і т.д.).In an embodiment, system 100 may include at least one processor 102-1 attached to bus 101. Processor 102-1 may include an internal cache (eg, cache 11, not shown). Between the processor 102-1 and bus 101, the secondary memory cache 103-1 can be resident (for example, cache 12, cache I 2/3, etc.).

У переважному варіанті здійснення система 100 може містити декілька процесорів 102-1...102-Р, приєднаних до шини 101. Між декількома процесорами 102-1...102-Р і шиною 101 також може бути резидентно розміщено декілька кешів 103-1...103-Р вторинної пам'яті (наприклад, архітектура крізного перегляду) або, у вигляді іншого варіанту, до шини 101 може бути приєднаний, щонайменше, один кеш 103-1 вторинної пам'яті (наприклад, архітектура з передісторією). Система 100 може містити пам'ять 104, наприклад, таку як оперативний запам'ятовуючий пристрій (ОЗП), і т.д., приєднану до шини 101 для зберігання інформації та інструкцій, які повинні виконуватися декількома процесорами 102-1...102-Р.In a preferred embodiment, system 100 may include several processors 102-1...102-P connected to bus 101. Several caches 103-1 may also be resident between several processors 102-1...102-P and bus 101 ...103-P of secondary memory (for example, a look-through architecture) or, in the form of another variant, at least one cache 103-1 of secondary memory (for example, an architecture with a background history) can be connected to the bus 101. System 100 may include memory 104, such as a random access memory (RAM), etc., connected to bus 101 for storing information and instructions to be executed by multiple processors 102-1...102 -R.

Пам'ять 104 може зберігати велику базу даних, наприклад, для перетворення імен доменів Інтернет в адреси в Інтернет, для перетворення імен або номерів телефонів у мережні адреси, для забезпечення і оновлення /о даних профілю абонента, для забезпечення і оновлення даних присутності користувача, і т.д. Переважно, розмір бази даних і кількість перетворень за секунду можуть бути дуже великими. Наприклад, пам'ять 104 може містити, щонайменше, 64Гбайт ОЗП і може містити базу даних імен доменів у 5О0ОМ (тобто, 500х1059) записів, базу даних абонентів у 5О0М записів, базу даних мобільності номерів телефонів у 450М записів і т.д.Memory 104 can store a large database, for example, to convert Internet domain names to Internet addresses, to convert names or phone numbers to network addresses, to provide and update subscriber profile data, to provide and update user presence data, etc. In particular, the size of the database and the number of conversions per second can be very large. For example, memory 104 may contain at least 64GB of RAM and may contain a domain name database of 500M (ie, 500x1059) records, a subscriber database of 500M records, a mobile phone number database of 450M records, etc.

У можливій архітектурі 64-бітової системи, наприклад, такої як система, що містить, щонайменше, один 75 64-бітовий процесор 102-1 зі зворотним порядком байтів, приєднаний, щонайменше, до 64-бітової шини 101, |і 64-бітову пам'ять 104, 8-байтове значення покажчика може бути записане в адресу (комірки) пам'яті на межі 8-байтів (тобто, адреса пам'яті, що ділиться на вісім, або, наприклад, 8М) з використанням одиночної безперервної операції. В основному наявність кешу 103-1 вторинної пам'яті може просто затримувати запис 8-байтового покажчика у пам'ять 104. Наприклад, в одному варіанті здійснення кешем 103-1 вторинної пам'яті може бути кеш крізного перегляду, що діє у режимі крізного запису так, щоб одиночна команда збереження 8-байтів могла переміщати вісім байтів даних з процесора 102-1 у пам'ять 104 без переривання і всього лише за два такти системних годин. В іншому варіанті здійснення кешем 103-1 вторинної пам'яті може бути кеш крізного перегляду, що діє у режимі зворотного запису так, щоб 8-байтовий покажчик міг бути спочатку записаний у кеш 103-1 вторинної пам'яті, який потім, у більш пізній час, може записати 8-байтовий покажчик у пам'ять 104, с наприклад, при запису у пам'ять 104 рядка кешу, в якому зберігається 8-байтовий покажчик (тобто, наприклад, коли "скидається у пам'ять" визначений рядок кешу, або повністю кеш вторинної пам'яті). і9)In a possible 64-bit system architecture, for example, such as a system containing at least one 75 64-bit reverse byte processor 102-1 connected to at least a 64-bit bus 101, |and 64-bit memory 104, an 8-byte pointer value can be written to a memory address (cell) on an 8-byte boundary (ie, a memory address divisible by eight, or, for example, 8M) using a single continuous operation. Basically, the presence of the secondary memory cache 103-1 may simply delay the writing of an 8-byte pointer to the memory 104. For example, in one embodiment, the secondary memory cache 103-1 may be a look-through cache operating in a look-through mode write so that a single 8-byte save command can move eight bytes of data from processor 102-1 to memory 104 without interruption and in just two system clock cycles. In another embodiment, secondary memory cache 103-1 may be a look-through cache operating in write-back mode so that an 8-byte pointer may first be written to secondary memory cache 103-1, which then, in more late time, can write an 8-byte pointer to memory 104, for example, when writing to memory 104 a cache line in which the 8-byte pointer is stored (ie, for example, when a specified line is "dumped" cache, or completely secondary memory cache). i9)

Зрештою, з точки зору процесора 102-1, як тільки дані фіксуються вихідними контактами процесора 102-1, всі вісім байтів даних записуються у пам'ять 104 в одній постійній, безперервній передачі, яка може бути затримана діями кешу 103-1 вторинної пам'яті, якщо він є у наявності. З точки зору процесорів 102-2...102-Р, со зо як тільки дані фіксуються вихідними контактами процесора 102-1, всі вісім байтів даних записуються у пам'ять 104 в одній постійній, безперервній передачі, яка призначена протоколом узгодженості кешу по кешах М 103-1...103-Р вторинної пам'яті, які можуть затримувати запис у пам'ять 104, якщо є у наявності. Ге»!Ultimately, from the perspective of the processor 102-1, once the data is latched by the output pins of the processor 102-1, all eight bytes of data are written to the memory 104 in one continuous, continuous transfer, which may be delayed by the actions of the secondary memory cache 103-1 yati, if it is available. From the perspective of processors 102-2...102-P, as soon as data is latched by the output pins of processor 102-1, all eight bytes of data are written to memory 104 in one continuous, continuous transfer, which is designated by the cache coherence protocol caches M 103-1...103-P of secondary memory, which can delay writing to memory 104, if available. Gee!

Однак, якщо 8-байтове значення покажчика записується у невирівняну комірку пам'яті 104, наприклад, адреса пам'яті, що перетинає межу 8-байтів, то всі вісім байтів даних не можуть бути передані з процесора 102-1 з о використанням одиночної команда збереження 8-байтів. Замість цього процесор 102-1 може видати дві різні і - окремі команди збереження. Наприклад, якщо адреса пам'яті починається за чотири байти до межі 8-байтів (наприклад, 8М-4), то перша команда збереження передає у пам'ять 104 чотири старших байти (наприклад, 8-4), у той час як друга команда збереження передає у пам'ять 104 чотири молодших байти (наприклад, 8М). «However, if an 8-byte pointer value is written to an unaligned memory location 104, such as a memory address crossing an 8-byte boundary, then all eight bytes of data cannot be transferred from processor 102-1 using a single instruction 8-byte storage. Instead, processor 102-1 may issue two different and separate save commands. For example, if a memory address begins four bytes before an 8-byte boundary (eg, 8M-4), then the first save instruction transfers the four high-order bytes to memory 104 (eg, 8-4), while the second the save command transfers the four least significant bytes (for example, 8M) to memory 104. "

Істотно, що між цими двома окремими командами збереження процесор 102-1 може одержати переривання, або процесор 102-1 може звільнити керування шиною 101 для іншого компонента системи (наприклад, процесора - с 102-Р і т.д). Отже, значення покажчика, що резидентно знаходиться у пам'яті 104, буде недійсним, доки ц процесор 102-1 не зможе завершити другу команду збереження. Якщо інший компонент починає одиночне "» безперервне зчитування пам'яті у дану комірку пам'яті, то недійсне значення буде повернене, як припустимо дійсне.Importantly, between these two separate save commands, processor 102-1 may receive an interrupt, or processor 102-1 may release control of bus 101 to another system component (eg, processor 102-P, etc.). Therefore, the pointer value resident in memory 104 will be invalid until processor 102-1 can complete the second save command. If another component initiates a single "" continuous memory read into this memory location, then an invalid value will be returned as if a valid value were to be returned.

Аналогічно, нове 4-байтове значення покажчика може бути записане в адресу пам'яті, що ділиться на чотири -І (наприклад, 4М), з використанням одиночної безперервної операції. Потрібно зазначити, що у можливому варіанті, описаному вище, 4-байтове значення покажчика може бути записане у комірку пам'яті 8М-4 з ї-о використанням одиночної команди збереження. Безумовно, якщо 4-байтове значення покажчика записується у (Се) комірку, що перетинає межу 4-байтів, наприклад, 4М-2, то всі чотири байти даних не можуть бути передані з процесора 102-1 з використанням одиночної команди збереження, і значення покажчика, резидентно розміщене е у пам'яті 104, може бути недійсним протягом деякого періоду часу. с» Система 100 також може містити постійний запам'ятовуючий пристрій (ПЗП) 106, або інші статичні запам'ятовуючі пристрої, приєднані до шини 101, для зберігання статичної інформації та інструкцій для процесора 102-1. Для зберігання інформації та команд до шини 101 може бути приєднаний запам'ятовуючий пристрій 108, такий як магнітний або оптичний диск. Система 100 також може містити пристрій 110 відображення (наприклад, монітор на рідких кристалах СО (РДК)) і пристрій 112 введення даних (наприклад, клавіатуру, іФ) мишу, кульовий покажчик і т.д.), приєднані до шини 101. Система 100 може містити декілька мережних ко інтерфейсів 114-1...114-О, які можуть передавати і приймати електричні, електромагнітні або оптичні сигнали, що несуть потоки цифрових даних, які являють собою різні види інформації. У варіанті здійснення мережний бо інтерфейс 114-1 може бути приєднаний до шини 101 і до локальної мережі зв'язку ГАМ (ЛМ) 122, у той же час мережний інтерфейс 114-О може бути приєднаний до шини 101 і глобальної мережі зв'язку УУАМ (ГМ) 124.Similarly, a new 4-byte pointer value can be written to a memory address divisible by four -ANDs (eg, 4M) using a single continuous operation. It should be noted that in the possible variant described above, the 4-byte value of the pointer can be written into the memory cell 8M-4 with the use of a single save command. Of course, if a 4-byte pointer value is written to a cell that crosses a 4-byte boundary, such as 4M-2, then all four bytes of data cannot be transferred from processor 102-1 using a single store instruction, and the value pointer resident in memory 104 may be invalid for some period of time. The system 100 may also include a non-volatile memory device (VRAM) 106, or other static memory devices connected to the bus 101, for storing static information and instructions for the processor 102-1. A storage device 108, such as a magnetic or optical disk, may be attached to the bus 101 to store information and commands. System 100 may also include a display device 110 (e.g., liquid crystal display (LCD)) and input device 112 (e.g., keyboard, mouse, trackball, etc.) connected to bus 101. System 100 may contain several network co-interfaces 114-1...114-O, which can transmit and receive electrical, electromagnetic or optical signals carrying streams of digital data, which represent various types of information. In an embodiment, the network interface 114-1 can be connected to the bus 101 and to the local area network (GAM) 122, while the network interface 114-O can be connected to the bus 101 and the global communication network UUAM (GM) 124.

Декілька мережних інтерфейсів 114-1...114-0 можуть підтримувати різні мережні протоколи, включаючи, наприклад, Сідабії Е(Пегпеї (наприклад, ІЕЕЄ Стандарт 802.3-2002, виданий у 2002), Рірег Спаппеї! (наприклад,Several network interfaces 114-1...114-0 may support different network protocols, including, for example, Sidabia E(Pegpay (e.g. IEEE Standard 802.3-2002 issued in 2002), Rireg Spappei! (e.g.

АМЗ5І Стандарт Х.3230-1994, виданий у 1994) і т.д. До ЛМ 122 і ГМ 124 може бути приєднано декілька мережних 65 Комп'ютерів 120-1...120-М. В одному варіанті здійснення ЛМ 122 і ГМ 124 можуть бути фізично окремими мережами зв'язку, у той же час в іншому варіанті здійснення ЛМ 122 і ГМ 124 можуть бути з'єднані через мережний шлюз або маршрутизатор (для зручності не зображені). Як інший варіант, ЛМ 122 і ГМ 124 може бути однією і тією ж мережею зв'язку.AMZ5I Standard Kh.3230-1994, issued in 1994), etc. Several network 65 Computers 120-1...120-M can be connected to LM 122 and GM 124. In one embodiment, LM 122 and GM 124 may be physically separate communication networks, while in another embodiment, LM 122 and GM 124 may be connected through a network gateway or router (not shown for convenience). Alternatively, LM 122 and GM 124 may be the same communication network.

Як зазначено вище, система 100 може забезпечувати послуги розрізнення ОМ5 (служба імен доменів). У варіанті здійснення для розрізнення (процесу визначення адрес) ОМЗ послуги розрізнення ОМ в основному можуть бути розділені між транспортуванням по мережі і функціями пошуку даних. Наприклад, система 100 може бути механізмом пошуку (ЦЕ) для сервера, оптимізованим для пошуку даних по великих наборах даних, у той же час множина мережних комп'ютерів 120-1...120-М може бути множиною механізмів протоколу (РЕ) клієнта, оптимізованих для обробки мережі зв'язку і транспортування. | ШЕ може бути потужним багатопроцесорним /о бервером, який зберігає у пам'яті 104 весь набір записів ОМ5, щоб сприяти високошвидкісному високопродуктивному пошуку і оновленню. В іншому варіанті здійснення послуги розрізнення ОМ можуть забезпечуватися множиною потужних багатопроцесорних серверів, або множиною І ШОЕ, кожний з яких зберігає у пам'яті підмножину всього набору записів ОМ, щоб сприяти високошвидкісному високопродуктивному пошуку і оновленню.As mentioned above, the system 100 may provide OM5 (domain name service) resolution services. In a variant of implementation for OMZ discrimination (address determination process), OM discrimination services can basically be divided between network transport and data retrieval functions. For example, system 100 may be a search engine (SE) for a server optimized for searching data across large data sets, while a plurality of network computers 120-1...120-M may be a plurality of client protocol engines (PE) , optimized for communication and transportation network processing. | The SHE can be a powerful multiprocessor /o berver that stores in memory 104 the entire set of OM5 records to facilitate high-speed, high-performance searching and updating. In another embodiment, OM resolution services may be provided by a plurality of powerful multiprocessor servers, or a plurality of IESs, each of which stores a subset of the entire OM record set in memory to facilitate high-speed, high-performance retrieval and updating.

Навпаки, множина РЕ може бути звичайними вузькоспеціалізованими пристроями, які базуються на РС, що виконують ефективну багатозадачну операційну систему (наприклад, Кей Наї ГІМОХО 6.2), які мінімізують транспортне навантаження обробки мережі зв'язку на | ШЕ для максимізації доступних ресурсів для розрізненняIn contrast, the plurality of REs may be conventional highly specialized PC-based devices running an efficient multitasking operating system (e.g., Kei Nai GIMOHO 6.2) that minimize the traffic load of the communication processing network by | SHE to maximize available resources for discrimination

ОМ. Пристрої РЕ можуть обробляти нюанси протоколу ОМ5 провідної лінії зв'язку, реагувати на недійсні запитиOHM. PE devices can process the nuances of the OM5 protocol of the main communication line, respond to invalid requests

ОМ та мультиплексувати дійсні запити ОМЗ в ШЕ через ЛМ 122. В іншому варіанті здійснення, що містить 2о Множину ЦОЕ, які зберігають підмножини записів ОМ5, РЕ можуть визначати, який пристрій | ОЕ повинен одержати кожний дійсний запит ОМ, і мультиплексувати дійсні запити ОМ у відповідні І ШЕ. Кількість РЕ для одного (ШОЕ може визначатися, наприклад, кількістю запитів ОМ, яка повинна оброблятися за секунду, і робочими характеристиками конкретної системи. Для визначення співвідношень відповідності і режимів також можуть використовуватися інші показники. сOM and multiplex valid OMZ requests to the SHE via the LM 122. In another embodiment, containing 2o Set of COEs that store subsets of OM5 records, REs can determine which device | The UE must receive each valid OM request and multiplex the valid OM requests into the corresponding IS. The number of REs for one (ESR) can be determined, for example, by the number of OM requests that must be processed per second, and the operating characteristics of a particular system. Other indicators can also be used to determine compliance ratios and modes.

У загальному випадку, можуть підтримуватися інші варіанти здійснення великого об'єму, які базуються на запитах, що включають, наприклад, розрізнення номерів телефонів, обробку сигналізації 557, визначення для і) геолокації, встановлення відповідності номера телефону з абонентом, визначення місцеположення і присутності абонента і т.д.In general, other query-based high-volume implementations may be supported, including, for example, phone number resolution, 557 signaling processing, determination for i) geolocation, phone number matching, subscriber location and presence determination etc.

У варіанті здійснення центральний сервер 140-1 оперативної обробки транзакцій (ОЇ ТР) може бути со зо приєднаний до ГМ 124 і одержувати з різних джерел додатки, зміни і видалення (тобто, трафік оновлення) для бази даних 142-1. ОЇ ТР сервер 140-1 може передавати оновлення через ГМ 124 у систему 100, яка містить - локальну копію бази даних 142-1. ОЇ ТР сервер 140-1 може бути оптимізований для обробки трафіку оновлення у Ге! різних форматах і протоколах, включаючи, наприклад, Протокол Передачі Гіпертекстових файлів (НТТР),In an embodiment, the central server 140-1 of operational transaction processing (OIT TR) can be connected to the GM 124 and receive from various sources additions, changes and deletions (ie, update traffic) for the database 142-1. ОИ TR server 140-1 can transmit updates through GM 124 to the system 100, which contains - a local copy of the database 142-1. ОЙ TR server 140-1 can be optimized to handle update traffic in Ge! various formats and protocols, including, for example, Hypertext File Transfer Protocol (HTTP),

Протокол Реєстратора Запису (ККР), Нарощуваний Протокол |Ініціалізації (ЕРР), Систему Керування ме)Recording Recorder Protocol (RCP), Extended Initialization Protocol (ERP), Management System (ME)

Службами/Механізований Загальний Інтерфейс (МО) 800, та інші оперативні протоколи ініціалізації. Сукупність ї-Services/Mechanized Common Interface (MO) 800, and other operational initialization protocols. The totality of

ІОЕ тільки для читання може бути розгорнена в архітектурі типу концентратора і спиці (лінії, що йде від центра до периферії) для забезпечення можливості високошвидкісного пошуку, який супроводжується об'ємними додатковими оновленнями з ОЇ ТР сервера 140-1.The read-only IOE can be deployed in a hub-and-spoke architecture to provide high-speed lookup capabilities that are accompanied by voluminous incremental updates from the 140-1 OT server.

В альтернативному варіанті здійснення дані можуть бути розподілені по декількох ОЇТР серверах « 40. 140-1...140-5, кожний з яких може бути приєднаний до ГМ 124. ОЇ ТР сервера 140-1...140-5 можуть одержувати з -птш) с різних джерел додатки, зміни і видалення (тобто, трафік оновлення) для баз даних, що відповідають їм, 142-1...142-5 (не зображені для зручності). ОЇ ТР сервера 140-1...140-5 можуть передавати оновлення через ГМ з 124 у систему 100, яка може містити копії баз даних 142-1...142-5, інші динамічно створювані дані і т.д.In an alternative variant of implementation, data can be distributed over several OITR servers « 40. 140-1...140-5, each of which can be connected to GM 124. OI TR servers 140-1...140-5 can receive from -ptsh) from various application sources, changes and deletions (ie, update traffic) for the databases corresponding to them, 142-1...142-5 (not shown for convenience). TR servers 140-1...140-5 can transmit updates via GM from 124 to system 100, which can contain copies of databases 142-1...142-5, other dynamically created data, etc.

Наприклад, у варіанті здійснення для геолокації, ОЇ ТР сервера 140-1...140-5 можуть одержувати трафік оновлення з груп віддалених датчиків. В іншому альтернативному варіанті здійснення множина мережних -І комп'ютерів 120-1...120-М також може одержувати через ГМ 124 або ЛМ 122 додатки, зміни і видалення (тобто, трафік оновлення) з різних джерел. У цьому варіанті здійснення множина мережних комп'ютерів 120-1...120-М і, може передавати у систему 100 оновлення, а також запити.For example, in an embodiment for geolocation, the TR servers 140-1...140-5 can receive update traffic from groups of remote sensors. In another alternative embodiment, a plurality of network-I computers 120-1...120-M can also receive, through GM 124 or LM 122, applications, changes, and deletions (ie, update traffic) from various sources. In this embodiment, a plurality of network computers 120-1...120-M and can transmit updates as well as requests to the system 100.

Ге) У варіанті здійснення розрізнення ОМ5 кожний РЕ (наприклад, кожний з множини мережних комп'ютерів 120-1...120-М) може комбінувати, або мультиплексувати, декілька повідомлень-запитів ОМ, одержаних через ве глобальну мережу зв'язку (наприклад, ГМ 124), в одиночний СуперПакет Запиту і передавати СуперПакет Запиту 4) через локальну мережу зв'язку (наприклад, ЛМ 122) в ШЕ (наприклад, систему 100). | ОЕ може комбінувати, або мультиплексувати, декілька відповідей на повідомлення-запити ЮОМ5 в одиночний СуперПакет Відповіді і передавати СуперПакет Відповіді через локальну мережу зв'язку у відповідний РЕ. В основному, максимальний ов розмір СуперПакету Відповіді або Запиту може бути обмежений максимальним блоком передачі (МТ) фізичного мережного рівня (наприклад, Сідабії Е(пегпе). Наприклад, стандартні розміри повідомлення запиту і відповіді (Ф) ОМ, що не перевищують 100 байтів і 200 байтів, відповідно, дозволяють мультиплексувати більше 30 запитів в ка одиночний СуперПакет Запиту, а також мультиплексувати більше 15 відповідей в одиночний СуперПакетGe) In an embodiment of OM5 discrimination, each RE (for example, each of the set of network computers 120-1...120-M) can combine, or multiplex, several OM request messages received through the global communication network ( for example, GM 124), into a single Request SuperPacket and transmit the Request SuperPacket 4) through a local communication network (for example, LM 122) to the SHE (for example, system 100). | The UE can combine, or multiplex, several responses to UOM5 request messages into a single SuperPacket of Responses and transmit the SuperPacket of Responses through the local communication network to the corresponding PE. Basically, the maximum size of a SuperPacket of a Reply or Request can be limited by the maximum transmission unit (MT) of the physical network layer (for example, Sidabia E(pegpe). For example, the standard sizes of the request and response message (F) OM, not exceeding 100 bytes and 200 bytes, respectively, allow multiplexing more than 30 requests into a single Request SuperPacket, as well as multiplexing more than 15 responses into a single SuperPacket

Відповіді. Однак, в одиночний СуперПакет Запиту може бути включена менша кількість запитів (наприклад, 20 бо запитів), щоб при формуванні відповіді уникнути переповнення МТИ (наприклад, у 10 відповідей). Для МТ більшого розміру кількість мультиплексованих запитів і відповідей, відповідно, може бути збільшена.Answers. However, a smaller number of requests (for example, 20 requests) can be included in a single SuperPacket of a Request, in order to avoid overflowing the MIT (for example, 10 responses) when forming a response. For larger MTs, the number of multiplexed requests and responses can be increased, respectively.

Кожний багатозадачний РЕ може мати вхідний потік і вихідний потік для керування запитами і відповідями р, відповідно. Наприклад, вхідний потік може демаршалінгувати (розпаковувати) компоненти запиту ОМ5 з вхідних пакетів запитів ОМ5, одержаних через глобальну мережу зв'язку, і мультиплексувати декілька мілісекунд 65 запитів в одиночний СуперПакет Запиту. Потім вхідний потік може передавати СуперПакет Запиту Через локальну мережу зв'язку в ШЕ. Навпаки, вихідний потік може одержувати СуперПакет Відповіді з ГЕ,Each multitasking PE can have an input stream and an output stream to handle p requests and responses, respectively. For example, an input stream may demarshal (unpack) OM5 request components from incoming OM5 request packets received over a WAN and multiplex several millisecond 65 requests into a single Request SuperPacket. The incoming stream can then transmit the Request SuperPacket over the LAN to the SHE. On the contrary, the output stream can receive SuperPacket Responses from GE,

демультиплексувати відповіді, що містяться в ньому і маршалінгувати (упаковувати у стандартний формат) різні поля у дійсну відповідь ОМ, яка потім може бути передана через глобальну мережу зв'язку. В основному, як зазначено вище, можуть підтримуватися інші варіанти здійснення великого об'єму, що базуються на запитах.demultiplex the responses contained therein and marshal (package into a standard format) the various fields into a valid OM response, which can then be transmitted over a global communications network. Basically, as mentioned above, other high volume implementation options based on requests can be supported.

У варіанті здійснення СуперПакет Запиту може також містити інформацію про стан, яка відповідає кожному запиту ОМ5, наприклад, таку як вихідна адреса, вид протоколу і т.д. | ОЕ може включати у СуперПакет Відповіді інформацію про стан і відповідні відповіді ОМ. Потім кожний РЕ може формувати і повертати повідомлення дійсних відповідей ОМ5 з використанням інформації, переданої з (ШЕ. Отже, кожний РЕ може, переважно, функціонувати як пристрій, що не змінює свого стану у процесі виконання, тобто, дійсні відповіді ОМ5 можуть 70 бути сформовані з інформації, що міститься у СуперПакеті Відповіді. В основному, (ШЕ може повертатиIn an embodiment, the Request SuperPacket may also contain status information corresponding to each OM5 request, such as source address, protocol type, etc. | The OE can include information about the status and corresponding answers of the OM in the SuperPacket of Answers. Each RE can then generate and return valid OM5 response messages using the information transmitted from the (SHE). Therefore, each RE can preferably function as a device that does not change its state during execution, i.e., valid OM5 responses can be generated from the information contained in the Answer SuperPacket. Basically, (SHE can return

СуперПакет Відповіді в РЕ, з якого виходив вхідний СуперПакет, однак, очевидні інші можливі варіанти.SuperPacket Responses in the RE from which the incoming SuperPacket originated, however, other possible options are obvious.

В альтернативному варіанті здійснення кожний РЕ може підтримувати інформацію про стан, яка відповідає кожному запиту ОМ, і включати у СуперПакет Запиту посилання, або дескриптор, на інформацію про стан. І ОЄЕ може включати у СуперПакет Відповіді посилання на інформацію про стан і відповідні відповіді ОМ. Потім кожний РЕ може формувати і повертати повідомлення дійсних відповідей ОМ5 з використанням посилань на інформацію про стан, переданих з ШОЕ, а також підтримуваної ним інформації про стан. У цьому варіанті здійснення | ШЕ може повертати СуперПакет Відповіді в РЕ, з якого виходив вхідний СуперПакет.In an alternative embodiment, each RE may maintain state information corresponding to each OM request and include a reference, or descriptor, to the state information in the Request SuperPacket. And the OEE may include in the Answers SuperPacket a link to information about the status and corresponding answers of the OM. Each RE can then form and return valid OM5 response messages using the state information references transmitted from the ESR as well as state information maintained by it. In this embodiment | The SHE can return the Reply SuperPacket to the RE from which the incoming SuperPacket originated.

На Фіг.2 представлена структурна схема архітектури типу концентратора і спиць (зіркоподібної топології), відповідно до варіанту здійснення даного винаходу. В основному, система може містити локальну базу даних 200 (яка може знаходитися у центральному ОІ-ТР. концентраторі 140) ії одну або більшу кількість віддалених баз даних 210 (які можуть знаходитися у пристроях І ШЕ 100), з'єднаних з локальною базою даних 200 за допомогою будь-якого механізму з'єднання, наприклад, Інтернету або ЛМ 122. Бази даних можуть передавати і одержувати дані оновлення.Figure 2 shows a structural diagram of a hub-and-spoke architecture (star topology), according to an embodiment of the present invention. Basically, the system may include a local database 200 (which may be located in a central OI-TR. hub 140) and one or more remote databases 210 (which may be located in IES devices 100) connected to the local database 200 using any connection mechanism, for example, the Internet or LM 122. Databases can transmit and receive update data.

Відповідно до Фіг.3, у варіантах здійснення даного винаходу локальна база даних 200 передає у віддалену сч базу даних 210 Р файлів 300-1...300-Е відправки та файл ініціалізації 310 відправки для оновлення віддаленої бази даних 210. Файли оновлення можуть передаватися індивідуально або у пакетах, наприклад, декілька (8) файлів 300 відправки, один файл 300 відправки і один файл ініціалізації 310 відправки, множина файлів 300 відправки і один файл ініціалізації 310 відправки, одиночний файл 300 відправки, або одиночний файл ініціалізації 310 відправки. с зо У варіанті здійснення даного винаходу процесор 104 може одержувати з локальної бази даних 200 файл 300 відправки і/або файл ініціалізації 310 відправки, що містить дані оновлення. Система 150 може одержувати файл -According to Fig. 3, in embodiments of the present invention, the local database 200 transmits to the remote database 210 the P files 300-1...300-E of the shipment and the initialization file 310 of the shipment to update the remote database 210. The update files can be transmitted individually or in batches, such as multiple (8) 300 send files, one 300 send file and one 310 send initialization file, multiple 300 send files and one 310 send initialization file, a single 300 send file, or a single 310 send initialization file. c zo In an embodiment of this invention, the processor 104 can receive from the local database 200 the file 300 of the shipment and/or the initialization file 310 of the shipment containing the update data. System 150 can receive a file -

З00 відправки та файл ініціалізації 310 відправки у віддаленій базі даних 210 через інтерфейс 118 зв'язку. Ге!Z00 sending and initialization file 310 sending in the remote database 210 through the communication interface 118. Gee!

Потім процесор 104 може порівняти дані оновлення у файлі З00 відправки або в файлі ініціалізації 310 відправки з відповідними даними у віддаленій базі даних 210. Якщо у віддаленій базі даних 210 дані інші, то (22) зв процесор 104 може застосувати файл 300 відправки або файл ініціалізації 310 відправки до віддаленої бази ї- даних 210. Відповідно, згодом віддалена база даних 210 може бути оновлена даними, що відповідають даним оновлення у локальній базі даних 200.The processor 104 can then compare the update data in the send file Z00 or the send initialization file 310 with the corresponding data in the remote database 210. If the data in the remote database 210 is different, then (22) the processor 104 can apply the send file 300 or the initialization file 310 sending to the remote database 210. Accordingly, the remote database 210 may subsequently be updated with data corresponding to the update data in the local database 200.

Фіг.А4 ілюструє файл 300 відправки, відповідно до варіанту здійснення даного винаходу. Поля файлу 300 можуть включати в себе, наприклад, ідентифікатор 400 файлу, час 402 формування файлу, кількість 404 « 70 транзакцій М у файлі, повний розмір 406 файлу, контрольну суму 408 або будь-який подібний індикатор контролю З) с помилок і транзакції 410-1...410-М (що містять ідентифікатори транзакцій). Вказані поля файлу відправки є можливими варіантами, призначеними для ілюстрації, але не для обмеження контексту варіантів здійснення ;» даного винаходу. У файл 300 відправки може бути включене будь-яке поле, яке може бути корисним.Fig.A4 illustrates a file 300 of the shipment, according to an embodiment of the present invention. File fields 300 may include, for example, file identifier 400 , file creation time 402 , number 404 of M transactions in the file, full file size 406 , checksum 408 , or any similar error and transaction control indicator 410 -1...410-M (containing transaction identifiers). The specified fields of the send file are possible variants intended to illustrate, but not to limit the context of the embodiments;" of this invention. Any field that may be useful may be included in the send file 300 .

Файл 300 відправки містить зміни у локальній базі даних 200 між двома моментами часу. Ці зміни можутьThe sending file 300 contains the changes in the local database 200 between the two points in time. These changes can

Включати в себе, наприклад, додавання нових ідентифікаторів (тобто, ідентифікаторів записів даних), видалення -І існуючих ідентифікаторів, зміни одного або більшої кількості записів даних, що відповідають ідентифікатору, перейменування ідентифікатора, холосту команду і т.д. Одна або більша кількість вказаних змін може ік проводитися послідовно і може називатися транзакціями. Файл 300 відправки може містити унікальніInclude, for example, adding new identifiers (ie, data record identifiers), deleting -AND existing identifiers, changing one or more data records corresponding to an identifier, renaming an identifier, an empty command, etc. One or more of these changes may be made sequentially and may be called transactions. The 300 shipment file may contain unique

Ге) ідентифікатори цих транзакцій. Транзакції можуть бути записані у файлі З00 відправки у тому порядку, в якому 5р Вони здійснені у локальній базі даних 200. Додатково, для транзакцій, що містять більше однієї зміни, зміни ве можуть бути записані всередині транзакції у тому порядку, в якому вони здійснені у локальній базі даних 200. 4) В основному, ідентифікатори транзакцій можуть призначатися транзакціям у випадковому порядку. Тобто, ідентифікатори транзакцій не обов'язково монотонно зростають у часі. Наприклад, дві послідовні транзакції можуть мати ідентифікатори транзакцій 10004 і наступний за ним 10002. Відповідно, черговість здійснення ов транзакції може бути визначена її розміщенням у поточному файлі 300-Е або її розміщенням у попередньому файлі 300-(Е-1). В основному, для повного завершення оновлення віддаленої бази даних із застосуваннямGe) identifiers of these transactions. Transactions may be recorded in the dispatch file 200 in the order in which they were committed in the local database 200. Additionally, for transactions containing more than one change, the changes may be recorded within the transaction in the order in which they were committed in local database 200. 4) Basically, transaction identifiers can be assigned to transactions in a random order. That is, transaction identifiers do not necessarily grow monotonically over time. For example, two consecutive transactions can have transaction identifiers 10004 and the next one 10002. Accordingly, the sequence of execution of this transaction can be determined by its placement in the current file 300-E or its placement in the previous file 300-(E-1). Basically, to completely complete the update of the remote database with the application

Ф) одного файлу відправки, транзакції не можуть охоплювати сусідні файли 300. Це запобігає перериванню ка оновлення через мережну затримку, яка може привести до помилкових даних у віддаленій базі даних 210.F) of one send file, transactions cannot span neighboring files 300. This prevents updates from being interrupted by network latency, which could lead to erroneous data in the remote database 210.

Фіг.5 зображає файл ініціалізації 310 відправки, відповідно до варіанту здійснення даного винаходу. Поля во файлу ініціалізації 310 відправки можуть включати в себе, наприклад, ідентифікатор 500 файлу, час 502 формування файлу, кількість 504 транзакцій М у файлі, повний розмір 506 файлу, контрольну суму 508 або будь-який подібний індикатор контролю помилок і копію 516 (даних) повної локальної бази даних. Файл ініціалізації 310 відправки може додатково містити поле 510, що є ідентифікатором 400 файлу останнього файлуFig. 5 depicts the initialization file 310 of the shipment, according to an embodiment of the present invention. Fields in the send initialization file 310 may include, for example, a file identifier 500 , a file creation time 502 , a number 504 of M transactions in the file, a full file size 506 , a checksum 508 or any similar error control indicator, and a copy 516 (data ) of the complete local database. The send initialization file 310 may further include a field 510 that is a file identifier 400 of the last file

З00 відправки, сформованого до формування файлу 310, і поле 512, що є ідентифікатором останньої транзакції, 65 фіксованої у локальній базі даних 200 до формування файлу ініціалізації 310 відправки. Дані у локальній та віддаленій базах даних 200, 210 можуть бути розподілені по таблицях, що резидентно зберігаються у базах даних 200, 210. Бази даних 200, 210 можуть підтримувати довільну кількість таблиць. Отже, коли база даних має таблиці, файл ініціалізації 310 відправки може містити для кожної таблиці поле, яке вказує кількість записів, зроблених у таблиці. Наприклад, база даних імен доменів може містити таблицю доменів і таблицю серверів доменних імен. Отже, файл ініціалізації відправки може містити поле, яке вказує кількість записів у таблиці доменів і поле, яке вказує кількість записів у таблиці серверів доменних імен. Поле може визначати, наприклад, ім'я таблиці, ключ, що використовується для індексування записів у таблиці, і кількість записів у таблиці. Додатково, файл ініціалізації 310 відправки може містити поле, яке вказує версію файлу ініціалізації 310 відправки, звичайно 1.0. Вказані поля файлу ініціалізації відправки є можливими варіантами, призначеними 7/0 для ілюстрації, але не обмеження, контексту варіантів здійснення даного винаходу. В файл ініціалізації 310 відправки може бути включене будь-яке поле, яке може бути корисним.Z00 of the shipment, formed before the formation of the file 310, and field 512, which is the identifier of the last transaction 65 fixed in the local database 200 before the formation of the initialization file 310 of the shipment. Data in the local and remote databases 200, 210 can be distributed across tables resident in the databases 200, 210. The databases 200, 210 can support any number of tables. Thus, when the database has tables, the initialization file 310 of the shipment may contain, for each table, a field that indicates the number of entries made to the table. For example, a domain name database might contain a table of domains and a table of domain name servers. Therefore, the send initialization file may contain a field that indicates the number of entries in the domain table and a field that indicates the number of entries in the domain name server table. The field can specify, for example, the name of the table, the key used to index the records in the table, and the number of records in the table. Additionally, the send initialization file 310 may contain a field that indicates the version of the send initialization file 310 , typically 1.0. The specified send initialization file fields are possible variants intended 7/0 to illustrate, but not limit, the context of embodiments of the present invention. Any field that may be useful may be included in the initialization file 310 of the shipment.

Як зазначено вище, файл ініціалізації 310 відправки може містити, наприклад, копію повної локальної бази даних 200, уніфіковану за зчитуванням даних. Файл ініціалізації 310 відправки може стати уніфікованим з локальною базою даних 200 у момент часу ї між ів і Є, де їз є часом початку формування файлу ініціалізації 7/5 310 відправки, а Є є часом завершення формування. По суті, єдиною операцією, яка може з'явитися в файлі ініціалізації 310 відправки, є операція "додавання". Тобто, при формуванні файлу ініціалізації 310 відправки в нього можуть бути записані копії повної локальної бази даних 200 у момент часу Її. Отже, для запису локальної бази даних 200 в файл ініціалізації 310 відправки може бути виконана операція "додавання".As indicated above, the initialization file 310 of the shipment may contain, for example, a copy of the complete local database 200, unified by reading the data. The initialization file 310 of the shipment may become unified with the local database 200 at a time between iv and E, where iv is the start time of the formation of the initialization file 7/5 310 of the shipment, and E is the completion time of the formation. In fact, the only operation that can appear in the initialization file 310 of the shipment is the "add" operation. That is, when creating the initialization file 310 of sending, copies of the complete local database 200 at the time of It can be written into it. Therefore, an "add" operation can be performed to write the local database 200 to the initialization file 310 of the shipment.

Ідентифікатори можуть бути записані в файл ініціалізації 310 відправки у випадковому порядку. В іншому варіанті, за наявності зовнішніх ідентифікаторів, записи даних, на які є посилання, можуть бути записані до запису даних, що має посилання.The identifiers may be written to the initialization file 310 of the shipment in a random order. Alternatively, in the presence of external identifiers, the referenced data records may be written to the referenced data record.

Додавання полів 510 і 512 може забезпечувати файл ініціалізації 310 відправки деякою інформацією про файли 300 відправки, які можуть бути сформовані і передані у віддалену базу даних 210 під час формування файлу ініціалізації 310 відправки. Однак, формування файлу 300 відправки і формування файлу ініціалізації 310 сч Відправки можуть бути не пов'язані один з одним відносно відсутності залежності між ними при формуванні. Така структура і процес можуть запобігти менш ефективному підходу, при якому формування і застосування файлу і) відправки може бути припинене до завершення формування файлу ініціалізації відправки. При продовженні формування і застосування файлів 300 відправки під час формування файлу ініціалізації 310 відправки, як у варіанті здійснення даного винаходу, може здійснюватися суворий контроль помилок файлів З00 відправки, а с зо також накладення обмежень на віддалену базу даних 210, наприклад, можуть бути зроблені обмеження відносно однозначності або обмеження на зовнішні ідентифікатори. Накладення обмежень може захищати цілісність - даних у віддаленій базі даних 210 за допомогою відхилення транзакцій, що порушують реляційні моделі Ге! віддаленої бази даних 210. Наприклад, обмеження відносно однозначності може перешкоджати повторному збереженню у базі даних 210 одного і того ж ключа. (22)The addition of fields 510 and 512 can provide the initialization file 310 of the shipment with some information about the files 300 of the shipment that can be generated and transferred to the remote database 210 during the formation of the initialization file 310 of the shipment. However, the formation of the sending file 300 and the formation of the initialization file 310 of the Dispatch may not be related to each other due to the lack of dependence between them during formation. Such a structure and process can prevent a less efficient approach, in which the formation and application of the i) sending file can be terminated before the completion of the formation of the sending initialization file. When continuing to generate and apply the shipment files 300 during the formation of the shipment initialization file 310, as in an embodiment of the present invention, strict error control of the shipment files 300 can be performed, as well as the imposition of restrictions on the remote database 210, for example, restrictions can be made relative to uniqueness or restriction to external identifiers. The imposition of restrictions can protect the integrity of the data in the remote database 210 by rejecting transactions that violate the relational model of Ge! of the remote database 210. For example, a restriction on uniqueness may prevent the repeated storage of the same key in the database 210. (22)

На Фіг.б6 представлена часова діаграма, що ілюструє формування файлу відправки та файлу ініціалізації ї- відправки, відповідно до варіанту здійснення даного винаходу. Відповідно до Фіг.б, файли 300 відправки (з 8-1 по 8і-21) формуються з регулярними інтервалами часу. В альтернативному варіанті здійснення файли 300 відправки можуть формуватися з нерегулярними інтервалами часу. У загальному випадку, формування файлу відправки не займає інтервал часу повністю. Наприклад, якщо файли формуються у 5-хвилинні інтервали часу, « то для завершення формування файлу не потрібно повністю 5 хвилин. Додатково, якщо у локальній базі даних з с 200 проводяться зміни під час формування файлу 300 відправки, то ці зміни будуть зібрані у наступному файліFig.b6 shows a timing diagram illustrating the formation of a sending file and a sending initialization file, according to an embodiment of the present invention. According to Fig. b, files 300 of sending (from 8-1 to 8i-21) are formed at regular time intervals. In an alternative embodiment, the sending files 300 may be generated at irregular time intervals. In the general case, the formation of the sending file does not occupy the time interval completely. For example, if the files are generated in 5-minute time intervals, then it does not take the entire 5 minutes to complete the file generation. Additionally, if changes are made to the local database from c 200 during the generation of the shipment file 300, then these changes will be collected in the next file

З00 відправки. Наприклад, якщо формування файлу відправки 5/-4 починається о 12:05:00 і завершується о з 12:05:02, то будь-які зміни у локальній базі даних 200, здійснені між 12:05:00 і 12:05:02, збираються у файл відправки 51-5 (наприклад, 300-5), який охоплює інтервал часу з 12:05:00 до 12:10:00.From 00 of sending. For example, if the generation of shipment file 5/-4 starts at 12:05:00 and ends at 12:05:02, then any changes to local database 200 made between 12:05:00 and 12:05: 02, are collected into a dispatch file 51-5 (eg 300-5), which covers the time interval from 12:05:00 to 12:10:00.

Фігб ілюструє файли 300-5 і 300-19 відправки. У вказаних файлах, серед інших полів, зображені -І ідентифікатор 601 файлу (51-5, 8і-19), час 603 формування файлу, та ідентифікатори 605 транзакцій (наприклад, 10002). Слід зазначити, що ідентифікатори транзакцій можуть бути не впорядкованими монотонно. Як згадано ік вище, ідентифікатори транзакцій можуть мати довільні значення. Однак, безпосередньо відповідні транзакціїFig. 1 illustrates the 300-5 and 300-19 shipment files. In the specified files, among other fields, the identifier 601 of the file (51-5, 8i-19), the time 603 of the formation of the file, and the identifiers 605 of transactions (for example, 10002) are depicted. It should be noted that transaction identifiers may not be monotonically ordered. As mentioned above, transaction identifiers can have arbitrary values. However, directly related transactions

Ге) записані у файл З00 відправки у порядку, в якому вони здійснені у локальній базі даних 200.Ge) are recorded in file Z00 of shipments in the order in which they were made in the local database 200.

Оскільки формування файлу ініціалізації 310 відправки і формування файлу 300 відправки можуть бути не ве пов'язані, то файл ініціалізації 310 відправки може формуватися у будь-який момент часу. Наприклад, файл 4) ініціалізації 310 відправки може формуватися до, протягом або після формування файлу 300 відправки. Фіг.б ілюструє файл ініціалізації 310 відправки, що формується у проміжок часу між формуванням четвертого і п'ятого файлів відправки (наприклад, 1-4 і 8-5).Since the formation of the initialization file 310 of the shipment and the formation of the file 300 of the shipment may not be connected, the initialization file 310 of the shipment may be formed at any time. For example, the file 4) of the initialization 310 of the shipment can be formed before, during or after the formation of the file 300 of the shipment. Fig. b illustrates the initialization file 310 of the shipment, which is formed in the time interval between the formation of the fourth and fifth files of the shipment (for example, 1-4 and 8-5).

У варіанті здійснення файл ініціалізації 310 відправки може, серед інших полів, містити ідентифікатор 610 файлу (іві-1), ідентифікатор 615 файлу для останнього файлу відправки, сформованого перед формуваннямIn an embodiment, the initialization file 310 of the shipment may contain, among other fields, a file identifier 610 (ivy-1), a file identifier 615 for the last shipment file generated before the generation

Ф) файлу ініціалізації відправки, та ідентифікатор 620 транзакції для останньої транзакції, завершеної перед ка формуванням файлу ініціалізації відправки. У даному можливому варіанті останнім сформованим файлом відправки є файл відправки 5/-4, а останньою завершеною транзакцією є транзакція 10001. Формування файлу бо ініціалізації 310 відправки починається 611 о 12:07:29. Коли починається формування файлу ініціалізації 310 відправки, перша половина транзакцій у файлі 300-5 відправки (1-5), транзакції 10002, 10005 і 10001 були вже завершені у локальній базі даних 200. Відповідно, файл ініціалізації 310 відправки може мати інформацію про дані транзакції і може зібрати дані транзакції в файлі ініціалізації 310 відправки. Однак, файл ініціалізації 310 відправки не може мати інформації про подальші транзакції 10003 і 10004, які здійснюються після початку 65 формування файлу ініціалізації відправки.F) the initialization file of the shipment, and the identifier 620 of the transaction for the last transaction completed before the formation of the initialization file of the shipment. In this possible embodiment, the last generated send file is send file 5/-4, and the last completed transaction is transaction 10001. The initialization bo file 310 of the send starts 611 at 12:07:29. When the generation of the shipment initialization file 310 begins, the first half of the transactions in the shipment file 300-5 (1-5), transactions 10002, 10005, and 10001 have already been completed in the local database 200. Accordingly, the shipment initialization file 310 may have information about the transaction data and may collect the transaction data in the send initialization file 310 . However, the initialization file 310 of sending cannot have information about further transactions 10003 and 10004, which are carried out after the beginning 65 of the formation of the initialization file of sending.

При формуванні файлу ініціалізації 310 відправки файли відправки, починаючи з файлу 300-5 відправки,When forming the initialization file 310 of the shipment, the shipment files, starting with the file 300-5 of the shipment,

можуть продовжувати формуватися з регулярними інтервалами часу. Дані файли можуть передаватися віддаленій базі даних 210 і застосовуватися.may continue to form at regular time intervals. These files can be transferred to the remote database 210 and applied.

Формування файлу ініціалізації 310 відправки може бути завершене о 1:15:29, у проміжку часу між формуванням 18-го і 19-го файлів З00 відправки (51-18 і 81-19), ії не може впливати на формування 19-го файлу 300-19 відправки.The formation of the initialization file 310 of the shipment can be completed at 1:15:29, in the time interval between the formation of the 18th and 19th files Z00 of the shipment (51-18 and 81-19), it cannot affect the formation of the 19th file 300-19 dispatches.

Після одержання і завантаження у віддаленій базі даних 210 файлу ініціалізації 310 відправки віддалена база даних 210 може не враховувати файли відправки, сформовані до формування файлу ініціалізації 310 відправки. Це можливо, наприклад, внаслідок того, що файл ініціалізації 310 відправки містить всі зміни у 70 локальній базі даних 200, які були записані у попередні файли 300 відправки. У цьому можливому варіанті віддаленій базі даних 210 може не бути потрібним враховувати файли відправки з першого по четвертий (з 51-1 по 8/-4). Зміни, записані у даних файлах відправки, з 851-1 по 81-4, також можуть бути записані в файлі ініціалізації 310 відправки. Вказані попередні файли відправки (з 51-1 по 51-4) можуть бути видалені або, в іншому варіанті, заархівовані.After receiving and loading in the remote database 210 the initialization file 310 of the shipment, the remote database 210 may not take into account the shipment files formed before the formation of the initialization file 310 of the shipment. This is possible, for example, due to the fact that the initialization file 310 of the shipment contains all the changes in the 70 local database 200 that were written to the previous files 300 of the shipment. In this possible embodiment, the remote database 210 may not need to consider the first through fourth shipment files (51-1 through 8/-4). The changes recorded in these shipment files 851-1 through 81-4 may also be recorded in the initialization file 310 of the shipment. The specified previous sending files (from 51-1 to 51-4) can be deleted or, alternatively, archived.

Аналогічно, віддалена база даних 210 може не враховувати транзакції, завершені до формування файлу ініціалізації 310 відправки, які були включені у файл 300 відправки, сформований згодом. Дані транзакції можуть бути включені в файл ініціалізації 310 відправки при його формуванні. Наприклад, тому віддаленій базі даних 210 може не бути потрібним враховувати перші три транзакції 10002, 10005, 10001 з файлу відправки в51-5.Similarly, the remote database 210 may not consider transactions completed prior to the formation of the initialization file 310 of the shipment that were included in the file 300 of the shipment generated subsequently. Transaction data may be included in the initialization file 310 of the shipment when it is generated. For example, therefore, the remote database 210 may not need to consider the first three transactions 10002, 10005, 10001 from the shipment file v51-5.

Дані транзакції, записані у файл відправки 5-5, можуть також бути записані в файлі ініціалізації 310 Відправки. Дані завершені транзакції можуть бути видалені, або в іншому варіанті, заархівовані.The transaction data written to the sending file 5-5 may also be written to the initialization file 310 Sending. These completed transactions may be deleted, or alternatively, archived.

На Фіг.7 представлена блок-схема варіанту здійснення даного винаходу, в якому можуть бути сформовані файли оновлення локальної бази даних. Система може формувати (705) декілька періодичних оновлень, що базуються на додаткових змінах у локальній базі даних. Кожне оновлення може містити одну або більшу кількість транзакцій. Потім система може передати (710) періодичні оновлення у віддалену базу даних. При формуванні сч ов періодичних оновлень, система може почати формувати (715) оновлення ініціалізації у момент часу запуску.Figure 7 shows a block diagram of an embodiment of this invention in which local database update files can be created. The system may generate (705) several periodic updates based on additional changes in the local database. Each update can contain one or more transactions. The system may then transmit (710) periodic updates to the remote database. When generating periodic update logs, the system may start generating (715) initialization updates at startup time.

Оновлення ініціалізації може містити версію повної локальної бази даних. Система може визначити (720) останнє і) періодичне оновлення, сформоване до моменту часу запуску, і останню транзакцію, завершену до моменту часу запуску. Потім система може передати (725) оновлення ініціалізації у віддалену базу даних. Оновлення ініціалізації може містити ідентифікатор оновлення, що відповідає останньому сформованому періодичному с зо оновленню, та ідентифікатор транзакції, що відповідає останній завершеній транзакції.The initialization update may contain a version of the full local database. The system may determine (720) the last i) periodic update generated prior to the trigger time and the last transaction completed prior to the trigger time. The system may then transmit (725) the initialization update to the remote database. The initialization update may contain an update ID corresponding to the last periodic update generated and a transaction ID corresponding to the last completed transaction.

Наприклад, ОЇ ТР 140 може формувати (705) файли 300 відправки з деяким регулярним або нерегулярним - інтервалом часу. Потім ОЇ ТР 140 може передати (710) файли 300 відправки у віддалену базу даних 210. При Ге! формуванні файлів З00 відправки, ОЇ ТР 140 може почати формування (715) файлу ініціалізації 310 відправки у момент часу 611 запуску. Файл ініціалізації 310 відправки може містити копію повної локальної бази даних 200. ме)For example, ОИ ТР 140 may form (705) files 300 of sending with some regular or irregular time interval. Then ОИ TR 140 can transmit (710) the files 300 of the shipment to the remote database 210. At Ge! formation of files З00 of sending, ОИ ТР 140 can start formation (715) of initialization file 310 of sending at the moment of time 611 of launch. The initialization file 310 of the shipment may contain a copy of the complete local database 200. me)

Потім ОЇ ТР 140 може визначити (720) останній файл 300 відправки, сформований до моменту часу 611 запуску ї- для формування файлу ініціалізації 310 відправки, і останню транзакцію, завершену до моменту часу 611 зануску для формування файлу ініціалізації 310 відправки. Потім ОЇ ТР 140 може передати (725) файл ініціалізації 310 відправки у віддалену базу даних 210. Файл ініціалізації 310 відправки може містити ідентифікатор 615 файлу відправки, що відповідає останньому сформованому файлу 300 відправки, та ідентифікатор транзакції 620, що «Then ОИ ТР 140 can determine (720) the last file 300 of the shipment, formed before the moment of time 611 of starting it- to form the initialization file 310 of sending, and the last transaction completed before the moment of time 611 of the trigger for forming the initialization file 310 of sending. The OI TR 140 may then transfer (725) the dispatch initialization file 310 to the remote database 210. The dispatch initialization file 310 may contain a dispatch file identifier 615 corresponding to the last generated dispatch file 300 and a transaction identifier 620 that "

Відповідає останній завершеній транзакції. з с На Фіг.8 представлена блок-схема варіанту здійснення даного винаходу, в якому віддалена база даних може одержувати файли оновлень з локальної бази даних. Система може одержати (805) декілька періодичних ;» оновлень. Кожне оновлення може містити одну або більшу кількість транзакцій. Періодичні оновлення можуть бути одержані окремо або у пакетах. У деякий момент часу система може одержати (810) оновлення ініціалізації.Corresponds to the last completed transaction. 8 shows a block diagram of an embodiment of the present invention in which a remote database can receive update files from a local database. The system can receive (805) several periodic ;" updates Each update can contain one or more transactions. Periodic updates can be received individually or in packages. At some point in time, the system may receive (810) an initialization update.

Оновлення ініціалізації може містити версію повної локальної бази даних. Система може зчитати (815) з -І оновлення ініціалізації ідентифікатор останнього періодичного оновлення і ідентифікатор останньої транзакції.The initialization update may contain a version of the full local database. The system can read (815) from the initialization update the identifier of the last periodic update and the identifier of the last transaction.

Потім система може визначити (820) останнє періодичне оновлення, яке відповідає ідентифікатору оновлення, і ік останню транзакцію, яка відповідає ідентифікатору транзакції. Періодичне оновлення і транзакція можуть бути,The system can then determine (820) the last periodic update that corresponds to the update ID and the last transaction that corresponds to the transaction ID. Periodic update and transaction can be,

Ге) відповідно, останнім сформованим оновленням і останньою завершеною транзакцією до формування оновлення бо ініціалізації. Система може застосувати (825) до віддаленої бази даних незавершені транзакції, що залишилися, пи у відповідному періодичному оновленні. Потім система може застосувати (830) до віддаленої бази даних 4) періодичні оновлення, що залишилися, сформовані після останнього періодичного оновлення. Застосування оновлення ініціалізації, переважно, заповнює будь-які раніше втрачені періодичні оновлення.Ge) respectively, the last formed update and the last completed transaction before the formation of the update or initialization. The system may apply (825) the remaining pending transactions to the remote database in an appropriate periodic update. The system may then apply (830) to the remote database 4) the remaining periodic updates generated after the last periodic update. Applying an initialization update will preferably fill in any previously missed periodic updates.

Наприклад, ШЕ 100 може одержати (805) файли 300 відправки з деяким регулярним або нерегулярним дв інтервалом часу. Файли 300 відправки можуть бути одержані окремо або у пакетах. У деякий момент часу | ОЕ 100 може одержати (810) файл ініціалізації 310 відправки. (ШОЕ 100 може зчитати (815) з файлу ініціалізаціїFor example, SHE 100 may receive (805) files 300 sent at some regular or irregular time interval. 300 shipment files can be received individually or in packages. At some point in time | OE 100 can receive (810) initialization file 310 of sending. (SOE 100 can read (815) from the initialization file

Ф) 310 відправки ідентифікатор 615 файлу відправки та ідентифікатор 620 транзакції. Потім І(ОЕ 100 може ка визначити (820) файл 300 відправки, що відповідає ідентифікатору 615 файлу відправки, і транзакцію 605, яка відповідає ідентифікатору 620 транзакції. Файл відправки і транзакція можуть бути, відповідно, останнім бо сформованим файлом відправки і останньою завершеною транзакцією до формування файлу ініціалізації 310 відправки. (ОЕ 100 може застосувати (825) до віддаленої бази даних 210 незавершені транзакції 605, що залишилися, у відповідному файлі З00 відправки. Потім | ШЕ 100 може застосувати (830) до віддаленої бази даних 210 файли 300 відправки, що залишилися, які йдуть за останнім файлом відправки 5-4.F) 310 sending identifier 615 of the sending file and identifier 620 of the transaction. The IO 100 may then determine (820) the send file 300 corresponding to the send file identifier 615 and the transaction 605 corresponding to the transaction identifier 620. The send file and the transaction may be, respectively, the last sent file generated and the last completed transaction before forming the initialization file 310 of the shipment. , remaining following the last send file 5-4.

В альтернативному варіанті здійснення, наприклад, (ШЕ 100 може відкинути або заархівувати файли 300 65 відправки, які не були застосовані до віддаленої бази даних 210, і/або мають час 603 формування до часу 611 формування файлу ініціалізації відправки. Відкинуті або заархівовані файли 300 відправки можуть включати в себе файл відправки 51-4, що відповідає ідентифікатору 615 файлу відправки.In an alternative embodiment, for example, the SHE 100 may discard or archive the send files 300 65 that have not been applied to the remote database 210 and/or have a generation time 603 prior to the generation time 611 of the send initialization file. The discarded or archived send files 300 may include a shipment file 51-4 corresponding to a shipment file identifier 615.

Зрозуміло, що після застосування файлу ініціалізації 310 відправки будь-які більш пізні файли 300 відправки, які могли бути вже застосовані до віддаленої бази даних 210, можуть не зберегтися, оскільки віддалена база даних 210 може стати уніфікованою за зчитуванням з файлом ініціалізації 310 відправки.It is understood that after the application of the initialization file 310 of the shipment, any later files 300 of the shipment that may have already been applied to the remote database 210 may not be preserved, because the remote database 210 may become read-unified with the initialization file 310 of the shipment.

Відповідно, ці більш пізні файли 300 відправки можуть бути застосовані повторно.Accordingly, these later shipment files 300 can be reused.

У варіанті здійснення даного винаходу, файли 300 відправки та файл ініціалізації 310 відправки можуть передаватися з локальної бази даних 200 у віддалену базу даних 210 без повідомлення про успішне одержання даних, тобто, без сигналу АСК/МАСК для вказування того, що файли були успішно одержані. Це, переважно, 7/0 скорочує додаткову службову сигналізацію, яку може створювати сигнал АСК/МАСК.In an embodiment of the present invention, the send files 300 and the send initialization file 310 can be transferred from the local database 200 to the remote database 210 without a message about the successful receipt of the data, that is, without an ASK/MASK signal to indicate that the files have been successfully received. This mainly 7/0 reduces the additional service signaling that the ASK/MASK signal can create.

В альтернативному варіанті здійснення з віддаленої бази даних 210 може передаватися сигнал АСК/МАСК для вказування того, що файли успішно одержані. У цьому варіанті здійснення сигнал АСК/МАСК може передаватися у системах з ненадійним зв'язком.In an alternative embodiment, an ASK/MASK signal may be transmitted from the remote database 210 to indicate that the files have been successfully received. In this embodiment, the ASK/MASK signal can be transmitted in systems with unreliable communication.

На Фіг.9 представлена блок-схема іншого варіанту здійснення даного винаходу, в якому система може перевіряти достовірність файлів оновлення, переданих з локальної бази даних і одержаних у віддаленій базі даних. Тут, система може передати (905) множину періодичних оновлень. Кожне оновлення може містити одну або більшу кількість транзакцій. Періодичні оновлення можуть бути передані окремо або у пакетах. У деякий момент часу система може передати (910) оновлення ініціалізації і застосувати оновлення ініціалізації до віддаленої бази даних. Оновлення ініціалізації може містити версію повної локальної бази даних. Спочатку го система, за допомогою порівняння баз даних, може ідентифікувати (915) розходження між локальною і віддаленою базами даних. Система може визначити (920), чи є розходження дійсними або помилковими. Потім система може застосувати (925) до віддаленої бази даних періодичні оновлення, відповідно до варіанту здійснення даного винаходу. Даний варіант здійснення, переважно, може забезпечувати відсутність помилок у віддаленій базі даних, що є результатом одержання оновлень з локальної бази даних. сFigure 9 is a block diagram of another embodiment of the present invention in which the system can verify the authenticity of update files transmitted from a local database and received in a remote database. Here, the system may transmit (905) a plurality of periodic updates. Each update can contain one or more transactions. Periodic updates can be delivered individually or in batches. At some point in time, the system may transmit (910) an initialization update and apply the initialization update to the remote database. The initialization update may contain a version of the full local database. First, the system, using database comparison, can identify (915) differences between local and remote databases. The system may determine (920) whether the discrepancies are valid or false. The system may then apply (925) periodic updates to the remote database, in accordance with an embodiment of the present invention. This version of the implementation, preferably, can ensure the absence of errors in the remote database, which is the result of receiving updates from the local database. with

Наприклад, ОЇ ТР 140 може передати (905) у віддалену базу даних 210 файли 300 відправки з деяким регулярним або нерегулярним інтервалом часу. Файли 300 відправки можуть бути передані окремо або у і) пакетах. У деякий момент часу ОЇ ТР 140 може передати (910) файл ініціалізації 310 відправки в ГЕ 100, і ГОє 100 може застосувати файл ініціалізації 310 відправки до віддаленої бази даних 210. ОЇ ТР 140 може порівняти локальну базу даних 200 з віддаленою базою даних 210 та ідентифікувати (915) розходження між ними. Потім с зо ОГТР 140 може визначити (920), чи є розходження дійсними або помилковими. Потім ОЇТР 140 може поінформувати ШЕ 100 для застосування (925) до віддаленої бази даних 210 файлів 300 відправки, відповідно « до варіанту здійснення даного винаходу. Потім (ШОЕ 100 може застосувати файли 300 відправки до віддаленої Ге! бази даних 210.For example, ОИ ТР 140 may transfer (905) to the remote database 210 the files 300 of the shipment with some regular or irregular time interval. The 300 shipment files can be sent individually or in i) packages. At some point in time, the UE TR 140 may transmit (910) the send initialization file 310 to the GE 100, and the UE 100 may apply the send initialization file 310 to the remote database 210. The UE TR 140 may compare the local database 200 with the remote database 210 and identify (915) differences between them. The OGTR 140 can then determine (920) whether the variances are valid or false. The OITR 140 can then inform the SHE 100 to apply (925) to the remote database 210 of the shipment files 300, according to an embodiment of the present invention. Then, the SOE 100 can apply the send files 300 to the remote Ge! database 210.

В альтернативному варіанті здійснення система може застосовувати файли відправки та файл ініціалізації ме) відправки до ідентифікації і перевірки достовірності розходжень. У вигляді іншого варіанту система може ї- застосовувати файли відправки та файл ініціалізації відправки після ідентифікації і перевірки достовірності розходжень.In an alternative embodiment, the system can use the shipment files and the shipment initialization file to identify and validate discrepancies. As another option, the system can use the shipment files and the shipment initialization file after identifying and verifying the authenticity of discrepancies.

Зрозуміло, що процес перевірки достовірності може бути виконаний на будь-яких даних, переданих з джерела в адресат через мережу зв'язку для застосування переданих даних до адресата. «It is understood that the authentication process can be performed on any data transmitted from the source to the addressee through the communication network to apply the transmitted data to the addressee. "

На Фіг.10А представлена блок-схема варіанту здійснення перевірки достовірності файлу відправки та файлу пе) с ініціалізації відправки, відповідно до даного винаходу. Після передачі у віддалену базу даних декількох періодичних оновлень та оновлення ініціалізації система може перевірити достовірність даних оновлень. Кожне ;» оновлення може містити одну або більшу кількість транзакцій, виконаних у локальній базі даних. Кожна транзакція може містити одну або більшу кількість подій. Подія є дією або можливим здійсненням у базі даних, наприклад, додавання, зміни, видалення і т.д., відносно даних у базі даних. -І Спочатку система може порівняти (1000) запис у віддаленій базі даних з відповідним записом у локальній базі даних. Система може сформувати (1005) виключення, що описує розходження між записами віддаленої і і, локальної баз даних, причому виключення може бути сформоване для кожного розходження. РозходженнямFig. 10A shows a block diagram of a variant of the verification of the authenticity of the sending file and the sending initialization file, according to the present invention. After sending several periodic updates and initialization updates to the remote database, the system can verify the validity of the update data. Every;" an update may contain one or more transactions performed in the local database. Each transaction can contain one or more events. An event is an action or possible execution in a database, such as adding, changing, deleting, etc., with respect to data in the database. -And First, the system can compare (1000) records in the remote database with the corresponding record in the local database. The system may generate (1005) an exception describing the discrepancy between the records of the remote and local databases, and the exception may be generated for each discrepancy. Differences

Ге) може бути будь-яка відмінність, щонайменше, в одному значенні даних між двома версіями одного запису.Ge) there can be any difference in at least one data value between two versions of the same record.

Наприклад, у локальній базі даних може бути запис даних (12345, хуг.сот, 123.234.345). Відповідний запис пи даних у віддаленій базі даних, яка передбачається ідентичною, може відповідати (12345, арс.сот, 123.234.345). 4) Відповідно, у другому значенні даних запису є розходження. Отже, варіант здійснення даного винаходу може сформувати виключення, яке описує вказане розходження. Виключення може описувати розходження, просто вказуючи на те, що є розходження; визначаючи місцеположення розходження; описуючи відмінність між двома ов Значеннями даних при розходженні і т.д. Запис даних у локальній базі даних відповідає запису даних у віддаленій базі даних (і навпаки), якщо два записи обов'язково містять ідентичні дані. (Ф) Зрозуміло, що розходження може відноситися до відмінності в одному або більшій кількості значень даних й ка записі або до запису загалом.For example, there may be a data entry in the local database (12345, khug.sot, 123.234.345). The corresponding record of pi data in the remote database, which is supposed to be identical, can correspond to (12345, ars.sot, 123.234.345). 4) Accordingly, there is a discrepancy in the second value of the record data. Therefore, an embodiment of the present invention may form an exception that describes the specified difference. An exception can describe a difference by simply indicating that there is a difference; determining the location of the divergence; describing the difference between two data values when diverging, etc. A record of data in the local database corresponds to a record of data in the remote database (and vice versa) if the two records necessarily contain identical data. (F) It is understood that a discrepancy may refer to a difference in one or more data values within a record or to a record in general.

Система може зіставити (1010) кожному виключенню ідентифікатор виключення, причому ідентифікатор бо Виключення може відповідати ідентифікатору запису. Наприклад, запис даних (12345, хул.сот, 123.234.345) може мати ідентифікатор 410. Відповідно, ідентифікатором виключення може бути також 410. Кожне виключення може бути класифіковане як таке, що належить будь-якому з декількох видів виключень (або розходжень). Може бути сформований список виключень для включення в нього видів виключень та ідентифікатора виключення для згрупованих там виключень. Список виключень і різні види виключень детально описані нижче. Система також б5 Може зіставити (1015) кожній події в оновленні ідентифікатор події, причому ідентифікатор події може відповідати ідентифікатору запису. Наприклад, запис даних (12345, хул.сот, 123.234.345) може мати ідентифікатор 410. Відповідно, ідентифікатором події може бути також а10. Кожна подія в оновленні може бути знайдена з передісторії подій. Передісторією подій може бути лістинг і т.д. подій, виконані на записах локальної бази даних за деякий період часу. Передісторія подій детально описана нижче.The system may assign (1010) to each exception an exception identifier, where the exception identifier may correspond to a record identifier. For example, a data record (12345, hul.sot, 123.234.345) might have an identifier of 410. Accordingly, an exception identifier might also be 410. Each exception can be classified as belonging to any of several types of exceptions (or discrepancies) . An exception list can be generated to include exception types and an exception ID for the exceptions grouped there. The list of exclusions and the different types of exclusions are detailed below. The system may also assign (1015) to each event in the update an event ID, where the event ID may correspond to a record ID. For example, the data record (12345, hul.sot, 123.234.345) can have the identifier 410. Accordingly, the event identifier can also be a10. Each event in the update can be found from the event history. The background of events can be a listing, etc. events performed on local database records over a period of time. The background of the events is detailed below.

Потім система може визначити (1020), чи є оновлення запису достовірним. На Фіг.10В8 представлена блок-схема варіанту здійснення визначення перевірки достовірності. Дане визначення може бути зроблене наступним чином. Може бути здійснене порівняння (1022) кожної події з кожним виключенням. Якщо кожне виключення підтверджене (1024) подією, то оновлення може бути визначене (1026), як достовірне, і дане оновлення може бути застосоване до віддаленої бази даних. Інакше, якщо кожне виключення не підтверджене 7/0. Й1024) подією, то оновлення може бути визначене (1028), як недостовірне, і виключення можуть реєструватися як помилки. Виключення може бути підтвердженим, коли ідентифікатору виключення відповідає ідентифікатор події, і відповідна подія відповідає достовірній послідовності подій, що відповідають виду виключення. Достовірні послідовності детально описані нижче. Якщо виключення підтверджене, то система може видалити ідентифікатор виключення зі списку виключень. Підтверджене виключення може вказувати, що розходження є 7/5 достовірним, наприклад, віддалена база даних ще не одержала оновлення, але при одержанні оновлення дійсно буде відповідати локальній базі даних.The system can then determine (1020) whether the record update is valid. Fig. 10B8 shows a block diagram of a variant of the implementation of the determination of the authenticity check. This definition can be made as follows. A comparison (1022) of each event with each exception may be made. If each exception is confirmed (1024) by an event, then the update can be determined (1026) as valid and the given update can be applied to the remote database. Otherwise, unless each exception is confirmed 7/0. Y1024) event, then the update may be determined (1028) as invalid, and exceptions may be logged as errors. An exception may be confirmed when the exception identifier matches the event identifier and the corresponding event corresponds to a valid sequence of events corresponding to the exception type. Valid sequences are detailed below. If the exclusion is confirmed, the system can remove the exclusion ID from the list of exclusions. A confirmed exception might indicate that the discrepancy is 7/5 true, for example, the remote database has not yet received an update, but when an update is received it will indeed match the local database.

При перевірці достовірності система може ідентифікувати приховані помилки або збої у періодичному оновленні та оновленнях ініціалізації. Система може забезпечувати можливість структурної і семантичної коректності даних оновлення, можливість успішного застосування даних оновлення, яке не викликає формування виключень або іншої небажаної зупинки, можливість точного виявлення помилок при порівнянні локальної і віддаленої баз даних між собою, і неможливість випадкового видалення значимих даних. Система може забезпечувати можливість успішного застосування до віддаленої бази даних періодичного оновлення та оновлень ініціалізації.During validation, the system may identify hidden errors or failures in periodic update and initialization updates. The system can provide the possibility of structural and semantic correctness of update data, the possibility of successful application of update data that does not cause the formation of exceptions or other unwanted stops, the possibility of accurate detection of errors when comparing local and remote databases with each other, and the impossibility of accidental deletion of significant data. The system can ensure that periodic updates and initialization updates are successfully applied to the remote database.

Переважно, при перевірці достовірності може бути виявлено багато помилок, що виникають при спробі сч г Застосування оновлення до віддаленої бази даних. Наприклад, при спробі застосування можуть виявлятися помилки централізації даних, попередження про те, що об'єкт вже існує у віддаленій базі даних, або (8) попередження про те, що є порушення зовнішнього ідентифікатора. Отже, після виконання процесу перевірки достовірності відповідно до варіанту здійснення даного винаходу, система може зробити спробу застосування вказаних оновлень до віддаленої бази даних. Спроба може бути неуспішною, що може вказувати на наявністьв (У зо оновленнях додаткових помилок, які роблять оновлення недостовірним. Відповідно, додаткові спроби застосування вказаних оновлень до віддаленої бази даних не можуть бути здійснені. -Most importantly, validation may reveal many errors that occur when trying to apply an update to a remote database. For example, an attempted application may encounter data centralization errors, warnings that the object already exists in the remote database, or (8) warnings that there is an external identifier violation. Therefore, after performing the validation process in accordance with an embodiment of the present invention, the system may attempt to apply said updates to the remote database. The attempt may fail, which may indicate the presence of additional errors in the updates that make the update invalid. Accordingly, additional attempts to apply the specified updates to the remote database cannot be made. -

В альтернативному варіанті здійснення до виконання перевірки достовірності може бути зроблена спроба Ге! застосувати, щонайменше, одне з оновлень. Якщо спроба є неуспішною, то перевірка достовірності може бути пропущена і оновлення відкинуто. З іншого боку, якщо спроба є успішною, то може бути виконана перевірка Ме з5 достовірності, і достовірне оновлення зберігається, а для недостовірного оновлення реєструються розходження. чаIn an alternative implementation, an attempt can be made before performing the validation. apply at least one of the updates. If the attempt is unsuccessful, the validation may be skipped and the update rejected. On the other hand, if the attempt is successful, a Mez5 validity check can be performed and the valid update is saved, and discrepancies are logged for the invalid update. Cha

У можливому варіанті здійснення ОЇ ТР 140 може здійснювати перевірку достовірності файлів З00 відправки та файлів ініціалізації 310 відправки для забезпечення успішного застосування до віддаленої бази даних 210 файлів 300 відправки та файлів ініціалізації 310 відправки.In a possible variant of the implementation of the OI TR 140 can perform an authentication of the sending files З00 and the sending initialization files 310 to ensure the successful application to the remote database 210 of the sending files 300 and the sending initialization files 310 .

В альтернативних варіантах здійснення перевірку достовірності можуть виконувати мережні комп'ютери 121, «In alternative embodiments, authentication can be performed by network computers 121, “

МЕ 100 або будь-яка комбінація існуючих систем. в с Відповідно до Фіг.10А, ОЇ ТР 140 може порівняти локальну базу даних 200 і віддалену базу даних 210 для визначення будь-яких виключень (або розходжень) між ними. Виключення можуть включати три види: у з віддаленій базі даних 210 можуть існувати дані, які відсутні у локальній базі даних 200; у локальній базі даних 200 можуть існувати дані, які відсутні у віддаленій базі даних 210; або відповідні дані можуть існувати і у локальній базі даних 200, і у віддаленій базі даних 210, але дані "можуть відрізнятися. Безумовно, -І відповідні дані можуть існувати і у локальній базі даних 200, і у віддаленій базі даних 210, і дані можуть бути ідентичними, у цьому випадку дані можуть вважатися достовірними, отже, від ОЇ ТР 140 не потрібно ніякої се) додаткової обробки.ME 100 or any combination of existing systems. in c According to Fig. 10A, OY TR 140 can compare the local database 200 and the remote database 210 to determine any exceptions (or discrepancies) between them. Exceptions can include three types: in the remote database 210 there may be data that is not in the local database 200; the local database 200 may contain data that is not present in the remote database 210; or the corresponding data may exist in both the local database 200 and the remote database 210, but the data "may be different. Of course, -And the corresponding data may exist in both the local database 200 and the remote database 210, and the data may be identical, in this case the data can be considered reliable, therefore, no additional processing is required from ОИ ТР 140.

Ге) Зрозуміло, що розходження може відноситися до одного або більшої кількості значень даних у записі або доGe) It is clear that the discrepancy may refer to one or more data values in the record or to

Запису загалом. пи Відповідно, ОЇ ТР 140 може порівняти (1000) відповідні записи у локальній базі даних 200 і віддаленій базі 4) даних 210. ОЇ ТР 140 може сформувати (1005) виключення, яке описує розходження між записом у віддаленій базі даних 210 і записом у локальній базі даних 200, причому виключення може бути сформоване для кожного розходження. ОЇ ТР 140 може зіставити (1010) кожному виключенню ідентифікатор виключення, причому в ідентифікатор виключення може відповідати ідентифікатору запису. Може бути сформований список виключень для включення видів виключень та ідентифікатора виключення для виключення, що належить до даного видуRecording in general. п Accordingly, ОИ ТР 140 may compare (1000) corresponding entries in the local database 200 and remote 4) database 210. ОИ ТР 140 may generate (1005) an exception that describes the discrepancy between the entry in the remote database 210 and the entry in the local database 200, and an exception can be generated for each discrepancy. ОИ TR 140 may assign (1010) to each exception an exception identifier, and the exception identifier may correspond to a record identifier. An exception list can be generated to include the exception types and the exception ID for the exception belonging to the type

Ф) виключення. У варіанті здійснення виключення може бути визначене, як виключення (або розходження) "Списку ка 1", якщо виключення належить до першого виду виключень, виключення "Списку 2", якщо виключення належить до другого виду виключень, або виключення "Списку 3", якщо виключення належить до третього виду виключень. бо Фіг11 ілюструє можливий список 1140 виключень.F) exclusion. In an embodiment, an exception may be defined as a "List 1" exception (or difference) if the exception belongs to the first type of exceptions, a "List 2" exception if the exception belongs to the second type of exceptions, or a "List 3" exception if exclusion belongs to the third type of exclusions. because Fig. 11 illustrates a possible list of 1140 exceptions.

Зрозуміло, що наявність ідентифікатора виключення у списку виключень не означає, що файл 300 відправки або файл ініціалізації 310 відправки не придатний, оскільки, наприклад, всі три види виключень можуть виникати обгрунтовано через затримку у часі між змінами у локальній базі даних 200 і оновленнями, що застосовуються до віддаленої бази даних 310. Така затримка, наприклад, може бути викликана 65 перевантаженням мережі зв'язку. По суті, перевірка достовірності може забезпечувати механізм" для виключення обгрунтованих виключень з помилкових даних.It is understood that the presence of an exception ID in the exception list does not mean that the send file 300 or the send initialization file 310 is not valid, since, for example, all three types of exceptions can reasonably occur due to a time delay between changes in the local database 200 and updates that apply to the remote database 310. Such a delay, for example, can be caused by 65 congestion of the communication network. In essence, robustness testing can provide a mechanism to exclude valid exceptions from erroneous data.

Для файлу ініціалізації 310 відправки, ОЇ ТР 140 може порівняти локальну базу даних 200 і віддалену базу даних 210 за допомогою виконання двонаправленого перегляду всіх таблиць в обох базах даних 200, 210.For the initialization file 310 of the shipment, the TR 140 can compare the local database 200 and the remote database 210 by performing a bidirectional lookup of all tables in both databases 200, 210.

Тобто, всі дані у локальній базі даних 200 можуть порівнюватися відносно всіх даних у віддаленій базі даних 210. Потім всі дані у віддаленій базі даних 210 можуть порівнюватися відносно всіх даних у локальній базі даних 200. Це, переважно, забезпечує всебічне порівняння баз даних 200, 210 для виявлення всіх розходжень.That is, all the data in the local database 200 can be compared against all the data in the remote database 210. Then all the data in the remote database 210 can be compared against all the data in the local database 200. This preferably provides a comprehensive comparison of the databases 200, 210 to identify all discrepancies.

Для файлу 300 відправки ОЇ ТР 140 може порівняти тільки ті записи даних у локальній базі даних 200 і віддаленій базі даних 210, які записані у файлі З00 відправки. Це, переважно, забезпечує швидкодіючий запит для виявлення заданих розходжень. 70 В іншому варіанті може бути зроблена випадкова вибірка даних в файлі ініціалізації 310 відправки і/або файлі 300 відправки. Потім ОЇ ТР 140 може порівняти дані, вибрані випадковим чином, у локальній базі даних 200 і віддаленій базі даних 210.For the sending file 300, the TR 140 can compare only those data records in the local database 200 and the remote database 210, which are recorded in the sending file Z00. This primarily provides a fast-acting query to detect specified discrepancies. 70 Alternatively, data may be randomly sampled in the initialization file 310 of the shipment and/or the file 300 of the shipment. Then, the OI TR 140 can compare the randomly selected data in the local database 200 and the remote database 210.

Список 1140 виключень може відповідати відсутнім подіям, наприклад, додавання (ада), зміни (тод) і видалення (аеї) для локальної бази даних 200, які не узгоджуються з віддаленою базою даних 210. Отже, для ідентифікації таких подій-кандидатів, ОЇ ТР 140 може дослідити останні транзакції, фіксовані у локальній базі даних 200. В основному, у таблиці реєстрації, яка зберігається у локальній базі даних 200, може бути сформований елемент для кожної фіксованої транзакції. Елемент може містити ідентифікатор запису, який був змінений, транзакцію (або подію), що змінила запис (наприклад, ада, тод і/або деї), порядковий номер реєстрації, який вказує черговість транзакції і т.д.The exception list 1140 may correspond to missing events, such as additions (ada), changes (tod), and deletions (aei) for the local database 200 that are inconsistent with the remote database 210. Therefore, to identify such candidate events, 140 may examine recent transactions committed to the local database 200. Basically, an entry for each committed transaction may be created in the registration table stored in the local database 200. An element can contain the identifier of the record that was changed, the transaction (or event) that changed the record (for example, ada, tod and/or dei), a registration sequence number that indicates the sequence of the transaction, etc.

Можлива таблиця 1100 реєстрації зображена на Фіг.11. У цьому можливому варіанті файл 300 відправки містить транзакції 1108-1114, зображені у таблиці реєстрації 1100. Перший елемент 1101 вказує, що у першій транзакції 1108 дані (сервера доменних імен) п! і п2 були додані до даних (домен), що відповідають ідентифікатору 41. Отже, ідентифікатором є аї, подією є додавання "ада", а порядковим номером реєстрації є 11526. Аналогічно, другий елемент 1102 вказує, що у другій транзакції 1109 дані п8 і пО були додані до даних, сч ов що відповідають ідентифікатору а2. Третій елемент ПОЗ вказує, що у третій транзакції 1110 дані, що відповідають ідентифікатору 43, були видалені. Четвертий елемент 1104 вказує, що у четвертій транзакції 1111, і) дані, що відповідають ідентифікатору 41, були змінені для додавання даних по. Для п'ятої транзакції 1112 п'ятий елемент 1105 вказує, що дані пб і п7 були додані до даних, які відповідають ідентифікатору а3. Для шостої транзакції 1113 шостий елемент 1106 вказує, що дані, які відповідають ідентифікатору 44, були змінені с для видалення даних пЗ3. К Ий елемент 1107 в Вй транзакції 1114 вказує, що дані, які відповідають ідентифікатору д5, були видалені. МA possible registration table 1100 is shown in Fig.11. In this possible embodiment, the sending file 300 contains transactions 1108-1114 depicted in the registration table 1100. The first element 1101 indicates that in the first transaction 1108, the (domain name server) data n! and n2 have been added to the data (domain) corresponding to identifier 41. Therefore, the identifier is ai, the event is add "ada", and the registration sequence number is 11526. Similarly, the second element 1102 indicates that in the second transaction 1109, data n8 and pO were added to the data corresponding to the identifier a2. The third element of the POZ indicates that in the third transaction 1110 the data corresponding to the identifier 43 was deleted. The fourth element 1104 indicates that in the fourth transaction 1111, i) the data corresponding to the identifier 41 has been changed to add data on. For the fifth transaction 1112, the fifth element 1105 indicates that the data pb and p7 have been added to the data corresponding to the identifier a3. For the sixth transaction 1113, the sixth element 1106 indicates that the data corresponding to the identifier 44 has been changed to remove the data p3. The K y element 1107 in the vy transaction 1114 indicates that the data corresponding to the identifier d5 has been deleted. M

Відповідно, згідно з Фігт!ОА, ОЇ ТР 140 може зіставити (1015) кожній події в оновленні ідентифікатор. Ф) події, причому ідентифікатор події може відповідати ідентифікатору запису. Кожна подія в оновленні може бути знайдена з передісторії подій. Передісторія подій, індексована і впорядкована за ідентифікатором події, може іа бути сформована з таблиці 1100 реєстрації. Можлива передісторія 1120 подій зображена на Фіг.11. Тут, першийі р четвертий елементи 1101, 1104 у таблиці 1100 реєстрації вказують зміни для даних, що відповідають ідентифікатору а1. Отже, передісторія 1120 подій містить ідентифікатор 491 1121 і дві події 1126, додавання "ада" ії подальшу зміну "той", виконані на даних, що відповідають ідентифікатору 41. Другий елемент 1102 « вказує зміни для даних, що відповідають ідентифікатору а2. Отже, передісторія 1120 подій містить 70 ідентифікатор 42 1122 і подію 1127 додавання "ада". Передісторія 1120 подій містить ідентифікатор аЗ 1123 і 8 с дві події 1128, видалення "де" з подальшою зміною "той", що вказується третім і п'ятим елементами 1103, ц 1105, які містять зміни для даних, що відповідають ідентифікатору 43. Шостий елемент 1106 вказує зміни для и"? даних, що відповідають ідентифікатору 44. Відповідно, передісторія 1120 подій містить ідентифікатор 44 1124 і подію 1129 зміни "той". БИЙ елемент 1107 вказує зміни для даних, що відповідають ідентифікатору 5, і передісторія 1120 подій містить ідентифікатор 45 1125 і подію 1130 видалення "ае!". Ідентифікатори 1121-1125 -| впорядковані з а1 по 45. со Відповідно до Фіг.10А, ОЇ ТР 140 може визначити (1020), чи є оновлення достовірним. Це визначення може бути виконане, наприклад, відповідно до варіанту здійснення за Фіг.10В. Спочатку ОЇ ТР 140 може порівняти (Се) (1022) ідентифікатори 1121-1125 подій з ідентифікаторами 1140 виключень для визначення, які ідентифікатори 1» 50 мають відповідність. Наприклад, відповідно до Фіг.11, ідентифікатор 1121 події а1 у хронології 1120 подій відповідає ідентифікатору виключення 41 у "Списку 2" списку 1140 виключень. Після виявлення відповідних події (45) і виключення, ОЇ ТР 140 може визначити (1024), чи підтверджене виключення подією. Підтвердження може бути виконане наступним чином. Для кожного ідентифікатора 1121-1125 події у хронології 1120 подій, ОЇ ТР 140 може визначити, чи є достовірною кожна послідовність подій 1126-1130 у хронології 1120 подій. Це може бути здійснено, наприклад, шляхом дослідження списку 1140 виключень для того, щоб визначити, до якого виду виключень належить кожний ідентифікатор виключення, визначення, якою повинна бути достовірнаAccordingly, according to Figt!OA, the TR 140 may assign (1015) to each event in the update an identifier. F) events, and the event identifier may correspond to the record identifier. Each event in the update can be found from the event history. A history of events, indexed and ordered by event identifier, can be generated from the registration table 1100. A possible history of 1120 events is shown in Fig. 11. Here, the first and fourth elements 1101, 1104 in the registration table 1100 indicate changes for the data corresponding to the identifier a1. Therefore, the background history 1120 of events contains the identifier 491 1121 and two events 1126, the addition of "ada" and the subsequent change "toy", performed on the data corresponding to the identifier 41. The second element 1102 « indicates the changes for the data corresponding to the identifier a2. So, event history 1120 contains 70 ID 42 1122 and event 1127 adding "hell". The background history 1120 of events contains the identifier aZ 1123 and 8 s two events 1128, the deletion of "where" followed by the change of "that", which is indicated by the third and fifth elements 1103, c 1105, which contain changes for the data corresponding to the identifier 43. Sixth element 1106 indicates changes for i" data corresponding to identifier 44. Accordingly, the event history 1120 contains the identifier 44 1124 and the change event 1129 "that". The BIY element 1107 indicates changes for the data corresponding to the identifier 5, and the event history 1120 contains identifier 45 1125 and event 1130 delete "ae!". Identifiers 1121-1125 -| are ordered from a1 to 45. so According to Fig. 10A, the OI TR 140 can determine (1020) whether the update is valid. This determination can be performed , for example, in accordance with the embodiment of Fig. 10B. First, the OI TR 140 may compare (Se) (1022) event identifiers 1121-1125 with exception identifiers 1140 to determine which identifiers 1" 50 have a match. For example, in accordance with Fig. 11, the identifier 1121 of event a1 in the chronology of 1120 events corresponds to the identifier of exception 41 in "List 2" of the list of 1140 exceptions. After detecting the corresponding event (45) and the exception, the OI TR 140 can determine (1024) whether the exception is confirmed by the event. Confirmation can be done as follows. For each identifier 1121-1125 of the event in the timeline of events 1120, the TR 140 can determine whether each sequence of events 1126-1130 in the timeline of events 1120 is valid. This can be done, for example, by examining the exception list 1140 to determine which exception type each exception identifier belongs to, a determination that should be valid

ІФ) послідовність подій для цього виду виключень, і потім пошуку у передісторії 1120 подій відповідного іме) ідентифікатора події та послідовності подій для ідентифікатора події. Достовірні послідовності для кожного виду виключень детально описані нижче. Якщо послідовність подій 1126-1130 у хронології 1120 подій відповідає 60 достовірній послідовності, то відповідний ідентифікатор події 1121-1125 має достовірну послідовність. По суті, виключення, що відповідає ідентифікатору виключення, може бути підтверджене. І, відповідна транзакція 1108-1114, що містить вказаний ідентифікатор події, є обгрунтованою, а не помилковою. У даному випадку, ОЇ ТР 140 може видалити ідентифікатор виключення зі списку 1140 виключень.IF) the sequence of events for this type of exception, and then searching the history 1120 of the events for the corresponding name) of the event identifier and the sequence of events for the event identifier. Valid sequences for each type of exception are detailed below. If the sequence of events 1126-1130 in the timeline of events 1120 corresponds to a valid sequence 60, then the corresponding event ID 1121-1125 has a valid sequence. Basically, the exception matching the exception ID can be asserted. And, the corresponding transaction 1108-1114 containing the specified event ID is valid and not in error. In this case, the TR 140 can remove the exception identifier from the list of exceptions 1140.

Для виду виключень "Списку 1" достовірною послідовністю подій може бути (това) " (аеї). Дана послідовність 65 може містити послідовність з нульової або більшої кількості подій зміни "той", за якими йде подія видалення "де", за якою йде довільна подія. Вид виключень "Списку 1" може відповідати даним, які можуть існувати у віддаленій базі даних 210, але бути відсутніми у локальній базі даних 200. У цьому випадку дані, можливо, були нещодавно видалені з локальної бази даних 200 і транзакція ще не була записана у файл 300 відправки.For the "List 1" type of exceptions, a valid sequence of events can be (to) " (aeii). A given sequence 65 may contain a sequence of zero or more change events "toi" followed by a deletion event "de" followed by an arbitrary event The exception type "List 1" may correspond to data that may exist in the remote database 210 but not be present in the local database 200. In this case, the data may have been recently deleted from the local database 200 and the transaction has not yet occurred recorded in file 300 shipments.

Отже, файл 300 відправки ще не міг бути застосований до віддаленої бази даних 210. Таким чином, ці даніTherefore, the send file 300 could not yet be applied to the remote database 210. Thus, this data

Можуть ще залишатися у віддаленій базі даних 210. Це може вважатися обгрунтованим розходженням, оскільки передбачається, що у деякий момент часу файл 300 відправки буде сформований і застосований до віддаленої бази даних 210. Отже, якщо для ідентифікатора виключення у Списку 1 зі списку 1140 виключень у хронології 1120 подій виявлена будь-яка така послідовність 1126-1130, то відповідна транзакція може вважатися достовірною. 70 Наприклад, відповідно до Фіг.11, ідентифікатор а5 1125 і відповідні йому дані були видалені з локальної бази даних 200, як ілюструє В й елемент 1114 таблиці 1100 реєстрації і вказує хронологія 1120 подій. Під час перевірки достовірності 45 був видалений з локальної бази даних 200, але не видалений з віддаленої бази даних 210. Отже, список 1140 виключень містить ідентифікатор а5 у Списку 1. Відповідно до хронології 1120 подій, подією 1130, що відповідає ідентифікатору 45 1125, є видалення "де!". ОЇ ТР 140 може порівняти достовірну 75 послідовність виду виключень "Списку 1", тобто (тод) " (дае), з подією 45 1130 у хронології 1120 подій.may still remain in the remote database 210. This may be considered a reasonable variance because it is assumed that at some point in time the dispatch file 300 will be generated and applied to the remote database 210. Therefore, if for the exception ID in List 1 of the list 1140 of exceptions in If any such sequence 1126-1130 is detected in the timeline 1120 of events, then the corresponding transaction can be considered valid. 70 For example, in accordance with Fig. 11, the identifier a5 1125 and its corresponding data have been deleted from the local database 200, as illustrated by element 1114 of the registration table 1100 and indicated by the chronology 1120 of events. During validation, 45 was deleted from local database 200 but not from remote database 210. Therefore, exclusion list 1140 contains ID a5 in Listing 1. According to event timeline 1120, event 1130 corresponding to ID 45 1125 is removing "where!". ОИ ТР 140 can compare a valid 75 sequence of exception type "List 1", ie (tod) " (dae), with event 45 1130 in the chronology of 1120 events.

Оскільки достовірна послідовність "Списку 1" і подія 1130 відповідають, то транзакція 1114 видалення, що відповідає ідентифікатору 45, може вважатися обгрунтованою і не є помилкою. Відповідно, ідентифікатор а5 може бути видалений зі списку 1140 виключень.Since the valid sequence of "List 1" and the event 1130 match, then the transaction 1114 deletion corresponding to the identifier 45 can be considered valid and not an error. Accordingly, the identifier a5 can be removed from the list of 1140 exceptions.

Достовірною послідовністю подій для виду виключень "Списку 2" може бути (ад4а). Дана послідовність може містити подію додавання "ада", за якою йде довільна подія. Вид виключень "Списку 2" може відповідати даним, які існують у локальній базі даних 200, але не існують у віддаленій базі даних 210. У цьому випадку дані могли бути нещодавно додані у локальну базу даних 200, і транзакція ще не була записана у файл З00 відправки. Отже, файл 300 відправки міг бути ще не застосований до віддаленої бази даних 210. Отже, дані можуть не існувати у віддаленій базі даних 210. Це також може вважатися обгрунтованим розходженням, Га оскільки, очікується, що у деякий момент часу файл 300 відправки буде сформований і застосований до віддаленої бази даних 210. Відповідно, якщо для ідентифікатора виключення у Списку 2 зі списку 1140 о виключень виявлена будь-яка така послідовність 1126-1130 у хронології 1120 подій, то відповідна транзакція може вважатися достовірною.A valid sequence of events for the "List 2" exception type can be (ad4a). A given sequence may contain an add event "ada" followed by an arbitrary event. The "List 2" exception type may correspond to data that exists in the local database 200 but does not exist in the remote database 210. In this case, the data may have been recently added to the local database 200 and the transaction has not yet been written to file З00 sending Therefore, the send file 300 may not yet have been applied to the remote database 210. Therefore, the data may not exist in the remote database 210. This may also be considered a reasonable variance, since the send file 300 is expected to be generated at some point in time. and applied to the remote database 210. Accordingly, if any such sequence 1126-1130 in the event timeline 1120 is found for the exception ID in List 2 of the exception list 1140, then the corresponding transaction may be considered valid.

Відповідно до Фіг.11, ідентифікатори 41 ї а2 1121, 1123 можуть бути зіставлені з даними, які, наприклад, со спочатку були додані у локальну базу даних 200. Оскільки послідовності подій 1126, 1127 для них починаються з події додавання "ада", то ідентифікатори а1 і 42 1121, 1123 відповідають достовірним послідовностям для виду в виключень "Списку 2". Відповідно, транзакції 1108, 1109, що містять вказані ідентифікатори, можуть вважатися Ге»! достовірними, і ідентифікатори 41 і 42 можуть бути видалені зі списку 1140 виключень. Слід зазначити, що ідентифікатор 43 1123 також у своїй послідовності 1128 містить подію додавання "ада". Однак, подія додавання іа 3з5 ада" не є першою у послідовності 1128. Відповідно, послідовність 1128 не відноситься до виду "Списку 2". -According to Fig. 11, the identifiers 41 and a2 1121, 1123 can be mapped to data that, for example, was initially added to the local database 200. Since the sequence of events 1126, 1127 for them begins with the addition event "ada", then identifiers a1 and 42 1121, 1123 correspond to valid sequences for the type in "List 2" exceptions. Accordingly, transactions 1108, 1109, containing the specified identifiers, can be considered Ge"! valid, and IDs 41 and 42 can be removed from the 1140 exclusion list. It should be noted that identifier 43 1123 also contains the event "ada" in its sequence 1128. However, the event of addition of 3z5 ada" is not the first in the sequence 1128. Accordingly, the sequence 1128 does not belong to the type "List 2". -

Додатково, оскільки 43 не позначений у Списку 2 списку 1140 виключень, то ОЇ ТР 140 не може здійснити його перевірку по достовірній послідовності для Списку 2.Additionally, since 43 is not listed in List 2 of the 1140 list of exclusions, OJ TR 140 cannot verify it against a reliable sequence for List 2.

Достовірними послідовностями подій для виду виключень "Списку З" можуть бути (аеї), (ада) або (тод). Дані « послідовності можуть містити подію видалення "де!", за якою йде подія додавання "ада", за якою йде довільна 70 подія, або подія зміни "тоа", за якою йде довільна подія. Вид виключень "Списку 3" може відповідати даним, 8 с які існують в обох базах даних 200, 210, але відмінні. У цьому випадку дані могли бути нещодавно змінені у ц локальній базі даних 200, і транзакція ще не була записана у файл 300 відправки. Отже, файл 300 відправки ще и"? не міг бути застосований до віддаленої бази даних 210. Отже, дані, що відповідають ідентифікатору, можуть бути ще не змінені у віддаленій базі даних 210. Знову, це може вважатися обгрунтованим розходженням, оскільки очікується, що у деякий момент часу файл 300 відправки буде сформований і застосований до -І віддаленої бази даних 210. Відповідно, якщо для ідентифікатора виключення у "Списку 3" зі списку 1140 виключень виявлена будь-яка така послідовність 1126-1130 у хронології 1120 подій, то відповідна транзакція о може вважатися достовірною. (Се) Наприклад, відповідно до Фіг.11, ідентифікатори 43 ії 44 1123, 1124 можуть бути зіставлені з даними, які були змінені у локальній базі даних 200. У випадку ідентифікатора аз 1123, ідентифікатор аз 1123 і його дані ть спочатку були видалені, а потім додані зворотно з новими даними, так що послідовність подій 1128 може містити с» видалення "деї", за яким йде додавання "ада". У випадку ідентифікатора а4 1124, дані 44 були змінені для видалення даних, так що послідовність подій 1129 може містити зміну "той". Оскільки вказані послідовності подій 1128, 1129 відповідають достовірним послідовностям для виду виключень "Списку 3", то відповідні їм транзакції 1110, 1112, 1113 можуть вважатися достовірними, і ідентифікатори 43 і а4 можуть бути видалені зі списку 1140 виключень. іФ) Відповідно до Фіг.10В, якщо всі виключення, позначені у списку 1140 виключень своїми ідентифікаторами, ко були обгрунтовані (1024) подіями, наприклад, якщо список 1140 виключень є пустим, то ОЇ ТР 140 може визначити (1026) файл 300 відправки або файл ініціалізації 310 відправки, як достовірний, і поінформувати ШОЕ бо 100 для застосування файлу 300 відправки або файлу ініціалізації 310 відправки до віддаленої бази даних 210.Valid sequences of events for the List C exception type can be (aeii), (ada), or (tod). Sequence data may contain a deletion event "de!" followed by an addition event "ada" followed by an arbitrary 70 event, or a change event "toa" followed by an arbitrary event. The type of exceptions "List 3" may correspond to data 8 that exist in both databases 200, 210, but are different. In this case, the data may have recently changed in the local database 200 and the transaction has not yet been written to the file 300 sent. Therefore, the send file 300 could not yet be applied to the remote database 210. Therefore, the data corresponding to the identifier may not yet have been modified in the remote database 210. Again, this may be considered a reasonable variance because it is expected that at some point in time, the dispatch file 300 will be generated and applied to -I the remote database 210. Accordingly, if any such sequence 1126-1130 is found in the event timeline 1120 for the exception ID in "List 3" of the exception list 1140, then the corresponding transaction o can be considered valid.(Se) For example, according to Fig.11, the identifiers 43 and 44 1123, 1124 can be mapped to the data that has been changed in the local database 200. In the case of the identifier az 1123, the identifier az 1123 and its the data t was first deleted and then added back with the new data, so that the sequence of events 1128 may include the deletion of "dei" followed by the addition of "ada". In the case of identifier a4 1124, the data 44 have been modified to remove data so that sequence of events 1129 may contain the change "that". Since the indicated sequences of events 1128, 1129 correspond to the valid sequences for the type of exclusions "List 3", the corresponding transactions 1110, 1112, 1113 can be considered valid, and identifiers 43 and a4 can be removed from the list 1140 of exceptions. 10B) According to Fig. 10B, if all the exceptions marked in the list of exceptions 1140 with their identifiers were justified by (1024) events, for example, if the list of exceptions 1140 is empty, then the OI TR 140 can determine (1026) the file 300 of sending or send initialization file 310 as valid and inform ESR 100 to apply send file 300 or send initialization file 310 to remote database 210.

Потім ГОЕ 100 може застосувати файл 300 відправки або файл ініціалізації 310 відправки до віддаленої бази даних 210.The GOE 100 may then apply the send file 300 or the send initialization file 310 to the remote database 210 .

Ї навпаки, якщо всі виключення не були підтверджені (1024) подіями, наприклад, якщо список 1140 виключень не є пустим, то виключення, що залишилися, можуть вказувати на помилки у файлі З00 відправки або файлі 65 ініціалізації 310 відправки. Відповідно, ОЇ ТР 140 може визначити (1028) файл З00 відправки або файл ініціалізації 310 відправки, як недостовірний, і зареєструвати помилки у файлі помилок.Conversely, if all exceptions have not been confirmed by (1024) events, for example, if the list of exceptions 1140 is not empty, then the remaining exceptions may indicate errors in the file Z00 of the shipment or the initialization file 65 of the shipment 310. Accordingly, the OI TR 140 may determine (1028) the sending file Z00 or the sending initialization file 310 as invalid and log errors in the error file.

В альтернативному варіанті здійснення, якщо, наприклад, файл 300 відправки або файл ініціалізації 310 відправки був визначений як недостовірний, то після заздалегідь визначеного періоду часу ОЇ ТР 140 може повторити процес перевірки достовірності відносно недостовірного файлу З00 відправки або файлу ініціалізації 310 відправки для підтвердження того, що розходження дійсно є помилками. Вказана заздалегідь визначена затримка забезпечує мережі більший час для передачі якого-небудь повільного файлу 300, 310 відправки, і більший час на те, щоб бази даних 200,210 стали уніфікованими за зчитуванням.In an alternative embodiment, if, for example, the send file 300 or the send initialization file 310 was determined to be untrusted, then after a predetermined period of time, the TR 140 may repeat the validation process against the untrusted send file 300 or the send initialization file 310 to confirm that that differences are indeed errors. This predetermined delay provides the network with more time to transfer any slow file 300, 310 sending, and more time for the databases 200, 210 to become read-unified.

У варіанті здійснення даного винаходу дані у віддаленій базі даних 210 можуть "відставати" від даних у локальній базі даних 200 на значний інтервал часу. Відповідно, для порівняння баз даних 200, 210 їі для 7/0 виявлення помилок, бази даних 200, 210 можуть бути зроблені уніфікованими за зчитуванням у той момент часу, коли вони стануть точними копіями одна одної. В основному, віддалена база даних 210 може бути приведена, з повторенням всіх завершених транзакцій, до локальної бази даних 200, причому дані у віддаленій базі даних 210 можуть бути зроблені по суті ідентичними даним у локальній базі даних 200.In an embodiment of the present invention, the data in the remote database 210 may "lag" the data in the local database 200 by a significant time interval. Accordingly, for comparing the databases 200, 210 and for 7/0 error detection, the databases 200, 210 can be made read-unified at the point in time when they become exact copies of each other. Basically, the remote database 210 can be brought, with all completed transactions repeated, to the local database 200, and the data in the remote database 210 can be made substantially identical to the data in the local database 200.

Відповідно, для прискорення перевірки достовірності, будь-який сформований у поточний час файл 7/5 ініціалізації 310 відправки і наступні файли 300 відправки можуть бути застосовані до віддаленої бази даних 210 до початку перевірки достовірності. По суті, кількість розходжень може бути істотно зменшена. Така пакетна обробка файлів 300, 310 відправки може бути визначена як утворення блоків. Перший і останній з цих файлів 300, 310 відправки у блоці може бути названий нижнім і верхнім "водяним знаком", відповідно. Перший блок, що називається початковим блоком, може містити файл ініціалізації 310 відправки. Всі наступні блоки, що 2о називаються кінцевими блоками, можуть містити тільки файли 300 відправки.Accordingly, to speed up validation, any currently generated file 7/5 initialization 310 of the shipment and subsequent files 300 of the shipment may be applied to the remote database 210 before validation begins. In fact, the number of discrepancies can be significantly reduced. Such batch processing of the sending files 300, 310 can be defined as the formation of blocks. The first and last of these sending files 300, 310 in the block may be referred to as the lower and upper "watermarks", respectively. The first block, called the initial block, may contain the initialization file 310 of the shipment. All subsequent blocks, which are called end blocks, can only contain 300 send files.

Утворення блоків може забезпечувати перевірку достовірності групи замість перевірки достовірності окремо.Block formation can provide group validation instead of individual validation.

Відповідно, при виявленні у блоці помилки, недостовірним може бути позначений весь блок, а не тільки файлAccordingly, when an error is detected in a block, the entire block can be marked as invalid, not just the file

З00 відправки або файл ініціалізації 310 відправки, де виникла помилка.C00 shipment or initialization file 310 shipment where the error occurred.

Механізми і способи, що відповідають варіантам здійснення даного винаходу, можуть бути реалізовані з сч ов використанням універсального мікропроцесора, запрограмованого відповідно до варіантів здійснення. Отже, варіанти здійснення даного винаходу також включають носій інформації, що зчитується комп'ютером, який може і) містити інструкції, які можуть використовуватися для програмування процесора для виконання способу, що відповідає варіантам здійснення даного винаходу. Вказаний носій може включати в себе будь-який вид диска, включаючи гнучкий диск, оптичний диск, компакт-диски СО-КОМ і т.д. с зо Вище детально описано і проілюстровано декілька варіантів здійснення даного винаходу. Однак, має бути очевидним, що без відхилення від суті і об'єму даного винаходу можуть бути здійснені зміни і модифікації « винаходу, які охоплюються наведеним вище описом і доданою формулою винаходу. бMechanisms and methods corresponding to the variants of implementation of this invention can be implemented with the use of a universal microprocessor programmed in accordance with the variants of implementation. Thus, embodiments of the present invention also include computer-readable media that can i) contain instructions that can be used to program a processor to perform a method according to embodiments of the present invention. This media can include any type of disc, including floppy disc, optical disc, SO-COM compact discs, etc. Several embodiments of the present invention have been described and illustrated in detail above. However, it should be obvious that changes and modifications of the invention, which are covered by the above description and the appended claims, can be made without deviating from the essence and scope of this invention. b

Claims (27)

Формула винаходу 35 і -Formula of the invention 35 and - 1. Спосіб оновлення віддаленої бази даних через мережу, що включає: формування множини періодичних оновлень, що базуються на інкрементних змінах у локальній базі даних, причому кожне з множини періодичних оновлень містить щонайменше одну транзакцію, « передачу множини періодичних оновлень у віддалену базу даних через мережу, ш-в с при цьому при формуванні множини періодичних оновлень виконують: формування ініціалізуючого оновлення, що містить версію локальної бази даних у момент часу запуску, :з» визначення останнього періодичного оновлення з множини періодичних оновлень на основі моменту часу запуску, визначення останньої транзакції на основі моменту часу запуску і -І передачу через мережу у віддалену базу даних ініціалізуючого оновлення, ідентифікатора останнього періодичного оновлення та ідентифікатора останньої транзакції для використання іс), при оновленні відділеної бази даних. со 2. 1. A method of updating a remote database over a network, comprising: generating a plurality of periodic updates based on incremental changes in a local database, and each of the plurality of periodic updates contains at least one transaction, "transmitting a plurality of periodic updates to a remote database over a network , w-v s, while forming a set of periodic updates, perform: formation of an initializing update containing the version of the local database at the time of startup, :z" determination of the last periodic update from a set of periodic updates based on the time of startup, determination of the last transaction on based on the moment of the start time and -I transfer over the network to the remote database the initializing update, the identifier of the last periodic update and the identifier of the last transaction for use and) when updating a separate database. so 2. Спосіб за п. 1, в якому передача ініціалізуючого оновлення включає: зіставлення з останнім періодичним оновленням ідентифікатора останнього періодичного оновлення і - зіставлення з останньою транзакцією ідентифікатора останньої транзакції. с» З. The method according to claim 1, in which the transfer of the initializing update includes: matching with the last periodic update of the identifier of the last periodic update and - matching with the last transaction of the identifier of the last transaction. c" Z. Спосіб за п. 1, в якому множина періодичних оновлень формується з регулярними або нерегулярними інтервалами часу.The method according to claim 1, in which the plurality of periodic updates are generated at regular or irregular time intervals. 4. Спосіб за п. 1, в якому момент часу запуску формування ініціалізуючого оновлення ідентичний моменту вв часу запуску формування періодичного оновлення.4. The method according to claim 1, in which the moment in time of starting the formation of the initializing update is identical to the moment in time of starting the formation of the periodic update. 5. Спосіб за п. 1, в якому момент часу запуску формування ініціалізуючого оновлення більш пізній, ніж (Ф) момент часу запуску формування періодичного оновлення. ГІ 5. The method according to claim 1, in which the time of starting the formation of the initializing update is later than (F) the time of starting the formation of the periodic update. GI 6. Спосіб за п. 1, в якому періодичне оновлення містить множину транзакцій, кожна з яких має унікальний ідентифікатор транзакції. во 6. The method according to claim 1, in which the periodic update contains a plurality of transactions, each of which has a unique transaction identifier. in 7. Спосіб оновлення віддаленої бази даних через мережу, що включає: одержання через мережу множини періодичних оновлень, які базуються на інкрементних змінах у локальній базі даних, причому кожне з множини періодичних оновлень містить щонайменше одну транзакцію, одержання через мережу ініціалізуючого оновлення, що містить версію локальної бази даних у момент часу запуску, 65 зчитування з ініціалізуючого оновлення ідентифікатора останнього періодичного оновлення, зчитування з ініціалізуючого оновлення ідентифікатора останньої транзакції,7. A method of updating a remote database over a network, comprising: receiving over a network a plurality of periodic updates that are based on incremental changes in a local database, each of the plurality of periodic updates containing at least one transaction, receiving over a network an initialization update containing a version of the local database at startup time, 65 reading from the initialization update of the identifier of the last periodic update, reading from the initialization update of the identifier of the last transaction, визначення останнього періодичного оновлення з ідентифікатора останнього періодичного оновлення, причому згадане визначення останнього періодичного оновлення базується на моменті часу запуску, визначення останньої транзакції з ідентифікатора останньої транзакції, причому згадане визначення останньої транзакції базується на моменті часу запуску, застосування до віддаленої бази даних транзакцій, сформованих після останньої транзакції, і застосування до віддаленої бази даних періодичних оновлень, сформованих після останнього періодичного оновлення.determining the last periodic update from the last periodic update identifier, said determination of the last periodic update being based on a start time, determining the last transaction from the last transaction identifier, said determination of the last transaction being based on the start time, applying to a remote database of transactions generated after of the last transaction, and applying to the remote database periodic updates generated since the last periodic update. 8. Спосіб за п. 7, що додатково включає: 70 відкидання періодичних оновлень, сформованих до моменту часу запуску ініціалізуючого оновлення.8. The method according to claim 7, which additionally includes: 70 discarding the periodic updates formed up to the time of starting the initializing update. 9. Спосіб за п. 7, в якому множина періодичних оновлень приймається по одному у періодичні інтервали часу.9. The method according to claim 7, in which a plurality of periodic updates are received one at a time at periodic time intervals. 10. Спосіб за п. 7, в якому множина періодичних оновлень приймається у пакетах у періодичні інтервали часу.10. The method according to claim 7, in which the plurality of periodic updates are received in packets at periodic time intervals. 11. Спосіб за п. 7, в якому періодичне оновлення містить множину транзакцій, кожна з яких має унікальний ідентифікатор транзакції.11. The method according to claim 7, in which the periodic update contains a plurality of transactions, each of which has a unique transaction identifier. 12. Спосіб оновлення віддаленої бази даних через мережу, що включає: формування множини періодичних оновлень, які базуються на інкрементних змінах у локальній базі даних, кожне з множини періодичних оновлень містить щонайменше одну транзакцію, і формування ініціалізуючого оновлення, що містить версію локальної бази даних у момент часу запуску, ідентифікатор оновлення, що відповідає останньому періодичному оновленню, сформованому до моменту часу запуску, та ідентифікатор транзакції, що відповідає останній транзакції, завершеній до моменту часу запуску, і передачу через мережу у віддалену базу даних ініціалізуючого оновлення , ідентифікатора оновлення та ідентифікатора транзакції.12. A method of updating a remote database over a network, comprising: generating a plurality of periodic updates based on incremental changes in a local database, each of the plurality of periodic updates containing at least one transaction, and generating an initialization update containing a version of the local database in the trigger time, the update ID corresponding to the last periodic update generated before the trigger time, and the transaction ID corresponding to the last transaction completed before the trigger time, and transmitting over the network to the remote database the initializing update , the update ID, and the transaction ID . 13. Спосіб за п. 12, в якому множина періодичних оновлень формується з регулярними інтервалами часу.13. The method according to claim 12, in which a plurality of periodic updates are generated at regular time intervals. 14. Спосіб за п. 12, в якому множина періодичних оновлень формується з нерегулярними інтервалами часу. сч14. The method according to claim 12, in which a plurality of periodic updates are generated at irregular time intervals. high school 15. Спосіб за п. 12, в якому момент часу запуску формування ініціалізуючого оновлення ідентичний моменту часу запуску формування періодичного оновлення. і)15. The method according to claim 12, in which the instant of time of starting the formation of the initializing update is identical to the moment of the start of the formation of the periodic update. and) 16. Спосіб за п. 12, в якому момент часу запуску формування ініціалізуючого оновлення більш пізній, ніж момент часу запуску формування періодичного оновлення.16. The method according to claim 12, in which the instant of time of starting the formation of the initializing update is later than the moment of the start of the formation of the periodic update. 17. Система для оновлення віддаленої бази даних через мережу, що містить: с зо щонайменше один процесор, зв'язаний з мережею, і пам'ять, зв'язану з процесором, яка містить локальну базу даних і команди, адаптовані для виконання - процесором способу оновлення віддаленої бази даних через мережу, при цьому зазначені команди включають в (ду себе команди для формування множини періодичних оновлень, які базуються на інкрементних змінах у локальній базі даних, ме) з5 причому кожне з множини періодичних оновлень містить щонайменше одну транзакцію, ї- передачі множини періодичних оновлень у віддалену базу даних через мережу, при цьому команди для формування множини періодичних оновлень включають в себе команди для формування ініціалізуючого оновлення, що містить версію локальної бази даних у момент часу запуску, визначення останнього періодичного оновлення з множини періодичних оновлень на основі моменту часу « Запуску, шщ с визначення останньої транзакції на основі моменту часу запуску і передачі через мережу у віддалену базу даних ініціалізуючого оновлення, ідентифікатора останнього ;» періодичного оновлення та ідентифікатора останньої транзакції.17. A system for updating a remote database over a network, comprising: c zo at least one processor connected to the network, and memory connected to the processor, which contains the local database and commands adapted to be executed by the processor method of updating a remote database over the network, while the specified commands include commands for forming a set of periodic updates that are based on incremental changes in the local database, and each of the set of periodic updates contains at least one transaction, i- transmitting a plurality of periodic updates to a remote database over a network, wherein the commands for generating the plurality of periodic updates include commands for generating an initialization update containing the version of the local database at the time of startup, determining the last periodic update from the plurality of periodic updates based on the time time « Start, sshh s determination of the last transaction based on the moment of the start time and before achi over the network to the remote database of the initializing update, the identifier of the last ;" periodic update and last transaction ID. 18. Система за п. 17, в якій при передачі ініціалізуючого оновлення останнє періодичне оновлення зіставлене з ідентифікатором останнього періодичного оновлення, і -І остання транзакція зіставлена з ідентифікатором останньої транзакції.18. The system according to claim 17, in which when transmitting the initialization update, the last periodic update is mapped to the identifier of the last periodic update, and -I the last transaction is mapped to the identifier of the last transaction. 19. Система за п. 17, в якій множина періодичних оновлень формується з регулярними або нерегулярними і, інтервалами часу. Ге) 19. The system according to claim 17, in which a plurality of periodic updates are generated at regular or irregular time intervals. Gee) 20. Система за п. 17, в якій момент часу запуску формування ініціалізуючого оновлення ідентичний моменту 5о часу запуску формування періодичного оновлення. ве 20. The system according to claim 17, in which the instant of time of starting the formation of the initializing update is identical to the moment of time of starting the formation of the periodic update. ve 21. Система за п. 17, в якій момент часу запуску формування ініціалізуючого оновлення більш пізній, ніж 4) момент часу запуску формування періодичного оновлення.21. The system according to claim 17, in which the instant of time of starting the formation of the initializing update is later than 4) the moment of the start of the formation of the periodic update. 22. Система за п. 17, в якій періодичне оновлення містить множину транзакцій, кожна з яких має унікальний ідентифікатор транзакції.22. The system of claim 17, wherein the periodic update comprises a plurality of transactions, each of which has a unique transaction identifier. 23. Система для оновлення віддаленої бази даних через мережу, що містить: щонайменше один процесор, зв'язаний з мережею, і (Ф, пам'ять, зв'язану з процесором, яка містить локальну базу даних і команди, адаптовані для виконання ка процесором, для оновлення віддаленої бази даних через мережу, при цьому зазначені команди включають в себе команди для во одержання через мережу множини періодичних оновлень, які базуються на інкрементних змінах у локальній базі даних, причому кожне з множини періодичних оновлень містить щонайменше одну транзакцію, одержання через мережу ініціалізуючого оновлення, що містить версію локальної бази даних у момент часу запуску, зчитування з ініціалізуючого оновлення ідентифікатора останнього періодичного оновлення, 65 зчитування з ініціалізуючого оновлення ідентифікатора останньої транзакції, визначення останнього періодичного оновлення з ідентифікатора останнього періодичного оновлення,23. A system for updating a remote database over a network, comprising: at least one processor connected to the network, and (F, memory connected to the processor, which contains the local database and commands adapted to execute the by a processor, to update a remote database over a network, wherein said commands include commands for receiving over a network a plurality of periodic updates based on incremental changes in a local database, each of the plurality of periodic updates containing at least one transaction, receiving via an initialization update network containing the version of the local database at startup time, reading from the initialization update the identifier of the last periodic update, 65 reading from the initialization update the identifier of the last transaction, determining the last periodic update from the identifier of the last periodic update, причому останнє періодичне оновлення базується на моменті часу запуску, визначення останньої транзакції з ідентифікатора останньої транзакції причому остання транзакція базується на моменті часу запуску, застосування до віддаленої бази даних транзакцій, сформованих після останньої транзакції, і застосування до віддаленої бази даних періодичних оновлень, сформованих після останнього періодичного оновлення.wherein the last periodic update is based on the start time, determining the last transaction from the last transaction ID, wherein the last transaction is based on the start time, applying to the remote database transactions formed since the last transaction, and applying to the remote database periodic updates formed since the last periodic update. 24. Система за п. 23, в якій зазначені команди додатково включають в себе команди для відкидання періодичних оновлень, сформованих до моменту часу запуску ініціалізуючого оновлення. 70 24. The system according to claim 23, in which said commands additionally include commands for discarding periodic updates generated up to the time of starting the initializing update. 70 25. Система за п. 23, в якій множина періодичних оновлень приймається по одному з регулярними або нерегулярними інтервалами часу.25. The system of claim 23, in which a plurality of periodic updates are received one at a time at regular or irregular time intervals. 26. Система за п. 23, в якій множина періодичних оновлень приймається у пакетах з регулярними або нерегулярними інтервалами часу.26. The system of claim 23, wherein the plurality of periodic updates are received in packets at regular or irregular time intervals. 27. Система за п. 23, в якій періодичне оновлення містить множину транзакцій, кожна з яких має унікальний 7/5 ідентифікатор транзакції, причому ідентифікатори транзакцій впорядковані випадковим чином. с щі 6) (зе) « (о) (о) і -27. The system of claim 23, wherein the periodic update comprises a plurality of transactions, each having a unique 7/5 transaction identifier, wherein the transaction identifiers are randomly ordered. c schi 6) (ze) « (o) (o) and - - . и? -і се) се) щ» сю» іме) 60 б5- and? -i se) se) sh» syu» ime) 60 b5
UA20040504107A 2001-11-01 2002-01-11 Method and system for updating a remote data base (variants) UA79943C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33084201P 2001-11-01 2001-11-01
PCT/US2002/035083 WO2003038654A1 (en) 2001-11-01 2002-11-01 Method and system for updating a remote database

Publications (1)

Publication Number Publication Date
UA79943C2 true UA79943C2 (en) 2007-08-10

Family

ID=35161079

Family Applications (1)

Application Number Title Priority Date Filing Date
UA20040504107A UA79943C2 (en) 2001-11-01 2002-01-11 Method and system for updating a remote data base (variants)

Country Status (1)

Country Link
UA (1) UA79943C2 (en)

Similar Documents

Publication Publication Date Title
EA006223B1 (en) Method and system for validating remote database
US10652076B2 (en) Dynamic application instance discovery and state management within a distributed system
US9002805B1 (en) Conditional storage object deletion
KR101542707B1 (en) Distributed replica storage system with web services interface
US9052942B1 (en) Storage object deletion job management
JP6346376B2 (en) Scalable log-based transaction management
US20180189373A1 (en) Log-based distributed transaction management
AU2002356885A1 (en) Method and system for updating a remote database
US20230185559A1 (en) Managing a federated software repository across multiple devices
US20130006920A1 (en) Record operation mode setting
UA79943C2 (en) Method and system for updating a remote data base (variants)
UA80540C2 (en) Method, system, device, and information carrier for validating remote database updates; method for validating records in a remote database and data transmission over a communication system
WO2022120314A1 (en) Methods for distributed key-value store
HK1075308B (en) Method and system for validating remote database
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载